8deb542ef524476bc15a1654b5fb8eac525ee3ea
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-21  Alberto Garcia  <albgarcia@rim.com>
2
3         [BlackBerry] GraphicsLayerBlackBerry: rename showDebugBorder to isShowingDebugBorder
4         https://bugs.webkit.org/show_bug.cgi?id=110453
5
6         Reviewed by Carlos Garcia Campos.
7
8         This changed in r133517.
9
10         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
11         (WebCore::GraphicsLayerBlackBerry::setupContentsLayer):
12
13 2013-02-21  Peter Rybin  <prybin@chromium.org>
14
15         Web Inspector: take large strings out of CodeGeneratorInspector.py
16         https://bugs.webkit.org/show_bug.cgi?id=110159
17
18         Reviewed by Yury Semikhatsky.
19
20         Python script is refactored.
21
22         * inspector/CodeGeneratorInspector.py:
23         * inspector/CodeGeneratorInspectorStrings.py: Added.
24         (InspectorFrontend_h):
25         (InspectorFrontendChannel):
26         (InspectorArray):
27         (InspectorObject):
28         (String):
29         (InspectorFrontend):
30         (InspectorBackendDispatcher_h):
31         (InspectorAgent):
32         (InspectorBackendDispatcherImpl):
33         (InspectorBackendDispatcher):
34         (CallbackBase):
35         (void):
36         (HashMap):
37         (OptOutput):
38         (ExactlyInt):
39         (RuntimeCastHelper):
40         (provides):
41         (typename):
42         (Array):
43         (Builder):
44
45 2013-02-21  Sheriff Bot  <webkit.review.bot@gmail.com>
46
47         Unreviewed, rolling out r143581.
48         http://trac.webkit.org/changeset/143581
49         https://bugs.webkit.org/show_bug.cgi?id=110457
50
51         Breaks Windows builds (compile + link) (Requested by apavlov
52         on #webkit).
53
54         * CMakeLists.txt:
55         * GNUmakefile.list.am:
56         * Target.pri:
57         * WebCore.gypi:
58         * WebCore.order:
59         * WebCore.vcproj/WebCore.vcproj:
60         * WebCore.vcxproj/WebCore.vcxproj:
61         * WebCore.vcxproj/WebCore.vcxproj.filters:
62         * WebCore.xcodeproj/project.pbxproj:
63         * dom/WebCoreMemoryInstrumentation.cpp:
64         (WebCore):
65         * dom/WebCoreMemoryInstrumentation.h:
66         (WebCoreMemoryTypes):
67         * inspector/InjectedScriptSource.js:
68         (.):
69         * inspector/Inspector.json:
70         * inspector/InspectorAllInOne.cpp:
71         * inspector/InspectorController.cpp:
72         (WebCore::InspectorController::InspectorController):
73         * inspector/InspectorDOMStorageAgent.cpp:
74         (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
75         (WebCore::InspectorDOMStorageAgent::clearFrontend):
76         (WebCore::InspectorDOMStorageAgent::restore):
77         (WebCore::InspectorDOMStorageAgent::enable):
78         (WebCore::InspectorDOMStorageAgent::disable):
79         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
80         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
81         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
82         (WebCore::InspectorDOMStorageAgent::storageId):
83         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
84         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
85         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
86         (WebCore::InspectorDOMStorageAgent::clearResources):
87         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
88         * inspector/InspectorDOMStorageAgent.h:
89         (WebCore):
90         (WebCore::InspectorDOMStorageAgent::create):
91         (InspectorDOMStorageAgent):
92         * inspector/InspectorDOMStorageResource.cpp: Added.
93         (WebCore):
94         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
95         (WebCore::InspectorDOMStorageResource::isSameOriginAndType):
96         (WebCore::InspectorDOMStorageResource::bind):
97         (WebCore::InspectorDOMStorageResource::unbind):
98         (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
99         * inspector/InspectorDOMStorageResource.h: Added.
100         (WebCore):
101         (InspectorDOMStorageResource):
102         (WebCore::InspectorDOMStorageResource::create):
103         (WebCore::InspectorDOMStorageResource::id):
104         (WebCore::InspectorDOMStorageResource::storageArea):
105         (WebCore::InspectorDOMStorageResource::frame):
106         * inspector/InspectorInstrumentation.cpp:
107         (WebCore):
108         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
109         (WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
110         * inspector/InspectorInstrumentation.h:
111         (InspectorInstrumentation):
112         (WebCore::InspectorInstrumentation::didUseDOMStorage):
113         (WebCore):
114         * inspector/InspectorPageAgent.cpp:
115         * inspector/InspectorPageAgent.h:
116         (InspectorPageAgent):
117         * inspector/front-end/DOMStorage.js:
118         (WebInspector.DOMStorage):
119         (WebInspector.DOMStorage.prototype.get id):
120         (WebInspector.DOMStorage.prototype.get domain):
121         (WebInspector.DOMStorage.prototype.getEntries):
122         (WebInspector.DOMStorage.prototype.setItem):
123         (WebInspector.DOMStorage.prototype.removeItem):
124         (WebInspector.DOMStorageModel):
125         (WebInspector.DOMStorageModel.prototype._addDOMStorage):
126         (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
127         (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
128         (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
129         (WebInspector.DOMStorageModel.prototype.storageForId):
130         (WebInspector.DOMStorageModel.prototype.storages):
131         (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
132         * inspector/front-end/DOMStorageItemsView.js:
133         (WebInspector.DOMStorageItemsView.prototype._update):
134         (WebInspector.DOMStorageItemsView.prototype._showDOMStorageEntries):
135         (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries):
136         * inspector/front-end/ResourcesPanel.js:
137         (WebInspector.ResourcesPanel):
138         (WebInspector.ResourcesPanel.prototype._initialize):
139         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
140         (WebInspector.ResourcesPanel.prototype._addDOMStorage):
141         (WebInspector.DOMStorageTreeElement):
142         (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
143         * page/DOMWindow.cpp:
144         (WebCore::DOMWindow::sessionStorage):
145         (WebCore::DOMWindow::localStorage):
146
147 2013-02-21  Vsevolod Vlasov  <vsevik@chromium.org>
148
149         Web Inspector: Get rid of parsedURL in uiSourceCode, use name and path for displayName instead.
150         https://bugs.webkit.org/show_bug.cgi?id=110335
151
152         Reviewed by Alexander Pavlov.
153
154         Replaced UISourceCode.parsedURL with UISourceCode.displayName().
155
156         * inspector/front-end/NavigatorView.js:
157         (WebInspector.NavigatorView.prototype._updateScriptTitle):
158         (WebInspector.NavigatorView.prototype.getOrCreateFolderTreeElement):
159         (WebInspector.NavigatorFolderTreeElement):
160         * inspector/front-end/ResourceUtils.js:
161         (WebInspector.displayNameForURL):
162         * inspector/front-end/RevisionHistoryView.js:
163         (WebInspector.RevisionHistoryView.prototype._createUISourceCodeItem):
164         * inspector/front-end/UISourceCode.js:
165         (WebInspector.UISourceCode):
166         (WebInspector.UISourceCode.prototype.displayName):
167         (WebInspector.UISourceCode.prototype.urlChanged):
168
169 2013-02-21  Alexander Pavlov  <apavlov@chromium.org>
170
171         Web Inspector: Local/session storage tree items in the Resources panel after page refresh are not shown
172         https://bugs.webkit.org/show_bug.cgi?id=109572
173
174         Reviewed by Vsevolod Vlasov.
175
176         * CMakeLists.txt:
177         * GNUmakefile.list.am:
178         * Target.pri:
179         * WebCore.gypi:
180         * WebCore.order:
181         * WebCore.vcproj/WebCore.vcproj:
182         * WebCore.vcxproj/WebCore.vcxproj:
183         * WebCore.vcxproj/WebCore.vcxproj.filters:
184         * WebCore.xcodeproj/project.pbxproj:
185         * dom/WebCoreMemoryInstrumentation.cpp:
186         (WebCore):
187         * dom/WebCoreMemoryInstrumentation.h:
188         (WebCoreMemoryTypes):
189         * inspector/InjectedScriptSource.js:
190         (.):
191         * inspector/Inspector.json:
192         * inspector/InspectorAllInOne.cpp:
193         * inspector/InspectorController.cpp:
194         (WebCore::InspectorController::InspectorController):
195         * inspector/InspectorDOMStorageAgent.cpp:
196         (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
197         (WebCore::InspectorDOMStorageAgent::clearFrontend):
198         (WebCore::InspectorDOMStorageAgent::isEnabled):
199         (WebCore::InspectorDOMStorageAgent::enable):
200         (WebCore::InspectorDOMStorageAgent::disable):
201         (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
202         (WebCore::toErrorString):
203         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
204         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
205         (WebCore::InspectorDOMStorageAgent::storageId):
206         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
207         (WebCore::InspectorDOMStorageAgent::findStorageArea):
208         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
209         * inspector/InspectorDOMStorageAgent.h:
210         (WebCore):
211         (WebCore::InspectorDOMStorageAgent::create):
212         (InspectorDOMStorageAgent):
213         * inspector/InspectorDOMStorageResource.cpp: Removed.
214         * inspector/InspectorDOMStorageResource.h: Removed.
215         * inspector/InspectorInstrumentation.cpp:
216         (WebCore):
217         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
218         * inspector/InspectorInstrumentation.h:
219         (InspectorInstrumentation):
220         * inspector/InspectorPageAgent.cpp:
221         (WebCore::InspectorPageAgent::findFrameWithSecurityOrigin):
222         (WebCore):
223         * inspector/InspectorPageAgent.h:
224         (InspectorPageAgent):
225         * inspector/front-end/DOMStorage.js:
226         (WebInspector.DOMStorage):
227         (WebInspector.DOMStorage.storageId):
228         (WebInspector.DOMStorage.prototype.get id):
229         (WebInspector.DOMStorage.prototype.get securityOrigin):
230         (WebInspector.DOMStorage.prototype.getItems):
231         (WebInspector.DOMStorage.prototype.setItem):
232         (WebInspector.DOMStorage.prototype.removeItem):
233         (WebInspector.DOMStorageModel):
234         (WebInspector.DOMStorageModel.prototype._securityOriginAdded):
235         (WebInspector.DOMStorageModel.prototype._securityOriginRemoved):
236         (WebInspector.DOMStorageModel.prototype._storageKey):
237         (WebInspector.DOMStorageModel.prototype._domStorageItemsCleared):
238         (WebInspector.DOMStorageModel.prototype._domStorageItemRemoved):
239         (WebInspector.DOMStorageModel.prototype._domStorageItemAdded):
240         (WebInspector.DOMStorageModel.prototype.storageForId):
241         (WebInspector.DOMStorageModel.prototype.storages):
242         * inspector/front-end/DOMStorageItemsView.js:
243         (WebInspector.DOMStorageItemsView.prototype._update):
244         (WebInspector.DOMStorageItemsView.prototype._showDOMStorageItems):
245         (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageItems):
246         * inspector/front-end/ResourcesPanel.js:
247         (WebInspector.ResourcesPanel):
248         (WebInspector.ResourcesPanel.prototype._initialize):
249         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
250         (WebInspector.ResourcesPanel.prototype._domStorageRemoved):
251         (WebInspector.ResourcesPanel.prototype._populateDOMStorageTree):
252         (WebInspector.DOMStorageTreeElement):
253         (WebInspector.DOMStorageTreeElement.prototype.get itemURL):
254         * page/DOMWindow.cpp:
255         (WebCore::DOMWindow::sessionStorage):
256         (WebCore::DOMWindow::localStorage):
257
258 2013-02-19  Eugene Klyuchnikov  <eustas@chromium.org>
259
260         Web Inspector: [Console] Add console API message types for profile/profileEnd.
261         https://bugs.webkit.org/show_bug.cgi?id=109790
262
263         Reviewed by Pavel Feldman.
264
265         With profile/profileEnd message types we will gain more control over
266         output messages.
267
268         * English.lproj/localizedStrings.js: Added corresponging strings.
269         * inspector/ConsoleAPITypes.h: Added enum members.
270         * inspector/Inspector.json: Ditto.
271         * inspector/front-end/ConsoleModel.js: Ditto.
272         * inspector/ConsoleMessage.cpp:
273         (WebCore::messageTypeValue): Added cases.
274         * inspector/InspectorProfilerAgent.cpp: Adopted changes.
275         * inspector/front-end/inspector.js: Ditto.
276         * inspector/front-end/ConsoleMessage.js:
277         Added message generators for introduced message types.
278         * inspector/front-end/ProfilesPanel.js:
279         Turned showProfileForURL(url) to showProfile(typeId, uid).
280         * inspector/front-end/ProfilesPanelDescriptor.js:
281         (WebInspector.ProfilesPanelDescriptor.resolveProfileTitle): Added.
282         * inspector/front-end/ResourceUtils.js: Removed linkifier plugins.
283
284 2013-02-21  Tamas Czene  <tczene@inf.u-szeged.hu>
285
286         OpenCL implementation of FEMerge filter.
287         https://bugs.webkit.org/show_bug.cgi?id=110193
288
289         Reviewed by Zoltan Herczeg.
290
291         In case of odd number of parameters the first parameter is copied to the destination image and
292         the rest of the parameters are merged in pairs.
293
294         * Target.pri:
295         * platform/graphics/filters/FEMerge.h:
296         (FEMerge):
297         * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
298         (WebCore::FilterContextOpenCL::FilterContextOpenCL):
299         (FilterContextOpenCL):
300         * platform/graphics/gpu/opencl/OpenCLFEMerge.cpp: Added.
301         (WebCore):
302         (WebCore::FilterContextOpenCL::compileFEMerge):
303         (WebCore::FilterContextOpenCL::copy): This is a simple copy method.
304         (WebCore::FilterContextOpenCL::applyFEMerge):
305         (WebCore::FEMerge::platformApplyOpenCL):
306
307 2013-02-21  Keishi Hattori  <keishi@webkit.org>
308
309         Add event dispatch class for the new calendar picker
310         https://bugs.webkit.org/show_bug.cgi?id=110131
311
312         Reviewed by Kent Tamura.
313
314         Adding event dispatcher class as part of the new calendar picker patch at Bug 109439.
315
316         No new tests. Code is not yet used.
317
318         * Resources/pagepopups/calendarPicker.js:
319         (EventEmitter):
320         (EventEmitter.prototype.on): Adds a callback for an event.
321         (EventEmitter.prototype.hasListener): Returns true if more than one listeners exist for an event type.
322         (EventEmitter.prototype.removeListener): Removes an event listener.
323         (EventEmitter.prototype.dispatchEvent): Dispatches an event to all callbacks. Takes variable number of arguments.
324
325 2013-02-21  Ken Kania  <kkania@chromium.org>
326
327         Web Inspector: Add command for selecting files for file input element
328         https://bugs.webkit.org/show_bug.cgi?id=109308
329
330         Reviewed by Pavel Feldman.
331
332         Test: inspector-protocol/dom/setFileInputFiles.html
333
334         * inspector/Inspector.json:
335         * inspector/InspectorClient.h:
336         (WebCore::InspectorClient::canSetFileInputFiles):
337         (InspectorClient):
338         * inspector/InspectorController.cpp:
339         (WebCore::InspectorController::InspectorController):
340         * inspector/InspectorDOMAgent.cpp:
341         (WebCore::InspectorDOMAgent::InspectorDOMAgent):
342         (WebCore::InspectorDOMAgent::setFileInputFiles):
343         (WebCore):
344         * inspector/InspectorDOMAgent.h:
345         (WebCore):
346         (WebCore::InspectorDOMAgent::create):
347         (InspectorDOMAgent):
348
349 2013-02-21  Pan Deng  <pan.deng@intel.com>
350
351         [Web Inspector]Add WebSocket networking events in Timeline panel.
352         https://bugs.webkit.org/show_bug.cgi?id=105527.
353
354         Reviewed by Pavel Feldman.
355
356         This patch add four WebSocket networking events in Timeline panel. The Events
357         are CreateWebSocket, SendWebSocketHandshakeRequest, ReceiveWebSocketHandShakeResponse
358         and DestoryWebSocket. Thanks to Kitamura san's previous work.
359
360         Test: http/tests/inspector/websocket/timeline-websocket-event.html
361
362         * English.lproj/localizedStrings.js:
363         * Modules/websockets/WebSocketChannel.cpp: Add protocol information
364         (WebCore::WebSocketChannel::connect):
365         * inspector/InspectorInstrumentation.cpp:
366         (WebCore):
367         (WebCore::InspectorInstrumentation::didCreateWebSocketImpl): Add Timeline agent instrumentation for websocket
368         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl): Ditto
369         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl): Ditto
370         (WebCore::InspectorInstrumentation::didCloseWebSocketImpl): Ditto
371         * inspector/InspectorInstrumentation.h:
372         (InspectorInstrumentation):
373         (WebCore::InspectorInstrumentation::didCreateWebSocket):
374         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
375         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
376         (WebCore::InspectorInstrumentation::didCloseWebSocket):
377         * inspector/InspectorTimelineAgent.cpp:
378         (TimelineRecordType):
379         (WebCore):
380         (WebCore::InspectorTimelineAgent::didCreateWebSocket): Add Timeline record for websocket create
381         (WebCore::InspectorTimelineAgent::addWebSocketRecord): Add general websocket record
382         (WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest): Add Timeline record for websocket handshake request send
383         (WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse): Add Timeline record for websocket handshake response receive
384         (WebCore::InspectorTimelineAgent::didDestroyWebSocket): Add Timeline record for websocket destroy
385         * inspector/InspectorTimelineAgent.h:
386         (WebCore):
387         (InspectorTimelineAgent):
388         * inspector/TimelineRecordFactory.h:
389         (TimelineRecordFactory):
390         (WebCore::TimelineRecordFactory::createWebSocketCreateData):
391         (WebCore::TimelineRecordFactory::createGenericWebSocketData):
392         * inspector/front-end/TimelineModel.js: Add Timeline record type for websocket
393         * inspector/front-end/TimelinePresentationModel.js:
394         (WebInspector.TimelinePresentationModel._initRecordStyles):
395         (WebInspector.TimelinePresentationModel.prototype.reset): Add slot to store WebSocket Create record
396         (WebInspector.TimelinePresentationModel.Record):
397         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview): Add PopupContent for websocket record, including url and protocol
398
399 2013-02-21  Oswald Buddenhagen  <oswald.buddenhagen@digia.com>
400
401         [Qt] Fix pkg-config dependencies of QtWebKit itself
402
403         Reviewed by Simon Hausmann.
404
405         Don't override QMAKE_PKGCONFIG_REQUIRES needlessly.
406
407         * WebCore.pri:
408
409 2013-02-21  Nils Barth  <nbarth@google.com>
410
411         File upload control doesn't apply CSS vertical padding or border to file name
412         https://bugs.webkit.org/show_bug.cgi?id=109011
413
414         Reviewed by Hajime Morrita.
415
416         Test: fast/forms/file/file-vertical-padding-border.html
417
418         * rendering/RenderFileUploadControl.cpp:
419             Add borderTop() and paddingTop() when computing position.
420         (WebCore::RenderFileUploadControl::paintObject):
421
422 2013-02-20  Alexey Proskuryakov  <ap@apple.com>
423
424         Stop hardcoding knowledge about blob protocol in ResourceHandle
425         https://bugs.webkit.org/show_bug.cgi?id=110382
426
427         Reviewed by Anders Carlsson.
428
429         * platform/network/BlobRegistry.h:
430         * platform/network/chromium/BlobRegistryProxy.h:
431         Removed loadResourceSynchronously(). Chromium did not even implement it, and
432         cross-platform code doesn't need it any more either.
433
434         * platform/network/BlobRegistryImpl.cpp:
435         (WebCore::loadResourceSynchronously): A function to load a blob synchronously,
436         suitable for being in a ResourceHandle map.
437         (WebCore::registerBlobResourceHandleConstructor): Register loadResourceSynchronously too.
438         (WebCore::BlobRegistryImpl::createResourceHandle): Don't make policy decisions here,
439         it's just a registry. Moved code for checking request method down to BlobResourceHandle.
440
441         * platform/network/BlobRegistryImpl.h: Removed BlobRegistryImpl::loadResourceSynchronously().
442         A registry shouldn't load resources, and it already has enough accessors to implement
443         this externally.
444
445         * platform/network/BlobResourceHandle.h:
446         * platform/network/BlobResourceHandle.cpp:
447         (WebCore::BlobResourceHandle::createAsync): Renamed from create(), to make it clear
448         that it's not OK to call from synchronous loader. Moved method check here.
449         (WebCore::BlobResourceHandle::loadResourceSynchronously): Moved method check here.
450         We used to fall through to NSURLConnection based loader when method was not GET,
451         which of course resulted in an error eventually, but was just wrong.
452
453         * platform/network/ResourceHandle.cpp:
454         (WebCore::builtinResourceHandleSynchronousLoaderMap): Added a map for synchronous case.
455         (WebCore::ResourceHandle::registerBuiltinSynchronousLoader): Ditto.
456         (WebCore::ResourceHandle::loadResourceSynchronously): We no longer need to hardcode
457         knowledge about blobRegistry and blobs here.
458
459         * platform/network/ResourceHandle.h: Added registerBuiltinSynchronousLoader().
460
461         * platform/network/chromium/ResourceHandle.h: Removed loadResourceSynchronously(),
462         which was not implemented for Chromium.
463
464 2013-02-20  Vsevolod Vlasov  <vsevik@chromium.org>
465
466         Web Inspector: TabbedEditorContainer and OpenResourceDialog should show uiSourceCode path and name instead of parsedURL
467         https://bugs.webkit.org/show_bug.cgi?id=110334
468
469         Reviewed by Alexander Pavlov.
470
471         Introduced uiSourceCode.name() that returns a name based on uiSourceCode path.
472         OpenResourceDialog now shows uiSourceCode workspace path as a subtitle.
473         TabbedEditorContainer now shows uiSourceCode name in the tab header.
474
475         * inspector/front-end/FilteredItemSelectionDialog.js:
476         (WebInspector.OpenResourceDialog.filterOutEmptyURLs):
477         (WebInspector.OpenResourceDialog):
478         (WebInspector.OpenResourceDialog.prototype.itemTitleAt):
479         (WebInspector.OpenResourceDialog.prototype.itemSubtitleAt):
480         (WebInspector.OpenResourceDialog.prototype.itemKeyAt):
481         * inspector/front-end/NavigatorView.js:
482         (WebInspector.NavigatorView.prototype._updateScriptTitle):
483         * inspector/front-end/TabbedEditorContainer.js:
484         (WebInspector.TabbedEditorContainer.prototype._titleForFile):
485         * inspector/front-end/UISourceCode.js:
486         (WebInspector.UISourceCode.prototype.name):
487
488 2013-02-20  Pavel Feldman  <pfeldman@chromium.org>
489
490         Web Inspector: debugger buttons are scrolled along with the sidebar content.
491         https://bugs.webkit.org/show_bug.cgi?id=110434
492
493         Reviewed by Vsevolod Vlasov.
494
495         * inspector/front-end/scriptsPanel.css:
496         (div.sidebar-pane-stack#scripts-debug-sidebar-contents, #scripts-sidebar-stack-pane):
497
498 2013-02-20  Wei James  <james.wei@intel.com>
499
500         ChannelMergerNode may need check for deferred updating of output channels
501         https://bugs.webkit.org/show_bug.cgi?id=108863
502
503         There can in rare cases be a slight delay before the output bus is updated
504         to the new number of channels because of tryLocks() in the context's
505         updating system. So need to check the channel number before processing.
506
507         Reviewed by Chris Rogers.
508
509         * Modules/webaudio/ChannelMergerNode.cpp:
510         (WebCore::ChannelMergerNode::ChannelMergerNode):
511         (WebCore::ChannelMergerNode::process):
512         (WebCore::ChannelMergerNode::checkNumberOfChannelsForInput):
513         * Modules/webaudio/ChannelMergerNode.h:
514         (ChannelMergerNode):
515
516 2013-02-20  Pan Deng  <pan.deng@intel.com>
517
518         [Web Inspector] Fix Sort by Initiator functionality of Network Panel.
519         https://bugs.webkit.org/show_bug.cgi?id=109135.
520
521         Reviewed by Pavel Feldman.
522
523         A refactor for request initiator types, and the sort by Initiator functionality 
524         was changed to sort by url and line number that displayed in initiator cell.
525
526         No new tests.
527
528         * inspector/front-end/NetworkPanel.js:
529         (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell): save initiator displayedURL and displayedLineNumber
530         (WebInspector.NetworkDataGridNode.InitiatorComparator):
531         * inspector/front-end/NetworkRequest.js:
532
533 2013-02-20  Eric Seidel  <eric@webkit.org>
534
535         WebVTTParser copies character buffer more often than necessary
536         https://bugs.webkit.org/show_bug.cgi?id=103319
537
538         Reviewed by Eric Carlson.
539
540         Previously this codepath was creating a String just to parse the timestamp
541         and then if the timestamp was valid, was creating a second string.
542         I've fixed it to only create one string and use it in both places.
543         I also fixed this codepath to use 8bit strings when possible, per the FIXME.
544
545         * html/track/WebVTTParser.cpp:
546         (WebCore::WebVTTParser::constructTreeFromToken):
547
548 2013-02-20  Mike West  <mkwst@chromium.org>
549
550         Mouseup event does not fire on Scroll Bar
551         https://bugs.webkit.org/show_bug.cgi?id=25811
552
553         Reviewed by Tony Chang.
554
555         Currently, clicking on a scrollbar fires a mousedown event, but not a
556         mouseup event. This causes problems for code like jQuery UI's
557         draggable[1], as the drag starts, but is never cancelled. Other use
558         cases are noted in the slightly old Chromium bug[2].
559
560         If a mouseup event is received after a mousedown event on a scrollbar,
561         this patch dispatches a mouseup event on the same node the mousedown
562         event dispatched on. This matches Gecko's behavior.
563
564         [1]: http://bugs.jqueryui.com/ticket/6925
565         [2]: http://crbug.com/14204
566
567         Tests: fast/scrolling/scrollbar-mousedown-mouseup.html
568                fast/scrolling/scrollbar-mousedown-move-mouseup.html
569
570         * page/EventHandler.cpp:
571         (WebCore::EventHandler::handleMouseReleaseEvent):
572             If a mouseup event follow a mousedown event on a scrollbar,
573             dispatch an event on the same node from which the mousedown event
574             was triggered.
575
576 2013-02-20  Takashi Sakamoto  <tasak@google.com>
577
578         [Refactoring] Make m_state an on-stack object
579         https://bugs.webkit.org/show_bug.cgi?id=109909
580
581         Reviewed by Antti Koivisto.
582
583         Mode m_state, an instance of StyleResolver::State, an on-stack object.
584         The state is only required in styleForElement, styleForKeyframe and
585         so on. No need to keep the state outside of those methods.
586
587         No new tests, because just refactoring.
588
589         * css/BasicShapeFunctions.cpp:
590         (WebCore::convertToLength):
591         (WebCore::basicShapeForValue):
592         * css/BasicShapeFunctions.h:
593         (WebCore):
594         Replaced StyleResolver* with StyleResolver::State&.
595         * css/CSSGradientValue.cpp:
596         (WebCore::CSSGradientValue::gradientWithStylesResolved):
597         * css/CSSGradientValue.h:
598         (CSSGradientValue):
599         Replaced StyleResolver* with StyleResolver::State&.
600         * css/CSSToStyleMap.cpp:
601         (WebCore::CSSToStyleMap::style):
602         (WebCore::CSSToStyleMap::rootElementStyle):
603         (WebCore::CSSToStyleMap::useSVGZoomRules):
604         (WebCore::CSSToStyleMap::styleImage):
605         * css/CSSToStyleMap.h:
606         (WebCore):
607         (WebCore::CSSToStyleMap::CSSToStyleMap):
608         (CSSToStyleMap):
609         Replaced StyleResolver* with StyleResolver::State&.
610         * css/SVGCSSStyleSelector.cpp:
611         (WebCore::StyleResolver::applySVGProperty):
612         Replaced m_state with state which is given as an argument of
613         applySVGProperty.
614         * css/StyleBuilder.cpp:
615         (WebCore::ApplyPropertyExpanding::applyInheritValue):
616         (WebCore::ApplyPropertyExpanding::applyInitialValue):
617         (WebCore::ApplyPropertyExpanding::applyValue):
618         (WebCore::ApplyPropertyDefaultBase::applyInheritValue):
619         (WebCore::ApplyPropertyDefaultBase::applyInitialValue):
620         (WebCore::ApplyPropertyDefaultBase::applyValue):
621         (WebCore::ApplyPropertyDefault::applyValue):
622         (WebCore::ApplyPropertyNumber::applyValue):
623         (WebCore::ApplyPropertyStyleImage::applyValue):
624         (WebCore::ApplyPropertyAuto::applyInheritValue):
625         (WebCore::ApplyPropertyAuto::applyInitialValue):
626         (WebCore::ApplyPropertyAuto::applyValue):
627         (WebCore::ApplyPropertyClip::convertToLength):
628         (WebCore::ApplyPropertyClip::applyInheritValue):
629         (WebCore::ApplyPropertyClip::applyInitialValue):
630         (WebCore::ApplyPropertyClip::applyValue):
631         (WebCore::ApplyPropertyColor::applyInheritValue):
632         (WebCore::ApplyPropertyColor::applyInitialValue):
633         (WebCore::ApplyPropertyColor::applyValue):
634         (WebCore::ApplyPropertyColor::applyColorValue):
635         (WebCore::ApplyPropertyDirection::applyValue):
636         (WebCore::ApplyPropertyLength::applyValue):
637         (WebCore::ApplyPropertyString::applyValue):
638         (WebCore::ApplyPropertyBorderRadius::applyValue):
639         (WebCore::ApplyPropertyFillLayer::applyInheritValue):
640         (WebCore::ApplyPropertyFillLayer::applyInitialValue):
641         (WebCore::ApplyPropertyFillLayer::applyValue):
642         (WebCore::ApplyPropertyComputeLength::applyValue):
643         (WebCore::ApplyPropertyFont::applyInheritValue):
644         (WebCore::ApplyPropertyFont::applyInitialValue):
645         (WebCore::ApplyPropertyFont::applyValue):
646         (WebCore::ApplyPropertyFontSize::applyInheritValue):
647         (WebCore::ApplyPropertyFontSize::applyInitialValue):
648         (WebCore::ApplyPropertyFontSize::applyValue):
649         (WebCore::ApplyPropertyFontWeight::applyValue):
650         (WebCore::ApplyPropertyFontVariantLigatures::applyInheritValue):
651         (WebCore::ApplyPropertyFontVariantLigatures::applyInitialValue):
652         (WebCore::ApplyPropertyFontVariantLigatures::applyValue):
653         (WebCore::ApplyPropertyBorderImage::applyValue):
654         (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue):
655         (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
656         (WebCore::ApplyPropertyBorderImageModifier::applyValue):
657         (WebCore::ApplyPropertyBorderImageSource::applyValue):
658         (WebCore::ApplyPropertyCounter::emptyFunction):
659         (WebCore::ApplyPropertyCounter::applyInheritValue):
660         (WebCore::ApplyPropertyCounter::applyValue):
661         (WebCore::ApplyPropertyCursor::applyInheritValue):
662         (WebCore::ApplyPropertyCursor::applyInitialValue):
663         (WebCore::ApplyPropertyCursor::applyValue):
664         (WebCore::ApplyPropertyTextAlign::applyValue):
665         (WebCore::ApplyPropertyTextDecoration::applyValue):
666         (WebCore::ApplyPropertyLineHeight::applyValue):
667         (WebCore::ApplyPropertyPageSize::applyInheritValue):
668         (WebCore::ApplyPropertyPageSize::applyInitialValue):
669         (WebCore::ApplyPropertyPageSize::applyValue):
670         (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue):
671         (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue):
672         (WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
673         (WebCore::ApplyPropertyAnimation::map):
674         (WebCore::ApplyPropertyAnimation::applyInheritValue):
675         (WebCore::ApplyPropertyAnimation::applyInitialValue):
676         (WebCore::ApplyPropertyAnimation::applyValue):
677         (WebCore::ApplyPropertyOutlineStyle::applyInheritValue):
678         (WebCore::ApplyPropertyOutlineStyle::applyInitialValue):
679         (WebCore::ApplyPropertyOutlineStyle::applyValue):
680         (WebCore::ApplyPropertyResize::applyValue):
681         (WebCore::ApplyPropertyVerticalAlign::applyValue):
682         (WebCore::ApplyPropertyAspectRatio::applyInheritValue):
683         (WebCore::ApplyPropertyAspectRatio::applyInitialValue):
684         (WebCore::ApplyPropertyAspectRatio::applyValue):
685         (WebCore::ApplyPropertyZoom::resetEffectiveZoom):
686         (WebCore::ApplyPropertyZoom::applyInheritValue):
687         (WebCore::ApplyPropertyZoom::applyInitialValue):
688         (WebCore::ApplyPropertyZoom::applyValue):
689         (WebCore::ApplyPropertyDisplay::isValidDisplayValue):
690         (WebCore::ApplyPropertyDisplay::applyInheritValue):
691         (WebCore::ApplyPropertyDisplay::applyInitialValue):
692         (WebCore::ApplyPropertyDisplay::applyValue):
693         (WebCore::ApplyPropertyClipPath::applyValue):
694         (WebCore::ApplyPropertyExclusionShape::applyValue):
695         (WebCore::ApplyPropertyImageResolution::applyInheritValue):
696         (WebCore::ApplyPropertyImageResolution::applyInitialValue):
697         (WebCore::ApplyPropertyImageResolution::applyValue):
698         * css/StyleBuilder.h:
699         (WebCore):
700         (PropertyHandler):
701         (WebCore::PropertyHandler::applyInheritValue):
702         (WebCore::PropertyHandler::applyInitialValue):
703         (WebCore::PropertyHandler::applyValue):
704         Replaced StyleResolver* with StyleResolver::State&.
705         * css/StyleResolver.cpp:
706         (WebCore):
707         (WebCore::StyleResolver::StyleResolver):
708         Removed m_styleMap. Now m_styleMap is an on-stack object.
709         (WebCore::StyleResolver::collectMatchingRules):
710         (WebCore::StyleResolver::collectMatchingRulesForRegion):
711         (WebCore::StyleResolver::sortAndTransferMatchedRules):
712         (WebCore::StyleResolver::matchScopedAuthorRules):
713         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
714         (WebCore::StyleResolver::matchHostRules):
715         (WebCore::StyleResolver::matchAuthorRules):
716         (WebCore::StyleResolver::matchUserRules):
717         (WebCore::StyleResolver::matchUARules):
718         (WebCore::StyleResolver::collectMatchingRulesForList):
719         (WebCore::StyleResolver::sortMatchedRules):
720         (WebCore::StyleResolver::matchAllRules):
721         (WebCore::StyleResolver::initElement):
722         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
723         (WebCore::StyleResolver::canShareStyleWithControl):
724         (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
725         (WebCore::StyleResolver::canShareStyleWithElement):
726         (WebCore::StyleResolver::findSiblingForStyleSharing):
727         (WebCore::StyleResolver::locateSharedStyle):
728         (WebCore::StyleResolver::styleForElement):
729         (WebCore::StyleResolver::styleForKeyframe):
730         (WebCore::StyleResolver::keyframeStylesForAnimation):
731         (WebCore::StyleResolver::pseudoStyleForElement):
732         (WebCore::StyleResolver::styleForPage):
733         (WebCore::StyleResolver::defaultStyleForElement):
734         (WebCore::StyleResolver::adjustRenderStyle):
735         (WebCore::StyleResolver::updateFont):
736         (WebCore::StyleResolver::pseudoStyleRulesForElement):
737         (WebCore::StyleResolver::ruleMatches):
738         (WebCore::StyleResolver::checkRegionSelector):
739         (WebCore::StyleResolver::applyProperties):
740         (WebCore::StyleResolver::applyMatchedProperties):
741         (WebCore::StyleResolver::isLeftPage):
742         (WebCore::StyleResolver::applyPropertyWithNullCheck):
743         (WebCore::StyleResolver::applyFontPropertyToStyle):
744         (WebCore::StyleResolver::resolveVariables):
745         (WebCore::StyleResolver::applyProperty):
746         (WebCore::StyleResolver::styleImage):
747         (WebCore::StyleResolver::cachedOrPendingFromValue):
748         (WebCore::StyleResolver::generatedOrPendingFromValue):
749         (WebCore::StyleResolver::setOrPendingFromValue):
750         (WebCore::StyleResolver::cursorOrPendingFromValue):
751         (WebCore::StyleResolver::checkForTextSizeAdjust):
752         (WebCore::StyleResolver::checkForZoomChange):
753         (WebCore::StyleResolver::checkForGenericFamilyChange):
754         (WebCore::StyleResolver::initializeFontStyle):
755         (WebCore::StyleResolver::setFontSize):
756         (WebCore::StyleResolver::colorFromPrimitiveValue):
757         (WebCore::StyleResolver::loadPendingSVGDocuments):
758         (WebCore::StyleResolver::styleShader):
759         (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
760         (WebCore::StyleResolver::loadPendingShaders):
761         (WebCore::StyleResolver::parseCustomFilterTransformParameter):
762         (WebCore::StyleResolver::parseCustomFilterParameter):
763         (WebCore::StyleResolver::parseCustomFilterParameterList):
764         (WebCore::StyleResolver::createCustomFilterOperationWithInlineSyntax):
765         (WebCore::StyleResolver::createCustomFilterOperation):
766         (WebCore::StyleResolver::createFilterOperations):
767         (WebCore::StyleResolver::loadPendingImage):
768         (WebCore::StyleResolver::loadPendingImages):
769         (WebCore::StyleResolver::loadPendingResources):
770         Just replaced m_state with state and added one more parameter to
771         provide the state.
772         (WebCore::StyleResolver::reportMemoryUsage):
773         Since m_state was removed, removed a code for reporting m_state's
774         memory usage.
775         * css/StyleResolver.h:
776         (StyleResolver):
777         (WebCore::StyleResolver::isRightPage):
778         (WebCore::StyleResolver::State::State):
779         (WebCore::StyleResolver::State::document):
780         Since State::m_element is not always available (sometimes, 0),
781         added m_document to State and modified to return the m_document.
782         (WebCore::StyleResolver::State::useSVGZoomRules):
783         Moved StyleResolver to State.
784         (State):
785         * html/canvas/CanvasRenderingContext2D.cpp:
786         (WebCore::CanvasRenderingContext2D::setFont):
787         Moved the code, updating a style by using a given StylePropertySet,
788         to StyleResolver.
789
790 2013-02-20  Ojan Vafai  <ojan@chromium.org>
791
792         AutoTableLayout applies min-width redundantly with RenderTable
793         https://bugs.webkit.org/show_bug.cgi?id=110426
794
795         Reviewed by Emil A Eklund.
796
797         * rendering/AutoTableLayout.cpp:
798         (WebCore::AutoTableLayout::computePreferredLogicalWidths):
799         This code used to do something, but has since been superceded by
800         code in RenderTable::computePreferredLogicalWidths.
801
802 2013-02-20  Dirk Schulze  <krit@webkit.org>
803
804         Enable CANVAS_PATH flag
805         https://bugs.webkit.org/show_bug.cgi?id=108508
806
807         Uneviewed attempt to fix Qt minimal build.
808
809         * html/canvas/DOMPath.h:
810         (WebCore::DOMPath::DOMPath):
811
812 \2013-02-20  Mark Lam  <mark.lam@apple.com>
813
814         Rename DatabaseBackendAsync to DatabaseBackend.
815         https://bugs.webkit.org/show_bug.cgi?id=110422.
816
817         Reviewed by Geoffrey Garen.
818
819         This is a purely cosmetic change to make the naming consistent with
820         the front-end Database.
821
822         No new tests.
823
824         * CMakeLists.txt:
825         * GNUmakefile.list.am:
826         * Modules/webdatabase/ChangeVersionWrapper.cpp:
827         (WebCore::ChangeVersionWrapper::performPreflight):
828         (WebCore::ChangeVersionWrapper::performPostflight):
829         * Modules/webdatabase/Database.cpp:
830         (WebCore::Database::Database):
831         (WebCore::Database::from):
832         (WebCore::Database::backend):
833         * Modules/webdatabase/Database.h:
834         * Modules/webdatabase/DatabaseBackend.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.cpp.
835         (WebCore::DatabaseBackend::DatabaseBackend):
836         (WebCore::DatabaseBackend::openAndVerifyVersion):
837         (WebCore::DatabaseBackend::performOpenAndVerify):
838         (WebCore::DatabaseBackend::close):
839         (WebCore::DatabaseBackend::runTransaction):
840         (WebCore::DatabaseBackend::inProgressTransactionCompleted):
841         (WebCore::DatabaseBackend::scheduleTransaction):
842         (WebCore::DatabaseBackend::scheduleTransactionStep):
843         (WebCore::DatabaseBackend::transactionClient):
844         (WebCore::DatabaseBackend::transactionCoordinator):
845         * Modules/webdatabase/DatabaseBackend.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackendAsync.h.
846         * Modules/webdatabase/DatabaseBackendAsync.cpp: Removed.
847         * Modules/webdatabase/DatabaseBackendAsync.h: Removed.
848         * Modules/webdatabase/DatabaseBackendBase.cpp:
849         (WebCore::DatabaseBackendBase::~DatabaseBackendBase):
850         * Modules/webdatabase/DatabaseManager.cpp:
851         * Modules/webdatabase/DatabaseServer.cpp:
852         * Modules/webdatabase/DatabaseTask.cpp:
853         (WebCore::DatabaseTask::DatabaseTask):
854         (WebCore::DatabaseBackend::DatabaseOpenTask::DatabaseOpenTask):
855         (WebCore::DatabaseBackend::DatabaseOpenTask::doPerformTask):
856         (WebCore::DatabaseBackend::DatabaseOpenTask::debugTaskName):
857         (WebCore::DatabaseBackend::DatabaseCloseTask::DatabaseCloseTask):
858         (WebCore::DatabaseBackend::DatabaseCloseTask::doPerformTask):
859         (WebCore::DatabaseBackend::DatabaseCloseTask::debugTaskName):
860         (WebCore::DatabaseBackend::DatabaseTransactionTask::DatabaseTransactionTask):
861         (WebCore::DatabaseBackend::DatabaseTransactionTask::~DatabaseTransactionTask):
862         (WebCore::DatabaseBackend::DatabaseTransactionTask::doPerformTask):
863         (WebCore::DatabaseBackend::DatabaseTransactionTask::debugTaskName):
864         (WebCore::DatabaseBackend::DatabaseTableNamesTask::DatabaseTableNamesTask):
865         (WebCore::DatabaseBackend::DatabaseTableNamesTask::doPerformTask):
866         (WebCore::DatabaseBackend::DatabaseTableNamesTask::debugTaskName):
867         * Modules/webdatabase/DatabaseTask.h:
868         (WebCore::DatabaseTask::database):
869         (DatabaseTask):
870         (WebCore::DatabaseBackend::DatabaseOpenTask::create):
871         (DatabaseBackend::DatabaseOpenTask):
872         (WebCore::DatabaseBackend::DatabaseCloseTask::create):
873         (DatabaseBackend::DatabaseCloseTask):
874         (WebCore::DatabaseBackend::DatabaseTableNamesTask::create):
875         (DatabaseBackend::DatabaseTableNamesTask):
876         * Modules/webdatabase/DatabaseThread.cpp:
877         (WebCore::DatabaseThread::recordDatabaseOpen):
878         (WebCore::DatabaseThread::recordDatabaseClosed):
879         (WebCore::SameDatabasePredicate::SameDatabasePredicate):
880         (SameDatabasePredicate):
881         (WebCore::DatabaseThread::unscheduleDatabaseTasks):
882         * Modules/webdatabase/DatabaseThread.h:
883         * Modules/webdatabase/SQLStatementBackend.cpp:
884         (WebCore::SQLStatementBackend::execute):
885         (WebCore::SQLStatementBackend::setDatabaseDeletedError):
886         (WebCore::SQLStatementBackend::setVersionMismatchedError):
887         (WebCore::SQLStatementBackend::setFailureDueToQuota):
888         * Modules/webdatabase/SQLStatementBackend.h:
889         * Modules/webdatabase/SQLTransactionBackend.cpp:
890         (WebCore::SQLTransactionBackend::create):
891         (WebCore::SQLTransactionBackend::SQLTransactionBackend):
892         * Modules/webdatabase/SQLTransactionBackend.h:
893         (WebCore::SQLTransactionBackend::database):
894         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
895         (WebCore::getDatabaseIdentifier):
896         * Target.pri:
897         * WebCore.gypi:
898         * WebCore.vcproj/WebCore.vcproj:
899         * WebCore.vcxproj/WebCore.vcxproj:
900         * WebCore.vcxproj/WebCore.vcxproj.filters:
901         * WebCore.xcodeproj/project.pbxproj:
902
903 2013-02-20  David Kilzer  <ddkilzer@apple.com>
904
905         Upstream SharedTimerIOS.mm
906         <http://webkit.org/b/110161>
907
908         Reviewed by Benjamin Poulain.
909
910         * Configurations/WebCore.xcconfig:
911         (EXCLUDED_SOURCE_FILE_NAMES_iphoneos): Add SharedTimerMac.mm.
912         * WebCore.xcodeproj/project.pbxproj: Add SharedTimerIOS.mm.
913         * platform/ios/SharedTimerIOS.mm: Add.
914         (WebCore):
915         (-[WebCoreResumeNotifierIOS init]):
916         (-[WebCoreResumeNotifierIOS dealloc]):
917         (-[WebCoreResumeNotifierIOS didWake]):
918         (WebCore::setSharedTimerFiredFunction):
919         (WebCore::timerFired):
920         (WebCore::setSharedTimerFireInterval):
921         (WebCore::stopSharedTimer):
922
923 2013-02-20  Ojan Vafai  <ojan@chromium.org>
924
925         Speculative fix for EFL and Windows compilers not realizing
926         that all possible cases have a return value from this switch.
927
928         * rendering/RenderBox.cpp:
929         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
930
931 2013-02-20  David Hyatt  <hyatt@apple.com>
932
933         [New Multicolumn] Fix overflow computation for column blocks.
934         https://bugs.webkit.org/show_bug.cgi?id=110392.
935
936         Reviewed by Simon Fraser.
937
938         * rendering/RenderBox.cpp:
939         (WebCore::RenderBox::addOverflowFromChild):
940         Exclude in-flow RenderFlowThreads from overflow propagation.
941
942         * rendering/RenderMultiColumnSet.h:
943         * rendering/RenderRegion.h:
944         (WebCore::RenderRegion::shouldHaveAutoLogicalHeight):
945          * rendering/RenderRegionSet.h:
946         (RenderRegionSet):
947         Override shouldHaveAutoLogicalHeight to always be false
948         for region sets and for columns. Eventually we're going to try
949         to leverage this code to do column balancing, and that's why
950         RenderMultiColumnSet has a unique override.
951
952 2013-02-20  Brandon Jones  <bajones@google.com>
953  
954         Printing WebGL canvases in Chrome uses stale data after first print
955         https://bugs.webkit.org/show_bug.cgi?id=110003
956  
957         Reviewed by Kenneth Russell.
958  
959         Unable to validate printed content automatically. No regression in existing WebGL tests.
960  
961          * html/canvas/WebGLRenderingContext.cpp:
962          (WebCore):
963          (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
964
965 2013-02-20  Christian Biesinger  <cbiesinger@chromium.org>
966
967         Incorrect rendering for flex boxes with percentage height in a table cell
968         https://bugs.webkit.org/show_bug.cgi?id=110389
969
970         Reviewed by Tony Chang.
971
972         Tests: css3/flexbox/flex-percentage-height-in-table-standards-mode.html
973                css3/flexbox/flex-percentage-height-in-table.html
974
975         * rendering/RenderFlexibleBox.cpp:
976         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
977         Always update the logical height of the flex box, not just when it is
978         auto. If necessary, the later updateLogicalHeight() call will adjust
979         it.
980
981 2013-02-20  Philip Rogers  <pdr@google.com>
982
983         Account for transform in SVG background images
984         https://bugs.webkit.org/show_bug.cgi?id=110295
985
986         Reviewed by Dirk Schulze.
987
988         Tiled SVG background images are rendererd by drawing the SVG content into a temporary
989         image buffer, then stamping out a tiled pattern using this buffer. Previously the
990         image buffer did not account for CSS transforms which could result in pixelated backgrounds.
991
992         This patch takes advantage of the context's transform when sizing the temporary tiling
993         image buffer. Because the context's transform also includes scale, this patch simplifies
994         the SVG image code to no longer track scale.
995
996         Test: svg/as-background-image/svg-transformed-background.html
997
998         * loader/cache/CachedImage.cpp:
999         (WebCore):
1000         (WebCore::CachedImage::imageForRenderer):
1001
1002             CachedImage::lookupOrCreateImageForRenderer no longer creates images so it has been
1003             refactored into just "imageForRenderer". Previously there were two versions of
1004             lookupOrCreateImageForRenderer; these have been folded into imageForRenderer.
1005
1006         * loader/cache/CachedImage.h:
1007         * svg/graphics/SVGImage.cpp:
1008         (WebCore::SVGImage::drawPatternForContainer):
1009
1010             To create the temporary tiling image buffer, the final size in screen coordinates is
1011             needed. This is now computed using the current context's CTM. Because the CTM
1012             already includes the page scale, all page scale tracking can be removed.
1013
1014             The adjustments to srcRect and the pattern transform are the same as before, just
1015             refactored to use imageBufferScale which has x and y components.
1016
1017         * svg/graphics/SVGImage.h:
1018         * svg/graphics/SVGImageCache.cpp:
1019         (WebCore::SVGImageCache::setContainerSizeForRenderer):
1020
1021             Because the page scale needed to be cached between calls to
1022             setContainerSizeForRenderer, this function was written to modify an existing cache
1023             entry. Because the page scale no longer needs to be tracked, this code has been
1024             simplified to re-write any existing cache entry.
1025
1026         (WebCore::SVGImageCache::imageSizeForRenderer):
1027
1028             This function has been simplified by calling SVGImageForContainer::size() instead
1029             of computing this value manually. The value returned remains the same, containing
1030             the container size multiplied by zoom.
1031
1032         (WebCore::SVGImageCache::imageForRenderer):
1033
1034             Previously we set the page scale on every call to imageForRenderer. Because page scale
1035             no longer needs to be tracked, this function has been simplified to simply return
1036             the cached SVGImageForContainer.
1037
1038         * svg/graphics/SVGImageForContainer.cpp:
1039         (WebCore::SVGImageForContainer::drawPattern):
1040         * svg/graphics/SVGImageForContainer.h:
1041         (WebCore::SVGImageForContainer::create):
1042         (WebCore::SVGImageForContainer::SVGImageForContainer):
1043         (SVGImageForContainer):
1044
1045 2013-02-20  Jer Noble  <jer.noble@apple.com>
1046
1047         Crash in com.apple.WebKit2.WebProcessService at com.apple.avfoundation: __73-[AVAssetResourceLoader _attemptDelegateHandlingOfRequestWithDictionary:]_block_invoke + 51
1048         https://bugs.webkit.org/show_bug.cgi?id=110385
1049
1050         Reviewed by Eric Carlson.
1051
1052         Ensure AVFoundation does not attempt to message a dead object by explicitly disassociating
1053         the AVAssetResourceLoaderDelegate on MediaPlayerPrivateAVFoundationObjC destruction.
1054
1055         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1056         (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
1057
1058 2013-02-20  Ojan Vafai  <ojan@chromium.org>
1059
1060         Positioned, replaced elements with intrinsic width keywords compute the wrong width
1061         https://bugs.webkit.org/show_bug.cgi?id=110393
1062
1063         Reviewed by Emil A Eklund.
1064
1065         Test: fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes.html
1066
1067         * rendering/RenderBox.cpp:
1068         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
1069         Add the intrinsic size keywords to the switch. Confusingly, we have to
1070         subtract the border and padding since the callers expect the content width.
1071
1072         * rendering/RenderReplaced.cpp:
1073         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
1074         Don't do the intrinsic ratio calculation if the width is an
1075         intrinsic width keyword, as per, http://dev.w3.org/csswg/css3-sizing/#replaced-intrinsic.
1076
1077         (WebCore::RenderReplaced::computeIntrinsicLogicalWidths):
1078         (WebCore::RenderReplaced::computePreferredLogicalWidths):
1079         The old code was trying to apply the intrinsic ratio calculation to
1080         the intrinsic width, which is wrong per spec.
1081
1082 2013-02-20  Alec Flett  <alecflett@chromium.org>
1083
1084         LevelDB: Remove excess vector copy
1085         https://bugs.webkit.org/show_bug.cgi?id=110399
1086
1087         Reviewed by Tony Chang.
1088
1089         Remove an extra copy introduced by the makeVector function.
1090
1091         No new tests, this is covered by existing tests.
1092
1093         * platform/leveldb/LevelDBDatabase.cpp:
1094         (WebCore::LevelDBDatabase::safeGet):
1095
1096 2013-02-20  Simon Fraser  <simon.fraser@apple.com>
1097
1098         Zoomed, slow-scrolling pages keep recreating tiles when scrolled
1099         https://bugs.webkit.org/show_bug.cgi?id=110379
1100
1101         Reviewed by Tim Horton.
1102
1103         On slow-scrolling pages the TileCache makes the tiles the size of
1104         the visible rect to minimize per-tile painting overhead. If the size
1105         of that rect changes, the TileCache re-creates all the tiles.
1106         
1107         This was a problem whem zoomed, because mapping the visible rect
1108         through the scale transform and then rounding it would cause the
1109         size to keep changing, causing lots of tile re-creation.
1110         
1111         Fix by carrying the visibleRect around as a FloatRect, and doing
1112         the same for the exposedRect. We then only expand to integers
1113         when computing the tile size. This also fixes an issue where we could
1114         sometimes make extra tiles because of fractional bits of tiles at the edges,
1115         as shown by the test result change.
1116
1117         * platform/graphics/TiledBacking.h:
1118         * platform/graphics/ca/GraphicsLayerCA.cpp:
1119         (WebCore::GraphicsLayerCA::updateVisibleRect):
1120         * platform/graphics/ca/mac/TileCache.h:
1121         * platform/graphics/ca/mac/TileCache.mm:
1122         (WebCore::TileCache::setVisibleRect):
1123         (WebCore::TileCache::setExposedRect):
1124         (WebCore::TileCache::prepopulateRect):
1125         (WebCore::TileCache::computeTileCoverageRect):
1126         (WebCore::TileCache::tileSizeForCoverageRect):
1127         (WebCore::TileCache::blankPixelCountForTiles):
1128         (WebCore::TileCache::revalidateTiles):
1129         (WebCore::TileCache::ensureTilesForRect):
1130         * platform/graphics/ca/mac/WebTileLayer.mm:
1131         (-[WebTileLayer logFilledFreshTile]):
1132
1133 2013-02-20  Julien Chaffraix  <jchaffraix@webkit.org>
1134
1135         [CSS Grid Layout] Implement the auto-placement algorithm without grid growth
1136         https://bugs.webkit.org/show_bug.cgi?id=110277
1137
1138         Reviewed by Tony Chang.
1139
1140         Tests: fast/css-grid-layout/grid-item-addition-auto-placement-update.html
1141                fast/css-grid-layout/grid-item-removal-auto-placement-update.html
1142                fast/css-grid-layout/grid-auto-flow-resolution.html (extended to cover more cases)
1143
1144         This change implements most of the auto-placement algorithm per
1145         http://dev.w3.org/csswg/css3-grid-layout/#auto-placement-algo
1146
1147         To limit the size of the code change, it doesn't implement growing the grid if there
1148         are no empty grid areas. If we don't find any empty grid areas, we just insert in the first
1149         one, like what grid-auto-flow: none would do (which explains the test failures).
1150
1151         * rendering/RenderGrid.cpp:
1152         (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
1153         Added this function to return the GridCoordinate of the next empty grid area along
1154         the iterator's direction.
1155
1156         (WebCore::RenderGrid::placeItemsOnGrid):
1157         Split this function into the different steps below. For efficiency, collect the auto vs specified
1158         major axis grid items in different Vectors.
1159
1160         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
1161         Added this function that implements part of step 1 of the algorithm (the grid items without
1162         auto row / column are already handled in placeItemsOnGrid).
1163
1164         (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
1165         Added this function that iterates over the auto grid items and call placeAutoMajorAxisItemOnGrid.
1166
1167         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
1168         Added this method to handle the step 4 of the algorithm. Based on the minor axis's position,
1169         it either walks along the major axis once or several times until it finds an empty grid area
1170         for the grid item.
1171
1172         (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
1173         (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
1174         (WebCore::RenderGrid::autoPlacementMajorAxisDirection):
1175         (WebCore::RenderGrid::autoPlacementMinorAxisDirection):
1176         Added these helper functions that return minor / major axis positions & direction.
1177
1178         * rendering/RenderGrid.h:
1179         Added the previous new RenderGrid functions.
1180
1181 2013-02-20  Vincent Scheib  <scheib@chromium.org>
1182
1183         Accept 'allowfullscreen' in addition to 'webkitallowfullscreen'.
1184         https://bugs.webkit.org/show_bug.cgi?id=110374
1185
1186         Reviewed by Adam Barth.
1187
1188         The fullscreen API also includes a new HTML attribute for iframes
1189         which permits its use. That attribute, 'allowfullcreen' is now
1190         included in the HTML specification [1] and is stable enough
1191         to remove the webkit prefix.
1192
1193         [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-allowfullscreen
1194
1195         Tests: fullscreen/full-screen-enabled-prefixed.html
1196                fullscreen/full-screen-iframe-allowed-prefixed.html
1197                fullscreen/full-screen-iframe-with-mixed-allow-webkitallow-attribute.html
1198
1199         * dom/Document.cpp:
1200         (WebCore::isAttributeOnAllOwners):
1201         (WebCore::Document::fullScreenIsAllowedForElement):
1202         (WebCore::Document::webkitFullscreenEnabled):
1203         * html/HTMLAttributeNames.in:
1204
1205 2013-02-20  Roger Fong  <roger_fong@apple.com>
1206
1207         Unreviewed. Remove references to SAFARI_THEME from Windows Solution.
1208         <rdar://problem/13258710>
1209
1210         * config.h:
1211         * page/Settings.cpp:
1212         * page/Settings.h:
1213         * platform/win/ScrollbarThemeWin.cpp:
1214         * rendering/RenderThemeWin.cpp:
1215
1216 2013-02-20  Roger Fong  <roger_fong@apple.com>
1217
1218         Get VS2010 Solution B&I ready.
1219         <rdar://problem/1322988>
1220
1221         Rubberstamped by Timothy Horton.
1222
1223         Add Production configuration. 
1224         Add a WebCore submit solution with a DebugSuffix configuration. 
1225         Modify WebCore.make as necessary.
1226         
1227         * DerivedSources.make:
1228         * WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj:
1229         * WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props:
1230         * WebCore.vcxproj/QTMovieWin/QTMovieWinProduction.props: Added.
1231         * WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props:
1232         * WebCore.vcxproj/WebCore.make: Added.
1233         * WebCore.vcxproj/WebCore.sln: Removed.
1234         * WebCore.vcxproj/WebCore.submit.sln: Copied from Source/WebCore/WebCore.vcxproj/WebCore.sln.
1235         * WebCore.vcxproj/WebCore.vcxproj:
1236         * WebCore.vcxproj/WebCoreGenerated.vcxproj:
1237         * WebCore.vcxproj/WebCoreGeneratedProduction.props: Added.
1238         * WebCore.vcxproj/WebCoreGeneratedRelease.props:
1239         * WebCore.vcxproj/WebCoreProduction.props: Added.
1240         * WebCore.vcxproj/WebCoreRelease.props:
1241         * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
1242
1243 2013-02-20  Adam Klein  <adamk@chromium.org>
1244
1245         [v8] Fix an erroneous WrapperGrouper call in preparation for refactoring
1246         https://bugs.webkit.org/show_bug.cgi?id=110396
1247
1248         Reviewed by Kentaro Hara.
1249
1250         This is in preparation for a refactor to expose a simplified
1251         WrapperGrouper interface to V8 wrapper classes enabling them to
1252         specify multiple roots per wrapper object. 
1253
1254         * bindings/v8/V8GCController.cpp: Since MutationObservers are not Nodes, the correct call here is addObjectToGroup, as it is for all other non-Node wrappers.
1255
1256 2013-02-20  Levi Weintraub  <leviw@chromium.org>
1257
1258         Line layout (but not pref widths) double-counts word spacing when between inlines
1259         https://bugs.webkit.org/show_bug.cgi?id=110381
1260
1261         Reviewed by Emil A Eklund.
1262
1263         When a word break with a space occurs between inlines and word-spacing is non-zero,
1264         line layout incorrectly committed the word-spacing value to the line twice, causing
1265         wrapping in inline-blocks. To fix this, clear the word-spacing value when between
1266         words and ignoring spaces, as we will already have added the word-spacing to the
1267         line.
1268
1269         Test: fast/text/word-space-between-inlines.html
1270
1271         * rendering/RenderBlockLineLayout.cpp:
1272         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
1273
1274 2013-02-20  Nate Chapin  <japhet@chromium.org>
1275
1276         Crash in WebCore::FrameLoader::checkCompleted()
1277         https://bugs.webkit.org/show_bug.cgi?id=110237
1278
1279         Reviewed by Abhishek Arya.
1280
1281         Test: http/tests/misc/delete-frame-during-readystatechange.html
1282
1283         * loader/FrameLoader.cpp:
1284         (WebCore::FrameLoader::checkCompleted): Protect before setReadyState() is called.
1285
1286 2013-02-20  David Grogan  <dgrogan@chromium.org>
1287
1288         IndexedDB: Limit LevelDB's max open files
1289         https://bugs.webkit.org/show_bug.cgi?id=109993
1290
1291         Reviewed by Tony Chang.
1292
1293         LevelDB keeps up to 1000 (by default) data files open at a time to
1294         avoid having to open() them. This has caused chromium to hit the
1295         process-wide open file limit. This patch changes max_open_files to 20,
1296         as that's the minimum permitted by LevelDB and we have no reason to
1297         think that performance will suffer because of the extra open calls.
1298
1299         No new tests - a chromium browser test that tracks the open LevelDB
1300         files is plausible but is blocked on http://crbug.com/177249/.
1301
1302         * platform/leveldb/LevelDBDatabase.cpp:
1303         (WebCore::openDB):
1304
1305 2013-02-20  David Hyatt  <hyatt@apple.com>
1306
1307         [New Multicolumn] Resize RenderMultiColumnSets around their columns.
1308         https://bugs.webkit.org/show_bug.cgi?id=110378.
1309
1310         Reviewed by Dirk Schulze.
1311
1312         Test: fast/multicol/newmulticol/positioned-with-constrained-height.html.
1313
1314         * rendering/RenderBlock.h:
1315         (RenderBlock):
1316         Make computeOverflow public so that RenderMultiColumnFlowThread can
1317         access it.
1318
1319         * rendering/RenderMultiColumnFlowThread.cpp:
1320         (WebCore::RenderMultiColumnFlowThread::layout):
1321         Subclass layout to recompute the overflow for RenderMultiColumnBlock
1322         after the flow thread has finished layout. This way it can account
1323         for changes in RenderMultiColumnSets without having to do a second
1324         layout pass.
1325
1326         * rendering/RenderMultiColumnFlowThread.h:
1327         (RenderMultiColumnFlowThread):
1328         Override layout().
1329
1330         * rendering/RenderMultiColumnSet.cpp:
1331         (WebCore::RenderMultiColumnSet::columnCount):
1332         Clean up a comment that referred to portions as region rects still.
1333
1334         (WebCore::RenderMultiColumnSet::setFlowThreadPortionRect):
1335         * rendering/RenderMultiColumnSet.h:
1336         * rendering/RenderRegion.h:
1337         (WebCore::RenderRegion::setFlowThreadPortionRect):
1338         Make setFlowThreadPortionRect virtual and actually mutate the size
1339         and position of RenderMultiColumnSets so that they enclose their
1340         column rects.
1341
1342 2013-02-20  Dirk Schulze  <krit@webkit.org>
1343
1344         Enable CANVAS_PATH flag
1345         https://bugs.webkit.org/show_bug.cgi?id=108508
1346
1347         Reviewed by Simon Fraser.
1348
1349         Enable CANVAS_PATH flag on trunk.
1350
1351         Existing tests cover the feature.
1352
1353         * Configurations/FeatureDefines.xcconfig:
1354
1355 2013-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1356
1357         Unreviewed, rolling out r143441.
1358         http://trac.webkit.org/changeset/143441
1359         https://bugs.webkit.org/show_bug.cgi?id=110376
1360
1361         May be causing chromium content_browsertests failures.
1362         (Requested by vollick on #webkit).
1363
1364         * bindings/v8/ScriptValue.cpp:
1365         (WebCore::ScriptValue::serialize):
1366         (WebCore::ScriptValue::getString):
1367         (WebCore::ScriptValue::toString):
1368         (WebCore::ScriptValue::toInspectorValue):
1369         * bindings/v8/ScriptValue.h:
1370         (WebCore::ScriptValue::ScriptValue):
1371         (WebCore::ScriptValue::operator=):
1372         (WebCore::ScriptValue::operator==):
1373         (WebCore::ScriptValue::isEqual):
1374         (WebCore::ScriptValue::isFunction):
1375         (WebCore::ScriptValue::isNull):
1376         (WebCore::ScriptValue::isUndefined):
1377         (WebCore::ScriptValue::isObject):
1378         (WebCore::ScriptValue::hasNoValue):
1379         (WebCore::ScriptValue::clear):
1380         (WebCore::ScriptValue::v8Value):
1381         (ScriptValue):
1382         * bindings/v8/SharedPersistent.h:
1383         (WebCore):
1384         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1385         (WebCore::InjectedScriptHost::scriptValueAsNode):
1386         * bindings/v8/custom/V8MessageEventCustom.cpp:
1387         (WebCore::V8MessageEvent::dataAttrGetterCustom):
1388
1389 2013-02-15  Dirk Schulze  <krit@webkit.org>
1390
1391         [Chromium] Add runtime flag for CanvasPath
1392         https://bugs.webkit.org/show_bug.cgi?id=109997
1393
1394         Reviewed by Adam Barth.
1395
1396         Add runtime flag for Chromium.
1397
1398         * bindings/generic/RuntimeEnabledFeatures.cpp:
1399         (WebCore):
1400         * bindings/generic/RuntimeEnabledFeatures.h:
1401         (RuntimeEnabledFeatures):
1402         (WebCore::RuntimeEnabledFeatures::setCanvasPathEnabled):
1403         (WebCore::RuntimeEnabledFeatures::canvasPathEnabled):
1404         * html/canvas/DOMPath.idl:
1405         * page/DOMWindow.idl:
1406
1407 2013-02-20  Laszlo Gombos  <l.gombos@samsung.com>
1408
1409         Remove unnecessary includes for Platform.h from headers
1410         https://bugs.webkit.org/show_bug.cgi?id=110300
1411
1412         Reviewed by Alexey Proskuryakov.
1413
1414         wtf/Platform.h only need to be included in a few places directly
1415         as it is included in config.h. Remove the unnecessay duplicate as
1416         it can be confusing.
1417
1418         No new tests, no change in functionality.
1419
1420         * platform/SecureTextInput.h:
1421         * platform/audio/Biquad.h:
1422         * platform/audio/FFTFrame.h:
1423         * platform/graphics/cpu/arm/filters/FEBlendNEON.h:
1424         * platform/graphics/cpu/arm/filters/NEONHelpers.h:
1425         * platform/graphics/filters/FELighting.h:
1426
1427 2013-02-20  Florin Malita  <fmalita@chromium.org>
1428
1429         [SVG] Update of element referenced by multiple 'use' nodes is absurdly slow
1430         https://bugs.webkit.org/show_bug.cgi?id=97905
1431
1432         Reviewed by Dirk Schulze.
1433
1434         Rebuilding the shadow and instance trees of dependent use nodes recursively can be
1435         extremely inefficient with non-trivial dependency graphs (the trees are not constructed
1436         in topological order).
1437
1438         To avoid redundant buildShadowAndInstanceTree() invokations, separate the invalidation
1439         phase from the actual tree (re)building phase, and only descend into the dependency DAG
1440         during the invalidation phase (recursion also stops at nodes that have been previously
1441         invalidated).
1442
1443         No new tests: functional coverage provided by existing tests, perfomance tracked by
1444         PerformanceTests/SVG/SvgNestedUse.html.
1445
1446         * svg/SVGUseElement.cpp:
1447         (WebCore::SVGUseElement::buildPendingResource):
1448         (WebCore::SVGUseElement::buildShadowAndInstanceTree):
1449         (WebCore::SVGUseElement::invalidateShadowTree):
1450         (WebCore):
1451         (WebCore::SVGUseElement::invalidateDependentShadowTrees):
1452         * svg/SVGUseElement.h:
1453         (SVGUseElement):
1454
1455 2013-02-20  Tim Horton  <timothy_horton@apple.com>
1456
1457         RenderLayerBacking should initialize TiledBacking's isInWindow state with Page's isInWindow, not isOnscreen
1458         https://bugs.webkit.org/show_bug.cgi?id=110370
1459         <rdar://problem/13254006>
1460
1461         Reviewed by Simon Fraser.
1462
1463         * rendering/RenderLayerBacking.cpp:
1464         (WebCore::RenderLayerBacking::RenderLayerBacking):
1465
1466 2013-02-20  Mark Lam  <mark.lam@apple.com>
1467
1468         Cleanup the SQLTransaction and SQLTransactionBackend state dispatch
1469         to only honor a state transition request if the associated database
1470         hasn't been interrupted.
1471         https://bugs.webkit.org/show_bug.cgi?id=110247.
1472
1473         Reviewed by Antti Koivisto.
1474
1475         No new tests.
1476
1477         * Modules/webdatabase/SQLTransaction.cpp:
1478         (WebCore::SQLTransaction::performPendingCallback):
1479         (WebCore::SQLTransaction::computeNextStateAndCleanupIfNeeded):
1480         * Modules/webdatabase/SQLTransaction.h:
1481         * Modules/webdatabase/SQLTransactionBackend.cpp:
1482         (WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
1483         (WebCore::SQLTransactionBackend::performNextStep):
1484         * Modules/webdatabase/SQLTransactionBackend.h:
1485
1486 2013-02-20  Alexey Proskuryakov  <ap@apple.com>
1487
1488         ResourceHandle::loadResourceSynchronously should have blob support in cross-platform code
1489         https://bugs.webkit.org/show_bug.cgi?id=110364
1490
1491         Reviewed by Anders Carlsson.
1492
1493         * platform/network/ResourceHandle.h:
1494         * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::loadResourceSynchronously):
1495         Added a cross-platform version to keep blob-related logic in one place.
1496
1497         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
1498         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1499         * platform/network/cf/ResourceHandleCFNet.cpp:
1500         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1501         * platform/network/curl/ResourceHandleCurl.cpp:
1502         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1503         * platform/network/mac/ResourceHandleMac.mm:
1504         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1505         * platform/network/qt/ResourceHandleQt.cpp:
1506         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1507         * platform/network/soup/ResourceHandleSoup.cpp:
1508         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1509         * platform/network/win/ResourceHandleWin.cpp:
1510         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
1511         Renamed loadResourceSynchronously to platformLoadResourceSynchronously,
1512         removed blob handling from platforms that had it.
1513
1514 2013-02-20  David Hyatt  <hyatt@apple.com>
1515
1516         [New Multicolumn] RenderMultiColumnFlowThreads should establish a BFC.
1517         https://bugs.webkit.org/show_bug.cgi?id=110366.
1518
1519         Reviewed by Antti Koivisto.
1520
1521         RenderFlowThreads should establish a block formatting context always.
1522         CSS Regions have named flow thread that they absolutely position, and so
1523         they got this for free by being absolutely positioned.
1524         
1525         RenderMultiColumnFlowThreads, however, are relative positioned, so we need
1526         to just add an isRenderFlowThread case specifically so we're not dependent
1527         on the positioning scheme used for the flow thread to establish the BFC.
1528         
1529         Test: fast/multicol/newmulticol/float-*.html.
1530
1531         * rendering/RenderBlock.cpp:
1532         (WebCore::RenderBlock::MarginInfo::MarginInfo):
1533
1534 2013-02-20  David Hyatt  <hyatt@apple.com>
1535
1536         [New Multicolumn] Column gap is computed incorrectly.
1537         https://bugs.webkit.org/show_bug.cgi?id=110360.
1538
1539         Reviewed by Simon Fraser.
1540
1541         Test: fast/multicol/newmulticol/layers-split-across-columns.html.
1542
1543         * rendering/RenderMultiColumnSet.cpp:
1544         (WebCore::RenderMultiColumnSet::columnGap):
1545         Make sure we ask the RenderMultiColumnBlock for the gap rather than our
1546         own style, since we don't actually have the gap value in our style.
1547         
1548         (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
1549         * rendering/RenderMultiColumnSet.h:
1550         Fix another spot where the columnGap was an int. It should be a LayoutUnit.
1551
1552 2013-02-20  Robert Hogan  <robert@webkit.org>
1553
1554         No caret on empty contenteditable element with negative text-indent
1555         https://bugs.webkit.org/show_bug.cgi?id=108633
1556
1557         Reviewed by Ryosuke Niwa.
1558
1559         Test: fast/repaint/paint-caret-in-div-with-negative-indent.html
1560
1561         When an editable element has a negative text indent we won't paint the caret when the
1562         element is empty because it falls outside the element's border box. To ensure the caret is painted,
1563         account for any negative indent with our overflow.
1564
1565         * rendering/RenderBlock.cpp:
1566         (WebCore::RenderBlock::computeOverflow):
1567
1568 2013-02-20  Ojan Vafai  <ojan@chromium.org>
1569
1570         Remove stretchesToMinIntrinsicLogicalWidth
1571         https://bugs.webkit.org/show_bug.cgi?id=110266
1572
1573         Reviewed by Emil Eklund.
1574
1575         This was only used by fieldsets and now we have a way to express this
1576         concept in CSS.
1577
1578         * WebCore.order:
1579         * css/html.css:
1580         Make fieldsets min-width: -webkit-min-content.
1581
1582         * rendering/RenderBox.cpp:
1583         (WebCore::RenderBox::computeLogicalWidthInRegion):
1584         (WebCore::RenderBox::computePositionedLogicalWidth):
1585         * rendering/RenderBox.h:
1586         Remove all calls to stretchesToMinIntrinsicLogicalWidth.
1587
1588 2013-02-20  Ojan Vafai  <ojan@chromium.org>
1589
1590         Make intrinsic width values work for positioned elements
1591         https://bugs.webkit.org/show_bug.cgi?id=110264
1592
1593         Reviewed by Tony Chang.
1594
1595         Tests: fast/css-intrinsic-dimensions/intrinsic-sized-absolutes.html
1596                fast/css-intrinsic-dimensions/width-shrinks-avoid-floats.html
1597
1598         * rendering/RenderBox.cpp:
1599         (WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
1600         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
1601         Move the computation of intrinsic widths out into a helper function so that
1602         computePositionedLogicalWidthUsing can use it. As per the current spec,
1603         fill-available measures shrink to avoid floats. http://dev.w3.org/csswg/css3-sizing/
1604
1605         (WebCore::RenderBox::computePositionedLogicalWidth):
1606         Compute intrinsic min-widths in addition to non-zero ones. Intrinsic widths
1607         return true for isZero. width and max-width don't need modifying since they already
1608         call computePositionedLogicalWidthUsing for intrinsic widths.
1609
1610         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
1611         Compute intrinsic widths and use a Fixed length for the rest of the positioned width
1612         computation. Doesn't include bordersPlusPadding because the caller, expected the content
1613         width and adds in the bordersPlusPadding later.
1614
1615         * rendering/RenderBox.h:
1616
1617 2013-02-20  Robert Hogan  <robert@webkit.org>
1618
1619         input element with placeholder text and width set to 100% on focus causes overflow even after losing focus
1620         https://bugs.webkit.org/show_bug.cgi?id=109020
1621
1622         Reviewed by David Hyatt.
1623
1624         Tests: fast/forms/input-placeholder-layout-view.html
1625                fast/forms/textarea-placeholder-layout-view.html
1626
1627         Placeholder elements don't affect layout so shouldn't contribute overflow either.
1628
1629         * rendering/RenderTextControlSingleLine.cpp:
1630         (WebCore::RenderTextControlSingleLine::layout):
1631
1632 2013-02-20  Mark Lam  <mark.lam@apple.com>
1633
1634         Rename DatabaseBackend to DatabaseBackendBase.
1635         https://bugs.webkit.org/show_bug.cgi?id=110303.
1636
1637         Rubber stamped by Alexey Proskuryakov.
1638
1639         This is a purely cosmetic change to make the naming consistent with
1640         the front-end DatabaseBase.
1641
1642         No new tests.
1643
1644         * CMakeLists.txt:
1645         * GNUmakefile.list.am:
1646         * Modules/webdatabase/AbstractDatabaseServer.h:
1647         * Modules/webdatabase/Database.cpp:
1648         (WebCore::Database::create):
1649         (WebCore::Database::version):
1650         * Modules/webdatabase/Database.h:
1651         (Database):
1652         * Modules/webdatabase/DatabaseBackend.cpp: Removed.
1653         * Modules/webdatabase/DatabaseBackend.h: Removed.
1654         * Modules/webdatabase/DatabaseBackendAsync.cpp:
1655         (WebCore::DatabaseBackendAsync::DatabaseBackendAsync):
1656         (WebCore::DatabaseBackendAsync::performOpenAndVerify):
1657         * Modules/webdatabase/DatabaseBackendAsync.h:
1658         * Modules/webdatabase/DatabaseBackendBase.cpp: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.cpp.
1659         (WebCore::DatabaseBackendBase::databaseInfoTableName):
1660         (WebCore::DatabaseBackendBase::DatabaseBackendBase):
1661         (WebCore::DatabaseBackendBase::~DatabaseBackendBase):
1662         (WebCore::DatabaseBackendBase::closeDatabase):
1663         (WebCore::DatabaseBackendBase::version):
1664         (WebCore::DoneCreatingDatabaseOnExitCaller::DoneCreatingDatabaseOnExitCaller):
1665         (DoneCreatingDatabaseOnExitCaller):
1666         (WebCore::DatabaseBackendBase::performOpenAndVerify):
1667         (WebCore::DatabaseBackendBase::securityOrigin):
1668         (WebCore::DatabaseBackendBase::stringIdentifier):
1669         (WebCore::DatabaseBackendBase::displayName):
1670         (WebCore::DatabaseBackendBase::estimatedSize):
1671         (WebCore::DatabaseBackendBase::fileName):
1672         (WebCore::DatabaseBackendBase::details):
1673         (WebCore::DatabaseBackendBase::getVersionFromDatabase):
1674         (WebCore::DatabaseBackendBase::setVersionInDatabase):
1675         (WebCore::DatabaseBackendBase::setExpectedVersion):
1676         (WebCore::DatabaseBackendBase::getCachedVersion):
1677         (WebCore::DatabaseBackendBase::setCachedVersion):
1678         (WebCore::DatabaseBackendBase::getActualVersionForTransaction):
1679         (WebCore::DatabaseBackendBase::disableAuthorizer):
1680         (WebCore::DatabaseBackendBase::enableAuthorizer):
1681         (WebCore::DatabaseBackendBase::setAuthorizerReadOnly):
1682         (WebCore::DatabaseBackendBase::setAuthorizerPermissions):
1683         (WebCore::DatabaseBackendBase::lastActionChangedDatabase):
1684         (WebCore::DatabaseBackendBase::lastActionWasInsert):
1685         (WebCore::DatabaseBackendBase::resetDeletes):
1686         (WebCore::DatabaseBackendBase::hadDeletes):
1687         (WebCore::DatabaseBackendBase::resetAuthorizer):
1688         (WebCore::DatabaseBackendBase::maximumSize):
1689         (WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded):
1690         (WebCore::DatabaseBackendBase::interrupt):
1691         (WebCore::DatabaseBackendBase::isInterrupted):
1692         (WebCore::DatabaseBackendBase::reportOpenDatabaseResult):
1693         (WebCore::DatabaseBackendBase::reportChangeVersionResult):
1694         (WebCore::DatabaseBackendBase::reportStartTransactionResult):
1695         (WebCore::DatabaseBackendBase::reportCommitTransactionResult):
1696         (WebCore::DatabaseBackendBase::reportExecuteStatementResult):
1697         (WebCore::DatabaseBackendBase::reportVacuumDatabaseResult):
1698         * Modules/webdatabase/DatabaseBackendBase.h: Copied from Source/WebCore/Modules/webdatabase/DatabaseBackend.h.
1699         (DatabaseBackendBase):
1700         * Modules/webdatabase/DatabaseBackendSync.cpp:
1701         (WebCore::DatabaseBackendSync::DatabaseBackendSync):
1702         * Modules/webdatabase/DatabaseBackendSync.h:
1703         * Modules/webdatabase/DatabaseBase.h:
1704         * Modules/webdatabase/DatabaseManager.cpp:
1705         (WebCore::DatabaseManager::openDatabaseBackend):
1706         (WebCore::DatabaseManager::openDatabase):
1707         (WebCore::DatabaseManager::openDatabaseSync):
1708         (WebCore::DatabaseManager::getMaxSizeForDatabase):
1709         * Modules/webdatabase/DatabaseManager.h:
1710         (DatabaseManager):
1711         * Modules/webdatabase/DatabaseServer.cpp:
1712         (WebCore::DatabaseServer::openDatabase):
1713         (WebCore::DatabaseServer::createDatabase):
1714         (WebCore::DatabaseServer::getMaxSizeForDatabase):
1715         * Modules/webdatabase/DatabaseServer.h:
1716         * Modules/webdatabase/DatabaseSync.cpp:
1717         (WebCore::DatabaseSync::create):
1718         * Modules/webdatabase/DatabaseSync.h:
1719         (DatabaseSync):
1720         * Modules/webdatabase/DatabaseTracker.cpp:
1721         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
1722         (WebCore::DatabaseTracker::databaseChanged):
1723         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
1724         (WebCore::DatabaseTracker::doneCreatingDatabase):
1725         (WebCore::DatabaseTracker::addOpenDatabase):
1726         (WebCore::DatabaseTracker::removeOpenDatabase):
1727         (WebCore::DatabaseTracker::getOpenDatabases):
1728         (WebCore::DatabaseTracker::deleteDatabaseFile):
1729         * Modules/webdatabase/DatabaseTracker.h:
1730         (DatabaseTracker):
1731         * Modules/webdatabase/OriginQuotaManager.cpp:
1732         (WebCore::OriginQuotaManager::markDatabase):
1733         * Modules/webdatabase/OriginQuotaManager.h:
1734         (OriginQuotaManager):
1735         * Modules/webdatabase/SQLTransactionClient.cpp:
1736         (WebCore::SQLTransactionClient::didCommitWriteTransaction):
1737         (WebCore::SQLTransactionClient::didExecuteStatement):
1738         (WebCore::SQLTransactionClient::didExceedQuota):
1739         * Modules/webdatabase/SQLTransactionClient.h:
1740         (SQLTransactionClient):
1741         * Modules/webdatabase/chromium/DatabaseObserver.h:
1742         (DatabaseObserver):
1743         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
1744         (WebCore::DatabaseTracker::addOpenDatabase):
1745         (WebCore::NotifyDatabaseObserverOnCloseTask::create):
1746         (WebCore::NotifyDatabaseObserverOnCloseTask::NotifyDatabaseObserverOnCloseTask):
1747         (NotifyDatabaseObserverOnCloseTask):
1748         (WebCore::DatabaseTracker::removeOpenDatabase):
1749         (WebCore::DatabaseTracker::prepareToOpenDatabase):
1750         (WebCore::DatabaseTracker::failedToOpenDatabase):
1751         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
1752         (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::create):
1753         (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::CloseOneDatabaseImmediatelyTask):
1754         (DatabaseTracker::CloseOneDatabaseImmediatelyTask):
1755         (WebCore::DatabaseTracker::closeOneDatabaseImmediately):
1756         * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
1757         (WebCore::NotifyDatabaseChangedTask::create):
1758         (WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
1759         (NotifyDatabaseChangedTask):
1760         (WebCore::SQLTransactionClient::didCommitWriteTransaction):
1761         (WebCore::SQLTransactionClient::didExecuteStatement):
1762         (WebCore::SQLTransactionClient::didExceedQuota):
1763         * Target.pri:
1764         * WebCore.gypi:
1765         * WebCore.vcproj/WebCore.vcproj:
1766         * WebCore.vcxproj/WebCore.vcxproj:
1767         * WebCore.vcxproj/WebCore.vcxproj.filters:
1768         * WebCore.xcodeproj/project.pbxproj:
1769
1770 2013-02-20  Eric Carlson  <eric.carlson@apple.com>
1771
1772         iOS does not use CaptionUserPreferencesMac
1773         https://bugs.webkit.org/show_bug.cgi?id=110259
1774
1775         Reviewed by Dean Jackson.
1776
1777         * page/CaptionUserPreferencesMac.h: Add PLATFORM(IOS) guard
1778         * page/CaptionUserPreferencesMac.mm: Ditto.
1779
1780         * page/PageGroup.cpp:
1781         (WebCore::PageGroup::captionPreferences): Ditto.
1782
1783 2013-02-19  David Hyatt  <hyatt@apple.com>
1784
1785         [New Multicolumn] Make layers paint properly in columns.
1786         https://bugs.webkit.org/show_bug.cgi?id=110296.
1787
1788         Reviewed by Sam Weinig.
1789
1790         Construct the style for the RenderMultiColumnFlowThread such that it
1791         establishes a stacking context (by being position:relative
1792         with a z-index of 0). This causes the layer collection code
1793         to correctly ignore the RenderFlowThread layers during normal
1794         painting.
1795         
1796         Fix more clipping bugs to eliminate subpixel layout differences
1797         between old and new multicolumn.
1798
1799         Test: fast/multicol/newmulticol/layers-in-multicol.html
1800
1801         * rendering/RenderMultiColumnBlock.cpp:
1802         (WebCore::createMultiColumnFlowThreadStyle):
1803         (WebCore):
1804         (WebCore::RenderMultiColumnBlock::addChild):
1805         Use a custom style (similar to what normal RenderFlowThreads do)
1806         for the RenderMultiColumnFlowThread that makes it a stacking
1807         context.
1808         
1809         * rendering/RenderMultiColumnSet.cpp:
1810         (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
1811         Fix the overflow calculations out the leftmost and rightmost
1812         columns to actually look at the physical placement of the columns.
1813         The old code was backwards for RTL.
1814         
1815         * rendering/RenderRegion.cpp:
1816         (WebCore::RenderRegion::overflowRectForFlowThreadPortion):
1817         Fix the clipping done by overflowRectForFlowThreadPortion to min
1818         and max with the passed-in portion rect so that subclasses that
1819         inflate the rect prior to passing it into the method don't have that
1820         inflation discarded.
1821
1822 2013-02-20  Alexander Pavlov  <apavlov@chromium.org>
1823
1824         Web Inspector: CSSProperty.status defaults to "style" not "active"
1825         https://bugs.webkit.org/show_bug.cgi?id=110348
1826
1827         Reviewed by Timothy Hatcher.
1828
1829         * inspector/Inspector.json: Fix the default property status to be "style" in the description.
1830
1831 2013-02-20  Dan Carney  <dcarney@google.com>
1832
1833         [v8] potentially disposed handle returned for npapi object
1834         https://bugs.webkit.org/show_bug.cgi?id=110331
1835
1836         Reviewed by Kentaro Hara.
1837
1838         No new tests. No change in functionality.
1839
1840         * bindings/v8/V8NPUtils.cpp:
1841         (WebCore::convertNPVariantToV8Object):
1842
1843 2013-02-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>  and  Martin Robinson  <mrobinson@igalia.com>
1844
1845         [Gtk] HTML5 Media controls require a design refresh
1846         https://bugs.webkit.org/show_bug.cgi?id=83869
1847
1848         Created new controls that depend less on Gtk and more in CSS.
1849
1850         Reviewed by Philippe Normand.
1851
1852         * GNUmakefile.list.am: Added compilation for MediaControlsGtk.cpp
1853         and MediaControlsGtk.h
1854         * css/mediaControlsGtk.css: Taken from Chromium and adapted for
1855         WebKitGtk+.
1856         * html/shadow/MediaControlsGtk.cpp: Added.
1857         (WebCore): Added MediaControlsGtk class.
1858         (WebCore::MediaControlsGtk::MediaControlsGtk): Class constructor
1859         (WebCore::MediaControls::create): Creates the Gtk+ controls
1860         components.
1861         (WebCore::MediaControlsGtk::createControls): Creates the Gtk+
1862         controls components.
1863         (WebCore::MediaControlsGtk::initializeControls): Initializes all
1864         media controls.
1865         (WebCore::MediaControlsGtk::setMediaController): Sets the media
1866         controller.
1867         (WebCore::MediaControlsGtk::reset): Resets the controllers.
1868         (WebCore::MediaControlsGtk::playbackStarted): Invoked when the
1869         playback starts
1870         (WebCore::MediaControlsGtk::updateCurrentTimeDisplay): Updates the
1871         controls when the current time shall be updated.
1872         (WebCore::MediaControlsGtk::changedMute): Updates the controls
1873         then the mute changes.
1874         (WebCore::MediaControlsGtk::showVolumeSlider): Invoked when the
1875         volume slider is meant to be shown.
1876         (WebCore::MediaControlsGtk::createTextTrackDisplay): Creates the
1877         track display. Though it is not used by us, it needs to be created
1878         to prevent immediate crashes when loading a video.
1879         * html/shadow/MediaControlsGtk.h: Added.
1880         (WebCore): Added the MediaControlsGtk class.
1881         (MediaControlsGtk): Added the MediaControlsGtk class.
1882         * platform/gtk/RenderThemeGtk.cpp:
1883         (WebCore): Added getStockSymbolicIconForWidgetType function
1884         signature to load symbolic icons.
1885         (WebCore::supportsFocus): Added media control widgets to support
1886         focus so that the focus ring is not painted by WebCore.
1887         (WebCore::RenderThemeGtk::paintMediaButton): Added the symbolic
1888         icon support. It supports now normal and symbolic icons at the
1889         same time.
1890         (WebCore::RenderThemeGtk::paintMediaFullscreenButton): Added the
1891         symbolic icon support.
1892         (WebCore::RenderThemeGtk::paintMediaMuteButton): Added the
1893         symbolic icon support.
1894         (WebCore::RenderThemeGtk::paintMediaPlayButton): Added the
1895         symbolic icon support.
1896         (WebCore::RenderThemeGtk::paintMediaSeekBackButton): Added the
1897         symbolic icon support.
1898         (WebCore::RenderThemeGtk::paintMediaSeekForwardButton): Added the
1899         symbolic icon support.
1900         (WebCore::borderRadiiFromStyle): Created the radii info from the
1901         style.
1902         (WebCore::RenderThemeGtk::paintMediaSliderTrack): Removed the
1903         background and the Gtk widget support as it is painted with
1904         CSS. Also paint the time ranges with the CSS style.
1905         (WebCore::RenderThemeGtk::paintMediaSliderThumb): Paint slider
1906         thumb according to the CSS parameters.
1907         (WebCore::RenderThemeGtk::paintMediaVolumeSliderContainer):
1908         Delegates in the CSS.
1909         (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack): Fills the
1910         track up to the volume level and delegates the border in the CSS.
1911         (WebCore::RenderThemeGtk::paintMediaVolumeSliderThumb): Delegates
1912         in the paintMediaSliderThumb method so the thumb is painted the
1913         same with the CSS parameters.
1914         (WebCore::RenderThemeGtk::paintMediaCurrentTime): Removed the Gtk
1915         background to use only CSS.
1916         * platform/gtk/RenderThemeGtk.h:
1917         (RenderThemeGtk): Changed paintMediaButton to support the symbolic
1918         and normal icons at the same time.
1919         * platform/gtk/RenderThemeGtk2.cpp:
1920         (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
1921         the thumb size and letting the CSS decide that for media slider.
1922         (WebCore::getStockSymbolicIconForWidgetType): Implemented as a
1923         fallback to the normal stock icons.
1924         * platform/gtk/RenderThemeGtk3.cpp:
1925         (WebCore):
1926         (WebCore::RenderThemeGtk::adjustSliderThumbSize): Not adjusting
1927         the thumb size and letting the CSS decide that for the media
1928         sliders.
1929         (WebCore::getStockSymbolicIconForWidgetType): Added this function
1930         to load symbolic icons. It falls back to normal icons if the
1931         symbolic is not found.
1932
1933 2013-02-20  Andras Becsi  <andras.becsi@digia.com>
1934
1935         [Qt] Rename AncestorChainWalker.h to EventPathWalker.h in the project file.
1936
1937         Unreviewed gardening.
1938
1939         AncestorChainWalker has been renamed to EventPathWalker in r143422.
1940         Rename the header in the project file as well so that it shows up in QtCreator.
1941
1942         No new tests needed.
1943
1944         * Target.pri:
1945
1946 2013-02-20  Ilya Tikhonovsky  <loislo@chromium.org>
1947
1948         Web Inspector: fix for frontend closure compile errors.
1949         https://bugs.webkit.org/show_bug.cgi?id=110329
1950
1951         Reviewed by Vsevolod Vlasov.
1952
1953         It has no tests because it has no code changes.
1954
1955         * inspector/front-end/HeapSnapshot.js:
1956         (HeapSnapshotMetainfo):
1957         * inspector/front-end/NativeMemorySnapshotView.js:
1958         (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
1959         (WebInspector.NativeSnapshotProfileType.prototype.buttonClicked):
1960
1961 2013-02-20  Florin Malita  <fmalita@chromium.org>
1962
1963         Clear SVGPathSeg role on removal.
1964         https://bugs.webkit.org/show_bug.cgi?id=110058
1965
1966         Reviewed by Dirk Schulze.
1967
1968         SVGPathSegListPropertyTearOff::initialize() and SVGPathSegListPropertyTearOff::replaceItem()
1969         need to clear the context and role for segments being expunged from the list, similarly to
1970         removeItem(). Otherwise, processIncomingListItemValue() can get confused and attempt to
1971         remove stale segments.
1972
1973         Test: svg/dom/SVGPathSegList-crash.html
1974
1975         * svg/properties/SVGPathSegListPropertyTearOff.cpp:
1976         (WebCore::SVGPathSegListPropertyTearOff::clearContextAndRoles):
1977         (WebCore::SVGPathSegListPropertyTearOff::clear):
1978         (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
1979         (WebCore):
1980         * svg/properties/SVGPathSegListPropertyTearOff.h:
1981         (WebCore::SVGPathSegListPropertyTearOff::initialize):
1982         (SVGPathSegListPropertyTearOff):
1983
1984 2013-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1985
1986         Unreviewed, rolling out r143434.
1987         http://trac.webkit.org/changeset/143434
1988         https://bugs.webkit.org/show_bug.cgi?id=110326
1989
1990         added reftest fails on chromium mac 10.6 (Requested by
1991         toyoshim on #webkit).
1992
1993         * rendering/RenderFileUploadControl.cpp:
1994         (WebCore::RenderFileUploadControl::paintObject):
1995
1996 2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
1997
1998         Web Inspector: Make UISourceCode.path() an array of path segments.
1999         https://bugs.webkit.org/show_bug.cgi?id=110229
2000
2001         Reviewed by Pavel Feldman.
2002
2003         * inspector/front-end/FileSystemProjectDelegate.js:
2004         (WebInspector.FileSystemProjectDelegate.prototype._filePathForPath):
2005         (WebInspector.FileSystemProjectDelegate.prototype.innerCallback):
2006         (WebInspector.FileSystemProjectDelegate.prototype.requestFileContent):
2007         (WebInspector.FileSystemProjectDelegate.prototype._contentTypeForPath):
2008         (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
2009         (WebInspector.FileSystemProjectDelegate.prototype.populate):
2010         * inspector/front-end/SimpleWorkspaceProvider.js:
2011         (WebInspector.SimpleProjectDelegate.prototype.requestFileContent):
2012         (WebInspector.SimpleProjectDelegate.prototype.searchInFileContent):
2013         (WebInspector.SimpleProjectDelegate.prototype.addFile):
2014         (WebInspector.SimpleProjectDelegate.prototype._ensureUniquePath):
2015         (WebInspector.SimpleProjectDelegate.prototype.removeFile):
2016         (WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
2017         (WebInspector.SimpleWorkspaceProvider.prototype.addFileByName):
2018         (WebInspector.SimpleWorkspaceProvider.prototype.removeFileByName):
2019         * inspector/front-end/UISourceCode.js:
2020         (WebInspector.UISourceCode.prototype.uri):
2021         * inspector/front-end/Workspace.js:
2022         (WebInspector.Project.prototype._fileAdded):
2023         (WebInspector.Project.prototype._fileRemoved):
2024         (WebInspector.Project.prototype.uiSourceCode):
2025         (WebInspector.Workspace.prototype.uiSourceCodeForURL):
2026         (WebInspector.Workspace.prototype.urlForPath):
2027
2028 2013-02-20  Yury Semikhatsky  <yurys@chromium.org>
2029
2030         Web Inspector: fix message for non-existent domain warning
2031         https://bugs.webkit.org/show_bug.cgi?id=110315
2032
2033         Reviewed by Alexander Pavlov.
2034
2035         Only send (Heap)Profiler.resetProfiles event if the client has
2036         requested profile headers before.
2037
2038         * inspector/InspectorHeapProfilerAgent.cpp:
2039         (HeapProfilerAgentState):
2040         (WebCore):
2041         (WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
2042         (WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
2043         (WebCore::InspectorHeapProfilerAgent::clearFrontend):
2044         (WebCore::InspectorHeapProfilerAgent::restore):
2045         (WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
2046         * inspector/InspectorHeapProfilerAgent.h:
2047         (InspectorHeapProfilerAgent):
2048         * inspector/InspectorProfilerAgent.cpp:
2049         (ProfilerAgentState):
2050         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
2051         (WebCore::InspectorProfilerAgent::addProfile):
2052         (WebCore::InspectorProfilerAgent::disable):
2053         (WebCore::InspectorProfilerAgent::getProfileHeaders):
2054         (WebCore):
2055         (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
2056         (WebCore::InspectorProfilerAgent::restore):
2057         * inspector/InspectorProfilerAgent.h:
2058         (InspectorProfilerAgent):
2059
2060 2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
2061
2062         Web Inspector: Move workspace specific code from FileMapping to workspace.
2063         https://bugs.webkit.org/show_bug.cgi?id=110219
2064
2065         Reviewed by Pavel Feldman.
2066
2067         Extracted workspace specific code from FileMapping to Workspace.
2068         This allows to reduce usage of uri and eventually make UISourceCode.path an array of path segments.
2069
2070         Test: inspector/workspace-mapping.html
2071
2072         * inspector/front-end/CSSStyleModel.js:
2073         (WebInspector.CSSStyleModel.prototype.rawLocationToUILocation):
2074         * inspector/front-end/CompilerScriptMapping.js:
2075         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
2076         (WebInspector.CompilerScriptMapping.prototype.get addScript.get this):
2077         (WebInspector.CompilerScriptMapping.prototype.get addScript):
2078         * inspector/front-end/FileMapping.js:
2079         (WebInspector.FileMapping):
2080         (WebInspector.FileMapping.prototype.mappingEntryForURL):
2081         (WebInspector.FileMapping.prototype.mappingEntryForPath):
2082         * inspector/front-end/FileSystemMapping.js:
2083         (WebInspector.FileSystemMapping.prototype.fileSystemPathForPrefix):
2084         (WebInspector.FileSystemMappingImpl.prototype.addFileSystemMapping):
2085         (WebInspector.FileSystemMappingImpl.prototype.removeFileSystemMapping):
2086         (WebInspector.FileSystemMappingImpl.prototype.fileSystemPathForPrefix):
2087         * inspector/front-end/FileSystemProjectDelegate.js:
2088         (WebInspector.FileSystemProjectDelegate):
2089         (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
2090         (WebInspector.FileSystemProjectDelegate.prototype.populate):
2091         (WebInspector.FileSystemWorkspaceProvider):
2092         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
2093         * inspector/front-end/IsolatedFileSystemManager.js:
2094         (WebInspector.IsolatedFileSystemManager):
2095         * inspector/front-end/NetworkUISourceCodeProvider.js:
2096         (WebInspector.NetworkUISourceCodeProvider):
2097         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
2098         * inspector/front-end/ResourceScriptMapping.js:
2099         (WebInspector.ResourceScriptMapping.prototype._workspaceUISourceCodeForScript):
2100         * inspector/front-end/ResourceUtils.js:
2101         (WebInspector.displayNameForURL):
2102         * inspector/front-end/SASSSourceMapping.js:
2103         (WebInspector.SASSSourceMapping.prototype._reloadCSS):
2104         (WebInspector.SASSSourceMapping.prototype._bindUISourceCode):
2105         (WebInspector.SASSSourceMapping.prototype.rawLocationToUILocation):
2106         * inspector/front-end/ScriptsPanel.js:
2107         (WebInspector.ScriptsPanel.prototype.canShowAnchorLocation):
2108         * inspector/front-end/SimpleWorkspaceProvider.js:
2109         (WebInspector.SimpleWorkspaceProvider.pathForSplittedURL):
2110         (WebInspector.SimpleWorkspaceProvider.prototype._innerAddFileForURL):
2111         * inspector/front-end/StylesSourceMapping.js:
2112         (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
2113         (WebInspector.StylesSourceMapping.prototype._resourceAdded):
2114         (WebInspector.StylesSourceMapping.prototype._mainFrameCreatedOrNavigated):
2115         (WebInspector.StyleContentBinding):
2116         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
2117         * inspector/front-end/Workspace.js:
2118         (WebInspector.Workspace):
2119         (WebInspector.Workspace.prototype.hasMappingForURL):
2120         (WebInspector.Workspace.prototype._fileSystemPathForEntry):
2121         (WebInspector.Workspace.prototype.uiSourceCodeForURL):
2122         (WebInspector.Workspace.prototype.urlForPath):
2123         * inspector/front-end/inspector.js:
2124
2125 2013-02-20  Alexander Pavlov  <apavlov@chromium.org>
2126
2127         Web Inspector: Introduce SecurityOriginAdded and SecurityOriginRemoved events into ResourceTreeModel
2128         https://bugs.webkit.org/show_bug.cgi?id=110232
2129
2130         Reviewed by Vsevolod Vlasov.
2131
2132         * inspector/front-end/ResourceTreeModel.js:
2133         (WebInspector.ResourceTreeModel):
2134         (WebInspector.ResourceTreeModel.prototype._addFrame):
2135         (WebInspector.ResourceTreeModel.prototype._addSecurityOrigin): Added.
2136         (WebInspector.ResourceTreeModel.prototype._removeSecurityOrigin): Added.
2137         (WebInspector.ResourceTreeModel.prototype._handleMainFrameDetached): Added.
2138         (WebInspector.ResourceTreeModel.prototype._frameNavigated):
2139         (WebInspector.ResourceTreeModel.prototype._frameDetached):
2140
2141 2013-02-20  Dan Carney  <dcarney@google.com>
2142
2143         [v8] ScriptValue has dangerous copy semantics
2144         https://bugs.webkit.org/show_bug.cgi?id=110206
2145
2146         Reviewed by Kentaro Hara.
2147
2148         Update ScriptValue to used a SharedPersistent,
2149         making it impossible to return dead references.
2150
2151         No new tests. No change in functionality.
2152
2153         * bindings/v8/ScriptValue.cpp:
2154         (WebCore::ScriptValue::serialize):
2155         (WebCore::ScriptValue::getString):
2156         (WebCore::ScriptValue::toString):
2157         (WebCore::ScriptValue::toInspectorValue):
2158         * bindings/v8/ScriptValue.h:
2159         (WebCore::ScriptValue::ScriptValue):
2160         (WebCore::ScriptValue::operator=):
2161         (WebCore::ScriptValue::operator==):
2162         (WebCore::ScriptValue::isEqual):
2163         (WebCore::ScriptValue::isFunction):
2164         (WebCore::ScriptValue::isNull):
2165         (WebCore::ScriptValue::isUndefined):
2166         (WebCore::ScriptValue::isObject):
2167         (WebCore::ScriptValue::hasNoValue):
2168         (WebCore::ScriptValue::clear):
2169         (ScriptValue):
2170         (WebCore::ScriptValue::v8Value):
2171         (WebCore::ScriptValue::v8ValueRaw):
2172         * bindings/v8/SharedPersistent.h:
2173         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2174         (WebCore::InjectedScriptHost::scriptValueAsNode):
2175         * bindings/v8/custom/V8MessageEventCustom.cpp:
2176         (WebCore::V8MessageEvent::dataAttrGetterCustom):
2177
2178 2013-02-20  Andrey Lushnikov  <lushnikov@chromium.org>
2179
2180         Web Inspector: highlight undefined word in JavaScript
2181         https://bugs.webkit.org/show_bug.cgi?id=109585
2182
2183         Reviewed by Vsevolod Vlasov.
2184
2185         Test enhancement: inspector/syntax-highlight-javascript.html
2186
2187         Add global object value properties to tokenizer and add a css style
2188         class to highlight "undefined" with gray color.
2189
2190         * inspector/front-end/SourceJavaScriptTokenizer.js:
2191         (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
2192         * inspector/front-end/SourceJavaScriptTokenizer.re2js:
2193         * inspector/front-end/inspectorSyntaxHighlight.css:
2194         (.webkit-javascript-undef):
2195
2196 2013-02-20  Mike West  <mkwst@chromium.org>
2197
2198         Use EventPathWalker rather than parentNode() to normalize event targets in EventHandler.
2199         https://bugs.webkit.org/show_bug.cgi?id=110037
2200
2201         Reviewed by Ryosuke Niwa.
2202
2203         We need to teach EventHandler about Shadow DOM in a few places in order
2204         to ensure that we properly target events dispatched upon text nodes.
2205         Rather than naively grabbing the text node's direct parent via
2206         parentNode(), we need to account for the case in which the text node is
2207         distributed[1] to an insertion point inside a shadow host.
2208         EventPathWalker::parent understands these relationships, and should
2209         be used when dealing with mouse, drag, and touch events.
2210
2211         [1]: http://www.w3.org/TR/shadow-dom/#dfn-distribution
2212
2213         * page/EventHandler.cpp:
2214         (WebCore::EventHandler::handleMouseDraggedEvent):
2215         (WebCore::EventHandler::handleTouchEvent):
2216         (WebCore::EventHandler::passGestureEventToWidgetIfPossible):
2217         (WebCore::EventHandler::updateDragAndDrop):
2218             Refactor parentNode callsites to use EventPathWalker::parent().
2219
2220 2013-02-20  Vsevolod Vlasov  <vsevik@chromium.org>
2221
2222         Web Inspector: [Regression] Search in ProfilesPanel is broken
2223         https://bugs.webkit.org/show_bug.cgi?id=110312
2224
2225         Reviewed by Pavel Feldman.
2226
2227         * inspector/front-end/CPUProfileView.js:
2228         (WebInspector.CPUProfileView.prototype.matchesQuery):
2229         (WebInspector.CPUProfileView.prototype.performSearch):
2230
2231 2013-02-20  Eugene Klyuchnikov  <eustas@chromium.org>
2232
2233         Web Inspector: View.markAsRoot should never be invoked on attached view.
2234         https://bugs.webkit.org/show_bug.cgi?id=110224
2235
2236         Reviewed by Pavel Feldman.
2237
2238         This will cause CSS loading problems after "show".
2239
2240         * inspector/front-end/Drawer.js:
2241         Ensure child view is detached before marked as root.
2242         * inspector/front-end/View.js:
2243         (WebInspector.View.prototype.markAsRoot): Added assertion.
2244
2245 2013-02-20  Nils Barth  <nbarth@google.com>
2246
2247         File upload control doesn't apply CSS vertical padding or border to file name
2248         https://bugs.webkit.org/show_bug.cgi?id=109011
2249
2250         Reviewed by Hajime Morrita.
2251
2252         Test: fast/forms/file/file-vertical-padding-border.html
2253
2254         * rendering/RenderFileUploadControl.cpp:
2255             Add borderTop() and paddingTop() when computing position.
2256         (WebCore::RenderFileUploadControl::paintObject):
2257
2258 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
2259
2260         Few methods in WebGLRenderingContext.idl have incorrect signatures
2261         https://bugs.webkit.org/show_bug.cgi?id=110305
2262
2263         Reviewed by Kentaro Hara.
2264
2265         * html/canvas/WebGLRenderingContext.idl:
2266
2267 2013-02-19  Tim Horton  <timothy_horton@apple.com>
2268
2269         Clarify isInWindow vs. isVisible path through to RenderLayerCompositor
2270         https://bugs.webkit.org/show_bug.cgi?id=110261
2271         <rdar://problem/13196122>
2272
2273         Reviewed by Simon Fraser.
2274
2275         Remove RenderLayerCompositor::willMoveOffscreen/didMoveOnscreen.
2276         Add RenderLayerCompositor::setIsInWindow, and pipe in-window changes through from Page::setIsInWindow.
2277         Adjust a few Document functions that previously called RenderView::didMoveOnscreen/willMoveOffscreen to use setIsInWindow instead, since in-window state changes are occurring when attaching and detaching documents.
2278
2279         * WebCore.exp.in: Export Page::setIsInWindow.
2280         * dom/Document.cpp:
2281         (WebCore::Document::attach): Use setIsInWindow instead of didMoveOnscreen.
2282         (WebCore::Document::documentWillBecomeInactive): Use setIsInWindow instead of willMoveOffscreen.
2283         (WebCore::Document::documentDidResumeFromPageCache): Use setIsInWindow instead of didMoveOnscreen.
2284         * page/FrameView.cpp:
2285         (WebCore::FrameView::didMoveOnscreen):
2286         (WebCore::FrameView::willMoveOffscreen):
2287         RenderView doesn't care about moving on/offscreen, just in-window state.
2288         (WebCore::FrameView::setIsInWindow): Added. Forward isInWindow changes to our RenderView.
2289         * page/FrameView.h:
2290         (FrameView): Add setIsInWindow.
2291         * page/Page.cpp:
2292         (WebCore::Page::setIsInWindow): Added. Forward isInWindow changes to the Page's FrameViews.
2293         * page/Page.h:
2294         (Page): Add setIsInWindow.
2295         (WebCore::Page::isInWindow):
2296         * rendering/RenderLayerCompositor.cpp:
2297         (WebCore::RenderLayerCompositor::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
2298         since that's the only change we actually care about.
2299         * rendering/RenderLayerCompositor.h:
2300         (RenderLayerCompositor): Add setIsInWindow.
2301         * rendering/RenderView.cpp:
2302         (WebCore::RenderView::setIsInWindow): Added. Replace willMoveOffscreen/didMoveOnscreen with setIsInWindow,
2303         since that's the only change RenderLayerCompositor actually cares about.
2304         * rendering/RenderView.h:
2305         (RenderView): Add setIsInWindow.
2306
2307 2013-02-19  Eugene Klyuchnikov  <eustas@chromium.org>
2308
2309         Web Inspector: Cleanup and add JSDocs to SuggestBox
2310         https://bugs.webkit.org/show_bug.cgi?id=110202
2311
2312         Reviewed by Pavel Feldman.
2313
2314         SuggestBox contains some obsolete/unused code and not fully
2315         covered with JSDocs.
2316
2317         * inspector/front-end/SuggestBox.js:
2318         (WebInspector.SuggestBox.prototype.visible):
2319         Replaced getter with function.
2320         (WebInspector.SuggestBox.prototype._onScrollOrResize):
2321         Use camel-case for function names.
2322         (WebInspector.SuggestBox.prototype._onBoxMouseDown): Ditto.
2323         (WebInspector.SuggestBox.prototype.updateSuggestions):
2324         Removed unused code.
2325         (WebInspector.SuggestBox.prototype.hide): Adopt changes.
2326         (WebInspector.SuggestBox.prototype._applySuggestion): Ditto.
2327         * inspector/front-end/TextPrompt.js:
2328         (WebInspector.TextPrompt.prototype.isSuggestBoxVisible): Ditto.
2329
2330 2013-02-19  Hayato Ito <hayato@chromium.org>
2331
2332         Calculate EventPath in EventDispatcher's constructor.
2333         https://bugs.webkit.org/show_bug.cgi?id=109905
2334
2335         Reviewed by Dimitri Glazkov.
2336
2337         This patch calculates an EventPath in EventDispatcher's
2338         constructor and removes EventDispatcher::ensureEventPath().
2339         We don't have any reason to initialize an EventPath lazily.
2340
2341         No tests. No change in behavior.
2342
2343         * dom/EventDispatcher.cpp:
2344         (WebCore::EventDispatcher::EventDispatcher):
2345         (WebCore::EventDispatcher::dispatch):
2346         * dom/EventDispatcher.h:
2347         (WebCore::EventDispatcher::eventPath):
2348         (EventDispatcher):
2349         * dom/FocusEvent.cpp:
2350         (WebCore::FocusEventDispatchMediator::dispatchEvent):
2351         (WebCore::BlurEventDispatchMediator::dispatchEvent):
2352         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
2353         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
2354         * dom/MouseEvent.cpp:
2355         (WebCore::MouseEventDispatchMediator::dispatchEvent):
2356
2357 2013-02-19  Simon Fraser  <simon.fraser@apple.com>
2358
2359         Fix TileCache tile size when zoomed on slow-scrolling site
2360         https://bugs.webkit.org/show_bug.cgi?id=110289
2361
2362         Reviewed by Tim Horton.
2363         
2364         In slow scrolling mode, we use the tile coverage rect as the tile size
2365         (so a single tile covers the viewport). When zoomed, the tile coverage rect
2366         shrinks relative to the TileCache, so scale the tile size back up.
2367
2368         Test: platform/mac-wk2/tiled-drawing/tile-size-slow-zoomed.html
2369
2370         * platform/graphics/ca/mac/TileCache.mm:
2371         (WebCore::TileCache::tileSizeForCoverageRect):
2372
2373 2013-02-19  Hayato Ito  <hayato@chromium.org>
2374
2375         Rename AncestorChainWalker.
2376         https://bugs.webkit.org/show_bug.cgi?id=110146
2377
2378         Reviewed by Dimitri Glazkov.
2379
2380         Rename AncestorChainWalker to EventPathWalker.
2381         The term of EventPath is used in DOM Core spec.  EventPath was
2382         already introduced into a EventContext.h in r112055. We should
2383         spread this term into the Walker class since they share the same
2384         purpose.
2385
2386         No new tests, no behavior change.
2387
2388         * CMakeLists.txt:
2389         * GNUmakefile.list.am:
2390         * Target.pri:
2391         * WebCore.gypi:
2392         * WebCore.xcodeproj/project.pbxproj:
2393         * dom/DOMAllInOne.cpp:
2394         * dom/EventDispatcher.cpp:
2395         * dom/EventPathWalker.cpp: Renamed from Source/WebCore/dom/AncestorChainWalker.cpp.
2396         (WebCore):
2397         (WebCore::EventPathWalker::EventPathWalker):
2398         (WebCore::EventPathWalker::parent): parent() is now a static function to cover simple use cases.
2399         (WebCore::EventPathWalker::moveToParent): Renamed from parent().
2400         * dom/EventPathWalker.h: Renamed from Source/WebCore/dom/AncestorChainWalker.h.
2401         (WebCore):
2402         (EventPathWalker):
2403         (WebCore::EventPathWalker::node):
2404         (WebCore::EventPathWalker::isVisitingInsertionPointInReprojection): Renamed from isCrossingInsertionPoint().
2405         * dom/EventRetargeter.cpp:
2406         (WebCore::EventRetargeter::calculateEventPath):
2407         (WebCore::EventRetargeter::buildRelatedNodeMap):
2408         * dom/TreeScope.cpp:
2409         (WebCore::TreeScope::focusedNode):
2410         * html/HTMLLIElement.cpp:
2411         (WebCore::HTMLLIElement::attach):
2412         * page/EventHandler.cpp:
2413         (WebCore::EventHandler::updateMouseEventTargetNode):
2414         (WebCore::EventHandler::handleWheelEvent):
2415
2416 2013-02-19  Dean Jackson  <dino@apple.com>
2417
2418         Snapshotted plugin label should not be selectable
2419         https://bugs.webkit.org/show_bug.cgi?id=110286
2420
2421         Reviewed by Simon Fraser.
2422
2423         Update the CSS to make it clear that you should click
2424         on a snapshot (use the finger pointer) and disable
2425         text selection.
2426
2427         * css/plugIns.css:
2428         (embed::-webkit-snapshotted-plugin-content .snapshot-container .snapshot-label):
2429
2430 2013-02-19  Hans Muller  <hmuller@adobe.com>
2431
2432         [CSS Exclusions] Enable shape-inside support for ellipses
2433         https://bugs.webkit.org/show_bug.cgi?id=109868
2434
2435         Reviewed by Dirk Schulze.
2436
2437         This change is very similar to the one recently made for circles:
2438         removed the test that disabled ellipse values for shape-inside.
2439         The remaining support for ellipses, which is based on rounded rectangles
2440         whose width/height is equal to their radiusX/radiusY, has not changed.
2441
2442         Test: fast/exclusions/shape-inside/shape-inside-ellipse.html
2443
2444         * rendering/ExclusionShapeInsideInfo.h:
2445         (WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.
2446
2447 2013-02-19  Uday Kiran  <udaykiran@motorola.com>
2448
2449         'round' not implemented in border-image
2450         https://bugs.webkit.org/show_bug.cgi?id=14185
2451
2452         Reviewed by David Hyatt.
2453
2454         Add rendering support for 'round' keyword of border-image-repeat CSS property
2455         http://dev.w3.org/csswg/css3-background/#border-image-repeat
2456         Rebased original patch by Benjamin Otte <otte@gnome.org> and made few fixes.
2457
2458         Test: fast/borders/border-image-02.html
2459
2460         * platform/graphics/GraphicsContext.cpp:
2461         (WebCore::GraphicsContext::drawTiledImage):
2462         * platform/graphics/GraphicsContext.h:
2463         (GraphicsContext):
2464         * platform/graphics/Image.cpp:
2465         (WebCore::Image::drawTiled):
2466         * platform/graphics/Image.h:
2467         (Image):
2468         * rendering/RenderBoxModelObject.cpp:
2469         (WebCore::RenderBoxModelObject::paintNinePieceImage): For 'round' keyword,
2470         the image is tiled (repeated) to fill the area. If it does not fill the area
2471         with a whole number of tiles, the image is rescaled so that it does.
2472
2473 2013-02-19  Conrad Shultz  <conrad_shultz@apple.com>
2474
2475         Allow UI clients to handle vertical wheel events.
2476         https://bugs.webkit.org/show_bug.cgi?id=110006
2477
2478         Reviewed by Tim Horton.
2479
2480         Add API to allow matching changes in WebKit2 to control rubber-banding behavior at vertical page extrema.
2481         If rubber-banding is disabled during a scroll event that would otherwise trigger rubber-banding, dispatch
2482         didNotHandleWheelEvent() to the page UI client.
2483
2484         * WebCore.exp.in:
2485         Export new rubber-banding API.
2486
2487         * page/Page.cpp:
2488         (WebCore):
2489         (WebCore::Page::rubberBandsAtBottom):
2490         Proxy for the corresponding function in ScrollingCoordinator.
2491         (WebCore::Page::setRubberBandsAtBottom):
2492         Ditto.
2493         (WebCore::Page::rubberBandsAtTop):
2494         Ditto.
2495         (WebCore::Page::setRubberBandsAtTop):
2496         Ditto.
2497
2498         * page/Page.h:
2499         (Page):
2500         Declare new rubber-banding API (above).
2501
2502         * page/scrolling/ScrollingCoordinator.h:
2503         (WebCore::ScrollingCoordinator::rubberBandsAtBottom):
2504         Stub API implementation.
2505         (WebCore::ScrollingCoordinator::setRubberBandsAtBottom):
2506         Ditto.
2507         (WebCore::ScrollingCoordinator::rubberBandsAtTop):
2508         Ditto.
2509         (WebCore::ScrollingCoordinator::setRubberBandsAtTop):
2510         Ditto.
2511
2512         * page/scrolling/ScrollingTree.cpp:
2513         (WebCore::ScrollingTree::ScrollingTree):
2514         Initialize new member variables.
2515         (WebCore::ScrollingTree::setMainFramePinState):
2516         Set top/bottom pinned states.
2517         (WebCore::ScrollingTree::rubberBandsAtBottom):
2518         New accessor function.
2519         (WebCore::ScrollingTree::setRubberBandsAtBottom):
2520         New mutator function.
2521         (WebCore::ScrollingTree::rubberBandsAtTop):
2522         New accessor function.
2523         (WebCore::ScrollingTree::setRubberBandsAtTop):
2524         New mutator function.
2525         (WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
2526         Start a vertical swipe event if the frame is pinned at the top or bottom and associated rubber-banding is disabled.
2527
2528         * page/scrolling/ScrollingTree.h:
2529         (ScrollingTree):
2530         Declare new rubber-banding API and associated member variables.
2531
2532         * page/scrolling/mac/ScrollingCoordinatorMac.h:
2533         (ScrollingCoordinatorMac):
2534         Declare API overrides.
2535
2536         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2537         (WebCore::ScrollingCoordinatorMac::rubberBandsAtBottom):
2538         Method override; proxy to corresponding function in ScrollingTree.
2539         (WebCore::ScrollingCoordinatorMac::setRubberBandsAtBottom):
2540         Ditto.
2541         (WebCore::ScrollingCoordinatorMac::rubberBandsAtTop):
2542         Ditto.
2543         (WebCore::ScrollingCoordinatorMac::setRubberBandsAtTop):
2544         Ditto.
2545
2546         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
2547         (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
2548         Remove trailing whitespace.
2549         (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
2550         Calculate and pass vertical pinning state to ScrollingTree::setMainFramePinState().
2551
2552 2013-02-19  Simon Fraser  <simon.fraser@apple.com>
2553
2554         Rubber-banding should not affect the visibleRect of the TileCache
2555         https://bugs.webkit.org/show_bug.cgi?id=110278
2556
2557         Reviewed by Beth Dakin.
2558         
2559         When rubber-banding a slow-scrolling page, or image document, we would constantly re-create
2560         the bottom tile because of the logic that adapts the tile size to the visible rect when slow
2561         scrolling.
2562         
2563         Avoid that by ensuring that the visibleRect is not affected by rubber-banding. This is done
2564         via a GraphicsLayerClient function that allows RenderLayerCompositor to provide a custom
2565         position for the scroll layer. We constrain that scroll position to remove the overhang that
2566         results from rubber-banding.
2567
2568         I wasn't able to make a test for this, even with internals.setScrollViewPosition().
2569
2570         * platform/graphics/GraphicsLayerClient.h:
2571         (GraphicsLayerClient):
2572         (WebCore::GraphicsLayerClient::customPositionForVisibleRectComputation):
2573         * platform/graphics/ca/GraphicsLayerCA.cpp:
2574         (WebCore::GraphicsLayerCA::computeVisibleRect):
2575         * rendering/RenderLayerCompositor.cpp:
2576         (WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation):
2577         * rendering/RenderLayerCompositor.h:
2578
2579 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
2580
2581         Fix crash in preloading scanning base tags with no href attribute for background parser
2582         https://bugs.webkit.org/show_bug.cgi?id=110276
2583
2584         Reviewed by Eric Seidel.
2585
2586         Previously a <base> tag without an href attribute (like the one in fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html)
2587         would crash the background parser's preload scanner.
2588
2589         To fix that, we only call stripLeadingAndTrailingHTMLSpaces() if the href attribute is non-null. This matches the main thread parser.
2590
2591         Along with this, I decided to templatize updatePredictedBaseURL() so that the main and background parser can share the same impl.
2592
2593         This required making CompactHTMLToken and HTMLToken a little more similar:
2594         1. Give HTMLToken a getAttributeItem() method.
2595         2. Move CompactAttribute to CompactHTMLToken::Attribute and make it a struct.
2596
2597         No new tests because covered by existing tests.
2598
2599         * html/parser/AtomicHTMLToken.h:
2600         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
2601         * html/parser/CompactHTMLToken.cpp:
2602         (SameSizeAsCompactHTMLToken):
2603         (WebCore::CompactHTMLToken::CompactHTMLToken):
2604         (WebCore::CompactHTMLToken::getAttributeItem):
2605         (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
2606         * html/parser/CompactHTMLToken.h:
2607         (WebCore::CompactHTMLToken::Attribute::Attribute):
2608         (Attribute):
2609         (WebCore::CompactHTMLToken::attributes):
2610         (CompactHTMLToken):
2611         (WebCore::CompactHTMLToken::publicIdentifier):
2612         (WebCore::CompactHTMLToken::systemIdentifier):
2613         * html/parser/HTMLParserIdioms.h:
2614         (WebCore):
2615         (WebCore::stripLeadingAndTrailingHTMLSpaces):
2616         * html/parser/HTMLPreloadScanner.cpp:
2617         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
2618         (WebCore):
2619         (WebCore::TokenPreloadScanner::updatePredictedBaseURL):
2620         * html/parser/HTMLPreloadScanner.h:
2621         * html/parser/HTMLToken.h:
2622         (WebCore::HTMLToken::getAttributeItem):
2623         (HTMLToken):
2624
2625 2013-02-19  Mark Lam  <mark.lam@apple.com>
2626
2627         Introducing AbstractSQLTransaction and AbstractSQLTransactionBackend.
2628         https://bugs.webkit.org/show_bug.cgi?id=110273.
2629
2630         Reviewed by Anders Carlsson.
2631
2632         This is part of the webdatabase refactoring for webkit2.
2633         - Also changed the frontend and backend to only refer to the
2634           abstract interface of each other.
2635
2636         No new tests.
2637
2638         * Modules/webdatabase/AbstractSQLTransaction.h: Added.
2639         (AbstractSQLTransaction):
2640         (WebCore::AbstractSQLTransaction::~AbstractSQLTransaction):
2641         * Modules/webdatabase/AbstractSQLTransactionBackend.h: Added.
2642         (AbstractSQLTransactionBackend):
2643         (WebCore::AbstractSQLTransactionBackend::~AbstractSQLTransactionBackend):
2644         * Modules/webdatabase/SQLTransaction.cpp:
2645         (WebCore::SQLTransaction::hasCallback):
2646         (WebCore::SQLTransaction::hasSuccessCallback):
2647         (WebCore::SQLTransaction::hasErrorCallback):
2648         (WebCore::SQLTransaction::setBackend):
2649         * Modules/webdatabase/SQLTransaction.h:
2650         (SQLTransaction):
2651         * Modules/webdatabase/SQLTransactionBackend.cpp:
2652         (WebCore::SQLTransactionBackend::create):
2653         (WebCore::SQLTransactionBackend::SQLTransactionBackend):
2654         * Modules/webdatabase/SQLTransactionBackend.h:
2655         (SQLTransactionBackend):
2656         * Modules/webdatabase/SQLTransactionStateMachine.h:
2657
2658 2013-02-19  Emil A Eklund  <eae@chromium.org>
2659
2660         Change computeStickyPositionConstraints to use LayoutBoxExtent for margins
2661         https://bugs.webkit.org/show_bug.cgi?id=108872
2662
2663         Reviewed by Levi Weintraub.
2664         
2665         Change RenderBoxModelObject::computeStickyPositionConstraints to
2666         use a LayoutBoxExtent to represent margins.
2667
2668         No new tests, no change in functionality.
2669
2670         * platform/graphics/LayoutRect.h:
2671         (WebCore::LayoutRect::contract):
2672         Add version contract methods that takes a LayoutBoxExtent object.
2673         
2674         * platform/graphics/LayoutSize.h:
2675         (WebCore::LayoutSize::shrink):
2676         Add shrink method.
2677         
2678         * rendering/RenderBoxModelObject.cpp:
2679         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
2680         Change to use a LayoutBoxExtent object to represent margins.
2681
2682 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
2683
2684         Disable ASSERT(!hasInsertionPoint()) for background parser
2685         https://bugs.webkit.org/show_bug.cgi?id=110251
2686
2687         Reviewed by Adam Barth.
2688
2689         The background parser crashes about 10 layout tests by hitting ASSERT(!hasInsertionPoint()).
2690         Now, finish() is the thing that closes the HTMLInputStream which removes the insertion point.
2691         In these tests, a document.open() calls insert() which clears the HTMLInputStream which causes
2692         there to be an insertion point again.
2693
2694         With the main thread parser, insert() is called before finish() so the ASSERT passes.
2695         However, with the threaded parser, finish() is called before insert(), so we fail the ASSERT.
2696
2697         This patch disables the ASSERT for the background parser because m_input isn't really relevant.
2698         This causes us to pass the tests. However, there is a risk that now hasInsertionPoint() may be incorrect
2699         and Document has a non-debug branch that tests hasInsertionPoint().
2700
2701         No new tests because covered by existing tests.
2702
2703         * html/parser/HTMLDocumentParser.cpp:
2704         (WebCore::HTMLDocumentParser::prepareToStopParsing):
2705         (WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd):
2706
2707 2013-02-19  Hans Muller  <hmuller@adobe.com>
2708
2709         [CSS Exclusions] Enable shape-inside support for ellipses
2710         https://bugs.webkit.org/show_bug.cgi?id=109868
2711
2712         Reviewed by Dirk Schulze.
2713
2714         This change is very similar to the one recently made for circles:
2715         removed the test that disabled ellipse values for shape-inside.
2716         The remaining support for ellipses, which is based on rounded rectangles
2717         whose width/height is equal to their radiusX/radiusY, has not changed.
2718
2719         Test: fast/exclusions/shape-inside/shape-inside-ellipse.html
2720
2721         * rendering/ExclusionShapeInsideInfo.h:
2722         (WebCore::ExclusionShapeInsideInfo::isEnabledFor): No longer disallows any BasicShape type.
2723
2724 2013-02-19  Simon Fraser  <simon.fraser@apple.com>
2725
2726         Separate constraining for overhang from fixed-position zooming behavior in scrollOffsetForFixedPosition()
2727         https://bugs.webkit.org/show_bug.cgi?id=110267
2728
2729         Reviewed by Beth Dakin.
2730
2731         The static scrollOffsetForFixedPosition() function in ScrollingCoordinator did two things;
2732         it constrained the scroll position when rubber-banding, and applied the special scaling for
2733         fixed position when zoomed.
2734         
2735         Separate these out so that we can use the rubber-banding constrained elsewhere.
2736
2737         * page/FrameView.cpp:
2738         (WebCore::FrameView::scrollOffsetForFixedPosition): The static function is here now.
2739         * page/FrameView.h:
2740         * page/scrolling/ScrollingCoordinator.cpp: Code moved to FrameView.
2741         * page/scrolling/ScrollingCoordinator.h:
2742         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
2743         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition): scrollOffsetForFixedPosition()
2744         is now on FrameView.
2745         * platform/ScrollableArea.cpp:
2746         (WebCore::constrainedScrollPosition): Helper to constrain one axis for overhang.
2747         (WebCore::ScrollableArea::constrainScrollPositionForOverhang): Static function that
2748         can be called by FrameView::scrollOffsetForFixedPosition().
2749         * platform/ScrollableArea.h: Static function constrainScrollPositionForOverhang()
2750         so we can call it from another thread. Also a member fuction of the same name, which takes
2751         the scrollPosition as input (so we can feed it a layer position in a later patch).
2752
2753 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
2754
2755         Fix checkThatTokensAreSafeToSendToAnotherThread() now that the preload scanner is enabled
2756         https://bugs.webkit.org/show_bug.cgi?id=110258
2757
2758         Reviewed by Adam Barth.
2759
2760         We were hitting this ASSERT on numerous tests with the background parser enabled. This copy fixes the assertion.
2761
2762         No new tests becuase covered by existing tests.
2763
2764         * html/parser/HTMLResourcePreloader.h:
2765         (WebCore::PreloadRequest::setCharset):
2766
2767 2013-02-19  Tony Gentilcore  <tonyg@chromium.org>
2768
2769         Fix typo: inititatorFor->initiatorFor
2770         https://bugs.webkit.org/show_bug.cgi?id=110260
2771
2772         Reviewed by Adam Barth.
2773
2774         No new tests because no changed functionality.
2775
2776         * html/parser/HTMLPreloadScanner.cpp:
2777         (WebCore::TokenPreloadScanner::initiatorFor):
2778         (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
2779         * html/parser/HTMLPreloadScanner.h:
2780
2781 2013-02-19  Tony Chang  <tony@chromium.org>
2782
2783         Convert 3 settings to use Settings.in
2784         https://bugs.webkit.org/show_bug.cgi?id=109875
2785
2786         Reviewed by Ryosuke Niwa.
2787
2788         Convert mediaEnabled, applicationChromeMode and DOMPasteAllowed to
2789         use Settings.in. They previously had inconsistently named setters.
2790
2791         No new tests, this is a refactoring.
2792
2793         * Source/WebCore/WebCore.exp.in: Remove symbols that are now inlined from exports.
2794         * Source/WebCore/WebCore.order: Remove symbols that no longer exist.
2795         * dom/make_names.pl:
2796         (printConstructorInterior): Rename isMediaEnabled to mediaEnabled.
2797         (printWrapperFunctions): Rename isMediaEnabled to mediaEnabled.
2798         * editing/EditorCommand.cpp:
2799         (WebCore::supportedPaste): Rename isDOMPasteAllowed to DOMPasteAllowed.
2800         * page/Settings.cpp:
2801         (WebCore::Settings::Settings): Remove custom code.
2802         * page/Settings.h:
2803         (Settings): Remove custom code.
2804         * page/Settings.in: Add entries for mediaEnabled, applicationChromeMode and DOMPasteAllowed.
2805         * page/make_settings.pl:
2806         (setterFunctionName): Expand uppercase rules to include DOM.
2807         * rendering/RenderTheme.cpp:
2808         (WebCore::RenderTheme::isDefault): Rename inApplicationChromeMode to applicationChromeMode.
2809         * rendering/RenderThemeWin.cpp:
2810         (WebCore::documentIsInApplicationChromeMode): Rename inApplicationChromeMode to applicationChromeMode.
2811
2812 2013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>
2813
2814         [CSS Grid Layout] Refactor the code in preparation of auto placement support
2815         https://bugs.webkit.org/show_bug.cgi?id=110244
2816
2817         Reviewed by Ojan Vafai.
2818
2819         Test: fast/css-grid-layout/grid-auto-flow-resolution.html
2820
2821         In order to support auto placement, we need to iterate over the grid items with
2822         auto row / column several times. This changes makes us do that in a very simple,
2823         not-yet-conformant way. While touching this code, the distinction between grid-auto-flow
2824         none and row / column was better drawn (and enforced).
2825
2826         * rendering/RenderGrid.cpp:
2827         (WebCore::RenderGrid::resolveGridPositionFromStyle):
2828         Made it illegal to call resolveGridPositionFromStyle if the grid track is auto and
2829         grid-auto-flow is not none. This would catch bad use of the function.
2830
2831         (WebCore::RenderGrid::maximumIndexInDirection):
2832         Updated to bail out if the grid track is auto. Also improved the comment.
2833
2834         (WebCore::RenderGrid::placeItemsOnGrid):
2835         Updated the function to do several iterations. Also handled the grid-auto-flow: none
2836         case differently as it shouldn't need the extra iteration(s).
2837
2838 2013-02-19  David Hyatt  <hyatt@apple.com>
2839
2840         [New Multicolumn] REGRESSION: RenderMultiColumnSets broken by the RenderRegion -> RenderBlock subclassing.
2841         https://bugs.webkit.org/show_bug.cgi?id=110239.
2842
2843         Reviewed by Simon Fraser.
2844
2845         Test: fast/multicol/newmulticol/column-rules-fixed-height.html
2846
2847         * rendering/RenderBlock.cpp:
2848         (WebCore::RenderBlock::columnRectAt):
2849         Make sure the columnGap() in the old multicolumn code is always expressed as a LayoutUnit. This was the
2850         one place where it was still an int.
2851
2852         * rendering/RenderFlowThread.cpp:
2853         (WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
2854         Rework the painting of flow thread portions to account for the fact that regions paint at an integral
2855         translation. This means you have to construct clipping around that integral destination. Subpixel layout
2856         regions did not clip correctly as a result of this issue.
2857
2858         * rendering/RenderMultiColumnSet.cpp:
2859         (WebCore::RenderMultiColumnSet::columnRectAt):
2860         Fix the same bug with columnGap() that the old column code has, i.e., one spot where it was an int.
2861
2862         (WebCore::RenderMultiColumnSet::paintObject):
2863         RenderMultiColumnSet should be using paintObject and not paint and it needs to check for visibility
2864         and phases now that it is a RenderBlock subclass.
2865
2866         (WebCore::RenderMultiColumnSet::paintColumnRules):
2867         Fix the bug that Opera guys fixed in the old multi-column code. They didn't patch the new code, so this
2868         takes care of that.
2869
2870         * rendering/RenderMultiColumnSet.h:
2871         (RenderMultiColumnSet):
2872         Change to use paintObject instead of paint.
2873
2874 2013-02-19  Branimir Lambov  <blambov@google.com>
2875
2876         Fix 'slice' aspect ratio calculation
2877         https://bugs.webkit.org/show_bug.cgi?id=99984
2878
2879         Reviewed by Dirk Schulze.
2880
2881         Previously the calculation for the 'slice' aspect ratio would incorrectly calculate the
2882         source rect location based on the destination rect offset. This caused our source rect to be
2883         incorrect, and sometimes render outside the visible area completely. After this patch
2884         our implementation matches the implementation of both Gecko and Presto.
2885
2886         The relevant spec section:
2887         http://www.w3.org/TR/SVG/single-page.html#coords-PreserveAspectRatioAttribute
2888
2889         Tests: svg/as-image/image-preserveAspectRatio-all.svg
2890                svg/filters/feImage-preserveAspectRatio-all.svg
2891
2892         * svg/SVGPreserveAspectRatio.cpp:
2893         (WebCore::SVGPreserveAspectRatio::transformRect):
2894
2895 2013-02-19  Kentaro Hara  <haraken@google.com>
2896
2897         [V8] ScriptRunner::runCompiledScript() should return Handle<Value>() when OOM occurs
2898         https://bugs.webkit.org/show_bug.cgi?id=110254
2899
2900         Reviewed by Adam Barth.
2901
2902         Chromium bug: https://code.google.com/p/chromium/issues/detail?id=176951
2903
2904         Currently ScriptRunner::runCompiledScript() calls
2905         ASSERT(script.IsEmpty()) when OOM occurs. The Chromium bug is
2906         hitting the ASSERT(). The ASSERT() does not make sense at all.
2907         Instead, we should return an empty handle when OOM occurs.
2908
2909         No tests. The bug happens only when OOM occurs.
2910
2911         * bindings/v8/ScriptRunner.cpp:
2912         (WebCore::ScriptRunner::runCompiledScript):
2913
2914 2013-02-19  Elliott Sprehn  <esprehn@chromium.org>
2915
2916         Support both MutationObserver and WebKitMutationObserver
2917         https://bugs.webkit.org/show_bug.cgi?id=109776
2918
2919         Reviewed by Ojan Vafai.
2920
2921         We should allow new MutationObserver now that we support parser generated
2922         mutations. This leaves the old prefixed constructor in until we decide
2923         people don't depend on it.
2924
2925         Test: fast/dom/MutationObserver/mutation-observer-prefix.html
2926
2927         * page/DOMWindow.idl:
2928
2929 2013-02-19  Elliott Sprehn  <esprehn@chromium.org>
2930
2931         Remove RenderText::updateText
2932         https://bugs.webkit.org/show_bug.cgi?id=109991
2933
2934         Reviewed by Eric Seidel.
2935
2936         There's no reason for the generic RenderText::updateText virtual hook
2937         anymore now that r143060 made RenderQuote stop setting dirty bits during
2938         layout since the hook is only used by RenderCounter.
2939
2940         Instead add updateCounterIfNeeded and make it clear this is a hack for
2941         counters.
2942
2943         * rendering/RenderBlockLineLayout.cpp:
2944         (WebCore::updateCounterIfNeeded): Added, not handles the counter specific hack.
2945         (WebCore::dirtyLineBoxesForRenderer):
2946         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2947         * rendering/RenderCounter.cpp:
2948         (WebCore::RenderCounter::updateCounter):
2949         * rendering/RenderCounter.h:
2950         (RenderCounter):
2951         * rendering/RenderQuote.cpp:
2952         (WebCore::RenderQuote::styleDidChange):
2953         (WebCore::RenderQuote::updateDepth):
2954         * rendering/RenderQuote.h:
2955         (RenderQuote):
2956         * rendering/RenderText.h:
2957         (RenderText):
2958
2959 2013-02-19  Tony Chang  <tony@chromium.org>
2960
2961         Border changes on tables with collapsed borders doesn't relayout table cells
2962         https://bugs.webkit.org/show_bug.cgi?id=109774
2963
2964         Reviewed by David Hyatt.
2965
2966         Test: fast/table/border-collapsing/dynamic-border-width-change.html
2967
2968         Changes to border top and border bottom on table rows also changes the size
2969         of the table cell causing a relayout to be needed.
2970
2971         * rendering/RenderTableRow.cpp:
2972         (WebCore::borderWidthChanged): Also include border top and bottom.
2973         (WebCore::RenderTableRow::styleDidChange): Remove logical from the helper function name.
2974
2975 2013-02-19  Kentaro Hara  <haraken@chromium.org>
2976
2977         Unreviewed. Rebaselined run-bindings-tests.
2978
2979         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2980         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
2981         * bindings/scripts/test/JS/JSTestObj.cpp:
2982         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
2983
2984 2013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>
2985
2986         [GTK][AC] Implement matrix transform animation with clutter ac backend
2987         https://bugs.webkit.org/show_bug.cgi?id=109848
2988
2989         Reviewed by Gustavo Noronha Silva.
2990
2991         Clutter 1.12 doesn't support additive transform animations yet, so the combination
2992         of two or more transformations(such as rotation after translation) runs unexpectedly.
2993         So we use a matrix transformation instead for the case.
2994
2995         Covered by existing animation tests.
2996
2997         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
2998         (WebCore::getValueFunctionNameForTransformOperation):
2999         (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
3000         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
3001         (WebCore::toClutterActorPropertyString): Add actor property "transform"
3002         (WebCore::clutterMatrixProgress): Handle interpolation between two matrices instead of default clutter_matrix_progress.
3003         (WebCore):
3004         (WebCore::PlatformClutterAnimation::supportsAdditiveValueFunction):
3005         (WebCore::PlatformClutterAnimation::setFromValue): for TransformationMatrix.
3006         (WebCore::PlatformClutterAnimation::setToValue): ditto.
3007         (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
3008         (WebCore::PlatformClutterAnimation::addTransformTransition):
3009         * platform/graphics/clutter/PlatformClutterAnimation.h:
3010         (PlatformClutterAnimation):
3011         * platform/graphics/clutter/TransformationMatrixClutter.cpp: Add copy constructor for CoglMatrix.
3012         (WebCore::TransformationMatrix::TransformationMatrix):
3013         (WebCore):
3014         * platform/graphics/transforms/TransformationMatrix.h:
3015         (TransformationMatrix):
3016
3017 2013-02-19  Kassy Coan  <kassycoan@chromium.org>
3018
3019         Update FeatureObserver on top level navigation in addition to page destruction.
3020         https://bugs.webkit.org/show_bug.cgi?id=109874
3021
3022         Reviewed by Adam Barth.
3023
3024         No new tests. Only effect is to histogram more frequently.
3025
3026         * loader/FrameLoader.cpp:
3027         (WebCore::FrameLoader::dispatchDidCommitLoad):
3028         * page/FeatureObserver.cpp:
3029         (WebCore::FeatureObserver::~FeatureObserver):
3030         (WebCore):
3031         (WebCore::FeatureObserver::updateMeasurements):
3032         (WebCore::FeatureObserver::didCommitLoad):
3033         * page/FeatureObserver.h:
3034         (FeatureObserver):
3035
3036 2013-02-19  Morten Stenshorne  <mstensho@opera.com>
3037
3038         Remove unnecessary (and problematic) copy-constructor from LayoutUnit
3039         https://bugs.webkit.org/show_bug.cgi?id=110121
3040
3041         This copy constructor does what a default copy constructor would do, so
3042         it's not necessary. Furthermore, this copy constructor is the only
3043         reason why LayoutUnit becomes non-POD, and that triggers a gdb bug,
3044         making it impossible to do things like "print location()" when inside
3045         some RenderBlock, for instance.
3046
3047         Gdb bug http://sourceware.org/bugzilla/show_bug.cgi?id=15154 reported.
3048
3049         Reviewed by Benjamin Poulain.
3050
3051         No tests. Apart from dealing with buggy debuggers, this is just code cleanup.
3052
3053         * platform/LayoutUnit.h:
3054
3055 2013-02-19  Emil A Eklund  <eae@chromium.org>
3056
3057         LayoutUnit::epsilon shouldn't be necessary to place floats
3058         https://bugs.webkit.org/show_bug.cgi?id=94000
3059
3060         Reviewed by Levi Weintraub.
3061         
3062         Currently, to get float placement correct, we need to have an
3063         epsilon tolerance in RenderBlock::computeLogicalLocationForFloat
3064         for the width of the line to fit them on. This really shouldn't
3065         be necessary, and probably indicates we're losing precision
3066         elsewhere.
3067         
3068         Remove epsilon as it no longer appears to be needed. All layout
3069         tests pass without it.
3070
3071         No new tests, covered by existing tests.
3072
3073         * rendering/RenderBlock.cpp:
3074         (WebCore::RenderBlock::computeLogicalLocationForFloat):
3075
3076 2013-02-19  Tim Volodine  <timvolodine@chromium.org>
3077
3078         Text Autosizing: prevent oscillation of font sizes during autosizing
3079         https://bugs.webkit.org/show_bug.cgi?id=108205
3080
3081         Reviewed by Kenneth Rohde Christiansen.
3082
3083         On some websites autosized font-sizes oscillate due to layouts caused by
3084         hovering or incremental page loading (and on other sites font sizes do
3085         eventually stabilize, but it takes many layouts before they reach a steady
3086         size). To prevent all these cases, we no longer allow the autosizing
3087         multiplier to change after it has been set (to a value other than 1).
3088
3089         This won't always give exactly the same results, but testing on 2000 top
3090         sites shows that this makes little difference in practice, and it prevents
3091         these very jarring cases. As a happy side-effect, this speeds up layouts
3092         as font sizes change less.
3093
3094         Test: fast/text-autosizing/oscillation-javascript-fontsize-change.html
3095
3096         * page/FrameView.cpp:
3097         (WebCore::FrameView::setFrameRect):
3098         * page/Settings.cpp:
3099         (WebCore::Settings::setTextAutosizingFontScaleFactor):
3100         * rendering/TextAutosizer.cpp:
3101         (WebCore::TextAutosizer::recalculateMultipliers):
3102         (WebCore):
3103         (WebCore::TextAutosizer::processContainer):
3104         * rendering/TextAutosizer.h:
3105         (TextAutosizer):
3106
3107 2013-02-19  Youenn Fablet  <youennf@gmail.com>
3108
3109         [EFL][DRT] http/tests/loading/307-after-303-after-post.html times out
3110         https://bugs.webkit.org/show_bug.cgi?id=93214
3111
3112         Ensured that GET verb is consistently used for any request
3113         coming after a redirection that triggers switching to GET.
3114
3115         Reviewed by Martin Robinson.
3116
3117         * platform/network/soup/ResourceHandleSoup.cpp:
3118         (WebCore::doRedirect):
3119
3120 2013-02-19  Andras Becsi  <andras.becsi@digia.com>
3121
3122         [Qt] Fix compilation if Qt was configured with -no-rtti
3123         https://bugs.webkit.org/show_bug.cgi?id=110234
3124
3125         Reviewed by Noam Rosenthal.
3126
3127         Availability of dynamic_cast should be checked.
3128
3129         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3130         (WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):
3131
3132 2013-02-18  Alexey Proskuryakov  <ap@apple.com>
3133
3134         Unregistered blob URLs have incorrect MIME type
3135         https://bugs.webkit.org/show_bug.cgi?id=110166
3136
3137         Reviewed by Sam Weinig.
3138
3139         * page/SecurityOrigin.cpp: (WebCore::SecurityOrigin::shouldUseInnerURL): Added a FIXME.
3140
3141         * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnError):
3142         Pass an accurate MIME type (for a delegate to see).
3143
3144 2013-02-19  Joshua Bell  <jsbell@chromium.org>
3145
3146         IndexedDB: additional checks on LevelDB decoding
3147         https://bugs.webkit.org/show_bug.cgi?id=109711
3148
3149         Reviewed by Tony Chang.
3150
3151         Watch out for decoding errors caused by corrupted data, and exit various
3152         decode/compare operations earlier.
3153
3154         Covered by existing LayoutTests and Chromium's webkit_unit_tests
3155
3156         * Modules/indexeddb/IDBLevelDBCoding.cpp:
3157         (WebCore::IDBLevelDBCoding::decodeStringWithLength): Bail if length is negative.
3158         (WebCore::IDBLevelDBCoding::compareEncodedStringsWithLength): Distinguish error case.
3159         (WebCore::IDBLevelDBCoding::extractEncodedIDBKey): Bail if length is negative.
3160         (WebCore::IDBLevelDBCoding::compareEncodedIDBKeys): Distinguish error case.
3161         (WebCore::IDBLevelDBCoding::compare): Plumb through "ok".
3162         (WebCore::IDBLevelDBCoding::ObjectStoreDataKey::compare): Ditto.
3163         (WebCore::IDBLevelDBCoding::ExistsEntryKey::compare): Ditto.
3164         (WebCore::IDBLevelDBCoding::IndexDataKey::compare): Ditto.
3165         * Modules/indexeddb/IDBLevelDBCoding.h: Updated method signatures.
3166
3167 2013-02-19  ChangSeok Oh  <changseok.oh@collabora.com>
3168
3169         [GTK][AC] Implement keyframe animations with clutter ac backend
3170         https://bugs.webkit.org/show_bug.cgi?id=110057
3171
3172         Reviewed by Gustavo Noronha Silva.
3173
3174         This patch brings accelerated keyframe animation with clutter to WebKitGtk+.
3175         Changes of GraphicsLayerClutter are based on GraphicsLayerCA. But major changes
3176         of PlatformClutterAnimation are implemented with clutter keyframe transition apis.
3177         See http://developer.gnome.org/clutter/stable/ClutterKeyframeTransition.html
3178
3179         Covered by existing animation tests.
3180
3181         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
3182         (WebCore::GraphicsLayerClutter::createKeyframeAnimation):
3183         (WebCore::GraphicsLayerClutter::setTransformAnimationKeyframes):
3184         (WebCore::GraphicsLayerClutter::setAnimationKeyframes):
3185         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
3186         (WebCore::toClutterActorPropertyString):
3187         (WebCore::PlatformClutterAnimation::PlatformClutterAnimation):
3188         (WebCore::PlatformClutterAnimation::setTimingFunction):
3189         (WebCore::PlatformClutterAnimation::setValues):
3190         (WebCore::PlatformClutterAnimation::setKeyTimes):
3191         (WebCore::PlatformClutterAnimation::setTimingFunctions):
3192         (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
3193         (WebCore):
3194         (WebCore::PlatformClutterAnimation::addClutterKeyframeTransitionForProperty):
3195         (WebCore::PlatformClutterAnimation::addOpacityTransition):
3196         (WebCore::PlatformClutterAnimation::addTransformTransition):
3197         (WebCore::PlatformClutterAnimation::addAnimationForKey):
3198         (WebCore::PlatformClutterAnimation::removeAnimationForKey):
3199         * platform/graphics/clutter/PlatformClutterAnimation.h:
3200         (PlatformClutterAnimation):
3201
3202 2013-02-19  Claudio Saavedra  <csaavedra@igalia.com>
3203
3204         [harfbuzz] Crash in harfbuzz related code
3205         https://bugs.webkit.org/show_bug.cgi?id=110145
3206
3207         Reviewed by Martin Robinson.
3208
3209         Patch by Behdad Esfahbod <behdad@google.com>
3210
3211         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
3212         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Ask harfbuzz
3213         to guess the segment properties.
3214
3215 2013-02-19  Pavel Podivilov  <podivilov@chromium.org>
3216
3217         Web Inspector: release backtrace object group on each step.
3218         https://bugs.webkit.org/show_bug.cgi?id=110223
3219
3220         Reviewed by Pavel Feldman.
3221
3222         * inspector/InspectorDebuggerAgent.cpp:
3223         (WebCore):
3224         (WebCore::InspectorDebuggerAgent::stepOver):
3225         (WebCore::InspectorDebuggerAgent::stepInto):
3226         (WebCore::InspectorDebuggerAgent::stepOut):
3227
3228 2013-02-19  Sheriff Bot  <webkit.review.bot@gmail.com>
3229
3230         Unreviewed, rolling out r142975.
3231         http://trac.webkit.org/changeset/142975
3232         https://bugs.webkit.org/show_bug.cgi?id=110225
3233
3234         Introduces hard-to-reproduce crashes upon inspected page
3235         navigation on Mac (Requested by apavlov on #webkit).
3236
3237         * dom/DocumentStyleSheetCollection.cpp:
3238         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
3239         * inspector/Inspector.json:
3240         * inspector/InspectorCSSAgent.cpp:
3241         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
3242         (WebCore::InspectorCSSAgent::clearFrontend):
3243         (WebCore::InspectorCSSAgent::enable):
3244         (WebCore::InspectorCSSAgent::getAllStyleSheets):
3245         (WebCore::InspectorCSSAgent::collectStyleSheets):
3246         (WebCore::InspectorCSSAgent::bindStyleSheet):
3247         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
3248         (WebCore::InspectorCSSAgent::detectOrigin):
3249         (WebCore::InspectorCSSAgent::buildObjectForRule):
3250         * inspector/InspectorCSSAgent.h:
3251         (InspectorCSSAgent):
3252         * inspector/InspectorInstrumentation.cpp:
3253         (WebCore):
3254         * inspector/InspectorInstrumentation.h:
3255         (WebCore):
3256         (InspectorInstrumentation):
3257         * inspector/front-end/CSSStyleModel.js:
3258         (WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
3259         (WebInspector.CSSStyleModelResourceBinding.prototype.):
3260         (WebInspector.CSSStyleModelResourceBinding.prototype.requestStyleSheetIdForResource):
3261         (WebInspector.CSSStyleModelResourceBinding.prototype.requestResourceURLForStyleSheetId):
3262         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetIdForResource):
3263         (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
3264         (WebInspector.CSSStyleModelResourceBinding.prototype.headersLoaded):
3265         (WebInspector.CSSStyleModelResourceBinding.prototype._requestViaInspectorResource):
3266         (WebInspector.CSSStyleModelResourceBinding.prototype._getOrCreateInspectorResource):
3267         (WebInspector.CSSStyleModelResourceBinding.prototype._reset):
3268         * inspector/front-end/SASSSourceMapping.js:
3269         (WebInspector.SASSSourceMapping.prototype._styleSheetChanged.callback):
3270         (WebInspector.SASSSourceMapping.prototype._styleSheetChanged):
3271         * inspector/front-end/StylesSidebarPane.js:
3272         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode.callback):
3273         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
3274         * inspector/front-end/StylesSourceMapping.js:
3275         (WebInspector.StyleContentBinding.prototype.callback):
3276         (WebInspector.StyleContentBinding.prototype.setStyleContent):
3277         (WebInspector.StyleContentBinding.prototype.):
3278         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
3279
3280 2013-02-19  Julien Chaffraix  <jchaffraix@webkit.org>
3281
3282         RenderGrid::computedUsedBreadthOfGridTracks can read past m_grid's size
3283         https://bugs.webkit.org/show_bug.cgi?id=110126
3284
3285         Reviewed by Ojan Vafai.
3286
3287         The issue comes from how we store the column information inside m_grid.
3288         Because m_grid is a Vector of rows, we could lose the column information
3289         if we had no row, no grid item but some columns defined in CSS. As the
3290         logic would assume that our row / column size would be greater than what
3291         the style defines explicitely, we would access past our Vector's boundary.
3292
3293         The fix is to ensure that we have at least a row so that we can store the
3294         column information in every case. This fix is overly broad as it also forces
3295         the grid to have one column, which shouldn't be an issue.
3296
3297         Test: fast/css-grid-layout/grid-element-empty-row-column.html
3298
3299         * rendering/RenderGrid.cpp:
3300         (WebCore::RenderGrid::maximumIndexInDirection):
3301         Forced this function to return at least one as the maximum index so that
3302         m_grid has at least one row / column.
3303
3304         (WebCore::RenderGrid::placeItemsOnGrid):
3305         Added a ASSERT that m_grid is bigger than the explicit grid-rows / grid-columns.
3306         Also changed an existing ASSERT to use gridWasPopulated for consistency and changed
3307         the code not to call gridRowCount as it would ASSERT (we are in the middle of populating
3308         the grid).
3309
3310         * rendering/RenderGrid.h:
3311         (WebCore::RenderGrid::gridWasPopulated):
3312         Added this helper function.
3313
3314         (WebCore::RenderGrid::gridColumnCount):
3315         Replaced a now unneeded branch with an ASSERT. As placeItemsOnGrid should be called
3316         prior to read m_grid, this change should be fine.
3317
3318         (WebCore::RenderGrid::gridRowCount):
3319         Added an ASSERT.
3320
3321 2013-02-19  Sergio Villar Senin  <svillar@igalia.com>
3322
3323         [Soup] Use synchronous calls to close completely processed streams
3324         https://bugs.webkit.org/show_bug.cgi?id=107432
3325
3326         Reviewed by Martin Robinson.
3327
3328         There is no need to close already processed streams in asynchronous
3329         calls since they won't block. Using the synchronous call will save
3330         us some code and unnecessary asynchronous burden. This is kind of
3331         a code refactor so no new tests needed.
3332
3333         * platform/network/soup/ResourceHandleSoup.cpp:
3334         (WebCore):
3335         (WebCore::redirectSkipCallback):
3336         (WebCore::readCallback):
3337
3338 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
3339
3340         Web Inspector: [Canvas] use timeline's didBeginFrame for marking frame end calls
3341         https://bugs.webkit.org/show_bug.cgi?id=110130
3342
3343         Reviewed by Pavel Feldman.
3344
3345         In Web Inspector canvas profiler use timeline's didBeginFrame for marking frame end calls instead of an ad-hoc timeout-based solution.
3346
3347         * inspector/InjectedScriptCanvasModule.cpp:
3348         (WebCore::InjectedScriptCanvasModule::markFrameEnd):
3349         (WebCore):
3350         * inspector/InjectedScriptCanvasModule.h:
3351         (InjectedScriptCanvasModule):
3352         * inspector/InjectedScriptCanvasModuleSource.js:
3353         (.):
3354         * inspector/InspectorCanvasAgent.cpp:
3355         (WebCore::InspectorCanvasAgent::hasUninstrumentedCanvases):
3356         (WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
3357         (WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
3358         (WebCore::InspectorCanvasAgent::frameNavigated):
3359         (WebCore::InspectorCanvasAgent::didBeginFrame):
3360         (WebCore):
3361         * inspector/InspectorCanvasAgent.h:
3362         (InspectorCanvasAgent):
3363         * inspector/InspectorController.cpp:
3364         (WebCore::InspectorController::didBeginFrame):
3365
3366 2013-02-19  Vsevolod Vlasov  <vsevik@chromium.org>
3367
3368         Web Inspector: Decouple various file system project implementation parts for better testability and cover with tests.
3369         https://bugs.webkit.org/show_bug.cgi?id=110204
3370
3371         Reviewed by Pavel Feldman.
3372
3373         Extracted FileSystemWorkspaceProvider from IsolatedFileSystemManager to take care of managing workspace projects and projectDelegates.
3374         Replaced FileMapping.urlForURI with urlForPath method that does not need any information about workspace structure anymore.
3375
3376         Test: inspector/file-system-project.html
3377
3378         * inspector/front-end/FileMapping.js:
3379         (WebInspector.FileMapping.prototype.urlForPath):
3380         * inspector/front-end/FileSystemProjectDelegate.js:
3381         (WebInspector.FileSystemProjectDelegate):
3382         (WebInspector.FileSystemProjectDelegate.prototype.populate.filesLoaded):
3383         (WebInspector.FileSystemProjectDelegate.prototype.populate):
3384         (WebInspector.FileSystemWorkspaceProvider):
3385         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemAdded):
3386         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
3387         * inspector/front-end/IsolatedFileSystem.js:
3388         (WebInspector.IsolatedFileSystem):
3389         (WebInspector.IsolatedFileSystem.prototype.name):
3390         (WebInspector.IsolatedFileSystem.prototype.rootURL):
3391         * inspector/front-end/IsolatedFileSystemManager.js:
3392         (WebInspector.IsolatedFileSystemManager):
3393         (WebInspector.IsolatedFileSystemManager.prototype._innerAddFileSystem):
3394         (WebInspector.IsolatedFileSystemManager.prototype._fileSystemRemoved):
3395         (WebInspector.IsolatedFileSystemManager.prototype._isolatedFileSystem):
3396         (WebInspector.IsolatedFileSystemManager.prototype.requestDOMFileSystem):
3397         * inspector/front-end/inspector.js:
3398
3399 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
3400
3401         Web Inspector: [Canvas] do not replace replay image with spinner icon
3402         https://bugs.webkit.org/show_bug.cgi?id=110213
3403
3404         Reviewed by Pavel Feldman.
3405
3406         Otherwise it's visually hard to see changes in the replay image. Instead show a small spinner icon in the bottom right corner.
3407
3408         * inspector/front-end/CanvasProfileView.js:
3409         (WebInspector.CanvasProfileView):
3410         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
3411         * inspector/front-end/canvasProfiler.css:
3412         (#canvas-replay-image-container):
3413         (.canvas-debug-info):
3414         (.canvas-spinner-icon):
3415
3416 2013-02-19  Andrey Adaikin  <aandrey@chromium.org>
3417
3418         Web Inspector: [Canvas] UI: tweak replay control buttons behavior
3419         https://bugs.webkit.org/show_bug.cgi?id=110207
3420
3421         Reviewed by Pavel Feldman.
3422
3423         New behavior for control buttons in the Canvas profiler.
3424         - The NextCall button (~StepInto) on a node group should expand it and move into its first child (instead of expanding and moving into the next node group)
3425         - The NextDrawCall button (~StepOver) should move to a next node that has children (instead of just iterating call group nodes, ignoring frame nodes).
3426         - The ReplayLast button should select the last expanded node (instead of always selecting last frame group node).
3427
3428         * inspector/front-end/CanvasProfileView.js:
3429         (WebInspector.CanvasProfileView.prototype._onReplayStepClick):
3430         (WebInspector.CanvasProfileView.prototype._onReplayDrawingCallClick):
3431         (WebInspector.CanvasProfileView.prototype._onReplayLastStepClick):
3432
3433 2013-02-19  Andrei Bucur  <abucur@adobe.com>
3434
3435         [CSS Regions] Assertion in RenderFlowThread::removeRenderBoxRegionInfo
3436         https://bugs.webkit.org/show_bug.cgi?id=109914
3437
3438         Reviewed by David Hyatt.
3439
3440         This patch moves a part of the invalidation operations inside the RenderFlowThread::invalidateRegions call. The maps
3441         are cleared anyway at layout time but doing this earlier makes sure the flow thread is in a more consistent state
3442         (the RenderFlowThread object has both the region chain invalidated and the regions information cleared).
3443
3444         RenderFlowThread::removeRenderBoxRegionInfo will check if the region chain is invalidated. If true, it means the
3445         flow thread has a layout scheduled and the regions information is not yet reliable. In this case we just return from the
3446         function and wait for the layout to cleanup the box information.
3447
3448         Test: fast/regions/remove-box-info-assert.html
3449
3450         * rendering/RenderFlowThread.cpp:
3451         (WebCore::RenderFlowThread::removeRegionFromThread):
3452         (WebCore::RenderFlowThread::invalidateRegions):
3453         (WebCore):
3454         (WebCore::RenderFlowThread::layout):
3455         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
3456         * rendering/RenderFlowThread.h:
3457         * rendering/RenderNamedFlowThread.cpp:
3458         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
3459
3460 2013-02-19  Alberto Garcia  <agarcia@igalia.com>
3461
3462         Fix build broekn by r142988.
3463         https://bugs.webkit.org/show_bug.cgi?id=109530
3464
3465         Unreviewed. Build fix.
3466
3467         Properly add shortMonthFormat() to the LocaleNone class.
3468
3469         * platform/text/LocaleNone.cpp:
3470         (LocaleNone):
3471         (WebCore::LocaleNone::shortMonthFormat):
3472
3473 2013-02-19  Anton Vayvod  <avayvod@chromium.org>
3474
3475         [Text Autosizing] Combine narrow descendants of a cluster into groups that should be autosized with the same multiplier.
3476         https://bugs.webkit.org/show_bug.cgi?id=109825
3477
3478         Enhancement of the approach introduced in https://bugs.webkit.org/show_bug.cgi?id=109573.
3479         Instead of using the same text size multiplier for all narrow descendants of any autosizing
3480         cluster, group the descendants by how much narrower they are than the cluster's
3481         |blockContainingAllText| and process each group separately with a different multiplier for
3482         each one.
3483         For example, we want nested comments on the page to be autosized as a group but separately
3484         from a sidebar on the same page.
3485
3486         Reviewed by Kenneth Rohde Christiansen.
3487
3488         Updated the existing test to verify the patch.
3489
3490         * rendering/TextAutosizer.cpp:
3491         (WebCore::TextAutosizer::processClusterInternal):
3492
3493             Splits the narrow descendants of the autosizing cluster into groups before processing
3494             each group individually.
3495
3496         (WebCore::TextAutosizer::getNarrowDescendantsGroupedByWidth):
3497
3498             Sorts the narrow descendants of the given cluster into groups, combining them by the
3499             difference between their content widths. If sorted by width, two consecutive nodes
3500             belong to the same group if their width difference is no greater than 100 CSS units.
3501
3502         * rendering/TextAutosizer.h:
3503
3504             New method definitions.
3505
3506 2013-02-18  Ilya Tikhonovsky  <loislo@chromium.org>
3507
3508         Web Inspector: Native Memory Instrumentation: show user provided name property of the heap snapshot node.
3509         https://bugs.webkit.org/show_bug.cgi?id=110124
3510
3511         Reviewed by Yury Semikhatsky.
3512
3513         Publish userProvidedName into grid node.
3514
3515         * inspector/front-end/HeapSnapshotGridNodes.js:
3516         (WebInspector.HeapSnapshotGenericObjectNode):
3517         (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
3518         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
3519         * inspector/front-end/HeapSnapshotProxy.js:
3520         (WebInspector.HeapSnapshotWorker):
3521         * inspector/front-end/NativeHeapSnapshot.js:
3522         (WebInspector.NativeHeapSnapshotNode.prototype.serialize):
3523
3524 2013-02-19  Arpita Bahuguna  <a.bah@samsung.com>
3525
3526         Caret is not displayed when trying to focus inside a contenteditable element containing an empty block.
3527         https://bugs.webkit.org/show_bug.cgi?id=108053
3528
3529         Reviewed by Ryosuke Niwa.
3530
3531         Test: editing/selection/caret-in-div-containing-empty-block.html
3532
3533         * rendering/RenderBox.cpp:
3534         (WebCore::RenderBox::localCaretRect):
3535         When trying to compute the caret rect for the contenteditable div, the
3536         border and the padding were not considered. Because of this, for the
3537         given test case, which had a border defined on the containing div, the
3538         caret was being painted just atop the border, thereby masking it.
3539
3540         Have modified the code to ensure that the computed caret rect takes
3541         into account the border and padding (if any) specified on the box, but only
3542         if the node doesn't have content that shall be skipped for editing.
3543
3544         We do not add border and padding while computing the caret rect for any
3545         element that either has no content or has content that shall be skipped
3546         for editing purposes. This holds true for table elements as well.
3547
3548         This helps avoid the caret displacement previsouly observed before/after
3549         any controls placed within the contenteditable box, when considering
3550         border and padding in computation of the caret rect.
3551
3552 2013-02-19  Mihnea Ovidenie  <mihnea@adobe.com>
3553
3554         CSSRegions: crash positioned object with inline containing block in flow thread
3555         https://bugs.webkit.org/show_bug.cgi?id=108307
3556
3557         Reviewed by David Hyatt.
3558
3559         The fix for https://bugs.webkit.org/show_bug.cgi?id=69896 allowed positioned blocks work
3560         with variable width regions. However, the information needed for that is available only
3561         when the container used for positioning is a block.
3562
3563         This patch ensures we are using this solution only when the container used for positioning
3564         is a block. This needs to be revisited when we will extend support for other types of boxes
3565         as mentioned in RenderBox::renderBoxRegionInfo.
3566
3567         Test: fast/regions/positioned-object-inline-cb-crash.html
3568
3569         * rendering/RenderBox.cpp:
3570         (WebCore::RenderBox::renderBoxRegionInfo):
3571         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
3572         (WebCore::RenderBox::computePositionedLogicalWidth): Make sure we are using containerBlocks
3573         that are blocks. Add an assert that the type of containerBlock we are using can have
3574         computed RenderBoxRegionInfo.
3575         (WebCore::RenderBox::computePositionedLogicalHeight):
3576         * rendering/RenderBoxModelObject.h:
3577         (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion): This helper method
3578         will return the boxes that may have computed RenderBoxRegionInfo. Currently,
3579         returns true for blocks only.
3580
3581 2013-02-19  Ryosuke Niwa  <rniwa@webkit.org>
3582
3583         Yet anther JSC build fix after r143304.
3584
3585         * bindings/js/JSDOMBinding.h:
3586         (WebCore::argumentOrNull):
3587
3588 2013-02-19  Kentaro Hara  <haraken@chromium.org>
3589
3590         Unreviewed build fix. Fixed warning caused by r143305.
3591
3592         * bindings/scripts/CodeGeneratorJS.pm:
3593         (GenerateParametersCheck):
3594         * bindings/scripts/CodeGeneratorV8.pm:
3595         (GenerateParametersCheck):
3596
3597 2013-02-19  Kentaro Hara  <haraken@chromium.org>
3598
3599         Unreviewed build fix after r143304.
3600
3601         * bindings/js/JSDOMBinding.h:
3602         (WebCore::argumentOrNull):
3603
3604 2013-02-19  Kentaro Hara  <haraken@chromium.org>
3605
3606         [V8] Remove redundant usage of MAYBE_MISSING_PARAMETER() macro
3607         https://bugs.webkit.org/show_bug.cgi?id=109899
3608
3609         Reviewed by Adam Barth.
3610
3611         Currently:
3612
3613         - MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined) returns args[index].
3614         - MAYBE_MISSING_PARAMETER(args, index, DefaultIsNullString) returns Local<Value>()
3615         if args[index] is missing (i.e. the length of |args| is less than |index|).
3616         It returns args[index] otherwise.
3617
3618         No one other than CodeGeneratorV8.pm uses
3619         MAYBE_MISSING_PARAMETER(args, index, DefaultIsUndefined). Instead, we simply use
3620         args[index]. We should remove the redundant usage from CodeGeneratorV8.pm too.
3621         The long-name macro has been making generated code less readable.
3622
3623         In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
3624
3625         No tests. No change in behavior.
3626
3627         * bindings/scripts/CodeGeneratorV8.pm:
3628         (GenerateParametersCheck):
3629         * bindings/scripts/test/V8/V8Float64Array.cpp:
3630         (WebCore::Float64ArrayV8Internal::fooCallback):
3631         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3632         (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
3633         (WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
3634         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3635         (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
3636         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3637         (WebCore::TestEventTargetV8Internal::itemCallback):
3638         (WebCore::TestEventTargetV8Internal::dispatchEventCallback):
3639         * bindings/scripts/test/V8/V8TestInterface.cpp:
3640         (WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
3641         (WebCore::V8TestInterface::constructorCallback):
3642         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3643         (WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
3644         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3645         (WebCore::V8TestNamedConstructorConstructorCallback):
3646         * bindings/scripts/test/V8/V8TestObj.cpp:
3647         (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
3648         (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
3649         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
3650         (WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
3651         (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
3652         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
3653         (WebCore::TestObjV8Internal::optionsObjectCallback):
3654         (WebCore::TestObjV8Internal::methodWithOptionalArgCallback):
3655         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
3656         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
3657         (WebCore::TestObjV8Internal::methodWithOptionalStringCallback):
3658         (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedCallback):
3659         (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringCallback):
3660         (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
3661         (WebCore::TestObjV8Internal::overloadedMethod1Callback):
3662         (WebCore::TestObjV8Internal::overloadedMethod2Callback):
3663         (WebCore::TestObjV8Internal::overloadedMethod3Callback):
3664         (WebCore::TestObjV8Internal::overloadedMethod4Callback):
3665         (WebCore::TestObjV8Internal::overloadedMethod6Callback):
3666         (WebCore::TestObjV8Internal::overloadedMethod7Callback):
3667         (WebCore::TestObjV8Internal::overloadedMethod8Callback):
3668         (WebCore::TestObjV8Internal::overloadedMethod9Callback):
3669         (WebCore::TestObjV8Internal::overloadedMethod10Callback):
3670         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
3671         (WebCore::TestObjV8Internal::classMethodWithOptionalCallback):
3672         (WebCore::TestObjV8Internal::overloadedMethod12Callback):
3673         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
3674         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
3675         (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
3676         (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
3677         (WebCore::TestObjV8Internal::stringArrayFunctionCallback):
3678         (WebCore::TestObjV8Internal::domStringListFunctionCallback):
3679         (WebCore::TestObjV8Internal::convert1Callback):
3680         (WebCore::TestObjV8Internal::convert2Callback):
3681         (WebCore::TestObjV8Internal::convert4Callback):
3682         (WebCore::TestObjV8Internal::convert5Callback):
3683         (WebCore::TestObjV8Internal::strictFunctionCallback):
3684         (WebCore::TestObjV8Internal::variadicStringMethodCallback):
3685         (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
3686         (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
3687         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
3688         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
3689         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
3690         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
3691         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
3692         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3693         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
3694         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
3695         (WebCore::TestTypedefsV8Internal::funcCallback):
3696         (WebCore::TestTypedefsV8Internal::setShadowCallback):
3697         (WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
3698         (WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
3699         (WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
3700         (WebCore::TestTypedefsV8Internal::stringArrayFunction2Callback):
3701         (WebCore::V8TestTypedefs::constructorCallback):
3702         * bindings/v8/V8BindingMacros.h:
3703         (WebCore):
3704         * bindings/v8/custom/V8HistoryCustom.cpp:
3705         (WebCore::V8History::pushStateCallbackCustom):
3706         (WebCore::V8History::replaceStateCallbackCustom):
3707
3708 2013-02-19  Kentaro Hara  <haraken@chromium.org>
3709
3710         [JSC] MAYBE_MISSING_PARAMETER(..., DefaultIsNullString) macro is redundant
3711         https://bugs.webkit.org/show_bug.cgi?id=109902
3712
3713         Reviewed by Adam Barth.
3714
3715         Currently:
3716
3717         - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined)
3718           returns exec->argument(index).
3719         - MAYBE_MISSING_PARAMETER(exec, index, DefaultIsNullString)
3720           returns JSValue() if exec->argument(index) is missing
3721           (i.e. the length of the argument is less than index).
3722           It returns exec->argument(index) otherwise.
3723
3724         No one other than CodeGeneratorJS.pm uses
3725         MAYBE_MISSING_PARAMETER(exec, index, DefaultIsUndefined).
3726         Instead, we simply use exec->argument(index). We should remove
3727         the redundant usage in CodeGeneratorJS.pm too. The long-name macro
3728         has been making generated code less readable.
3729
3730         In addition, we can rename MAYBE_MISSING_PARAMETER() to argumentOrNull().
3731
3732         c.f. corresponding V8 bug: https://bugs.webkit.org/show_bug.cgi?id=109899
3733
3734         No tests. No change in behavior.
3735
3736         * bindings/js/JSDOMBinding.h:
3737         (WebCore):
3738         * bindings/scripts/CodeGeneratorJS.pm:
3739         (GenerateParametersCheck):
3740         * bindings/scripts/test/JS/JSFloat64Array.cpp:
3741         (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
3742         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
3743         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
3744         (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
3745         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
3746         (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
3747         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
3748         (WebCore::jsTestEventTargetPrototypeFunctionItem):
3749         (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
3750         * bindings/scripts/test/JS/JSTestInterface.cpp:
3751         (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
3752         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
3753         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3754         (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
3755         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
3756         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
3757         * bindings/scripts/test/JS/JSTestObj.cpp:
3758         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
3759         (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
3760         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
3761         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
3762         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
3763         (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
3764         (WebCore::jsTestObjPrototypeFunctionSerializedValue):
3765         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
3766         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
3767         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
3768         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
3769         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
3770         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
3771         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
3772         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
3773         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
3774         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
3775         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
3776         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
3777         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
3778         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
3779         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
3780         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
3781         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
3782         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
3783         (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
3784         (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
3785         (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
3786         (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
3787         (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
3788         (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
3789         (WebCore::jsTestObjPrototypeFunctionConvert1):
3790         (WebCore::jsTestObjPrototypeFunctionConvert2):
3791         (WebCore::jsTestObjPrototypeFunctionConvert4):
3792         (WebCore::jsTestObjPrototypeFunctionConvert5):
3793         (WebCore::jsTestObjPrototypeFunctionStrictFunction):
3794         (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
3795         (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
3796         (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
3797         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
3798         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors1):
3799         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors2):
3800         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
3801         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors4):
3802         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3803         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
3804         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
3805         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionMultiTransferList):
3806         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
3807         (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
3808         (WebCore::jsTestTypedefsPrototypeFunctionFunc):
3809         (WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
3810         (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
3811         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
3812         (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
3813         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
3814         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
3815
3816 2013-02-18  Hayato Ito  <hayato@chromium.org>
3817
3818         Make EventDispatcher take an Event object in its constructor.
3819         https://bugs.webkit.org/show_bug.cgi?id=109898
3820
3821         Reviewed by Dimitri Glazkov.
3822
3823         Re-landing r143145, which caused a crash when deltaX and deltaY of a PlatformWheelEvent are both zero.
3824
3825         Fixed a crash by early exiting in EventDispatcher::dispatchEvent(Node*, PassRefPtr<EventDispatcher*>)
3826         if mediator's event() returns null.
3827
3828         Also Added a layout test to catch this kind of crash in the future.
3829
3830         Test: fast/events/platform-wheelevent-with-delta-zero-crash.html
3831
3832         * dom/EventDispatchMediator.cpp:
3833         (WebCore::EventDispatchMediator::dispatchEvent):
3834         * dom/EventDispatcher.cpp:
3835         (WebCore::EventDispatcher::dispatchEvent):
3836         (WebCore::EventDispatcher::EventDispatcher):
3837         (WebCore::EventDispatcher::ensureEventPath):
3838         (WebCore::EventDispatcher::dispatchSimulatedClick):
3839         (WebCore::EventDispatcher::dispatch):
3840         (WebCore::EventDispatcher::dispatchEventPreProcess):
3841         (WebCore::EventDispatcher::dispatchEventAtCapturing):
3842         (WebCore::EventDispatcher::dispatchEventAtTarget):
3843         (WebCore::EventDispatcher::dispatchEventAtBubbling):
3844         (WebCore::EventDispatcher::dispatchEventPostProcess):
3845         * dom/EventDispatcher.h:
3846         (EventDispatcher):
3847         (WebCore::EventDispatcher::node):
3848         (WebCore::EventDispatcher::event):
3849         * dom/FocusEvent.cpp:
3850         (WebCore::FocusEventDispatchMediator::dispatchEvent):
3851         (WebCore::BlurEventDispatchMediator::dispatchEvent):
3852         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
3853         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
3854         * dom/GestureEvent.cpp:
3855         (WebCore::GestureEventDispatchMediator::dispatchEvent):
3856         * dom/MouseEvent.cpp:
3857         (WebCore::MouseEventDispatchMediator::dispatchEvent):
3858         * dom/WheelEvent.cpp:
3859         (WebCore::WheelEventDispatchMediator::dispatchEvent):
3860         Assert event() rather than an early exit since this code path should be hit only when event() is non-null.
3861
3862 2013-02-18  Takashi Sakamoto  <tasak@google.com>
3863
3864         :before/:after pseudo elements do not always apply to the proper element
3865         https://bugs.webkit.org/show_bug.cgi?id=93925
3866
3867         Reviewed by Dimitri Glazkov.
3868
3869         Disable sharing a style with siblings if :after or :before pseudo style
3870         is unique.
3871
3872         Test: fast/css/before-after-pseudo-class.html
3873
3874         * css/StyleResolver.cpp:
3875         (WebCore::StyleResolver::canShareStyleWithElement):
3876         Added a new condition, hasUniquePseudoStyle.
3877         * rendering/style/RenderStyle.cpp:
3878         (WebCore::RenderStyle::hasUniquePseudoStyle):
3879         Added to check whether any pseudo style has unique bit or not.
3880         (WebCore):
3881         * rendering/style/RenderStyle.h:
3882
3883 2013-02-18  Andy Estes  <aestes@apple.com>
3884
3885         Focusing a new frame (via window.focus()) should blur the active element in the current frame
3886         https://bugs.webkit.org/show_bug.cgi?id=110172
3887
3888         Reviewed by Ryosuke Niwa.
3889
3890         When a change in the focused node crosses a frame boundary, WebKit
3891         doesn't always succeed in blurring the old focused node before focusing
3892         the new one.
3893
3894         Each document remembers its focused node, and a Page-scoped
3895         FocusController remembers the focused frame. If a new focused node is
3896         in a different frame than the focused frame, FocusController tells the
3897         old frame's document to clear its focused node before focusing the new
3898         one (and remembering the new frame).
3899
3900         Unfortunately, web content can confuse FocusController by calling
3901         window.focus() at the wrong time. Since window.focus() changes
3902         FocusController's focused frame without focusing a new node,
3903         FocusController won't think that a frame boundary is being crossed if a
3904         node in this frame is later focused. Therefore it won't clear the old
3905         frame's focused node (it won't even know which frame contained the old
3906         focused node), causing at least two bugs:
3907
3908         1) The node in the old frame will not receive a blur event.
3909         2) Calling document.activeElement on the main frame will return the
3910            previously focused node, but the HTML5 spec says it should return
3911            the frame owner element if a subframe has focus.
3912
3913         Fix both of these bugs by explicitly clearing the current frame's
3914         focused node if window.focus() changes the focused frame. This fix
3915         carries some compatibility risk by changing a long-standing behavior
3916         of the engine (we've had this bug since the beginning of the project,
3917         AFAICT). On the upside, it matches the behavior of both Firefox and IE,
3918         matches what HTML5 says about subframe focus, and fixes at least one
3919         well-known enterprise web app.
3920
3921         Tests: fast/dom/HTMLDocument/active-element-frames.html
3922                fast/frames/frame-focus-blurs-active-element.html
3923
3924         * page/DOMWindow.cpp:
3925         (WebCore::DOMWindow::focus): If the frame being focused is not the same
3926         as the currently focused frame, clear the currently focused frame's
3927         focused node.
3928
3929 2013-02-18  Simon Fraser  <simon.fraser@apple.com>
3930
3931         Clean up the boolean argument to visibleContentRect
3932         https://bugs.webkit.org/show_bug.cgi?id=110167
3933
3934         Reviewed by Simon Fraser.
3935
3936         Replace the boolean argument to visibleContentRect() with
3937         an enum.
3938
3939         No behavior change.
3940
3941         * WebCore.exp.in:
3942         * dom/Document.cpp:
3943         (WebCore::Document::viewportSize):
3944         * inspector/InspectorOverlay.cpp:
3945         (WebCore::InspectorOverlay::update):
3946         * page/DOMWindow.cpp:
3947         (WebCore::DOMWindow::innerHeight):
3948         (WebCore::DOMWindow::innerWidth):
3949         * page/FrameView.cpp:
3950         (WebCore::FrameView::calculateScrollbarModesForLayout):
3951         (WebCore::FrameView::layout):
3952         (WebCore::FrameView::performPostLayoutTasks):
3953         (WebCore::FrameView::windowClipRect):
3954         * page/SpatialNavigation.cpp:
3955         (WebCore::canScrollInDirection):
3956         * platform/ScrollView.cpp:
3957         (WebCore::ScrollView::unscaledVisibleContentSize):
3958         (WebCore::ScrollView::visibleContentRect):
3959         (WebCore::ScrollView::layoutSize):
3960         (WebCore::ScrollView::updateScrollbars):
3961         (WebCore::ScrollView::paint):
3962         * platform/ScrollView.h:
3963         * platform/ScrollableArea.cpp:
3964         (WebCore::ScrollableArea::visibleContentRect):
3965         * platform/ScrollableArea.h:
3966         * rendering/RenderDialog.cpp:
3967         (WebCore::RenderDialog::layout):
3968         * rendering/RenderLayer.cpp:
3969         (WebCore::RenderLayer::maximumScrollPosition):
3970         (WebCore::RenderLayer::visibleContentRect):
3971         * rendering/RenderLayer.h:
3972         * rendering/RenderLayerCompositor.cpp:
3973         (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
3974         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
3975
3976 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
3977
3978         That didn't work either. Just make it public. This is why I hate nested classes. They just don't work.
3979
3980         * rendering/RenderBlock.h:
3981         (RenderBlock):
3982
3983 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
3984
3985         Windows build fix. Apparently Visual Studio still has a lot of bugs with respect to nested classes.
3986         Work around it by directly instantiating the class inside createFloatingObjects.
3987
3988         * rendering/RenderBlock.cpp:
3989         (WebCore::RenderBlock::createFloatingObjects): Directly instantiate FloatingObjects.
3990         * rendering/RenderBlock.h:
3991         (RenderBlock): Moved the declaration of createFloatingObjects up.
3992         (FloatingObjects::FloatingObjects):
3993
3994 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
3995
3996         Merge handleSpecialChild into layoutBlockChildren
3997         https://bugs.webkit.org/show_bug.cgi?id=110165
3998
3999         Reviewed by Darin Adler.
4000
4001         Merge handleSpecialChild, handlePositionedChild, and handleFloatingChild into layoutBlockChildren
4002         to make the semantics of the code clear and to get rid of the outdated comment about how there are
4003         four types of four types of special children.
4004
4005         * rendering/RenderBlock.cpp:
4006         (WebCore::RenderBlock::layoutBlockChildren):
4007         * rendering/RenderBlock.h:
4008         (RenderBlock):
4009
4010 2013-02-18  Ryosuke Niwa  <rniwa@webkit.org>
4011
4012         Encapsulate FloatingObject's constructor inside create
4013         https://bugs.webkit.org/show_bug.cgi?id=110169
4014
4015         Reviewed by Darin Adler.
4016
4017         Added FloatingObject::create and made FloatingObject's constructor private.
4018         Also added RenderBlock::ensureFloatingObjects to help lazily creating FloatingObjects.
4019
4020         * rendering/RenderBlock.cpp:
4021         (WebCore::RenderBlock::insertFloatingObject):
4022         (WebCore::RenderBlock::addOverhangingFloats):
4023         (WebCore::RenderBlock::addIntrudingFloats):
4024         (WebCore::RenderBlock::ensureFloatingObjects):
4025         (WebCore::RenderBlock::FloatingObjects::create):
4026         (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
4027         * rendering/RenderBlock.h:
4028         (FloatingObjects):
4029         (RenderBlock):
4030