REGRESSION(r122215) - CachedImage::likelyToBeUsedSoon crashes on accessing a deleted...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-09-27  Alpha Lam  <hclam@chromium.org>
2
3         REGRESSION(r122215) - CachedImage::likelyToBeUsedSoon crashes on accessing a deleted CachedImageClient
4         https://bugs.webkit.org/show_bug.cgi?id=97749
5
6         Reviewed by James Robinson.
7
8         All implementations of Clipboard set themselves as clients to CachedImage
9         through the JS API setDrageImage() but they do not detach during destruction.
10         This causes memory corruption when CachedImage tries to access a deleted client
11         when MemoryCache prunes and calls CachedImage::likelyToUsedSoon().
12
13         Manual test added: ManualTests/drag-image-no-crash.html
14
15         * platform/chromium/ClipboardChromium.cpp:
16         (WebCore::ClipboardChromium::~ClipboardChromium):
17         * platform/gtk/ClipboardGtk.cpp:
18         (WebCore::ClipboardGtk::~ClipboardGtk):
19         * platform/mac/ClipboardMac.mm:
20         (WebCore::ClipboardMac::~ClipboardMac):
21         * platform/win/ClipboardWin.cpp:
22         (WebCore::ClipboardWin::~ClipboardWin):
23
24 2012-09-28  Anders Carlsson  <andersca@apple.com>
25
26         Remove Instance::setDidExecuteFunction
27         https://bugs.webkit.org/show_bug.cgi?id=97952
28
29         Reviewed by Alexey Proskuryakov.
30
31         Instance::setDidExecuteFunction was added over 8 years ago to fix a bug where Objective-C
32         DOM calls weren't updating the document correctly. Nowadays we correctly invalidate the DOM tree
33         when these calls are made so we don't need an extra step to do so.
34
35         * bindings/js/ScriptControllerMac.mm:
36         (WebCore):
37         (WebCore::ScriptController::initJavaJSBindings):
38         * bindings/objc/WebScriptObject.mm:
39         (-[WebScriptObject callWebScriptMethod:withArguments:]):
40         (-[WebScriptObject evaluateWebScript:]):
41         (-[WebScriptObject setValue:forKey:]):
42         (-[WebScriptObject valueForKey:]):
43         (-[WebScriptObject removeWebScriptKey:]):
44         (-[WebScriptObject hasWebScriptKey:]):
45         (-[WebScriptObject stringRepresentation]):
46         (-[WebScriptObject webScriptValueAtIndex:]):
47         (-[WebScriptObject setWebScriptValueAtIndex:value:]):
48         * bridge/jsc/BridgeJSC.cpp:
49         * bridge/jsc/BridgeJSC.h:
50         (Instance):
51
52 2012-09-28  Emil A Eklund  <eae@chromium.org>
53
54         Improve saturation arithmetic support in FractionalLayoutUnit
55         https://bugs.webkit.org/show_bug.cgi?id=97938
56
57         Reviewed by Levi Weintraub.
58
59         Fix bug in FractionalLayoutUnit::setValue where greater than or
60         equals is used instead of greater than to clamp the values. 
61         Add SATURATED_LAYOUT_ARITHMETIC support to round preventing it
62         from overflowing when adding the fraction.
63
64         Test: fast/sub-pixel/large-sizes.html
65
66         * platform/FractionalLayoutUnit.h:
67         (WebCore::FractionalLayoutUnit::round):
68         (WebCore::FractionalLayoutUnit::setValue):
69
70 2012-09-28  Luiz Agostini  <luiz.agostini@nokia.com>
71
72         TextureMapperGL destructor crashes
73         https://bugs.webkit.org/show_bug.cgi?id=97942
74
75         Reviewed by Noam Rosenthal.
76
77         BitmapTextureGL destructor uses a TextureMapperGL instance. The problem is that 
78         BitmapTextureGL objects are destroyed on TextureMapper destructor and at that 
79         time TextureMapperGL specific methods and data are not available any more.
80
81         This patch creates a new protected method TextureMapper::clearTexturePool()
82         that is called in TextureMapperGL's destructor.
83
84         * platform/graphics/texmap/TextureMapper.h:
85         (WebCore::TextureMapper::clearTexturePool):
86         * platform/graphics/texmap/TextureMapperGL.cpp:
87         (WebCore::TextureMapperGL::~TextureMapperGL):
88
89 2012-09-28  Julien Chaffraix  <jchaffraix@webkit.org>
90
91         REGRESSION(r124168): Null crash in RenderLayer::createScrollbar
92         https://bugs.webkit.org/show_bug.cgi?id=96863
93
94         Reviewed by Abhishek Arya.
95
96         After r124168, we synchronously create any overflow:scroll scrollbar on the first style change - we used to wait
97         until layout was called. The issue is that the logic in RenderLayer assumes that our node is completely attached
98         when the style change is dispatched. The crash occured because the 'content' image code path in
99         RenderObject::createObject triggered a style change too early.
100
101         Test: scrollbars/scrollbar-content-crash.html
102
103         * rendering/RenderObject.cpp:
104         (WebCore::RenderObject::createObject):
105         We need a style associated with the new RenderImage to call setImageResource but we don't need to trigger a
106         style change.
107
108 2012-09-28  Ben Wagner  <bungeman@chromium.org>
109
110         Chromium should respect 'text-rendering:geometricPrecision' by disabling hinting.
111         https://bugs.webkit.org/show_bug.cgi?id=97932
112
113         Reviewed by Stephen White.
114
115         When text-redering:geometricPrecision css property is present, the specification states that hinting should be disabled. This change does so.
116
117         This also provides users a more stable and sane means of achieving the result webkit-font-smoothing:antialiased has been providing by accident.
118         See http://crbug.com/152304 . 
119
120         * platform/graphics/skia/FontSkia.cpp:
121         (WebCore::setupPaint):
122
123 2012-09-28  Simon Fraser  <simon.fraser@apple.com>
124
125         Crash re-entering Document layout with frame flattening enabled
126         https://bugs.webkit.org/show_bug.cgi?id=97841
127
128         Reviewed by Kenneth Rohde Christiansen.
129
130         Walking up to parent FrameViews when doing a frame-flattening
131         layout should walk via the Frame tree, not the Widget hierarchy.
132         Walking via the Frame tree ensures that we don't walk up to the
133         root Frame when laying out a subframe that is in the page cache.
134         That's bad, because the root Frame is reused for the new
135         page, and laying it out from a frame in the page cache causes
136         re-entrant layout.
137
138         Test: plugins/frameset-with-plugin-frame.html
139
140         * page/FrameView.cpp:
141         (WebCore::FrameView::parentFrameView):
142
143 2012-09-28  Sheriff Bot  <webkit.review.bot@gmail.com>
144
145         Unreviewed, rolling out r129911.
146         http://trac.webkit.org/changeset/129911
147         https://bugs.webkit.org/show_bug.cgi?id=97933
148
149         Inspector test crashes on win debug (Requested by jsbell on
150         #webkit).
151
152         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
153         (WebCore::IDBTransactionBackendImpl::abort):
154         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
155
156 2012-09-28  Yong Li  <yoli@rim.com>
157
158         [HarfBuzz] harfbuzz expects log_clusters to have same length as other buffers.
159         https://bugs.webkit.org/show_bug.cgi?id=97725
160
161         Reviewed by Tony Chang.
162
163         log_clusters should have same length as other buffers, which is number of glyphs.
164
165         Test: fast/text/international/harfbuzz-buffer-overrun.html
166
167         * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
168         (WebCore::ComplexTextController::ComplexTextController):
169         (WebCore::ComplexTextController::~ComplexTextController):
170         (WebCore::ComplexTextController::deleteGlyphArrays):
171         (WebCore::ComplexTextController::createGlyphArrays):
172
173 2012-09-28  Brian Salomon  <bsalomon@google.com>
174
175         Add canvas to set of elements that do not allow style sharing in order to provoke RenderLayer creation
176         https://bugs.webkit.org/show_bug.cgi?id=97013
177
178         Reviewed by James Robinson.
179
180         This allows RenderLayers to be created for canvas elements when they are accelerated. Otherwise, we can exit out of RenderObject::setStyle before the layer is created.
181
182         Test: fast/canvas/canvas-render-layer.html
183
184         * css/StyleResolver.cpp:
185         (WebCore::StyleResolver::collectMatchingRulesForList):
186         * rendering/RenderObject.cpp:
187         (WebCore::RenderObject::adjustStyleDifference):
188         (WebCore::RenderObject::setStyle):
189
190 2012-09-28  Fady Samuel  <fsamuel@chromium.org>
191
192         [V8] Make v8NPObjectMap per Context
193         https://bugs.webkit.org/show_bug.cgi?id=97703
194
195         Reviewed by Adam Barth.
196
197         V8NPObject is a V8Object wrapper for use by the npruntime.
198
199         staticV8NPObjectMap is used for keeping record of V8NPObjects as they are created and destroyed
200         to ensure that an existing V8NPObject wrapper is returned for a V8Object in npCreateV8ScriptObject.
201         
202         Once a context is gone, the NPObjects for the context are no longer valid and that record keeping
203         no longer makes sense so we clear the map.
204
205         However, because the map was static, it existed for all pages across contexts. Clearing the
206         map if one context is gone should not impact the V8NPObject map of other contexts.
207
208         Thus, this patch makes the V8NPObject map per context.
209
210         * bindings/v8/NPV8Object.cpp:
211         (WebCore::freeV8NPObject):
212         (WebCore::npCreateV8ScriptObject):
213         * bindings/v8/V8PerContextData.h:
214         (WebCore):
215         (WebCore::V8PerContextData::v8NPObjectMap):
216         (V8PerContextData):
217
218 2012-09-28  Alberto Garcia  <agarcia@igalia.com>
219
220         TextureMapperGL: fix -Wsign-compare compilation warning.
221         https://bugs.webkit.org/show_bug.cgi?id=97928
222
223         Reviewed by Martin Robinson.
224
225         Use size_t rather than int to iterate over FilterOperations.
226
227         * platform/graphics/texmap/TextureMapperGL.cpp:
228         (WebCore::BitmapTextureGL::applyFilters):
229
230 2012-09-28  Anders Carlsson  <andersca@apple.com>
231
232         Fix build.
233
234         * WebCore.xcodeproj/project.pbxproj:
235
236 2012-09-28  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
237
238         Code inside FrameLoaderClient::canShowMIMEType() implementations can be shared among different WK ports
239         https://bugs.webkit.org/show_bug.cgi?id=97547
240
241         Reviewed by Adam Barth.
242
243         Added MIMETypeRegistry::canShowMIMEType() function which should to be used
244         to detect whether a given MIME type can be shown in a page.
245
246         No new tests. No new functionality.
247
248         * WebCore.exp.in: Added MIMETypeRegistry::canShowMIMEType(). Removed MIMETypeRegistry functions that no longer need to be exported.
249         * platform/MIMETypeRegistry.cpp:
250         (WebCore::MIMETypeRegistry::canShowMIMEType):
251         (WebCore):
252         * platform/MIMETypeRegistry.h:
253         (MIMETypeRegistry):
254
255 2012-09-27  Tony Chang  <tony@chromium.org>
256
257         flexbox assert fails with auto-sized item with padding
258         https://bugs.webkit.org/show_bug.cgi?id=97606
259
260         Reviewed by Ojan Vafai.
261
262         Depending on the denominator of FractionalLayoutUnit, we can lose precision when
263         converting to a float.  This would cause a rounding error in flex-shrink to trigger an ASSERT.
264         To avoid this problem in the future, switch to using doubles for flex-shrink and flex-grow
265         at layout time.  The CSS values themselves are still floats.
266
267         Test: css3/flexbox/negative-flex-rounding-assert.html
268
269         * rendering/RenderFlexibleBox.cpp:
270         (WebCore::RenderFlexibleBox::layoutFlexItems): Use doubles for local variables.
271         (WebCore::RenderFlexibleBox::computeNextFlexLine): Pass in doubles.
272         (WebCore::RenderFlexibleBox::freezeViolations): Pass in doubles.
273         (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Pass in doubles.
274         * rendering/RenderFlexibleBox.h:
275
276 2012-09-28  Sheriff Bot  <webkit.review.bot@gmail.com>
277
278         Unreviewed, rolling out r129751.
279         http://trac.webkit.org/changeset/129751
280         https://bugs.webkit.org/show_bug.cgi?id=97921
281
282         Causes crashes on mac and win (Requested by vsevik on
283         #webkit).
284
285         * bindings/js/JSHTMLCanvasElementCustom.cpp:
286         (WebCore::JSHTMLCanvasElement::getContext):
287         * bindings/js/JSMainThreadExecState.h:
288         (WebCore::JSMainThreadExecState::instrumentFunctionCall):
289         * bindings/js/ScheduledAction.cpp:
290         (WebCore::ScheduledAction::create):
291         * bindings/js/ScriptCallStackFactory.cpp:
292         (WebCore::createScriptCallStackForInspector):
293         * bindings/js/ScriptCallStackFactory.h:
294         (WebCore):
295         * bindings/scripts/CodeGeneratorJS.pm:
296         (GenerateCallWith):
297         * bindings/scripts/CodeGeneratorV8.pm:
298         (GenerateCallWith):
299         * bindings/scripts/test/JS/JSTestObj.cpp:
300         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
301         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
302         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
303         * bindings/scripts/test/V8/V8TestObj.cpp:
304         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
305         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
306         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
307         * bindings/v8/ScriptCallStackFactory.cpp:
308         (WebCore::createScriptCallStackForInspector):
309         * bindings/v8/ScriptCallStackFactory.h:
310         (WebCore):
311         * bindings/v8/ScriptController.cpp:
312         (WebCore::ScriptController::callFunctionWithInstrumentation):
313         * bindings/v8/V8DOMWindowShell.cpp:
314         (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
315         * bindings/v8/V8WorkerContextEventListener.cpp:
316         (WebCore::V8WorkerContextEventListener::callListenerFunction):
317         * bindings/v8/custom/V8DOMWindowCustom.cpp:
318         (WebCore::WindowSetTimeoutImpl):
319         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
320         (WebCore::V8HTMLCanvasElement::getContextCallback):
321         * bindings/v8/custom/V8WorkerContextCustom.cpp:
322         (WebCore::SetTimeoutOrInterval):
323         * inspector/Inspector.json:
324         * inspector/InspectorConsoleAgent.cpp:
325         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
326         (WebCore::InspectorConsoleAgent::enable):
327         (WebCore::InspectorConsoleAgent::disable):
328         (WebCore::InspectorConsoleAgent::clearMessages):
329         (WebCore::InspectorConsoleAgent::clearFrontend):
330         (WebCore::InspectorConsoleAgent::addConsoleMessage):
331         * inspector/InspectorConsoleAgent.h:
332         (InspectorConsoleAgent):
333         * inspector/InspectorController.cpp:
334         (WebCore::InspectorController::connectFrontend):
335         (WebCore::InspectorController::disconnectFrontend):
336         * inspector/InspectorInstrumentation.cpp:
337         (WebCore):
338         (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
339         * inspector/InspectorInstrumentation.h:
340         (InspectorInstrumentation):
341         (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
342         * inspector/InspectorRuntimeAgent.cpp:
343         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
344         * inspector/InspectorRuntimeAgent.h:
345         (InspectorRuntimeAgent):
346         * inspector/PageRuntimeAgent.cpp:
347         (PageRuntimeAgentState):
348         (WebCore::PageRuntimeAgent::clearFrontend):
349         (WebCore::PageRuntimeAgent::restore):
350         (WebCore::PageRuntimeAgent::setReportExecutionContextCreation):
351         (WebCore::PageRuntimeAgent::didClearWindowObject):
352         (WebCore::PageRuntimeAgent::didCreateIsolatedContext):
353         * inspector/PageRuntimeAgent.h:
354         (PageRuntimeAgent):
355         * inspector/WorkerRuntimeAgent.cpp:
356         (WebCore::WorkerRuntimeAgent::setReportExecutionContextCreation):
357         (WebCore):
358         * inspector/WorkerRuntimeAgent.h:
359         (WorkerRuntimeAgent):
360         * inspector/front-end/RuntimeModel.js:
361         (WebInspector.RuntimeModel.prototype._didLoadCachedResources):
362         * page/DOMWindow.cpp:
363         (WebCore::DOMWindow::postMessage):
364
365 2012-09-28  Kent Tamura  <tkent@chromium.org>
366
367         Add parseDateTime, formatDateTime, and dateFormatText to Localizer
368         https://bugs.webkit.org/show_bug.cgi?id=97885
369
370         Reviewed by Kentaro Hara.
371
372         This is a preparation to remove LocalizedData.h.
373
374         Add the following pure virtual member functions to Localizer.
375           parseDateTime
376           formatDateTime
377           dateFormatText.
378
379         We rename existing parse/format functions for type=date in Locale*
380         classes, and extend their functionality so that they support other
381         date/time types. They override the new functions of Localizer.
382
383         No new tests. This should not change any behavior.
384
385         * platform/text/Localizer.h:
386         (Localizer): Add parseDateTime, formatDateTime, and dateFormatText.
387
388         * platform/text/LocaleICU.h:
389         (LocaleICU):
390         - Rename parseLocalizedDate to parseDateTime
391         - Add type argument to parseDateTime
392         - Rename formatLocalizedDate to formatDateTime
393         - Rename localizedDateFormatText to dateFormatText
394         - Make parseDateTime/formatDateTime/dateFormatText virtual.
395         * platform/text/LocaleICU.cpp:
396         (WebCore::LocaleICU::parseDateTime):
397         Renamed. Reject non-date types.
398         (WebCore::LocaleICU::formatDateTime): ditto.
399         (WebCore::LocaleICU::dateFormatText): Renamed.
400         * platform/text/LocalizedDateICU.cpp: Moved some code to LocaleICU.cpp.
401         (WebCore::parseLocalizedDate):
402         (WebCore::formatLocalizedDate):
403
404         * platform/text/LocaleNone.cpp:
405         Add empty implementations of parseDateTime, formatDateTime, and
406         dateFormatText.
407         (LocaleNone):
408         (WebCore::LocaleNone::parseDateTime):
409         (WebCore::LocaleNone::formatDateTime):
410         (WebCore::LocaleNone::dateFormatText):
411
412         * platform/text/LocaleWin.h:
413         (LocaleWin):
414         - Rename parseDate to parseDateTime
415         - Add type argument to parseDateTime
416         - Rename formatDate to formatDateTime
417         - Make parseDateTime/formatDateTime/dateFormatText virtual.
418         * platform/text/LocaleWin.cpp:
419         (WebCore::LocaleWin::parseDateTime):
420         Renamed. Reject non-date types.
421         (WebCore::LocaleWin::formatDateTime): ditto.
422         * platform/text/LocalizedDateWin.cpp: Moved some code to LocaleWin.cpp.
423         (WebCore::parseLocalizedDate):
424         (WebCore::formatLocalizedDate):
425
426         * platform/text/mac/LocaleMac.h:
427         (LocaleMac):
428         - Rename parseDate to parseDateTime
429         - Add type argument to parseDateTime
430         - Rename formatDate to formatDateTime
431         - Make parseDateTime/formatDateTime/dateFormatText virtual.
432         * platform/text/mac/LocaleMac.mm:
433         (WebCore::LocaleMac::parseDateTime):
434         Renamed. Reject non-date types.
435         (WebCore::LocaleMac::formatDateTime): ditto.
436         * platform/text/mac/LocalizedDateMac.cpp: Moved some code to LocaleMac.mm.
437         (WebCore::parseLocalizedDate):
438         (WebCore::formatLocalizedDate):
439
440 2012-09-28  Joshua Bell  <jsbell@chromium.org>
441
442         IndexedDB: Run multiple tasks per transaction tick
443         https://bugs.webkit.org/show_bug.cgi?id=97738
444
445         Reviewed by Tony Chang.
446
447         Process multiple tasks from the pending queue(s) when the timer fires. The
448         task may initiate new tasks that change which queue is active (e.g. indexing
449         operations) so the loop must re-check each tick which queue to use.
450
451         In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
452         in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
453
454         No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
455
456         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
457         (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
458         (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
459
460 2012-09-28  Harald Tveit Alvestrand  <harald@alvestrand.no>
461         
462         Implement the GetStats interface on PeerConnection
463         https://bugs.webkit.org/show_bug.cgi?id=95193
464
465         Specification:
466         http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html
467
468         Reviewed by Adam Barth.
469
470         The implementation consists of a pure virtual platform object
471         (RTCStatsRequest) that is implemented in WebCore, and stores
472         its information in a straightforward data hierarchy.
473         This patch adds the call path and the storage structures.
474         It does not add filling in data.
475
476         Test: fast/mediastream/RTCPeerConnection-stats.html
477
478         * CMakeLists.txt:
479         * Modules/mediastream/RTCPeerConnection.cpp:
480         (WebCore::RTCPeerConnection::getStats):
481         (WebCore):
482         * Modules/mediastream/RTCPeerConnection.h:
483         (WebCore):
484         (RTCPeerConnection):
485         * Modules/mediastream/RTCPeerConnection.idl:
486         * Modules/mediastream/RTCStatsCallback.h: Added.
487         (WebCore):
488         (RTCStatsCallback):
489         (WebCore::RTCStatsCallback::~RTCStatsCallback):
490         * Modules/mediastream/RTCStatsCallback.idl: Added.
491         * Modules/mediastream/RTCStatsElement.cpp: Added.
492         (WebCore):
493         (WebCore::RTCStatsElement::create):
494         (WebCore::RTCStatsElement::RTCStatsElement):
495         (WebCore::RTCStatsElement::stat):
496         * Modules/mediastream/RTCStatsElement.h: Added.
497         (WebCore):
498         (RTCStatsElement):
499         * Modules/mediastream/RTCStatsElement.idl: Added.
500         * Modules/mediastream/RTCStatsReport.cpp: Added.
501         (WebCore):
502         (WebCore::RTCStatsReport::create):
503         (WebCore::RTCStatsReport::RTCStatsReport):
504         * Modules/mediastream/RTCStatsReport.h: Added.
505         (WebCore):
506         (RTCStatsReport):
507         (WebCore::RTCStatsReport::local):
508         (WebCore::RTCStatsReport::remote):
509         * Modules/mediastream/RTCStatsReport.idl: Added.
510         * Modules/mediastream/RTCStatsRequestImpl.cpp: Added.
511         (WebCore):
512         (WebCore::RTCStatsRequestImpl::create):
513         (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
514         (WebCore::RTCStatsRequestImpl::~RTCStatsRequestImpl):
515         (WebCore::RTCStatsRequestImpl::requestSucceeded):
516         (WebCore::RTCStatsRequestImpl::stop):
517         (WebCore::RTCStatsRequestImpl::clear):
518         * Modules/mediastream/RTCStatsRequestImpl.h: Added.
519         (WebCore):
520         (RTCStatsRequestImpl):
521         * Modules/mediastream/RTCStatsResponse.cpp: Added.
522         (WebCore):
523         (WebCore::RTCStatsResponse::create):
524         (WebCore::RTCStatsResponse::RTCStatsResponse):
525         * Modules/mediastream/RTCStatsResponse.h: Added.
526         (WebCore):
527         (RTCStatsResponse):
528         (WebCore::RTCStatsResponse::result):
529         * Modules/mediastream/RTCStatsResponse.idl: Added.
530         * WebCore.gypi:
531         * platform/chromium/support/WebRTCStatsRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h.
532         (WebKit):
533         (WebKit::WebRTCStatsRequest::WebRTCStatsRequest):
534         (WebKit::WebRTCStatsRequest::assign):
535         (WebKit::WebRTCStatsRequest::reset):
536         (WebKit::WebRTCStatsRequest::requestSucceeded):
537         * platform/mediastream/RTCPeerConnectionHandler.h:
538         (WebCore):
539         (RTCPeerConnectionHandler):
540         * platform/mediastream/RTCStatsRequest.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h.
541         (WebCore):
542         (RTCStatsRequest):
543         (WebCore::RTCStatsRequest::~RTCStatsRequest):
544         (WebCore::RTCStatsRequest::RTCStatsRequest):
545         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
546         (WebCore::RTCPeerConnectionHandlerChromium::getStats):
547         (WebCore):
548         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
549         (RTCPeerConnectionHandlerChromium):
550
551 2012-09-28  Andreas Kling  <kling@webkit.org>
552
553         471kB below StyleSheetContents::parserAppendRule() on Membuster3.
554         <http://webkit.org/b/97916>
555
556         Reviewed by Anders Carlsson.
557
558         Shrink-to-fit the StyleSheetContents rule vectors at the end of CSSParser::parseSheet().
559         ~100kB progression on Membuster3.
560
561         * css/StyleSheetContents.h:
562         * css/StyleSheetContents.cpp:
563         (WebCore::StyleSheetContents::shrinkToFit):
564         * css/CSSParser.cpp:
565         (WebCore::CSSParser::parseSheet):
566
567 2012-09-28  Kent Tamura  <tkent@chromium.org>
568
569         Clean up Localizer-related functions
570         https://bugs.webkit.org/show_bug.cgi?id=97899
571
572         Reviewed by Kentaro Hara.
573
574         - Rename Document::getLocalizer to getCachedLocalizer
575         - Add default argument to getCachedLocalizer
576         - Add Element::localizer to reduce code size
577         - Rename DateTimeNumericFieldElement::localizer to localizerForOwner to
578           avoid conflict with Element::localizer
579         - Add Localizer::createDefault to improve code readability
580
581         No new tests. This shouldn't make any behavior change.
582
583         * dom/Document.h:
584         (Document): Rename getLocalizer to getCachedLocalizer, and add default
585         argument.
586         * dom/Document.cpp:
587         (WebCore::Document::getCachedLocalizer): ditto.
588
589         * dom/Element.h:
590         (Element): Add localizer function.
591         * dom/Element.cpp:
592         (WebCore::Element::localizer): Added
593
594         * html/shadow/DateTimeNumericFieldElement.h:
595         (DateTimeNumericFieldElement): Rename localizer to localizerForOwner.
596         * html/shadow/DateTimeNumericFieldElement.cpp: ditto.
597         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
598         (WebCore::DateTimeNumericFieldElement::localizerForOwner):
599         (WebCore::DateTimeNumericFieldElement::value):
600
601         * platform/text/Localizer.h:
602         (Localizer): Add createDefault
603         (WebCore::Localizer::createDefault): Implemented.
604
605         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
606         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
607         Use Element::localizer.
608         * html/NumberInputType.cpp:
609         (WebCore::NumberInputType::localizeValue): ditto.
610         (WebCore::NumberInputType::convertFromVisibleValue): ditto.
611
612 2012-09-28  Pavel Feldman  <pfeldman@chromium.org>
613
614         Web Inspector: define ChunkedReader interface for compilation
615         https://bugs.webkit.org/show_bug.cgi?id=97904
616
617         Reviewed by Alexander Pavlov.
618
619         Otherwise, it is unclear what "source" is in the OutputStreamDelegate.
620
621         * inspector/front-end/FileUtils.js:
622         (WebInspector.OutputStreamDelegate.prototype.onTransferStarted):
623         (WebInspector.OutputStreamDelegate.prototype.onTransferFinished):
624         (WebInspector.OutputStreamDelegate.prototype.onChunkTransferred):
625         (WebInspector.OutputStreamDelegate.prototype.onError):
626         (WebInspector.ChunkedReader):
627         (WebInspector.ChunkedReader.prototype.fileSize):
628         (WebInspector.ChunkedReader.prototype.loadedSize):
629         (WebInspector.ChunkedReader.prototype.fileName):
630         (WebInspector.ChunkedReader.prototype.cancel):
631         (WebInspector.ChunkedFileReader.prototype.start):
632         (WebInspector.ChunkedFileReader.prototype._onChunkLoaded):
633         (WebInspector.ChunkedXHRReader.prototype.start):
634         (WebInspector.ChunkedXHRReader.prototype._onLoad):
635         * inspector/front-end/HeapSnapshotView.js:
636         (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onTransferStarted):
637         (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onChunkTransferred):
638         (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onTransferFinished):
639         (WebInspector.HeapSnapshotLoadFromFileDelegate.prototype.onError):
640         * inspector/front-end/TimelineModel.js:
641         (WebInspector.TimelineModelLoadFromFileDelegate.prototype.onTransferStarted):
642
643 2012-09-28  Florin Malita  <fmalita@chromium.org>
644
645         [Chromium] Incorrect resampling of clipped/masked images.
646         https://bugs.webkit.org/show_bug.cgi?id=97409
647
648         Reviewed by Stephen White.
649
650         Currently, high-quality resampling is used for translate/scale-only transforms, but when
651         the scale is negative the resampling subset ends up positioned incorrectly.
652         ImageSkia.cpp:drawResampledBitmap needs to account for negative scaling factors, and apply
653         only absolute values when calculating the resampling subregion in bitmap coordinates.
654
655         Thanks pdr@google.com for isolating the regression.
656
657         Test: svg/custom/clip-mask-negative-scale.svg
658
659         * platform/graphics/skia/ImageSkia.cpp:
660         (WebCore::drawResampledBitmap):
661
662 2012-09-28  Sheriff Bot  <webkit.review.bot@gmail.com>
663
664         Unreviewed, rolling out r129882.
665         http://trac.webkit.org/changeset/129882
666         https://bugs.webkit.org/show_bug.cgi?id=97913
667
668         Repaint is incorrect on many tests (Requested by schenney on
669         #webkit).
670
671         * inspector/InspectorController.cpp:
672         * inspector/InspectorController.h:
673         (WebCore):
674         (InspectorController):
675         * inspector/InspectorOverlay.cpp:
676         (WebCore::InspectorOverlay::paint):
677         (WebCore::InspectorOverlay::update):
678         (WebCore::buildObjectForPoint):
679         (WebCore::buildArrayForQuad):
680         (WebCore::buildObjectForHighlight):
681         (WebCore::InspectorOverlay::reset):
682         * inspector/InspectorOverlay.h:
683         (InspectorOverlay):
684         * inspector/InspectorOverlayPage.html:
685
686 2012-09-28  Kentaro Hara  <haraken@chromium.org>
687
688         Unreviewed, rolling out r129825.
689         http://trac.webkit.org/changeset/129825
690         https://bugs.webkit.org/show_bug.cgi?id=97474
691
692         DOMWindow.resizeTo() is broken. Asked by Mark Pilgrim.
693
694         * WebCore.gypi:
695         * platform/Widget.h:
696         * platform/chromium/PageClientChromium.h: Removed.
697         * platform/chromium/PlatformScreenChromium.cpp:
698         (WebCore::screenHorizontalDPI):
699         (WebCore::screenVerticalDPI):
700         (WebCore::screenDepth):
701         (WebCore::screenDepthPerComponent):
702         (WebCore::screenIsMonochrome):
703         (WebCore::screenRect):
704         (WebCore::screenAvailableRect):
705         * platform/chromium/PlatformSupport.h:
706         (PlatformSupport):
707
708 2012-09-28  Christophe Dumez  <christophe.dumez@intel.com>
709
710         [WebDatabase] Error code should be CONSTRAINT_ERR if a statement fails due to a constraint failure
711         https://bugs.webkit.org/show_bug.cgi?id=97897
712
713         Reviewed by Kenneth Rohde Christiansen.
714
715         Use CONSTRAINT_ERR error code instead of the generic DATABASE_ERR
716         when a statement fails due to a constraint failure. This is documented
717         in the W3C specification:
718         http://dev.w3.org/html5/webdatabase/#dom-sqlexception-code-constraint
719
720         Tests: storage/websql/sql-error-codes.html
721
722         * Modules/webdatabase/SQLStatement.cpp:
723         (WebCore::SQLStatement::execute):
724         * Modules/webdatabase/SQLStatementSync.cpp:
725         (WebCore::SQLStatementSync::execute):
726         * platform/sql/SQLiteDatabase.cpp:
727         (WebCore):
728         * platform/sql/SQLiteDatabase.h:
729         (WebCore):
730
731 2012-09-28  Pavel Feldman  <pfeldman@chromium.org>
732
733         Web Inspector: split ProgressBar.js into Progress.js and ProgressIndicator.js
734         https://bugs.webkit.org/show_bug.cgi?id=97902
735
736         Reviewed by Alexander Pavlov.
737
738         One is model, the other is UI component.
739
740         * WebCore.gypi:
741         * WebCore.vcproj/WebCore.vcproj:
742         * inspector/compile-front-end.py:
743         * inspector/front-end/Progress.js: Copied from Source/WebCore/inspector/front-end/ProgressBar.js.
744         * inspector/front-end/ProgressIndicator.js: Renamed from Source/WebCore/inspector/front-end/ProgressBar.js.
745         * inspector/front-end/UserAgentSupport.js:
746         * inspector/front-end/WebKit.qrc:
747         * inspector/front-end/externs.js:
748         * inspector/front-end/inspector.html:
749
750 2012-09-27  Alexander Pavlov  <apavlov@chromium.org>
751
752         Web Inspector: [Device Metrics] Remove the gutter overlay moving its functionality into the InspectorOverlay
753         https://bugs.webkit.org/show_bug.cgi?id=97799
754
755         Reviewed by Pavel Feldman.
756
757         In order to reduce the amount of port-specific code, the gutter overlay painted in the device metrics emulation mode
758         has been replaced by the respective functionality in the HTML-based InspectorOverlay in WebCore. The InspectorOverlay
759         now covers the entire WebView rather than the FrameView only.
760
761         * inspector/InspectorController.cpp:
762         (WebCore::InspectorController::webViewResized):
763         (WebCore):
764         * inspector/InspectorController.h:
765         (WebCore):
766         (InspectorController):
767         * inspector/InspectorOverlay.cpp:
768         (WebCore::InspectorOverlay::InspectorOverlay):
769         (WebCore::InspectorOverlay::paint):
770         (WebCore::InspectorOverlay::resize):
771         (WebCore):
772         (WebCore::InspectorOverlay::update):
773         (WebCore::InspectorOverlay::drawGutter):
774         (WebCore::InspectorOverlay::reset):
775         * inspector/InspectorOverlay.h:
776         (InspectorOverlay):
777         * inspector/InspectorOverlayPage.html: Introduce the gutter painting functionality previously found in the Chromium's
778         DeviceMetricsSupport class, which used to implement WebPageOverlay.
779
780 2012-09-28  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
781
782         editing/pasteboard/paste-removing-iframe.html crashes on EFL bots
783         https://bugs.webkit.org/show_bug.cgi?id=97892
784
785         Reviewed by Kenneth Rohde Christiansen.
786
787         Added missing null check to avoid a crash if the document inside
788         iframe is removed during the editing operation.
789
790         Test: editing/pasteboard/paste-removing-iframe.html
791
792         * editing/Editor.cpp:
793         (WebCore::Editor::changeSelectionAfterCommand):
794
795 2012-09-28  Arvid Nilsson  <anilsson@rim.com>
796
797         [BlackBerry] Destroy thread-specific data for Platform::Graphics::Buffer on the right thread
798         https://bugs.webkit.org/show_bug.cgi?id=97674
799
800         Reviewed by Rob Buis.
801
802         A new API was added to BlackBerry::Platform::Graphics for destroying
803         thread-specific data generated on the compositing thread when we blit
804         buffers. The buffers are otherwise created and destroyed on the WebKit
805         thread, which doesn't give platform any opportunity to destroy the
806         thread-specific data.
807
808         This patch adds calls to the new API to avoid leaking resources.
809
810         Reviewed internally by Jakob Petsovits and Filip Spacek.
811
812         PR 214644
813
814         Verified using manual testing.
815
816         * plugins/blackberry/PluginViewPrivateBlackBerry.cpp:
817         (WebCore::PluginViewPrivate::createBuffers):
818         (WebCore::PluginViewPrivate::destroyBuffers):
819
820 2012-09-28  Andrey Adaikin  <aandrey@chromium.org>
821
822         Web Inspector: [Canvas] log property setters too along with function calls
823         https://bugs.webkit.org/show_bug.cgi?id=97776
824
825         Reviewed by Pavel Feldman.
826
827         Trace logs should also contain property setter calls.
828
829         * inspector/InjectedScriptCanvasModuleSource.js:
830         (.):
831         * inspector/Inspector.json:
832         * inspector/front-end/CanvasProfileView.js:
833         (WebInspector.CanvasProfileView.prototype._showTraceLog):
834
835 2012-09-28  Kent Tamura  <tkent@chromium.org>
836
837         Remove LocalizedNumber*.*
838         https://bugs.webkit.org/show_bug.cgi?id=97876
839
840         Reviewed by Yuta Kitamura.
841
842         LocalizedNumber.h functions are replaced with Localizer class.
843
844         * CMakeLists.txt: Remove LocalizedNumberNone.*.
845         * GNUmakefile.list.am: ditto.
846         * Target.pri: ditto.
847         * WebCore.vcpproj/WebCore.vcproj: ditto.
848         * WebCore.gyp/WebCore.gyp: Remove LocalizedNumber*.*.
849         * WebCore.gypi: ditto.
850         * WebCore.xcodeproj/project.pbxproj: ditto.
851
852         * html/NumberInputType.cpp: Use Localizer for the element locale.
853         (WebCore::NumberInputType::localizeValue):
854         (WebCore::NumberInputType::convertFromVisibleValue):
855
856         * platform/text/Localizer.h: Move some comments from LocalizedNumber.h
857
858         * platform/text/LocalizedNumber.h: Removed.
859         * platform/text/LocalizedNumberICU.cpp: Removed.
860         * platform/text/LocalizedNumberNone.cpp: Removed.
861         * platform/text/mac/LocalizedNumberMac.mm: Removed.
862         * platform/text/win/LocalizedNumberWin.cpp: Removed.
863
864 2012-09-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
865
866         Unreviewed, rolling out r129863.
867         http://trac.webkit.org/changeset/129863
868         https://bugs.webkit.org/show_bug.cgi?id=97173
869
870         WK2 layout test on debug is broken by this patch.
871
872         * platform/efl/RunLoopEfl.cpp:
873         (WebCore::RunLoop::RunLoop):
874         (WebCore::RunLoop::~RunLoop):
875
876 2012-09-28  Vsevolod Vlasov  <vsevik@chromium.org>
877
878         Web Inspector: Formatting on load is broken
879         https://bugs.webkit.org/show_bug.cgi?id=97880
880
881         Reviewed by Alexander Pavlov.
882
883         Bound formatted callback on UISourceCode and fixed callback call.
884
885         * inspector/front-end/UISourceCode.js:
886         (WebInspector.UISourceCode.prototype._fireContentAvailable.formattedCallback):
887         (WebInspector.UISourceCode.prototype._fireContentAvailable):
888
889 2012-09-28  Yoshifumi Inoue  <yosin@chromium.org>
890
891         [Forms] Multiple fields month input UI
892         https://bugs.webkit.org/show_bug.cgi?id=97299
893
894         Reviewed by Kent Tamura.
895
896         This patch introduces multiple fields "month" input UI in DRT. We'll
897         enable this feature once we add tests.
898
899         Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_MONTH
900         and ENABLE_INPUT_MULTIPLE_FIELDS_UI.
901
902         No new tests. To reduce size of this patch, other patches add tests
903         for multiple fields month input UI.
904
905         Note: Actual outputs of two tests
906             - fast/forms/month/month-input-visible-string.html
907             - fast/forms/month/month-stepup-stepdown-from-renderer.html
908         are different.
909
910         * css/html.css:
911         (input::-webkit-datetime-edit-month-field): Added for field appearance.
912         (input::-webkit-datetime-edit-year-field): ditto.
913         (input::-webkit-datetime-edit-month-field:focus): Added to remove focus ring.
914         (input::-webkit-datetime-edit-year-field:focus): ditto.
915         * html/MonthInputType.cpp:
916         (WebCore::MonthInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification.
917         (WebCore::MonthInputType::setupLayoutParameters): Added to set layout of multiple fields.
918         * html/MonthInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseMonthInputType typedef.
919         (WebCore::MonthInputType::MonthInputType): Changed base class name to BaseMonthInputType.
920         (MonthInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters().
921         * html/shadow/DateTimeEditElement.cpp:
922         (DateTimeEditBuilder): Changed to have copy of object in m_stepRange and m_dateValue member variables for being robust.
923         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Changed to add initialize m_placeholderForMonth and m_placeholderForYear.
924         (WebCore::DateTimeEditBuilder::visitField): Changed to support month field and year field.
925         * html/shadow/DateTimeEditElement.h:
926         (LayoutParameters): Changed to add member variables, placeholderForMonth and placeholderForYear. Changed to have copy of object in stepRange member variable for being robust.
927
928 2012-09-28  Eunmi Lee  <eunmi15.lee@samsung.com>
929
930         [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
931         https://bugs.webkit.org/show_bug.cgi?id=97173
932
933         Reviewed by Gyuyoung Kim.
934
935         Remove codes to initialize and shutdown the EFL libraries from
936         RunLoopEfl.cpp. Initialization and shutdown will be done in the
937         ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
938         process.
939
940         No new tests. This patch doesn't change behavior.
941
942         * platform/efl/RunLoopEfl.cpp:
943         (WebCore::RunLoop::RunLoop):
944         (WebCore::RunLoop::~RunLoop):
945
946 2012-09-19  Vsevolod Vlasov  <vsevik@chromium.org>
947
948         Web Inspector: Prepare UISourceCode to transformation into File.
949         https://bugs.webkit.org/show_bug.cgi?id=97113
950
951         Reviewed by Pavel Feldman.
952
953         This patch moves methods and fields from UISourceCode descendants except for the modification bindings.
954
955         * inspector/front-end/BreakpointManager.js:
956         (WebInspector.BreakpointManager.breakpointStorageId):
957         (WebInspector.BreakpointManager.isDivergedFromVM):
958         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
959         (WebInspector.BreakpointManager.Breakpoint):
960         (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
961         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
962         (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
963         (set WebInspector.BreakpointManager.Storage.Item):
964         * inspector/front-end/JavaScriptSource.js:
965         (WebInspector.JavaScriptSource):
966         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
967         * inspector/front-end/JavaScriptSourceFrame.js:
968         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
969         (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
970         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
971         (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointsBeforeEditing):
972         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
973         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
974         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
975         * inspector/front-end/SASSSourceMapping.js:
976         * inspector/front-end/ScriptSnippetModel.js:
977         (WebInspector.ScriptSnippetModel):
978         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
979         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
980         (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
981         (WebInspector.SnippetJavaScriptSource):
982         (WebInspector.SnippetJavaScriptSource.prototype.workingCopyChanged):
983         * inspector/front-end/ScriptsNavigator.js:
984         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
985         * inspector/front-end/ScriptsPanel.js:
986         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
987         (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
988         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
989         * inspector/front-end/SnippetJavaScriptSourceFrame.js:
990         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
991         * inspector/front-end/StyleSource.js:
992         * inspector/front-end/UISourceCode.js:
993         (WebInspector.UISourceCode.prototype.searchInContent):
994         (WebInspector.UISourceCode.prototype._fireContentAvailable.formattedCallback):
995         (WebInspector.UISourceCode.prototype._fireContentAvailable):
996         (WebInspector.UISourceCode.prototype.setFormatted.if):
997         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged):
998         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
999         (WebInspector.UISourceCode.prototype.setFormatted):
1000         (WebInspector.UISourceCode.prototype.setSourceMapping):
1001
1002 2012-09-28  MORITA Hajime  <morrita@google.com>
1003
1004         Move Shadow DOM inspection feature out from experiments
1005         https://bugs.webkit.org/show_bug.cgi?id=94274
1006
1007         Reviewed by Pavel Feldman.
1008
1009         This chagne turns the showShadowDOM experiments into a settings,
1010         adding aSettingsScreen entry for that.
1011
1012         * English.lproj/localizedStrings.js:
1013         * inspector/front-end/DOMAgent.js:
1014         * inspector/front-end/Settings.js:
1015         (WebInspector.ExperimentsSettings):
1016         * inspector/front-end/SettingsScreen.js:
1017         (WebInspector.GenericSettingsTab):
1018
1019 2012-09-27  Kent Tamura  <tkent@chromium.org>
1020
1021         Use Localizer in PagePopupController
1022         https://bugs.webkit.org/show_bug.cgi?id=97862
1023
1024         Reviewed by Hajime Morita.
1025
1026         No new tests. This doesn't change any behavior.
1027
1028         * page/PagePopupClient.h:
1029         (WebCore):
1030         (PagePopupClient): Add "localizer" member function.
1031         * page/PagePopupController.cpp:
1032         (WebCore::PagePopupController::localizeNumberString):
1033         Use a Localizer object provided by PagePopupClient.
1034
1035 2012-09-28  Kent Tamura  <tkent@chromium.org>
1036
1037         Switch monthLabels, weekDayShortLabels, and firstDayOfWeek to Localizer
1038         https://bugs.webkit.org/show_bug.cgi?id=97874
1039
1040         Reviewed by Kentaro Hara.
1041
1042         No new tests. This change shouldn't change any behavior.
1043
1044         * platform/text/Localizer.h:
1045         (Localizer): Add monthLabels, weekDayShortLabels, and firstDayOfWeek.
1046         * platform/text/LocalizedDate.h:
1047         (WebCore): Remove them.
1048         * platform/text/LocalizedDateICU.cpp:
1049         (WebCore::localizedDateFormatText): ditto.
1050         * platform/text/LocalizedDateWin.cpp:
1051         (WebCore::localizedDateFormatText): ditto.
1052         * platform/text/mac/LocalizedDateMac.cpp:
1053         (WebCore::localizedDateFormatText): ditto.
1054
1055         * platform/text/LocaleICU.h:
1056         (LocaleICU): Add virtual and OVERRIDE.
1057         * platform/text/LocaleWin.h:
1058         (LocaleWin):
1059         - Add virtual and OVERRIDE.
1060         - Move the content of firstDayOfWeek to LocaleWin.cpp because inline
1061         definition of a virtual function is not efficient.
1062         * platform/text/LocaleWin.cpp:
1063         (WebCore::LocaleWin::firstDayOfWeek): See above.
1064         * platform/text/mac/LocaleMac.h:
1065         (LocaleMac): Add virtual and OVERRIDE.
1066
1067 2012-09-28  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1068
1069         Web Inspector: Elements: Show entities in edit as HTML.
1070         https://bugs.webkit.org/show_bug.cgi?id=97798
1071
1072         Reviewed by Alexander Pavlov.
1073
1074         In elements tree entities like "&emsp;", "&ensp;" are shown.
1075         But in "Edit as HTML" mode they are replaced by Unicode chars.
1076
1077         For better consistency, these chars should be rendered the same
1078         way both in tree and edit field.
1079
1080         * inspector/front-end/ElementsTreeOutline.js:
1081         Replaced invisible chars with entities.
1082
1083 2012-09-28  Yoshifumi Inoue  <yosin@chromium.org>
1084
1085         [Forms] Adding DateTimeMonthFieldElement and DateTimeYearFieldElement
1086         https://bugs.webkit.org/show_bug.cgi?id=97864
1087
1088         Reviewed by Kent Tamura.
1089
1090         This patch is a part of preparation of implementing multiple fields
1091         date/time input UI.
1092
1093         This patch introduces DateTimeMonthFieldElement and DateTimeYearFieldElement
1094         classes for implementing multiple fields "month" input type.
1095
1096         Multiple fields "month" input type uses two fields for month and year
1097         in locale dependent order. Month field display month as two digit.
1098         Year field display year as four digits in usual case and can display
1099         up to 6 digits to support maximum year 275760, defined in HTML5
1100         specification.
1101
1102         This patch also changes default value for step down and up on empty
1103         field to better UI in year field. Year field displays current year
1104         when step down and up on empty field rather than minimum year 1, or
1105         maximum year 275760.
1106
1107         Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME
1108         and ENABLE_INPUT_MULTIPLE_FIELDS_UI.
1109
1110         No new tests. This patch doesn't change behavior.
1111
1112         * html/shadow/DateTimeFieldElements.cpp:
1113         (WebCore::DateTimeMonthFieldElement::DateTimeMonthFieldElement): Added.
1114         (WebCore::DateTimeMonthFieldElement::create): Added.
1115         (WebCore::DateTimeMonthFieldElement::populateDateTimeFieldsState): Added.
1116         (WebCore::DateTimeMonthFieldElement::setValueAsDate): Added.
1117         (WebCore::DateTimeMonthFieldElement::setValueAsDateTimeFieldsState): Added.
1118         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): Added.
1119         (WebCore::DateTimeYearFieldElement::create): Added.
1120         (WebCore::DateTimeYearFieldElement::defaultValueForStepDown): Added.
1121         (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Added.
1122         (WebCore::DateTimeYearFieldElement::populateDateTimeFieldsState): Added.
1123         (WebCore::DateTimeYearFieldElement::setValueAsDate): Added.
1124         (WebCore::DateTimeYearFieldElement::setValueAsDateTimeFieldsState): Added.
1125         * html/shadow/DateTimeFieldElements.h:
1126         (DateTimeMonthFieldElement): Added.
1127         (DateTimeYearFieldElement): Added.
1128         * html/shadow/DateTimeNumericFieldElement.cpp:
1129         (WebCore::DateTimeNumericFieldElement::Range::isInRange): Added for ease of checking value is in range.
1130         (WebCore::DateTimeNumericFieldElement::defaultValueForStepDown): Added for default behavior.
1131         (WebCore::DateTimeNumericFieldElement::defaultValueForStepUp): ditto.
1132         (WebCore::DateTimeNumericFieldElement::stepDown): Changed to use defaultValueForStepDown instead of maximum field value.
1133         (WebCore::DateTimeNumericFieldElement::stepUp):  Changed to use defaultValueForStepUp minium field value.
1134         (WebCore::DateTimeNumericFieldElement::value): Changed to use "%04d" when maximum field value is greater than 999 for year field.
1135         * html/shadow/DateTimeNumericFieldElement.h:
1136         (DateTimeNumericFieldElement): Changed to add declarations of defaultValueForStepDown() and defaultValueForStepUp().
1137
1138 2012-09-27  Yoshifumi Inoue  <yosin@chromium.org>
1139
1140         [Forms] Adding placeholder feature to DateTimeNumericElement, and update its existing subclasses.
1141         https://bugs.webkit.org/show_bug.cgi?id=97863
1142
1143         Reviewed by Kent Tamura.
1144
1145         This patch is a part of preparation of implementing multiple fields
1146         date/time input UI.
1147
1148         This patch introduces placeholder feature to DateTimeNumericElement
1149         to display date format guide in field, e.g. displaying "dd/mm/yyyy".
1150
1151         Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
1152         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
1153
1154         No new tests. This patch doesn't change behavior.
1155
1156         * html/shadow/DateTimeFieldElements.cpp:
1157         (WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement): Changed to pass placeholder class to base class.
1158         (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): ditto
1159         (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement): ditto
1160         (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement): ditto
1161         * html/shadow/DateTimeNumericFieldElement.cpp: Removed no more needed static function displaySizeOfNumbre().
1162         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Changed to add new parameter to take placeholder.
1163         (WebCore::DateTimeNumericFieldElement::visibleValue): Changed to use m_placholder.
1164         * html/shadow/DateTimeNumericFieldElement.h:
1165         (DateTimeNumericFieldElement): Changed to add a member variable m_placholder to hold placholder to DateTimeNumbericElement class.
1166
1167 2012-09-27  Kent Tamura  <tkent@chromium.org>
1168
1169         Make sure Localizer class is not copyable
1170         https://bugs.webkit.org/show_bug.cgi?id=97857
1171
1172         Reviewed by Kentaro Hara.
1173
1174         We don't intent Localizer obejcts are copyable.
1175
1176         * platform/text/Localizer.h:
1177         (Localizer): Add WTF_MAKE_NONCOPYABLE.
1178
1179 2012-09-27  Nico Weber  <thakis@chromium.org>
1180
1181         Delete some unused code. Found by -Wunused-function.
1182         https://bugs.webkit.org/show_bug.cgi?id=97858
1183
1184         Reviewed by Anders Carlsson.
1185
1186         No intended behavior change.
1187
1188         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1189         (WebCore):
1190         * platform/graphics/chromium/CrossProcessFontLoading.mm:
1191         * platform/graphics/skia/GraphicsContextSkia.cpp:
1192         * platform/mac/ScrollbarThemeMac.mm:
1193         (WebCore):
1194
1195 2012-09-27  Kentaro Hara  <haraken@chromium.org>
1196
1197         [V8] StringCache::v8ExternalString() can return a stale persistent handle
1198         https://bugs.webkit.org/show_bug.cgi?id=97767
1199
1200         Reviewed by Adam Barth.
1201
1202         For details, see the Chromium bug: http://code.google.com/p/chromium/issues/detail?id=151902
1203
1204         StringCache::v8ExternalString() can return a stale persistent handle
1205         in the following scenario:
1206
1207         (1) Assume that StringImpl A with value "foo" is in m_stringCache.
1208         (2) StringImpl B with value "foo" is accessed. At this point, m_lastStringImpl
1209         points to B, and m_lastV8String points to B's handle.
1210         (3) A minor GC is triggered and a weak callback is called back for StringImpl A.
1211         At this point, "foo" is removed from m_stringCache. A's handle is disposed.
1212         However, m_lastV8String is not cleared because m_lastStringImpl (i.e. StringImpl B)
1213         is not equal to StringImpl A. As a result, m_lastV8String points to a stale
1214         persistent handle.
1215         (4) The persistent handle is eventually reused in V8 and made weak again.
1216         (5) StringImpl B with value "foo" is accessed. Then StringCache::v8ExternalString()
1217         returns the stale persistent handle, which is already used for another purpose.
1218
1219         To solve the problem, we need to clear m_stringImpl and m_lastV8String when any
1220         string wrapper is disposed. Specifically, we need to change the code like this:
1221
1222           static void cachedStringCallback(v8::Persistent<v8::Value> wrapper, void* parameter)
1223           {
1224             StringImpl* stringImpl = static_cast<StringImpl*>(parameter);
1225             V8PerIsolateData::current()->stringCache()->remove(stringImpl);
1226             wrapper.Dispose();
1227             stringImpl->deref();
1228           }
1229
1230           void StringCache::remove(StringImpl* stringImpl)
1231           {
1232             m_stringCache.remove(stringImpl);
1233             if (m_lastStringImpl.get() == stringImpl) {  // Remove this line.
1234                 m_lastStringImpl = 0;
1235                 m_lastV8String.Clear();
1236             }
1237           }
1238
1239         Note: Removing the line might be stronger than is needed. Instead of removing
1240         the line, we can just replace the line with 'if (m_lastV8String == wrapper)'.
1241         However, just in case (for correctness), I'd prefer removing the line.
1242         Given that GC won't happen so frequently, clearing the cache in every weak callback
1243         won't affect performance.
1244
1245         No tests because it depends on the GC behavior and I couldn't reproduce the bug.
1246
1247         * bindings/v8/V8ValueCache.cpp:
1248         (WebCore::StringCache::remove):
1249
1250 2012-09-26  Antti Koivisto  <antti@apple.com>
1251
1252         CSSComputedStyleDeclaration::getPropertyCSSValue() triggering unnecessary relayouts and style recalcs
1253         https://bugs.webkit.org/show_bug.cgi?id=97760
1254
1255         Reviewed by Andreas Kling.
1256
1257         Currently getPropertyCSSValue() (which is also used to implement the more common getPropertyValue()) 
1258         calls Document::updateLayoutIgnorePendingStylesheets() unconditionally. However only a few properties 
1259         are actually layout dependent, making many of these relayouts unnecessary. Moreover, triggering full 
1260         style recalc is also often unnecessary as the current node may already have valid style even if some 
1261         other parts of the tree require recalc.
1262         
1263         - Only trigger relayouts for layout dependent properties.
1264         - Trigger style recalc only if the style of the current element or its ancestors is dirty.
1265         
1266         This is a significant (several percent) progression on some real world web content based page loading
1267         benchmarks.
1268
1269         * css/CSSComputedStyleDeclaration.cpp:
1270         (WebCore::isLayoutDependentProperty):
1271         (WebCore):
1272         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1273         * css/StyleResolver.h:
1274         (WebCore::StyleResolver::hasViewportDependentMediaQueries):
1275         * dom/Document.cpp:
1276         (WebCore::Document::hasPendingStyleRecalc):
1277         
1278             Renamed for consistency.
1279
1280         (WebCore::Document::hasPendingForcedStyleRecalc):
1281         (WebCore):
1282         * dom/Document.h:
1283         (Document):
1284         * rendering/RenderImage.cpp:
1285         (WebCore::RenderImage::imageChanged):
1286
1287 2012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
1288
1289         [Chromium] Remove unused PlatformSupport reference in DraggedIsolatedFileSystem
1290         https://bugs.webkit.org/show_bug.cgi?id=97851
1291
1292         Reviewed by Kentaro Hara.
1293
1294         Part of a refactoring series. See tracking bug 82948.
1295
1296         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
1297
1298 2012-09-27  Andrew Lo  <anlo@rim.com>
1299
1300         requestAnimationFrame broken with subframes (DisplayRefreshMonitorManager::registerClient fails to register client)
1301         https://bugs.webkit.org/show_bug.cgi?id=95360
1302
1303         Reviewed by Simon Fraser.
1304
1305         Remove unnecessary code introduced in http://trac.webkit.org/changeset/129808.
1306
1307         No new tests because it's already covered by fast/animation/request-animation-frame-iframe2.html.
1308
1309         * platform/graphics/DisplayRefreshMonitor.cpp:
1310         (WebCore::DisplayRefreshMonitor::addClient):
1311         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
1312
1313 2012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
1314
1315         [Chromium] Remove unused PlatformSupport reference in FontCacheSkia
1316         https://bugs.webkit.org/show_bug.cgi?id=97850
1317
1318         Reviewed by Kentaro Hara.
1319
1320         Part of a refactoring series. See tracking bug 82948.
1321
1322         * platform/graphics/skia/FontCacheSkia.cpp:
1323
1324 2012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
1325
1326         [Chromium][Android] Remove unused PlatformSupport reference in ScrollbarThemeChromiumAndroid
1327         https://bugs.webkit.org/show_bug.cgi?id=97846
1328
1329         Reviewed by Kentaro Hara.
1330
1331         Part of a refactoring series. See tracking bug 82948.
1332
1333         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
1334
1335 2012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
1336
1337         [Chromium] Remove unused PlatformSupport reference in ClipboardChromium
1338         https://bugs.webkit.org/show_bug.cgi?id=97840
1339
1340         Reviewed by Kentaro Hara.
1341
1342         Part of a refactoring series. See tracking bug 82948.
1343
1344         * platform/chromium/ClipboardChromium.cpp:
1345
1346 2012-09-27  Kent Tamura  <tkent@chromium.org>
1347
1348         DateTimeNumericFieldElement should use Localizer functions.
1349         https://bugs.webkit.org/show_bug.cgi?id=97318
1350
1351         Reviewed by Hajime Morita.
1352
1353         Source/WebCore:
1354
1355         Use Localizer functions instead of functions in LocalizedNumber to test
1356         i18n behavior. This affects only layout tests because
1357         Document::getLocalizer() always returns a Localizer for the browser
1358         locale.
1359
1360         To obtain a Localizer object for <input>'s locale from a deep shadow node,
1361         we add localeIdentifier() function to DateTimeFieldElement::FieldOwner
1362         and DateTimeEditElement::EditControlOwner interfaces.
1363
1364         Tests: fast/forms/time-multiple-fields/time-multiple-fields-localization.html
1365
1366         * html/shadow/DateTimeFieldElement.h:
1367         (FieldOwner): Add localeIdentifier callback.
1368         (DateTimeFieldElement): Add localeIdentifier().
1369         * html/shadow/DateTimeFieldElement.cpp:
1370         (WebCore::DateTimeFieldElement::localeIdentifier):
1371         Added. Returns FieldOwner::localeIdentifier if m_fieldOwner is available.
1372
1373         * html/shadow/DateTimeNumericFieldElement.h:
1374         (DateTimeNumericFieldElement): Declare localizer().
1375         * html/shadow/DateTimeNumericFieldElement.cpp:
1376         (WebCore::DateTimeNumericFieldElement::localizer):
1377         Returns a Localizer for DateTimeFieldElement::localeIdentifier()
1378         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Use localizer().
1379         (WebCore::DateTimeNumericFieldElement::value): Use localizer().
1380
1381         * html/shadow/DateTimeEditElement.h:
1382         (EditControlOwner): Add localeIdentifier() callback.
1383         (DateTimeEditElement):
1384         Declare localeIdentifier(), which implements FieldOwner::localeIdentifier().
1385         * html/shadow/DateTimeEditElement.cpp:
1386         (WebCore::DateTimeEditElement::localeIdentifier):
1387         Added. Returns EditControlOwner::localeIdentifier if m_editControlOwner is available.
1388
1389         * html/BaseMultipleFieldsDateAndTimeInputType.h:
1390         (BaseMultipleFieldsDateAndTimeInputType): Declare localeIdentifier(),
1391         which implements EditControlOwner::localeIdentifier().
1392         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
1393         (WebCore::BaseMultipleFieldsDateAndTimeInputType::localeIdentifier):
1394         Added. Returns <input>'s inherited locale identifier.
1395
1396 2012-09-27  Luke Macpherson   <macpherson@chromium.org>
1397
1398         Implement reviewer feedback that I missed on bug 95930.
1399         https://bugs.webkit.org/show_bug.cgi?id=97752
1400
1401         Reviewed by Alexey Proskuryakov.
1402
1403         This patch updates the indentation of function parameters in a few places,
1404         and reserves an appropriate amount of space when using StringBuilder.
1405
1406         * css/CSSBasicShapes.cpp:
1407         (WebCore::buildRectangleString):
1408         (WebCore::CSSBasicShapeRectangle::cssText):
1409         (WebCore::CSSBasicShapeRectangle::serializeResolvingVariables):
1410         (WebCore::CSSBasicShapeCircle::serializeResolvingVariables):
1411         (WebCore::CSSBasicShapeEllipse::serializeResolvingVariables):
1412         (WebCore::buildPolygonString):
1413         * css/Rect.h:
1414         (WebCore::Rect::serializeResolvingVariables):
1415         (WebCore::Quad::serializeResolvingVariables):
1416         (WebCore::Quad::generateCSSString):
1417
1418 2012-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1419
1420         Unreviewed, rolling out r129823.
1421         http://trac.webkit.org/changeset/129823
1422         https://bugs.webkit.org/show_bug.cgi?id=97837
1423
1424         Cause a bunch of pixel failures on Chrome Linux that look like
1425         real regressions (Requested by ojan on #webkit).
1426
1427         * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
1428         (WebCore::Font::drawGlyphs):
1429         (WebCore::Font::drawComplexText):
1430         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
1431         (WebCore::FontPlatformData::setupPaint):
1432         * platform/graphics/skia/SimpleFontDataSkia.cpp:
1433         (WebCore::SimpleFontData::platformWidthForGlyph):
1434
1435 2012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
1436
1437         [Chromium] Remove screen-related functions from PlatformSupport
1438         https://bugs.webkit.org/show_bug.cgi?id=97474
1439
1440         Reviewed by Adam Barth.
1441
1442         Part of a refactoring series. See tracking bug 82948.
1443         Screen-related functions like screenHorizontalDPI that
1444         used to be on PlatformSupport are now accessed through a new
1445         PlatformPageClient attached to Widget in WebCore-land, which is
1446         implemented by ChromeClientImpl in WebKit-land, which proxies
1447         calls to WebWidgetClient, which is actually implemented in
1448         Chromium-land.
1449
1450         * WebCore.gypi:
1451         * platform/Widget.h:
1452         * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
1453         (PageClientChromium):
1454         * platform/chromium/PlatformScreenChromium.cpp:
1455         (WebCore::toPlatformPageClient):
1456         (WebCore):
1457         (WebCore::screenHorizontalDPI):
1458         (WebCore::screenVerticalDPI):
1459         (WebCore::screenDepth):
1460         (WebCore::screenDepthPerComponent):
1461         (WebCore::screenIsMonochrome):
1462         (WebCore::screenRect):
1463         (WebCore::screenAvailableRect):
1464         * platform/chromium/PlatformSupport.h:
1465         (PlatformSupport):
1466
1467 2012-09-27  Kenichi Ishibashi  <bashi@chromium.org>
1468
1469         [Chromium] FontHarfBuzz.cpp should not use drawTextOnPath().
1470         https://bugs.webkit.org/show_bug.cgi?id=97676
1471
1472         Reviewed by Tony Chang.
1473
1474         Use drawPosText() if possible for vertical text.
1475         Use drawTextOnPath() only if the font doesn't have vhea/vmtx table.
1476
1477         No new tests. No change in behavior on LayoutTests.
1478         Confirmed improvement in vertical text positioning using ipafont and Skia r5677.
1479
1480         * platform/graphics/harfbuzz/FontHarfBuzz.cpp:
1481         (WebCore::drawVerticalTextWithBrokenIdeographs): Added.
1482         (WebCore):
1483         (WebCore::Font::drawGlyphs): Draw vertical text by drawPosText() in a similar manner of FontSkia.cpp.
1484         (WebCore::Font::drawComplexText): Disable setVerticalText(). Complex path doesn't support it now.
1485         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
1486         (WebCore::FontPlatformData::setupPaint): Call setVertialText().
1487         * platform/graphics/skia/SimpleFontDataSkia.cpp:
1488         (WebCore::SimpleFontData::platformWidthForGlyph): Disable setVerticalText() if the font doesn't have vertical metrics.
1489
1490 2012-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1491
1492         Unreviewed, rolling out r129806.
1493         http://trac.webkit.org/changeset/129806
1494         https://bugs.webkit.org/show_bug.cgi?id=97831
1495
1496         Broke windows build due to missing header (Requested by jsbell
1497         on #webkit).
1498
1499         * Modules/indexeddb/IDBLevelDBCoding.cpp:
1500         (WebCore::IDBLevelDBCoding::encodeString):
1501         (WebCore::IDBLevelDBCoding::decodeString):
1502
1503 2012-09-27  Levi Weintraub  <leviw@chromium.org>
1504
1505         REGRESSION(r129186): Pressing enter at the end of a line deletes the line
1506         https://bugs.webkit.org/show_bug.cgi?id=97763
1507
1508         Reviewed by Ryosuke Niwa.
1509
1510         r129186 exposed incorrect behavior in RenderText whereby RenderText's lines were
1511         dirtied but the renderer wasn't marked for layout. Rich text editing in GMail exposed
1512         this behavior. RenderText::setTextWithOffset is called with a text string identical
1513         to the current text. It still dirties lines, then calls setText, which has a check
1514         for the case when the strings are the same and returns early and doesn't mark us as
1515         needing layout.
1516
1517         This change adds the same early bailing logic in setText to setTextWithOffset, but
1518         forces setText to work its magic whenever we dirty lines there (and avoid double-
1519         checking that the strings are equal).
1520
1521         * rendering/RenderText.cpp:
1522         (WebCore::RenderText::setTextWithOffset):
1523
1524 2012-09-27  Andrew Lo  <anlo@rim.com>
1525
1526         requestAnimationFrame broken with subframes (DisplayRefreshMonitorManager::registerClient fails to register client)
1527         https://bugs.webkit.org/show_bug.cgi?id=95360
1528
1529         Reviewed by Simon Fraser.
1530
1531         DisplayRefreshMonitorManager::ensureMonitorForClient currently only adds the DisplayRefreshMonitorClient
1532         to the appropriate DisplayRefreshMonitor when a new monitor is created.
1533         It should also do so when it finds an existing monitor.
1534
1535         Test: fast/animation/request-animation-frame-iframe2.html
1536
1537         * platform/graphics/DisplayRefreshMonitor.cpp:
1538         (WebCore::DisplayRefreshMonitor::addClient):
1539         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
1540
1541 2012-09-27  Erik Arvidsson  <arv@chromium.org>
1542         Unreviewed Chromium debug build fix.
1543
1544         Two fixes makes one breakage
1545
1546         http://trac.webkit.org/changeset/129785
1547         http://trac.webkit.org/changeset/129798
1548
1549         * bindings/v8/V8Binding.h:
1550         (WebCore::toNativeArguments):
1551
1552 2012-09-27  Joshua Bell  <jsbell@chromium.org>
1553
1554         IndexedDB: Optimize encodeString/decodeString
1555         https://bugs.webkit.org/show_bug.cgi?id=97794
1556
1557         Reviewed by Tony Chang.
1558
1559         Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling.
1560         The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy
1561         isn't sufficient, but the code used StringBuilder::append() character-by-character
1562         and custom byte-swapping which was slow.
1563
1564         Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string
1565         and putting it 20k times and getting it 20k times. On my test box, mean time before the
1566         patch was 8.2s, mean time after the patch was 4.6s.
1567
1568         Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*'
1569
1570         * Modules/indexeddb/IDBLevelDBCoding.cpp:
1571         (WebCore::IDBLevelDBCoding::encodeString):
1572         (WebCore::IDBLevelDBCoding::decodeString):
1573
1574 2012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
1575
1576         [Chromium][Mac] Move Mac-specific theme functions out of PlatformSupport
1577         https://bugs.webkit.org/show_bug.cgi?id=97817
1578
1579         Reviewed by Adam Barth.
1580
1581         Part of a refactoring series. See tracking bug 82948. We're calling WebThemeEngine directly now instead of proxying through PlatformSupport.
1582
1583         * platform/chromium/PlatformSupport.h:
1584         (PlatformSupport):
1585         * platform/chromium/ScrollbarThemeChromiumMac.mm:
1586         (WebCore::scrollbarStateToThemeState):
1587         (WebCore):
1588         (WebCore::ScrollbarThemeChromiumMac::paint):
1589
1590 2012-09-27  Erik Arvidsson  <arv@chromium.org>
1591
1592         Fix issue with ClassList which was hitting an assert in debug mode
1593         https://bugs.webkit.org/show_bug.cgi?id=97820
1594
1595         Reviewed by Ojan Vafai.
1596
1597         http://trac.webkit.org/changeset/129779 hit asserts in debug mode when trying to use fastGetAttribute on an SVG element.
1598
1599         No new tests. No change in behavior.
1600
1601         * bindings/v8/V8Binding.h:
1602         (WebCore::toNativeArguments):
1603         * html/ClassList.h:
1604
1605 2012-09-27  Philip Rogers  <pdr@google.com>
1606
1607         Rewrite multithreaded filter job dispatching
1608         https://bugs.webkit.org/show_bug.cgi?id=97500
1609
1610         Reviewed by Dean Jackson.
1611
1612         This patch solves the problem of splitting up images into subregions for multithreaded
1613         filters. This fixes the way we partition the image array into equal-sized chunks.
1614         If we have an array of length N and want to split it into K chunks, we calculate:
1615           int jobSize = N / K; // integer division, so this is floored
1616           int jobSizeExtra = N % K; // modulus produces the remainder
1617         We then split the array into jobSizeExtra number of jobs with size jobSize + 1
1618         and (K - jobSizeExtra) number of jobs with size jobSize. This pattern
1619         is used in each of the 5 filters in this patch.
1620
1621         This patch primarily fixes an error in FEMorphology::platformApply where
1622         the image array was partitioned into (1 + (N / K)) pieces with the last job
1623         taking the remainder. Unfortunately, this can cause overruns in the 2nd-to-last job.
1624         Consider N = 2373 and K = 64 jobs. Job 0 would take indices 0...38, job 1 would take
1625         38...76, etc. Unfortunately the 62nd job takes 2356...2394 which overruns.
1626
1627         To prevent similar issues elsewhere this patch updates all of the filters
1628         to use the same pattern as FEMorphology.
1629
1630         Test: svg/filters/feMorphology-crash.html
1631
1632         * platform/graphics/filters/FEConvolveMatrix.cpp:
1633         (WebCore::FEConvolveMatrix::platformApplySoftware):
1634         * platform/graphics/filters/FEGaussianBlur.cpp:
1635         (WebCore::FEGaussianBlur::platformApply):
1636         * platform/graphics/filters/FELighting.cpp:
1637         (WebCore::FELighting::platformApplyGeneric):
1638         * platform/graphics/filters/FEMorphology.cpp:
1639         (WebCore::FEMorphology::platformApply):
1640
1641             Some special care is taken for Gaussian Blur because there is an
1642             extraHeight parameter for sampling outside the image's dimensions.
1643             This means we use the same partitioning algorithm but add
1644             extraHeight padding on the lower and upper bounds.
1645
1646         * platform/graphics/filters/FETurbulence.cpp:
1647         (WebCore::FETurbulence::platformApplySoftware):
1648
1649 2012-09-27  Mark Pilgrim  <pilgrim@chromium.org>
1650
1651         [Chromium] Move UNIX-specific theme functions out of PlatformSupport
1652         https://bugs.webkit.org/show_bug.cgi?id=96516
1653
1654         Reviewed by Adam Barth.
1655
1656         Call WebThemeEngine functions and use WebThemeEngine enums
1657         directly from the new Platform/ directly; remove all
1658         intermediate functions and enums and conversion functions from
1659         PlatformSupport.
1660         Part of a refactoring series; see tracking bug 82948.
1661
1662         * WebCore.gyp/WebCore.gyp:
1663         * platform/chromium/PlatformSupport.h:
1664         (PlatformSupport):
1665         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
1666         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
1667         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
1668         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
1669         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
1670         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
1671         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
1672         * rendering/RenderThemeChromiumAndroid.cpp:
1673         (WebCore::RenderThemeChromiumAndroid::adjustInnerSpinButtonStyle):
1674         (WebCore::RenderThemeChromiumAndroid::menuListArrowPadding):
1675         * rendering/RenderThemeChromiumLinux.cpp:
1676         (WebCore::getWebThemeState):
1677         (WebCore):
1678         (WebCore::RenderThemeChromiumLinux::adjustSliderThumbSize):
1679         (WebCore::RenderThemeChromiumLinux::paintCheckbox):
1680         (WebCore::RenderThemeChromiumLinux::setCheckboxSize):
1681         (WebCore::RenderThemeChromiumLinux::paintRadio):
1682         (WebCore::RenderThemeChromiumLinux::setRadioSize):
1683         (WebCore::RenderThemeChromiumLinux::paintButton):
1684         (WebCore::RenderThemeChromiumLinux::paintTextField):
1685         (WebCore::RenderThemeChromiumLinux::paintMenuList):
1686         (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
1687         (WebCore::RenderThemeChromiumLinux::paintSliderThumb):
1688         (WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle):
1689         (WebCore::RenderThemeChromiumLinux::paintInnerSpinButton):
1690         (WebCore::RenderThemeChromiumLinux::paintProgressBar):
1691
1692 2012-09-27  Bear Travis  <betravis@adobe.com>
1693
1694         [CSS Exclusions] Rename RenderStyle::wrapShapeInside/Outside to shapeInside/Outside
1695         https://bugs.webkit.org/show_bug.cgi?id=97707
1696
1697         Reviewed by Antti Koivisto.
1698
1699         The exclusions specification has renamed wrap-shape-inside and wrap-shape-outside
1700         to shape-inside and shape-outside. We should rename the getter/setter functions
1701         in RenderStyle, and update the derived variable and function names accordingly.
1702         For more information, see: http://dev.w3.org/csswg/css3-exclusions/#declaring-shapes
1703
1704         Covered by existing tests. No new functionality.
1705
1706         * css/CSSComputedStyleDeclaration.cpp:
1707         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1708         * css/StyleBuilder.cpp:
1709         (WebCore::ApplyPropertyExclusionShape::applyValue):
1710         (WebCore::StyleBuilder::StyleBuilder):
1711         * rendering/ExclusionShapeInsideInfo.cpp:
1712         (WebCore::ExclusionShapeInsideInfo::exclusionShapeInsideInfoForRenderBlock):
1713         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock):
1714         (WebCore::ExclusionShapeInsideInfo::removeExclusionShapeInsideInfoForRenderBlock):
1715         (WebCore::ExclusionShapeInsideInfo::computeShapeSize):
1716         * rendering/RenderBlock.cpp:
1717         (WebCore::RenderBlock::styleDidChange):
1718         (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
1719         * rendering/RenderBlock.h:
1720         (WebCore::RenderBlock::exclusionShapeInsideInfo):
1721         * rendering/style/RenderStyle.cpp:
1722         (WebCore::RenderStyle::diff):
1723         * rendering/style/RenderStyle.h:
1724         * rendering/style/StyleRareNonInheritedData.cpp:
1725         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1726         (WebCore::StyleRareNonInheritedData::operator==):
1727         (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
1728         * rendering/style/StyleRareNonInheritedData.h:
1729         (StyleRareNonInheritedData):
1730
1731 2012-09-27  Michael Saboff  <msaboff@apple.com>
1732
1733         ApplicationCacheStorage does not optimally handle 8 bit strings
1734         https://bugs.webkit.org/show_bug.cgi?id=97733
1735
1736         Reviewed by Alexey Proskuryakov.
1737
1738         Added 8 bit string paths.
1739
1740         No functional change, therefore no new tests.
1741
1742         * loader/appcache/ApplicationCacheStorage.cpp:
1743         (WebCore::urlHostHash):
1744         (WebCore::ApplicationCacheStorage::store):
1745         (WebCore::parseHeader):
1746         (WebCore::parseHeaders):
1747
1748 2012-09-27  Stephen Chenney  <schenney@chromium.org>
1749
1750         Unreviewed Chromium debug build fix.
1751
1752         ASSERT contains an inequality of unmatched types. A cast should do the trick.
1753
1754         * bindings/v8/V8Binding.h:
1755         (WebCore::toNativeArguments):
1756
1757 2012-09-27  Adam Klein  <adamk@chromium.org>
1758
1759         Simplify and clarify MutationObserverRegistration interface and usage
1760         https://bugs.webkit.org/show_bug.cgi?id=97742
1761
1762         Reviewed by Ojan Vafai.
1763
1764         Minor cleanups in MutationObserverRegistration: make const methods explicitly const,
1765         use C++ templates to avoid duplicating logic, improve usage of raw pointers vs PassRefPtr,
1766         remove the declaration of a no-longer-existing method.
1767
1768         No change in behavior.
1769
1770         * dom/MutationObserverRegistration.cpp:
1771         (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach): Take a raw pointer because we don't always ref the node.
1772         (WebCore::MutationObserverRegistration::shouldReceiveMutationFrom): Make this a const method.
1773         * dom/MutationObserverRegistration.h:
1774         (MutationObserverRegistration): Removed declaration of non-existent caseInsensitiveAttributeFilter method.
1775         (WebCore::MutationObserverRegistration::hasTransientRegistrations): const method.
1776         (WebCore::MutationObserverRegistration::isSubtree): Remove superfluous "inline" keyword.
1777         (WebCore::MutationObserverRegistration::observer): const method.
1778         * dom/Node.cpp:
1779         (WebCore):
1780         (WebCore::collectMatchingObserversForMutation): Add a templatized function to reduce duplicated code.
1781         (WebCore::Node::getRegisteredMutationObserversOfType):
1782         (WebCore::Node::registerMutationObserver): Take a raw pointer because we don't always ref the observer.
1783         * dom/Node.h:
1784         (Node): Remove old method, replaced by templatized static function.
1785
1786 2012-09-27  Erik Arvidsson  <arv@chromium.org>
1787
1788         DOM4: Add support for rest parameters to DOMTokenList
1789         https://bugs.webkit.org/show_bug.cgi?id=97335
1790
1791         Reviewed by Ojan Vafai.
1792
1793         This adds support for rest paramaters to DOMTokenList add and remove.
1794         http://dom.spec.whatwg.org/#domtokenlist
1795
1796         The code generator has been updated to understand variadic methods.
1797         When a method has a rest parameter the remaining arguments are collected
1798         into a WTF::Vector.
1799
1800         DOMTokenList, DOMSettableTokenList and ClassList were restructured a bit to
1801         allow code to be shared better.
1802
1803         Updated existing tests and includes new binding tests.
1804
1805         * bindings/js/JSDOMBinding.h:
1806         (WebCore::toNativeArray):
1807         (WebCore):
1808         (WebCore::toNativeArguments): Similar to toNativeArray but extracts the arguments instead.
1809         * bindings/scripts/CodeGeneratorJS.pm:
1810         (GenerateArgumentsCountCheck): Updated to treat rest paramaters as optional.
1811         (GenerateParametersCheck): Generate code for rest params.
1812         * bindings/scripts/CodeGeneratorV8.pm:
1813         (GenerateFunctionParametersCheck): Updated to treat rest paramaters as optional.
1814         (GenerateArgumentsCountCheck): Ditto.
1815         (GenerateParametersCheck):  Generate code for rest params.
1816         * bindings/scripts/IDLParser.pm:
1817         (parseOptionalOrRequiredArgument):
1818         * bindings/scripts/IDLStructure.pm:
1819         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
1820         (WebDOMTestObj::variadicStringMethod):
1821         (WebDOMTestObj::variadicDoubleMethod):
1822         (WebDOMTestObj::variadicNodeMethod):
1823         * bindings/scripts/test/CPP/WebDOMTestObj.h:
1824         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1825         (webkit_dom_test_obj_variadic_string_method):
1826         (webkit_dom_test_obj_variadic_double_method):
1827         (webkit_dom_test_obj_variadic_node_method):
1828         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
1829         * bindings/scripts/test/JS/JSTestObj.cpp:
1830         (WebCore):
1831         (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
1832         (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
1833         (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
1834         * bindings/scripts/test/JS/JSTestObj.h:
1835         (WebCore):
1836         * bindings/scripts/test/ObjC/DOMTestObj.h:
1837         * bindings/scripts/test/ObjC/DOMTestObj.mm:
1838         (-[DOMTestObj variadicStringMethod:tail:]):
1839         (-[DOMTestObj variadicDoubleMethod:tail:]):
1840         (-[DOMTestObj variadicNodeMethod:tail:]):
1841         * bindings/scripts/test/TestObj.idl:
1842         * bindings/scripts/test/V8/V8TestObj.cpp:
1843         (WebCore::TestObjV8Internal::variadicStringMethodCallback):
1844         (TestObjV8Internal):
1845         (WebCore::TestObjV8Internal::variadicDoubleMethodCallback):
1846         (WebCore::TestObjV8Internal::variadicNodeMethodCallback):
1847         (WebCore):
1848         (WebCore::ConfigureV8TestObjTemplate):
1849         * bindings/v8/V8Binding.h:
1850         (WebCore::toNativeArray):
1851         (WebCore):
1852         (WebCore::toNativeArguments): Similar to toNativeArray but extracts the arguments instead.
1853         * html/ClassList.cpp:
1854         (WebCore::ClassList::ClassList):
1855         * html/ClassList.h:
1856         (WebCore):
1857         (ClassList):
1858         * html/DOMSettableTokenList.cpp:
1859         (WebCore::DOMSettableTokenList::containsInternal):
1860         (WebCore::DOMSettableTokenList::add):
1861         (WebCore::DOMSettableTokenList::addInternal):
1862         (WebCore::DOMSettableTokenList::remove):
1863         (WebCore::DOMSettableTokenList::removeInternal):
1864         (WebCore::DOMSettableTokenList::setValue):
1865         * html/DOMSettableTokenList.h:
1866         (DOMSettableTokenList):
1867         * html/DOMTokenList.cpp:
1868         (WebCore::DOMTokenList::validateTokens):
1869         (WebCore):
1870         (WebCore::DOMTokenList::contains): Moved implementation to base class to allow code sharing.
1871         (WebCore::DOMTokenList::add): Ditto.
1872         (WebCore::DOMTokenList::remove): Ditto.
1873         (WebCore::DOMTokenList::toggle): Ditto.
1874         (WebCore::DOMTokenList::addInternal): Ditto.
1875         (WebCore::DOMTokenList::removeInternal): Ditto.
1876         (WebCore::DOMTokenList::addToken): Ditto.
1877         (WebCore::DOMTokenList::addTokens):
1878         (WebCore::DOMTokenList::removeToken): Ditto.
1879         (WebCore::DOMTokenList::removeTokens):
1880         * html/DOMTokenList.h:
1881         (DOMTokenList):
1882         (WebCore::DOMTokenList::toString):
1883         * html/DOMTokenList.idl:
1884
1885 2012-09-27  Andreas Kling  <kling@webkit.org>
1886
1887         332kB below DocumentEventQueue::create() on Membuster3.
1888         <http://webkit.org/b/97712>
1889
1890         Reviewed by Anders Carlsson.
1891
1892         Give DocumentEventQueue::m_queuedEvents an inline capacity of 16 (the default is 256.)
1893         312kB progression on Membuster3.
1894
1895         * dom/DocumentEventQueue.h:
1896         * dom/DocumentEventQueue.cpp:
1897         (WebCore::DocumentEventQueue::pendingEventTimerFired):
1898
1899 2012-09-27  Vsevolod Vlasov  <vsevik@chromium.org>
1900
1901         Web Inspector: [REGRESSION] Breakpoints are not always shown in breakpoints sidebar pane.
1902         https://bugs.webkit.org/show_bug.cgi?id=97783
1903
1904         Reviewed by Pavel Feldman.
1905
1906         BreakpointSidebarPane now explicitly adds all breakpoints that are available at the moment of its creation.
1907
1908         * inspector/front-end/BreakpointManager.js:
1909         (WebInspector.BreakpointManager.prototype._filteredBreakpointLocations):
1910         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
1911         (WebInspector.BreakpointManager.prototype.allBreakpointLocations):
1912         * inspector/front-end/BreakpointsSidebarPane.js:
1913         (WebInspector.JavaScriptBreakpointsSidebarPane):
1914         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
1915
1916 2012-09-27  Mike West  <mkwst@chromium.org>
1917
1918         Dropping JSC references from InspectorInstrumentation.h by including 'ScriptState.h'
1919         https://bugs.webkit.org/show_bug.cgi?id=97759
1920
1921         Reviewed by Adam Barth.
1922
1923         InspectorInstrumentation.h includes two '#if USE(JSC)' blocks, which
1924         I've been reliably informed should not appear in WebCore[1]. This patch
1925         drops both blocks, and includes 'ScriptState.h' instead, which should
1926         have the same practical effect.
1927
1928         There's no functional change, so this should be covered by existing tests.
1929
1930         [1]: https://bugs.webkit.org/show_bug.cgi?id=94433#c55
1931
1932         * inspector/InspectorInstrumentation.h:
1933         (WebCore):
1934
1935 2012-09-27  Erik Arvidsson  <arv@chromium.org>
1936
1937         Remove unused regular expressions from IDLStructure.pm
1938         https://bugs.webkit.org/show_bug.cgi?id=97790
1939
1940         Reviewed by Kentaro Hara.
1941
1942         After http://trac.webkit.org/changeset/129723 these regular expressions are no longer used.
1943
1944         No new tests, run-binding-tests generates the same output.
1945
1946         * bindings/scripts/IDLStructure.pm:
1947
1948 2012-09-27  Tommy Widenflycht  <tommyw@google.com>
1949
1950         MediaStream API: Enhance MediaConstraints to make it easier to get the constraint data
1951         https://bugs.webkit.org/show_bug.cgi?id=97559
1952
1953         Reviewed by Adam Barth.
1954
1955         Instead of just returning the names, return a pair of name and value.
1956
1957         Existing tests cover this patch.
1958
1959         * Modules/mediastream/MediaConstraintsImpl.cpp:
1960         (WebCore::MediaConstraintsImpl::initialize):
1961         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
1962         (WebCore::MediaConstraintsImpl::getOptionalConstraints):
1963         (WebCore::MediaConstraintsImpl::getOptionalConstraintValue):
1964         * Modules/mediastream/MediaConstraintsImpl.h:
1965         (MediaConstraintsImpl):
1966         * platform/chromium/support/WebMediaConstraints.cpp:
1967         (WebKit::WebMediaConstraint::WebMediaConstraint):
1968         (WebKit):
1969         (WebKit::WebMediaConstraints::getMandatoryConstraints):
1970         (WebKit::WebMediaConstraints::getOptionalConstraints):
1971         * platform/mediastream/MediaConstraints.h:
1972         (WebCore::MediaConstraint::MediaConstraint):
1973         (MediaConstraint):
1974         (WebCore):
1975         (MediaConstraints):
1976
1977 2012-09-27  Ilya Tikhonovsky  <loislo@chromium.org>
1978
1979         Web Inspector: NMI: move visited and countObjectSize methods implementation into separate class.
1980         https://bugs.webkit.org/show_bug.cgi?id=97461
1981
1982         Reviewed by Yury Semikhatsky.
1983
1984         These methods and the data collected by them need to be used in the instrumentation code for other components.
1985         As example when we are visiting bitmaps we need to visit platform specific objects.
1986         These objects will be instrumented with help of component's own instrumentation code
1987         but we have to keep the single set of visited objects and the map of counters.
1988
1989         * inspector/InspectorMemoryAgent.cpp:
1990         (WebCore):
1991         (WebCore::collectDomTreeInfo):
1992         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
1993         * inspector/MemoryInstrumentationImpl.cpp:
1994         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
1995         (WebCore):
1996         (WebCore::MemoryInstrumentationClientImpl::visited):
1997         (WebCore::MemoryInstrumentationImpl::selfSize):
1998         * inspector/MemoryInstrumentationImpl.h:
1999         (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
2000         (WebCore::MemoryInstrumentationClientImpl::selfSize):
2001         (MemoryInstrumentationClientImpl):
2002         (WebCore::MemoryInstrumentationClientImpl::visitedObjects):
2003         (WebCore):
2004         (MemoryInstrumentationImpl):
2005         (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
2006         (WebCore::MemoryInstrumentationImpl::checkInstrumentedObjects):
2007
2008 2012-09-27  Jinwoo Song  <jinwoo7.song@samsung.com>
2009
2010         [CMAKE] Remove unnecessary header files from CMakeLists.txt
2011         https://bugs.webkit.org/show_bug.cgi?id=97771
2012
2013         Reviewed by Kentaro Hara.
2014
2015         Remove the header files which are added in the source file list.
2016
2017         * CMakeLists.txt:
2018
2019 2012-09-27  Andrey Kosyakov  <caseq@chromium.org>
2020
2021         Unreviewed, re-landing r129633 with the proper order of calls.
2022         https://bugs.webkit.org/show_bug.cgi?id=97659
2023
2024         * inspector/InspectorOverlay.cpp:
2025         (WebCore::InspectorOverlay::paint):
2026
2027 2012-09-27  Andrey Kosyakov  <caseq@chromium.org>
2028
2029         Unreviewed, rolling out r129633.
2030         http://trac.webkit.org/changeset/129633
2031         https://bugs.webkit.org/show_bug.cgi?id=97659
2032
2033         Breaks inspector overlay in non-composited mode
2034
2035         * inspector/InspectorOverlay.cpp:
2036         (WebCore::InspectorOverlay::paint):
2037
2038 2012-09-27  Christophe Dumez  <christophe.dumez@intel.com>
2039
2040         [EFL] Remove duplicated CSS between mediaControlsEfl.css and mediaControlsEflFullscreen.css
2041         https://bugs.webkit.org/show_bug.cgi?id=97770
2042
2043         Reviewed by Kenneth Rohde Christiansen.
2044
2045         Some CSS rules were duplicated between mediaControlsEfl.css and mediaControlsEflFullscreen.css
2046         for no reason. This is an issue because it is easy to update mediaControlsEfl.css and forget
2047         to make the same update to mediaControlsEflFullscreen.css. As a matter of fact, the timeline
2048         display in fullscreen is currently off by a few pixels because its fullscreen CSS is not in
2049         sync with what is in mediaControlsEfl.css.
2050
2051         We need to include in mediaControlsEflFullscreen.css only the CSS rules that are specific to
2052         fullscreen mode, that is to say, the hiding of some controls.
2053
2054         No new tests, no behavior change for layout tests.
2055
2056         * css/mediaControlsEflFullscreen.css:
2057
2058 2012-09-27  Vsevolod Vlasov  <vsevik@chromium.org>
2059
2060         Web Inspector: Open resource dialog should assume implicit wildcard in the beginning of the query.
2061         https://bugs.webkit.org/show_bug.cgi?id=97768
2062
2063         Reviewed by Pavel Feldman.
2064
2065         Open resource dialog now assumes implicit wildcard in the beginning of the query.
2066
2067         * inspector/front-end/FilteredItemSelectionDialog.js:
2068         (WebInspector.FilteredItemSelectionDialog.prototype._innerCreateSearchRegExp):
2069
2070 2012-09-27  Pavel Feldman  <pfeldman@chromium.org>
2071
2072         Web Inspector: do not use InspectorInstrumentation::hasFrontends() check when collecting stacks
2073         https://bugs.webkit.org/show_bug.cgi?id=96730
2074
2075         Reviewed by Vsevolod Vlasov.
2076
2077         - Introduced InspectorInstrumentation::console|timeline|runtime|canvasAgentEnabled
2078         - Using it all over the place instead of the hasFrontend (the latter is now only used once to guard hot path)
2079         - Introduced explicit "enabled" state of the console and runtime agents
2080
2081         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2082         (WebCore::JSHTMLCanvasElement::getContext):
2083         * bindings/js/JSMainThreadExecState.h:
2084         (WebCore::JSMainThreadExecState::instrumentFunctionCall):
2085         * bindings/js/ScheduledAction.cpp:
2086         (WebCore::ScheduledAction::create):
2087         * bindings/js/ScriptCallStackFactory.cpp:
2088         (WebCore::createScriptCallStackForConsole):
2089         * bindings/js/ScriptCallStackFactory.h:
2090         (WebCore):
2091         * bindings/scripts/CodeGeneratorJS.pm:
2092         (GenerateCallWith):
2093         * bindings/scripts/CodeGeneratorV8.pm:
2094         (GenerateCallWith):
2095         * bindings/scripts/test/JS/JSTestObj.cpp:
2096         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
2097         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
2098         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
2099         * bindings/scripts/test/V8/V8TestObj.cpp:
2100         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
2101         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
2102         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
2103         * bindings/v8/ScriptCallStackFactory.cpp:
2104         (WebCore::createScriptCallStackForConsole):
2105         * bindings/v8/ScriptCallStackFactory.h:
2106         (WebCore):
2107         * bindings/v8/ScriptController.cpp:
2108         (WebCore::ScriptController::callFunctionWithInstrumentation):
2109         * bindings/v8/V8DOMWindowShell.cpp:
2110         (WebCore::V8DOMWindowShell::setIsolatedWorldSecurityOrigin):
2111         * bindings/v8/V8WorkerContextEventListener.cpp:
2112         (WebCore::V8WorkerContextEventListener::callListenerFunction):
2113         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2114         (WebCore::WindowSetTimeoutImpl):
2115         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2116         (WebCore::V8HTMLCanvasElement::getContextCallback):
2117         * bindings/v8/custom/V8WorkerContextCustom.cpp:
2118         (WebCore::SetTimeoutOrInterval):
2119         * inspector/Inspector.json:
2120         * inspector/InspectorConsoleAgent.cpp:
2121         (WebCore):
2122         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
2123         (WebCore::InspectorConsoleAgent::enable):
2124         (WebCore::InspectorConsoleAgent::disable):
2125         (WebCore::InspectorConsoleAgent::clearMessages):
2126         (WebCore::InspectorConsoleAgent::clearFrontend):
2127         (WebCore::InspectorConsoleAgent::addConsoleMessage):
2128         * inspector/InspectorConsoleAgent.h:
2129         (WebCore::InspectorConsoleAgent::enabled):
2130         (InspectorConsoleAgent):
2131         * inspector/InspectorController.cpp:
2132         (WebCore::InspectorController::connectFrontend):
2133         (WebCore::InspectorController::disconnectFrontend):
2134         * inspector/InspectorInstrumentation.cpp:
2135         (WebCore):
2136         (WebCore::InspectorInstrumentation::canvasAgentEnabled):
2137         (WebCore::InspectorInstrumentation::consoleAgentEnabled):
2138         (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
2139         (WebCore::InspectorInstrumentation::timelineAgentEnabled):
2140         * inspector/InspectorInstrumentation.h:
2141         (InspectorInstrumentation):
2142         (WebCore::InspectorInstrumentation::canvasAgentEnabled):
2143         (WebCore::InspectorInstrumentation::consoleAgentEnabled):
2144         (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
2145         (WebCore::InspectorInstrumentation::timelineAgentEnabled):
2146         * inspector/InspectorRuntimeAgent.cpp:
2147         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
2148         * inspector/InspectorRuntimeAgent.h:
2149         (WebCore::InspectorRuntimeAgent::enabled):
2150         (WebCore::InspectorRuntimeAgent::enable):
2151         (WebCore::InspectorRuntimeAgent::disable):
2152         (InspectorRuntimeAgent):
2153         * inspector/PageRuntimeAgent.cpp:
2154         (PageRuntimeAgentState):
2155         (WebCore::PageRuntimeAgent::clearFrontend):
2156         (WebCore::PageRuntimeAgent::restore):
2157         (WebCore):
2158         (WebCore::PageRuntimeAgent::enable):
2159         (WebCore::PageRuntimeAgent::disable):
2160         (WebCore::PageRuntimeAgent::didClearWindowObject):
2161         (WebCore::PageRuntimeAgent::didCreateIsolatedContext):
2162         (WebCore::PageRuntimeAgent::reportExecutionContextCreation):
2163         * inspector/PageRuntimeAgent.h:
2164         (PageRuntimeAgent):
2165         * inspector/WorkerRuntimeAgent.cpp:
2166         * inspector/WorkerRuntimeAgent.h:
2167         * inspector/front-end/RuntimeModel.js:
2168         (WebInspector.RuntimeModel.prototype._didLoadCachedResources):
2169         * page/DOMWindow.cpp:
2170         (WebCore::DOMWindow::postMessage):
2171
2172 2012-09-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2173
2174         Unify event handling of middle mouse button.
2175         https://bugs.webkit.org/show_bug.cgi?id=97690
2176
2177         Reviewed by Tony Chang.
2178
2179         Implement a unified version of middle mouse button press that can be shared between
2180         all the ports with X11 support.
2181
2182         * page/EventHandler.cpp:
2183         (WebCore::EventHandler::handleMousePressEventSingleClick):
2184         (WebCore::EventHandler::handleMouseReleaseEvent):
2185         (WebCore::EventHandler::handlePasteGlobalSelection):
2186         * page/EventHandler.h:
2187         (EventHandler):
2188
2189 2012-09-27  Tommy Widenflycht  <tommyw@google.com>
2190
2191         MediaStream API: Update getUserMedia to match the latest specification
2192         https://bugs.webkit.org/show_bug.cgi?id=97540
2193
2194         Reviewed by Adam Barth.
2195
2196         http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia
2197         Navigator.getUserMedia is changed so that the audio and video members can either
2198         be a bool or a constraints object.
2199
2200         Existing tests expanded to cover the new change.
2201
2202         * Modules/mediastream/MediaConstraintsImpl.cpp:
2203         (WebCore::MediaConstraintsImpl::create):
2204         (WebCore):
2205         * Modules/mediastream/MediaConstraintsImpl.h:
2206         (MediaConstraintsImpl):
2207         * Modules/mediastream/NavigatorMediaStream.cpp:
2208         (WebCore::NavigatorMediaStream::webkitGetUserMedia):
2209         * Modules/mediastream/UserMediaRequest.cpp:
2210         (WebCore::parseOptions):
2211         (WebCore):
2212         (WebCore::UserMediaRequest::create):
2213         (WebCore::UserMediaRequest::UserMediaRequest):
2214         (WebCore::UserMediaRequest::audio):
2215         (WebCore::UserMediaRequest::video):
2216         (WebCore::UserMediaRequest::audioConstraints):
2217         (WebCore::UserMediaRequest::videoConstraints):
2218         * Modules/mediastream/UserMediaRequest.h:
2219         (WebCore):
2220         (UserMediaRequest):
2221         * platform/chromium/support/WebMediaConstraints.cpp:
2222         (WebKit::WebMediaConstraints::WebMediaConstraints):
2223         (WebKit):
2224
2225 2012-09-27  Vsevolod Vlasov  <vsevik@chromium.org>
2226
2227         Unreviewed inspector front-end closure compilation fix.
2228
2229         * inspector/front-end/UISourceCode.js:
2230         (WebInspector.UISourceCode.prototype.revertToOriginal):
2231         (WebInspector.UISourceCode.prototype.revertAndClearHistory):
2232
2233 2012-09-25  Alexander Pavlov  <apavlov@chromium.org>
2234
2235         CollectingRules and QueryingRules modes of SelectorChecker miss some complex selectors with pseudo elements
2236         https://bugs.webkit.org/show_bug.cgi?id=78595
2237
2238         Reviewed by Antti Koivisto.
2239
2240         Do not use the same dynamicPseudo reference when recursively invoking checkSelector() for non-SubSelector selectors.
2241
2242         Test: fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex.html
2243
2244         * css/SelectorChecker.cpp:
2245         (WebCore::SelectorChecker::checkSelector): Use new NOPSEUDO dynamic pseudoId values
2246         for each non-SubSelector selector further in the tag history.
2247
2248 2012-09-27  Christophe Dumez  <christophe.dumez@intel.com>
2249
2250         [EFL] No way to exit video fullscreen mode once entered
2251         https://bugs.webkit.org/show_bug.cgi?id=97631
2252
2253         Reviewed by Kenneth Rohde Christiansen.
2254
2255         Show fullscreen media control in fullscreen so that
2256         we now have a way to exit fullscreen mode.
2257
2258         No new tests, no behavior change for layout tests.
2259
2260         * css/mediaControlsEflFullscreen.css:
2261         * platform/efl/RenderThemeEfl.cpp:
2262         (WebCore::RenderThemeEfl::emitMediaButtonSignal):
2263         (WebCore::RenderThemeEfl::paintMediaFullscreenButton):
2264
2265 2012-09-27  Yoshifumi Inoue  <yosin@chromium.org>
2266
2267         [Forms] BaseMultipleFieldsDateAndTimeInputType class should inherit DateTimeEditElement::EditControlOwner rather than containing
2268         https://bugs.webkit.org/show_bug.cgi?id=97756
2269
2270         Reviewed by Kent Tamura.
2271
2272         This patch changes class hierarchy of BaseMultipleFieldsDateAndTimeInputType
2273         to inherit from DateTimeEditElement::EditControlOwner rather than
2274         containing an instance of DateTimeEditElement::EditControlOwner for
2275         saving memory, although one pointer, and one memory fetch on using
2276         HTMLInputElement.
2277
2278         Note: This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
2279         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
2280
2281         No new tests. This patch doesn't change behavior.
2282
2283         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: DateTimeEditElement::EditControlOwner::DateTimeformatDateTimeFieldsState was removed. We no longer need to redirection. Each date/time input type classe implements it.
2284         (WebCore::BaseMultipleFieldsDateAndTimeInputType::didBlurFromControl): Moved from DateTimeEditControlOwnerImpl and removed reference of m_dateTimeInputType.
2285         (WebCore::BaseMultipleFieldsDateAndTimeInputType::didFocusOnControl): ditto.
2286         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged): ditto.
2287         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerDisabled): ditto.
2288         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isEditControlOwnerReadOnly): ditto.
2289         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType): ditto.
2290         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Changed to pass BaseMultipleFieldsDateAndTimeInputType instead of DateTimeEditControlOwnerImpl.
2291         * html/BaseMultipleFieldsDateAndTimeInputType.h: Changed base class to have DateTImeEditElement::EditControlOwner.
2292         (BaseMultipleFieldsDateAndTimeInputType): Removed DateTimeEditControlOwnerImpl class and member variable m_dateTimeEditControlOwner.
2293
2294 2012-09-27  Keishi Hattori  <keishi@webkit.org>
2295
2296         SuggestionPicker should support rtl
2297         https://bugs.webkit.org/show_bug.cgi?id=97555
2298
2299         Reviewed by Kent Tamura.
2300
2301         Add support for rtl to SuggestionPicker. We add another parameter
2302         because text direction for the calendar picker should depend on the UI
2303         language but the text direction for suggestion picker should depend on
2304         the input element style.
2305
2306         Test: platform/chromium/fast/forms/date/date-suggestion-picker-appearance-rtl.html
2307
2308         * Resources/pagepopups/calendarPicker.js:
2309         (CalendarPicker.prototype._layout):
2310         * Resources/pagepopups/pickerCommon.css:
2311         (.rtl): Added so we can change styles when in rtl mode.
2312         * Resources/pagepopups/suggestionPicker.css:
2313         (.suggestion-list-entry .label):
2314         (.rtl .suggestion-list-entry .label): Change float direction to left.
2315         * Resources/pagepopups/suggestionPicker.js:
2316         (SuggestionPicker.prototype._layout):
2317         * html/shadow/CalendarPickerElement.cpp:
2318         (WebCore::CalendarPickerElement::openPopup): Set isAnchorElementRTL to true if the input element is rtl.
2319         * platform/DateTimeChooser.h:
2320         (DateTimeChooserParameters): Added isAnchorElementRTL.
2321
2322 2012-09-27  Takashi Sakamoto  <tasak@google.com>
2323
2324         Follow-up to r129723 to once more allow parsing of scoped names in IDL files.
2325
2326         Reviewed by Kentaro Hara.
2327
2328         This functionality was supported by the old IDL parser but was lost in the rewrite of the parser
2329         in r129723. It is being reinstated to unbreak clients that currently depend on it, but will likely
2330         be removed in the future once those clients have a chance to adopt an approach that more closely
2331         follows the WebIDL syntax.
2332
2333         * bindings/scripts/IDLParser.pm:
2334         (parseDefinition):
2335         (parseInheritance):
2336         (parseImplementsStatement):
2337         (parseExtendedAttribute):
2338         (parseExtendedAttribute2):
2339         (parseExtendedAttributeRest2):
2340         (parseExtendedAttributeRest3):
2341         (parseScopedNameListNoComma):
2342         (parseNonAnyType):
2343         (parseExceptionList):
2344         (parseDefinitionOld):
2345         (parseScopedName):
2346         (parseAbsoluteScopedName):
2347         (parseRelativeScopedName):
2348         (parseScopedNameParts):
2349         (parseScopedNameList):
2350         (parseScopedNames):
2351
2352 2012-09-27  Yury Semikhatsky  <yurys@chromium.org>
2353
2354         Web Inspector: expose debug memory instrumentation debug data through the protocol
2355         https://bugs.webkit.org/show_bug.cgi?id=97683
2356
2357         Reviewed by Pavel Feldman.
2358
2359         Memory.getProcessMemoryDistribution command now returns number of instrumented
2360         objects that were found and the number of the objects that were counted by
2361         the instrumentation but were not actually allocated by the memory allocator.
2362         These numbers are only added to the response if embedder provides access to the
2363         set of all live heap objects. These numbers are intended to be used for testing
2364         memory instrumentation.
2365
2366         * inspector/InspectorMemoryAgent.cpp:
2367         (WebCore::collectDomTreeInfo):
2368         * inspector/MemoryInstrumentationImpl.cpp:
2369         (WebCore::MemoryInstrumentationImpl::MemoryInstrumentationImpl):
2370         (WebCore::MemoryInstrumentationImpl::checkCountedObject):
2371         * inspector/MemoryInstrumentationImpl.h:
2372         (WebCore::MemoryInstrumentationImpl::checkInstrumentedObjects):
2373         (WebCore::MemoryInstrumentationImpl::totalCountedObjects):
2374         (WebCore::MemoryInstrumentationImpl::totalObjectsNotInAllocatedSet):
2375         (MemoryInstrumentationImpl):
2376
2377 2012-09-27  Mihnea Ovidenie  <mihnea@adobe.com>
2378
2379         [CSSRegions]Refactor RenderFlowThread::contentLogical(Width/Height/Left)OfFirstRegion
2380         https://bugs.webkit.org/show_bug.cgi?id=97577
2381
2382         Reviewed by Andreas Kling.
2383
2384         RenderFlowThread methods contentLogicalWidthOfFirstRegion, contentLogicalHeightOfFirstRegion, contentLogicalLeftOfFirstRegion
2385         were using code to get the first valid region associated with the flow. We can use RenderFlowThread::firstRegion() method instead.
2386
2387         No new tests as this is just refactoring of existing code, the change is covered by existing regions tests.
2388
2389         * rendering/RenderFlowThread.cpp:
2390         (WebCore::RenderFlowThread::contentLogicalWidthOfFirstRegion):
2391         (WebCore::RenderFlowThread::contentLogicalHeightOfFirstRegion):
2392         (WebCore):
2393         (WebCore::RenderFlowThread::contentLogicalLeftOfFirstRegion):
2394         (WebCore::RenderFlowThread::firstRegion):
2395         (WebCore::RenderFlowThread::lastRegion):
2396         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
2397         (WebCore::RenderFlowThread::objectInFlowRegion):
2398         (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
2399
2400 2012-09-27  Patrick Gansterer  <paroga@webkit.org>
2401
2402         Build fix for !USE(ICU_UNICODE) after r129662.
2403
2404         Convert LChar to UChar so we can call the existing function until the
2405         other TextBreakIterator implemenations provide an overload for LChar.
2406
2407         * platform/text/TextBreakIterator.cpp:
2408         (WebCore):
2409         (WebCore::acquireLineBreakIterator):
2410
2411 2012-09-26  Yoshifumi Inoue  <yosin@chromium.org>
2412
2413         [Forms] Move multiple fields related functions to BaseDateAndTimeInputType from TimeInputType
2414         https://bugs.webkit.org/show_bug.cgi?id=97521
2415
2416         Reviewed by Kent Tamura.
2417
2418         This patch introduces new class BaseMultipleFieldsDateAndTimeInputType
2419         for sharing code among multiple fields date/time input UI.
2420
2421         Member functions in BaseMultipleFieldsDateAndTimeInputType are moved
2422         from TimeInputType. BaseMultipleFieldsDateAndTimeInputType.{cpp,h}
2423         were copied from TimeInputType.{cpp,h} by r129721.
2424
2425         This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
2426         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
2427
2428         No new tests. This patch doesn't change behavior.
2429
2430         * WebCore.gypi: Changed to have html/BaseMultipleFieldsDateAndTimeInputType.{cpp,h}
2431         * html/BaseDateAndTimeInputType.h:
2432         (BaseDateAndTimeInputType): Exposed setMillisecondToDateComponents as protected for BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState().
2433         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2434         (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::DateTimeEditControlOwnerImpl): Moved from TimeInputType::DateTimeEditControlOwnerImpl.
2435         (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::~DateTimeEditControlOwnerImpl): ditto.
2436         (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::didBlurFromControl): ditto.
2437         (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::didFocusOnControl): ditto.
2438         (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged): ditto.
2439         (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::formatDateTimeFieldsState): Moved from TimeInputType::DateTimeEditControlOwnerImpl and changed to call formatDateTimeFieldsState() in BaseMultipleFieldsDateAndTimeInputTypeInputType class.
2440         (WebCore::BaseMultipleFieldsDateAndTimeInputType::hasCustomFocusLogic): Moved from TimeInputType.
2441         (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerDisabled): ditto.
2442         (WebCore::BaseMultipleFieldsDateAndTimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerReadOnly): ditto.
2443         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType): ditto.
2444         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType): ditto.
2445         (WebCore::BaseMultipleFieldsDateAndTimeInputType::blur): ditto.
2446         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createRenderer): ditto.
2447         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): ditto.
2448         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree): ditto.
2449         (WebCore::BaseMultipleFieldsDateAndTimeInputType::focus): ditto.
2450         (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent): ditto.
2451         (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged): ditto.
2452         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): ditto.
2453         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isKeyboardFocusable): ditto.
2454         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isMouseFocusable): ditto.
2455         (WebCore::BaseMultipleFieldsDateAndTimeInputType::minOrMaxAttributeChanged): ditto.
2456         (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): ditto.
2457         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isTextField): ditto.
2458         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState): ditto.
2459         (WebCore::BaseMultipleFieldsDateAndTimeInputType::saveFormControlState): ditto.
2460         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue): ditto.
2461         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldUseInputMethod): ditto.
2462         (WebCore::BaseMultipleFieldsDateAndTimeInputType::stepAttributeChanged): ditto.
2463         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Moved from TimeInputType and changed to call setupLayoutParameters() to set date/time format by each input type.
2464         * html/BaseMultipleFieldsDateAndTimeInputType.h:
2465         (BaseMultipleFieldsDateAndTimeInputType): Added.
2466         (DateTimeEditControlOwnerImpl): Moved from TimeInputType.
2467         * html/TimeInputType.cpp: Moved multiple fields UI related functions to BaseMultipleFieldsDateAndTimeInputType.
2468         (WebCore::TimeInputType::TimeInputType): Changed base class name to BaseTimeInput.
2469         (WebCore::TimeInputType::formatDateTimeFieldsState): Moved from TimeINput::DateTImeEditControlOwnerImpl class.
2470         (WebCore::TimeInputType::setupLayoutParameters): Added for set time format.
2471         * html/TimeInputType.h:
2472         (TimeInputType): Chaned base class to BaseTimeInput which is alias of BaseDateAndTimeInputType or BaseMultipleFieldsDateAndTimeInputType.
2473
2474 2012-09-26  Yoshifumi Inoue  <yosin@chromium.org>
2475
2476         [Forms] Adding localization texts for multiple fields date/time input UI
2477         https://bugs.webkit.org/show_bug.cgi?id=97633
2478
2479         Reviewed by Kent Tamura.
2480
2481         This patch adds function declarations for getting localized strings
2482         used in multiple fields date/time input UI inside ENABLE_INPUT_MULTIPLE_FIELDS_UI.
2483
2484         New functions are:
2485          - placeholderForDayOfMonthField()
2486             It returns localized placeholder text, e.g. "dd", for date field
2487             used in multiple fields "date", "datetime", and "datetime-local"
2488             input UI instead "--".
2489
2490         - placeholderForfMonthField()
2491             It returns localized placeholder text, e.g. "mm", for month field
2492             used in multiple fields "date", "datetime", and "datetime-local"
2493             input UI instead "--".
2494
2495         - placeholderForYearField()
2496             It returns localized placeholder text, e.g. "yyyy", for year field
2497             used in multiple fields "date", "datetime", and "datetime-local"
2498             input UI instead "----".
2499
2500         - monthFormatInLDML()
2501             It returns month and year format in LDML, Unicode technical
2502             standard 35, Locale Data Markup Language, e.g. "MM-yyyyy" for
2503             "month" input type.
2504
2505         - monthFormatInLDML()
2506             It returns week and year format in LDML, e.g. "WW-yyyyy" for
2507             "week" input type.
2508
2509         No new tests. This patch doesn't change behavior.
2510
2511         * platform/LocalizedStrings.h:
2512         (WebCore): Added declarations of placeholderForDayOfMonthField(), placeholderForMonthField(),
2513         placeholderForYearField(), monthFormatInLDML() and weekFormatInLDML().
2514
2515 2012-09-26  Huang Dongsung  <luxtella@company100.net>
2516
2517         [CSS Shaders] Remove an unused member variable m_program in FECustomFilter.h
2518         https://bugs.webkit.org/show_bug.cgi?id=97755
2519
2520         Reviewed by Kentaro Hara.
2521
2522         No new tests. This patch doesn't change behavior.
2523
2524         * platform/graphics/filters/FECustomFilter.h:
2525         (WebCore):
2526
2527 2012-08-09  Takashi Sakamoto  <tasak@google.com>
2528
2529         Move IDL extended attributes to the location specified in WebIDL
2530         https://bugs.webkit.org/show_bug.cgi?id=26398
2531
2532         Reviewed by Kentaro Hara.
2533
2534         Recreated a new IDLParser based on the WebIDL spec:
2535         http://dev.w3.org/2006/webapi/WebIDL/
2536
2537         Firstly merges two grammars (editors draft and WebKit current IDL) and
2538         generates IDL parser by using python script. The generated parser is
2539         modified to generate the same outputs as the previous IDLParser.pm.
2540         The new IDLParser.pm can parse both WebIDL grammar.
2541
2542         No new tests. Tested by comparing with sources generated by
2543         the previous IDLParser.pm.
2544
2545         * bindings/scripts/IDLParser.pm:
2546         (new):
2547         (assertTokenValue):
2548         (assertTokenType):
2549         (assertUnexpectedToken):
2550         (Parse):
2551         A method to start parsing a IDL file. Arguments and return values are
2552         the same as the previous IDLParser.pm's Parse method.
2553         (nextToken):
2554         Implemented to see a next token, because of LL(1).
2555         (getToken):
2556         Returns current token, and update next and current token.
2557         (getTokenInternal):
2558         According to the regular expressions defined in WebIDL spec, extracts
2559         one new token from a text string. The order of the regular expressions
2560         to be tested is important, i.e. "0." should be considered as a float
2561         token, but if firstly checks the integer regular expression, "0." is
2562         considered as "0" and ".".
2563         (parseDefinition):
2564         (parseCallbackOrInterface):
2565         (parseCallbackRestOrInterface):
2566         (parseInterface):
2567         (parsePartial):
2568         (parsePartialDefinition):
2569         (parsePartialInterface):
2570         (parseInterfaceMember):
2571         (parseDictionary):
2572         (parseDictionaryMember):
2573         (parsePartialDictionary):
2574         (parseDefaultValue):
2575         (parseException):
2576         (parseExceptionMembers):
2577         (parseEnum):
2578         (parseEnumValueList):
2579         (parseCallbackRest):
2580         (parseTypedef):
2581         (parseImplementsStatement):
2582         (parseConst):
2583         (parseConstValue):
2584         (parseBooleanLiteral):
2585         (parseFloatLiteral):
2586         (parseAttributeOrOperationOrIterator):
2587         (parseSerializer):
2588         (parseSerializationPattern):
2589         (parseQualifier):
2590         (parseAttributeOrOperationRest):
2591         (parseAttribute):
2592         (parseAttributeRest):
2593         (parseOperationOrIterator):
2594         (parseSpecialOperation):
2595         (parseSpecial):
2596         (parseOperationOrIteratorRest):
2597         (parseIteratorRest):
2598         (parseOptionalIteratorInterfaceOrObject):
2599         (parseOperationRest):
2600         (parseArguments):
2601         (parseArgument):
2602         (parseOptionalOrRequiredArgument):
2603         (parseArgumentName):
2604         (parseExceptionMember):
2605         (parseExceptionField):
2606         (parseExtendedAttributeList):
2607         (parseExtendedAttribute):
2608         (parseExtendedAttributeRest2):
2609         (parseArgumentNameKeyword):
2610         (parseType):
2611         (parseSingleType):
2612         (parseUnionType):
2613         (parseNonAnyType):
2614         (parsePrimitiveType):
2615         (parseUnrestrictedFloatType):
2616         (parseFloatType):
2617         (parseUnsignedIntegerType):
2618         (parseNull):
2619         (parseGet):
2620         (parseInheritsGetter):
2621         (parseSetGetRaises):
2622         (parseGetRaises2):
2623         (parseSetRaises):
2624         (parseSetRaises3):
2625         (parseDefinitionOld):
2626         (parseModule):
2627         (parseInterfaceOld):
2628         (parseInterfaceMemberOld):
2629         (parseDictionaryOld):
2630         (parseDictionaryMemberOld):
2631         (parseExceptionOld):
2632         (parseEnumOld):
2633         (parseAttributeOrOperationOrIteratorOld):
2634         (parseAttributeOrOperationRestOld):
2635         (parseAttributeOld):
2636         (parseIn):
2637         (parseOptionalSemicolon):
2638         (applyMemberList):
2639         (applyExtendedAttributeList):
2640         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2641         (WebDOMTestObj::longAttr):
2642         (WebDOMTestObj::setLongAttr):
2643         (WebDOMTestObj::voidMethodWithArgs):
2644         (WebDOMTestObj::longMethod):
2645         (WebDOMTestObj::longMethodWithArgs):
2646         (WebDOMTestObj::objMethodWithArgs):
2647         (WebDOMTestObj::convert1):
2648         (WebDOMTestObj::convert2):
2649         (WebDOMTestObj::convert3):
2650         (WebDOMTestObj::convert4):
2651         (WebDOMTestObj::convert5):
2652         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2653         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2654         (webkit_dom_test_obj_set_property):
2655         (webkit_dom_test_obj_get_property):
2656         (webkit_dom_test_obj_class_init):
2657         (webkit_dom_test_obj_void_method_with_args):
2658         (webkit_dom_test_obj_long_method):
2659         (webkit_dom_test_obj_long_method_with_args):
2660         (webkit_dom_test_obj_obj_method_with_args):
2661         (webkit_dom_test_obj_convert1):
2662         (webkit_dom_test_obj_convert2):
2663         (webkit_dom_test_obj_convert3):
2664         (webkit_dom_test_obj_convert4):
2665         (webkit_dom_test_obj_convert5):
2666         (webkit_dom_test_obj_get_long_attr):
2667         (webkit_dom_test_obj_set_long_attr):
2668         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2669         * bindings/scripts/test/JS/JSTestObj.cpp:
2670         (WebCore):
2671         (WebCore::jsTestObjLongAttr):
2672         (WebCore::setJSTestObjLongAttr):
2673         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
2674         (WebCore::jsTestObjPrototypeFunctionLongMethod):
2675         (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
2676         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
2677         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
2678         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
2679         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
2680         (WebCore::jsTestObjPrototypeFunctionConvert1):
2681         (WebCore::jsTestObjPrototypeFunctionConvert2):
2682         (WebCore::jsTestObjPrototypeFunctionConvert3):
2683         (WebCore::jsTestObjPrototypeFunctionConvert4):
2684         (WebCore::jsTestObjPrototypeFunctionConvert5):
2685         * bindings/scripts/test/JS/JSTestObj.h:
2686         (WebCore):
2687         * bindings/scripts/test/ObjC/DOMTestObj.h:
2688         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2689         (-[DOMTestObj longAttr]):
2690         (-[DOMTestObj setLongAttr:]):
2691         (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]):
2692         (-[DOMTestObj longMethod]):
2693         (-[DOMTestObj longMethodWithArgs:strArg:objArg:]):
2694         (-[DOMTestObj objMethodWithArgs:strArg:objArg:]):
2695         (-[DOMTestObj customMethodWithArgs:strArg:objArg:]):
2696         (-[DOMTestObj convert1:]):
2697         (-[DOMTestObj convert2:]):
2698         (-[DOMTestObj convert3:]):
2699         (-[DOMTestObj convert4:]):
2700         (-[DOMTestObj convert5:]):
2701         * bindings/scripts/test/TestObj.idl:
2702         Removed the line which has only "JSC, V8".
2703         Added argument to convert1, ... convert5.
2704         * bindings/scripts/test/V8/V8TestObj.cpp:
2705         (WebCore::TestObjV8Internal::longAttrAttrGetter):
2706         (WebCore::TestObjV8Internal::longAttrAttrSetter):
2707         (WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
2708         (WebCore::TestObjV8Internal::longMethodCallback):
2709         (WebCore::TestObjV8Internal::longMethodWithArgsCallback):
2710         (WebCore::TestObjV8Internal::objMethodWithArgsCallback):
2711         (WebCore::TestObjV8Internal::methodReturningSequenceCallback):
2712         (WebCore::TestObjV8Internal::overloadedMethod2Callback):
2713         (WebCore::TestObjV8Internal::overloadedMethod4Callback):
2714         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
2715         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
2716         (WebCore::TestObjV8Internal::enabledPerContextMethod1Callback):
2717         (WebCore::TestObjV8Internal::enabledPerContextMethod2Callback):
2718         (WebCore::TestObjV8Internal::convert1Callback):
2719         (WebCore::TestObjV8Internal::convert2Callback):
2720         (WebCore::TestObjV8Internal::convert3Callback):
2721         (WebCore::TestObjV8Internal::convert4Callback):
2722         (WebCore::TestObjV8Internal::convert5Callback):
2723         (WebCore):
2724         (WebCore::ConfigureV8TestObjTemplate):
2725         * Modules/webaudio/AudioBufferSourceNode.idl:
2726         As only restricted extended attribute syntax is supported, modify the
2727         idl from [...] [...] to [..., ...].
2728
2729 2012-09-26  Yoshifumi Inoue  <yosin@chromium.org>
2730
2731         [Forms] Copy TimeInputType.{cpp,h} to BaseMultipleFieldsDateAndTimeInputType.{cpp,h}
2732         https://bugs.webkit.org/show_bug.cgi?id=97649
2733
2734         Reviewed by Kent Tamura.
2735
2736         This patch copies TimeInput.{cpp,h} to BaseMultipleFieldsDateAndTimeInputType.{cpp,h}
2737         for sharing code related to multiple fields date/time input UI among date/time related
2738         input types, such as "date", "datetime", "month", "time" and "week".
2739
2740         No new tests. This patch doesn't change behavior.
2741
2742         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Copied from Source/WebCore/html/TimeInputType.cpp.
2743         * html/BaseMultipleFieldsDateAndTimeInputType.h: Copied from Source/WebCore/html/TimeInputType.h.
2744
2745 2012-09-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2746
2747         [Texmap][EFL] Accelerated compositing support using TextureMapper on EFL port
2748         https://bugs.webkit.org/show_bug.cgi?id=73111
2749
2750         Reviewed by Gyuyoung Kim.
2751
2752         Remove unneeded files
2753
2754         * PlatformEfl.cmake: Do not add the files any more.
2755         * platform/graphics/efl/GraphicsLayerEfl.cpp: Removed.
2756         * platform/graphics/efl/GraphicsLayerEfl.h: Removed.
2757
2758 2012-09-26  Simon Fraser  <simon.fraser@apple.com>
2759
2760         Rename Page::frameCount() to subframeCount(), and related
2761         https://bugs.webkit.org/show_bug.cgi?id=97729
2762
2763         Reviewed by Alexey Proskuryakov.
2764
2765         Rename member functions and variables on Page that refer to
2766         "frame count" to use "subframe count", since the main frame is
2767         not included in the count.
2768
2769         * history/CachedFrame.cpp:
2770         (WebCore::CachedFrame::CachedFrame):
2771         (WebCore::CachedFrame::open):
2772         * history/CachedPage.cpp:
2773         (WebCore::CachedPage::restore):
2774         * html/HTMLFrameElementBase.cpp:
2775         (WebCore::HTMLFrameElementBase::isURLAllowed):
2776         * html/HTMLPlugInImageElement.cpp:
2777         (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
2778         * loader/FrameLoader.cpp:
2779         (WebCore::FrameLoader::closeAndRemoveChild):
2780         * page/Frame.cpp:
2781         (WebCore::Frame::Frame):
2782         (WebCore::Frame::disconnectOwnerElement):
2783         * page/Page.cpp:
2784         (WebCore::Page::Page):
2785         (WebCore::Page::checkSubframeCountConsistency):
2786         * page/Page.h:
2787         (WebCore::Page::incrementSubframeCount):
2788         (WebCore::Page::decrementSubframeCount):
2789         (WebCore::Page::subframeCount):
2790         (WebCore::Page::checkSubframeCountConsistency):
2791
2792 2012-09-26  Michael Saboff  <msaboff@apple.com>
2793
2794         Unreviewed speculative build fix for clang.
2795
2796         Added explicit static_cast from int64_t to int32_t.
2797
2798         * platform/text/TextBreakIteratorICU.cpp:
2799         (WebCore::uTextLatin1Clone):
2800         (WebCore::uTextLatin1Extract):
2801         (WebCore::uTextLatin1MapNativeIndexToUTF16):
2802
2803 2012-09-26  Sheriff Bot  <webkit.review.bot@gmail.com>
2804
2805         Unreviewed, rolling out r129673.
2806         http://trac.webkit.org/changeset/129673
2807         https://bugs.webkit.org/show_bug.cgi?id=97723
2808
2809         Causing window build breakage (Requested by alecf on #webkit).
2810
2811         * platform/chromium/PlatformSupport.h:
2812         (PlatformSupport):
2813         * platform/graphics/skia/SkiaFontWin.cpp:
2814         (WebCore::paintSkiaText):
2815
2816 2012-09-26  David Barton  <dbarton@mathscribe.com>
2817
2818         [MathML] Implement <mtd> rowspan and columnspan attributes
2819         https://bugs.webkit.org/show_bug.cgi?id=97401
2820
2821         Reviewed by Eric Seidel.
2822
2823         These should behave like rowspan and colspan for HTMLTableCell. As in that case,
2824         RenderTableCell accesses these attributes of its element as needed.
2825
2826         Tested by modifications to LayoutTests/mathml/presentation/tables.xhtml.
2827
2828         * mathml/MathMLElement.cpp:
2829         (WebCore::MathMLElement::colSpan):
2830         (WebCore::MathMLElement::rowSpan):
2831         (WebCore::MathMLElement::parseAttribute):
2832         * mathml/MathMLElement.h:
2833         (MathMLElement):
2834         (WebCore::toMathMLElement):
2835         * mathml/mathattrs.in:
2836         * mathml/mathtags.in:
2837         * rendering/RenderTableCell.cpp:
2838         (WebCore::RenderTableCell::RenderTableCell):
2839         (WebCore::isMathMLElement):
2840         (WebCore::RenderTableCell::colSpan):
2841         (WebCore::RenderTableCell::rowSpan):
2842         (WebCore::RenderTableCell::colSpanOrRowSpanChanged):
2843         * rendering/RenderTableCell.h:
2844         (RenderTableCell):
2845             - Changed m_hasAssociatedTableCellElement to m_hasHTMLTableCellElement.
2846
2847 2012-09-26  Marcelo Lira  <marcelo.lira@openbossa.org>
2848
2849         [Qt] load event fires on XMLHttpRequestUpload twice with Qt5
2850         https://bugs.webkit.org/show_bug.cgi?id=92669
2851
2852         Reviewed by Kenneth Rohde Christiansen.
2853
2854         When finishing, after the upload have already been done, Qt5's
2855         QNetworkReply emits an uploadProgress signal with total bytes set to
2856         zero. Since 0 of 0 bytes doesn't make any sense as progress, a
2857         conditional was added to QNetworkReplyHandler::uploadProgress to make
2858         do nothing with such values.
2859
2860         Unskip XMLHttpRequestUpload tests.
2861
2862         * platform/network/qt/QNetworkReplyHandler.cpp:
2863         (WebCore::QNetworkReplyHandler::uploadProgress):
2864
2865 2012-09-26  Bear Travis  <betravis@adobe.com>
2866
2867         [CSS Exclusions] Rename WrapShapeInfo to ExclusionShapeInfo
2868         https://bugs.webkit.org/show_bug.cgi?id=96157
2869
2870         Reviewed by Dirk Schulze.
2871
2872         Rename WrapShapeInfo to the more specific ExclusionShapeInsideInfo, which is the only
2873         information the class is currently tracking. This patch updates build files, class
2874         instances and variable names. When shape-outside is added, there may be an additional
2875         ExclusionShapeOutsideInfo class that shares a common parent class with 
2876         ExclusionShapeInsideInfo. This patch only changes names, there is no new functionality.
2877
2878         Covered by existing tests
2879
2880         * CMakeLists.txt: Rename files from WrapShapeInfo to ExclusionShapeInsideInfo.
2881         * GNUmakefile.list.am: Ditto.
2882         * Target.pri: Ditto.
2883         * WebCore.gypi: Ditto.
2884         * WebCore.vcproj/WebCore.vcproj: Ditto.
2885         * WebCore.xcodeproj/project.pbxproj: Ditto.
2886         * rendering/ExclusionShapeInsideInfo.cpp: Renamed from Source/WebCore/rendering/WrapShapeInfo.cpp.
2887         (WebCore):  Renaming functions and variables to use ExclusionShapeInsideInfo rather than
2888         WrapShapeInfo.
2889         (WebCore::exclusionShapeInsideInfoMap):
2890         (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo):
2891         (WebCore::ExclusionShapeInsideInfo::~ExclusionShapeInsideInfo):
2892         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
2893         (WebCore::ExclusionShapeInsideInfo::exclusionShapeInsideInfoForRenderBlock):
2894         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock):
2895         (WebCore::ExclusionShapeInsideInfo::removeExclusionShapeInsideInfoForRenderBlock):
2896         (WebCore::ExclusionShapeInsideInfo::computeShapeSize):
2897         (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
2898         * rendering/ExclusionShapeInsideInfo.h: Renamed from Source/WebCore/rendering/WrapShapeInfo.h.
2899         (WebCore):
2900         (ExclusionShapeInsideInfo):
2901         (WebCore::ExclusionShapeInsideInfo::create):
2902         (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop):
2903         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):
2904         (WebCore::ExclusionShapeInsideInfo::hasSegments):
2905         (WebCore::ExclusionShapeInsideInfo::segments):
2906         (WebCore::ExclusionShapeInsideInfo::dirtyShapeSize):
2907         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):
2908         * rendering/LayoutState.cpp:
2909         (WebCore::LayoutState::LayoutState):
2910         * rendering/LayoutState.h:
2911         (WebCore):
2912         (WebCore::LayoutState::LayoutState):
2913         (WebCore::LayoutState::exclusionShapeInsideInfo):
2914         (LayoutState):
2915         * rendering/RenderBlock.cpp:
2916         (WebCore::RenderBlock::willBeDestroyed):
2917         (WebCore::RenderBlock::styleDidChange):
2918         (WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
2919         (WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize):
2920         (WebCore::RenderBlock::computeExclusionShapeSize):
2921         * rendering/RenderBlock.h:
2922         (WebCore::RenderBlock::exclusionShapeInsideInfo):
2923         (RenderBlock):
2924         * rendering/RenderBlockLineLayout.cpp:
2925         (WebCore::layoutExclusionShapeInsideInfo):
2926         (WebCore::LineWidth::LineWidth):
2927         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
2928         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
2929         * rendering/RenderView.h:
2930         (WebCore::RenderView::pushLayoutState):
2931
2932 2012-09-26  Christophe Dumez  <christophe.dumez@intel.com>
2933
2934         [EFL] Volume button should not be shown for videos without audio
2935         https://bugs.webkit.org/show_bug.cgi?id=97574
2936
2937         Reviewed by Kenneth Rohde Christiansen.
2938
2939         The volume control is no longer shown for videos with
2940         no audio.
2941
2942         No new tests, already tested by media/video-no-audio.html.
2943
2944         * platform/efl/RenderThemeEfl.cpp:
2945         (WebCore::RenderThemeEfl::hasOwnDisabledStateHandlingFor):
2946         (WebCore):
2947         * platform/efl/RenderThemeEfl.h:
2948         (RenderThemeEfl):
2949
2950 2012-09-26  Gavin Barraclough  <barraclough@apple.com>
2951
2952         Generalize JSGlobalThis as JSProxy
2953         https://bugs.webkit.org/show_bug.cgi?id=97716
2954
2955         Reviewed by Oliver Hunt.
2956
2957         This patch moves window shell functionality up to JSC::JSProxy.
2958
2959         * ForwardingHeaders/runtime/JSGlobalThis.h: Removed.
2960         * ForwardingHeaders/runtime/JSProxy.h: Copied from Source/WebCore/ForwardingHeaders/runtime/JSGlobalThis.h.
2961         * bindings/js/JSDOMGlobalObject.cpp:
2962         (WebCore::JSDOMGlobalObject::finishCreation):
2963             - JSGlobalThis -> JSObject
2964         * bindings/js/JSDOMGlobalObject.h:
2965         (JSDOMGlobalObject):
2966             - JSGlobalThis -> JSObject
2967         * bindings/js/JSDOMWindowBase.cpp:
2968         (WebCore):
2969             - Hoist toThisObject up into JSC.
2970         * bindings/js/JSDOMWindowBase.h:
2971         (JSDOMWindowBase):
2972             - Hoist toThisObject up into JSC.
2973         * bindings/js/JSDOMWindowShell.cpp:
2974         (WebCore):
2975             - JSGlobalThis -> JSProxy
2976             - moved JSObject callbacks to JSProxy
2977         * bindings/js/JSDOMWindowShell.h:
2978         (JSDOMWindowShell):
2979             - JSGlobalThis -> JSProxy
2980             - moved JSObject callbacks to JSProxy
2981         (WebCore::JSDOMWindowShell::window):
2982             - unwrappedObject() -> target()
2983         (WebCore::JSDOMWindowShell::setWindow):
2984             - setUnwrappedObject() -> setTarget()
2985         (WebCore::JSDOMWindowShell::createStructure):
2986             - GlobalThisType -> ProxyType
2987
2988 2012-09-26  Andreas Kling  <kling@webkit.org>
2989
2990         4.95MB below RenderBlock::insertIntoTrackedRendererMaps() on Membuster3.
2991         <http://webkit.org/b/97687>
2992
2993         Reviewed by Anders Carlsson.
2994
2995         Give the TrackedRendererListHashSet typedef an inline capacity of 16 (the default is 256.)
2996         Browsing around the web, I saw almost no cases with more than 20 entries in these lists,
2997         and this simple change saves us ~4.68MB on the Membuster3 benchmark.
2998
2999         * rendering/RenderBlock.h:
3000
3001 2012-09-26  Chris Rogers  <crogers@google.com>
3002
3003         DelayNode must take sample-accurate delay times into account
3004         https://bugs.webkit.org/show_bug.cgi?id=97609
3005
3006         Reviewed by Kenneth Russell.
3007
3008         Currently DelayNode simply uses a coarse-grained k-rate smoothing of .delayTime
3009         It should also be capable of supporting audio-rate control of .delayTime
3010
3011         * Modules/webaudio/DelayDSPKernel.cpp:
3012         (WebCore::DelayDSPKernel::DelayDSPKernel):
3013         (WebCore::DelayDSPKernel::process):
3014         * Modules/webaudio/DelayDSPKernel.h:
3015         (DelayDSPKernel):
3016
3017 2012-09-26  Mark Pilgrim  <pilgrim@chromium.org>
3018
3019         [Chromium][Win] Remove ensureFontLoaded from PlatformSupport
3020         https://bugs.webkit.org/show_bug.cgi?id=97696
3021
3022         Reviewed by Adam Barth.
3023
3024         Part of a refactoring series. See tracking bug 82948.
3025
3026         * platform/chromium/PlatformSupport.h:
3027         (PlatformSupport):
3028         * platform/graphics/skia/SkiaFontWin.cpp:
3029         (WebCore::paintSkiaText):
3030
3031 2012-09-26  Sheriff Bot  <webkit.review.bot@gmail.com>
3032
3033         Unreviewed, rolling out r129654.
3034         http://trac.webkit.org/changeset/129654
3035         https://bugs.webkit.org/show_bug.cgi?id=97702
3036
3037         breaks chromium windows build (Requested by schenney on
3038         #webkit).
3039
3040         * CMakeLists.txt:
3041         * GNUmakefile.list.am:
3042         * Modules/mediastream/RTCPeerConnection.cpp:
3043         * Modules/mediastream/RTCPeerConnection.h:
3044         (WebCore):
3045         (RTCPeerConnection):
3046         * Modules/mediastream/RTCPeerConnection.idl:
3047         * Modules/mediastream/RTCStatsCallback.h: Removed.
3048         * Modules/mediastream/RTCStatsCallback.idl: Removed.
3049         * Modules/mediastream/RTCStatsElement.cpp: Removed.
3050         * Modules/mediastream/RTCStatsElement.h: Removed.
3051         * Modules/mediastream/RTCStatsElement.idl: Removed.
3052         * Modules/mediastream/RTCStatsReport.cpp: Removed.
3053         * Modules/mediastream/RTCStatsReport.h: Removed.
3054         * Modules/mediastream/RTCStatsReport.idl: Removed.
3055         * Modules/mediastream/RTCStatsRequestImpl.cpp: Removed.
3056         * Modules/mediastream/RTCStatsRequestImpl.h: Removed.
3057         * Modules/mediastream/RTCStatsResponse.cpp: Removed.
3058         * Modules/mediastream/RTCStatsResponse.h: Removed.
3059         * Modules/mediastream/RTCStatsResponse.idl: Removed.
3060         * WebCore.gypi:
3061         * platform/chromium/support/WebRTCStatsRequest.cpp: Removed.
3062         * platform/mediastream/RTCPeerConnectionHandler.cpp:
3063         (RTCPeerConnectionHandlerDummy):
3064         * platform/mediastream/RTCPeerConnectionHandler.h:
3065         (WebCore):
3066         (RTCPeerConnectionHandler):
3067         * platform/mediastream/RTCStatsRequest.h: Removed.
3068         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
3069         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
3070         (RTCPeerConnectionHandlerChromium):
3071
3072 2012-09-26  Philip Rogers  <pdr@google.com>
3073
3074         Refactor SMILTimeContainer to maintain animation information instead of recalculating it every frame
3075         https://bugs.webkit.org/show_bug.cgi?id=96697
3076
3077         Reviewed by Eric Seidel.
3078
3079         SVGTimeContainer can be improved by maintaining extra information about
3080         animations during schedule/unschedule instead of re-calculating it
3081         every frame.
3082
3083         After this patch, SMILTimeContainer maintains a GroupedAnimationsMap instead of
3084         just a Vector. This map maps a list of animations to the specific ElementAttributePair
3085         that will be animated.
3086
3087         On schedule/unschedule we modify this map instead of creating it in updateAnimations.
3088         As a result, we need to be careful about always notifying (or, re-scheduling) the
3089         time container when either an animation's target changes or an animation's attributeName
3090         changes. This notification is managed by tracking changes with targetElementWillChange
3091         and setAttributeName.
3092
3093         After this patch, updateAnimations only iterates over m_scheduledAnimations.
3094         Furthermore, the sorting of animations by priority is now done over each Vector of
3095         SVGSMILElements affecting a {SVGElement*, QualifiedName} pair instead of over all the
3096         SVGSMILElements at once.
3097
3098         Lastly, a guard (m_preventScheduledAnimationsChanges) has been added
3099         to prove that we do not modify the scheduled animations map out
3100         from under ourselves.
3101
3102         No new tests as this is just a refactoring.
3103
3104         * svg/SVGAnimateElement.cpp:
3105         (WebCore::SVGAnimateElement::hasValidAttributeType):
3106
3107         * svg/SVGAnimateMotionElement.cpp:
3108         (WebCore::SVGAnimateMotionElement::hasValidAttributeName):
3109
3110             Per the spec, AnimateMotion is not affected by attributeName. Instead
3111             of having a special case for this in SMILTimeContainer::updateAnimations
3112             we simply implement this method.
3113
3114         (WebCore):
3115         * svg/SVGAnimateMotionElement.h:
3116         (SVGAnimateMotionElement):
3117         * svg/SVGAnimationElement.cpp:
3118         (WebCore::SVGAnimationElement::updateAnimation):
3119         * svg/animation/SMILTimeContainer.cpp:
3120         (WebCore):
3121         (WebCore::SMILTimeContainer::SMILTimeContainer):
3122         (WebCore::SMILTimeContainer::~SMILTimeContainer):
3123
3124             This method now cleans up the map since we have dynamically allocated
3125             Vectors in it.
3126
3127         (WebCore::SMILTimeContainer::schedule):
3128
3129             Here we are just adding an entry to the map. There is some special handling
3130             for creating the Vector of one does not exist.
3131
3132         (WebCore::SMILTimeContainer::unschedule):
3133         (WebCore::SMILTimeContainer::notifyIntervalsChanged):
3134         (WebCore::SMILTimeContainer::setElapsed):
3135         (WebCore::SMILTimeContainer::startTimer):
3136         (WebCore::SMILTimeContainer::updateAnimations):
3137         * svg/animation/SMILTimeContainer.h:
3138         (WebCore::SMILTimeContainer::create):
3139         (SMILTimeContainer):
3140         * svg/animation/SVGSMILElement.cpp:
3141         (WebCore::SVGSMILElement::~SVGSMILElement):
3142         (WebCore::SVGSMILElement::insertedInto):
3143         (WebCore::SVGSMILElement::removedFrom):
3144         (WebCore):
3145         (WebCore::SVGSMILElement::hasValidAttributeName):
3146         (WebCore::SVGSMILElement::svgAttributeChanged):
3147         (WebCore::SVGSMILElement::setAttributeName):
3148         (WebCore::SVGSMILElement::targetElementWillChange):
3149         (WebCore::SVGSMILElement::resetTargetElement):
3150         (WebCore::SVGSMILElement::resolveFirstInterval):
3151         (WebCore::SVGSMILElement::beginListChanged):
3152         (WebCore::SVGSMILElement::endListChanged):
3153         (WebCore::SVGSMILElement::progress):
3154         * svg/animation/SVGSMILElement.h:
3155         (SVGSMILElement):
3156
3157 2012-09-26  Michael Saboff  <msaboff@apple.com>
3158
3159         Update SVGFontData for 8 bit TextRun changes
3160         https://bugs.webkit.org/show_bug.cgi?id=97379
3161
3162         Reviewed by Geoffrey Garen.
3163
3164         Educated applySVGGlyphSelection to be 8 / 16 bit TextRun aware.
3165
3166         No change in funcitonality, therefore no new tests.
3167
3168         * svg/SVGFontData.cpp:
3169         (WebCore::SVGFontData::applySVGGlyphSelection):
3170
3171 2012-09-26  Michael Saboff  <msaboff@apple.com>
3172
3173         Update ComplexTextController for 8 bit TextRun changes
3174         https://bugs.webkit.org/show_bug.cgi?id=97378
3175
3176         Reviewed by Geoffrey Garen.
3177
3178         Since the ComplextTextController code is primarily used for UChar data, just upconvert an 8 bit
3179         TextRun into a new String and hold on to the String with a vector for the life of the controller.
3180
3181         No change in functionality, therefore no new tests.
3182
3183         * platform/graphics/mac/ComplexTextController.cpp:
3184         (WebCore::ComplexTextController::ComplexTextController):
3185         (WebCore::ComplexTextController::collectComplexTextRuns):
3186         * platform/graphics/mac/ComplexTextController.h:
3187         (ComplexTextController):
3188
3189 2012-09-26  Michael Saboff  <msaboff@apple.com>
3190
3191         Add Latin-1 Line Break Iterator to TextBreakIteratorICU.cpp
3192         https://bugs.webkit.org/show_bug.cgi?id=96935
3193
3194         Reviewed by Geoffrey Garen.
3195
3196         Added a Latin-1 UText implementation for the ICU library to use.  Added a new acquireLineBreakIterator() for
3197         8 bit strings that uses the Latin-1 UText implementation.  This code path is not being called with the current 
3198         ToT code.  Subsequent changes will enable calling the new code.
3199
3200         * platform/text/TextBreakIterator.h:
3201         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
3202         (LazyLineBreakIterator):
3203         (WebCore::LazyLineBreakIterator::string):
3204         (WebCore::LazyLineBreakIterator::get):
3205         (WebCore::LazyLineBreakIterator::reset):
3206         * platform/text/TextBreakIteratorICU.cpp:
3207         (WebCore::uTextLatin1Clone):
3208         (WebCore::uTextLatin1NativeLength):
3209         (WebCore::uTextLatin1Access):
3210         (WebCore::uTextLatin1Extract):
3211         (WebCore::uTextLatin1MapOffsetToNative):
3212         (WebCore::uTextLatin1MapNativeIndexToUTF16):
3213         (WebCore::uTextLatin1Close):
3214         (WebCore::UTextOpenLatin1):
3215         (WebCore::acquireLineBreakIterator):
3216         * rendering/RenderBlockLineLayout.cpp:
3217         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
3218         * rendering/RenderText.cpp:
3219         (WebCore::RenderText::computePreferredLogicalWidths):
3220         * rendering/break_lines.cpp:
3221         (WebCore::nextBreakablePosition):
3222         (WebCore::nextBreakablePositionIgnoringNBSP):
3223
3224 2012-09-26  Otto Derek Cheung  <otcheung@rim.com>
3225
3226         [BlackBerry] Reverting implementation for 407 error pages
3227         https://bugs.webkit.org/show_bug.cgi?id=97455
3228
3229         Reviewed by Rob Buis.
3230
3231         Last fix to NetworkJob to invoke AuthenticationChallenge by resetting 
3232         BlackBerryPlatformSettings's proxy credentials to "" if authentication
3233         failed.
3234
3235         * platform/network/blackberry/NetworkJob.cpp:
3236         (WebCore::NetworkJob::sendRequestWithCredentials):
3237
3238 2012-09-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3239
3240         Reorder Cairo WebCore includes
3241         https://bugs.webkit.org/show_bug.cgi?id=97679
3242
3243         Reviewed by Simon Hausmann.
3244
3245         * platform/graphics/cairo/FontCairo.cpp:
3246         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3247         * platform/graphics/cairo/TransformationMatrixCairo.cpp:
3248         * platform/wx/wxcode/cairo/non-kerned-drawing.cpp:
3249
3250 2012-09-25  Emil A Eklund  <eae@chromium.org>
3251
3252         Change FractionalLayoutUnit denominator to 64 to reduce precision loss when converting to floating point
3253         https://bugs.webkit.org/show_bug.cgi?id=96139
3254
3255         Reviewed by Eric Seidel.
3256
3257         We currently use a denominator of 60 in FractionalLayoutUnit,
3258         this causes a loss of precision when converting to floating
3259         point.
3260         
3261         By changing the denominator to 64 the values can better be
3262         represented as floating point (without loosing any precision for
3263         many values), this in turn allows us to remove the tolerance
3264         hack in the line break logic and avoids problems caused by this
3265         precision for web sites that do their own layout based on
3266         element measurements.
3267
3268         Test: fast/sub-pixel/float-precision.html
3269
3270         * platform/FractionalLayoutUnit.h:
3271         Change denominator to 64.
3272         * rendering/RenderBlockLineLayout.cpp:
3273         (WebCore::LineWidth::fitsOnLine):
3274         Remove epsilon tolerance hack.
3275
3276 2012-09-26  Csaba Osztrogon√°c  <ossy@webkit.org>
3277
3278         [Qt] Unreviewed buildfix after r129647.
3279
3280         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp: Revert incorrect include reordering.
3281
3282 2012-09-26  Harald Tveit Alvestrand  <harald@alvestrand.no>
3283         
3284         Implement the GetStats interface on PeerConnection
3285         https://bugs.webkit.org/show_bug.cgi?id=95193
3286
3287         Specification:
3288         http://dev.w3.org/2011/webrtc/editor/webrtc-20120920.html
3289
3290         Reviewed by Adam Barth.
3291
3292         The implementation consists of a pure virtual platform object
3293         (RTCStatsRequest) that is implemented in WebCore, and stores
3294         its information in a straightforward data hierarchy.
3295         This patch adds the call path and the storage structures.
3296         It does not add filling in data.
3297
3298         Test: fast/mediastream/RTCPeerConnection-stats.html
3299
3300         * CMakeLists.txt:
3301         * Modules/mediastream/RTCPeerConnection.cpp:
3302         (WebCore::RTCPeerConnection::getStats):
3303         (WebCore):
3304         * Modules/mediastream/RTCPeerConnection.h:
3305         (WebCore):
3306         (RTCPeerConnection):
3307         * Modules/mediastream/RTCPeerConnection.idl:
3308         * Modules/mediastream/RTCStatsCallback.h: Added.
3309         (WebCore):
3310         (RTCStatsCallback):
3311         (WebCore::RTCStatsCallback::~RTCStatsCallback):
3312         * Modules/mediastream/RTCStatsCallback.idl: Added.
3313         * Modules/mediastream/RTCStatsElement.cpp: Added.
3314         (WebCore):
3315         (WebCore::RTCStatsElement::create):
3316         (WebCore::RTCStatsElement::RTCStatsElement):
3317         (WebCore::RTCStatsElement::stat):
3318         * Modules/mediastream/RTCStatsElement.h: Added.
3319         (WebCore):
3320         (RTCStatsElement):
3321         * Modules/mediastream/RTCStatsElement.idl: Added.
3322         * Modules/mediastream/RTCStatsReport.cpp: Added.
3323         (WebCore):
3324         (WebCore::RTCStatsReport::create):
3325         (WebCore::RTCStatsReport::RTCStatsReport):
3326         * Modules/mediastream/RTCStatsReport.h: Added.
3327         (WebCore):
3328         (RTCStatsReport):
3329         (WebCore::RTCStatsReport::local):
3330         (WebCore::RTCStatsReport::remote):
3331         * Modules/mediastream/RTCStatsReport.idl: Added.
3332         * Modules/mediastream/RTCStatsRequestImpl.cpp: Added.
3333         (WebCore):
3334         (WebCore::RTCStatsRequestImpl::create):
3335         (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
3336         (WebCore::RTCStatsRequestImpl::~RTCStatsRequestImpl):
3337         (WebCore::RTCStatsRequestImpl::requestSucceeded):
3338         (WebCore::RTCStatsRequestImpl::stop):
3339         (WebCore::RTCStatsRequestImpl::clear):
3340         * Modules/mediastream/RTCStatsRequestImpl.h: Added.
3341         (WebCore):
3342         (RTCStatsRequestImpl):
3343         * Modules/mediastream/RTCStatsResponse.cpp: Added.
3344         (WebCore):
3345         (WebCore::RTCStatsResponse::create):
3346         (WebCore::RTCStatsResponse::RTCStatsResponse):
3347         * Modules/mediastream/RTCStatsResponse.h: Added.
3348         (WebCore):
3349         (RTCStatsResponse):
3350         (WebCore::RTCStatsResponse::result):
3351         * Modules/mediastream/RTCStatsResponse.idl: Added.
3352         * WebCore.gypi:
3353         * platform/chromium/support/WebRTCStatsRequest.cpp: Copied from Source/Platform/chromium/public/WebRTCPeerConnectionHandler.h.
3354         (WebKit):
3355         (WebKit::WebRTCStatsRequest::WebRTCStatsRequest):
3356         (WebKit::WebRTCStatsRequest::assign):
3357         (WebKit::WebRTCStatsRequest::reset):
3358         (WebKit::WebRTCStatsRequest::requestSucceeded):
3359         * platform/mediastream/RTCPeerConnectionHandler.h:
3360         (WebCore):
3361         (RTCPeerConnectionHandler):
3362         * platform/mediastream/RTCStatsRequest.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h.
3363         (WebCore):
3364         (RTCStatsRequest):
3365         (WebCore::RTCStatsRequest::~RTCStatsRequest):
3366         (WebCore::RTCStatsRequest::RTCStatsRequest):
3367         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
3368         (WebCore::RTCPeerConnectionHandlerChromium::getStats):
3369         (WebCore):
3370         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
3371         (RTCPeerConnectionHandlerChromium):
3372
3373 2012-09-26  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3374
3375         [WK2][WTR] Policy client: dumping from decidePolicyForResponse callback
3376         https://bugs.webkit.org/show_bug.cgi?id=97034
3377
3378         Reviewed by Kenneth Rohde Christiansen.
3379
3380         Exported WebCore::ResourceResponseBase::isAttachment() method for MAC port.
3381
3382         No new tests. No functionality added.
3383
3384         * WebCore.exp.in:
3385
3386 2012-09-26  Brady Eidson  <beidson@apple.com>
3387
3388         (Threaded scrolling) WebKit not scrolling to the correct location upon going back on macsurfer.com
3389         <rdar://problem/12039913> and https://bugs.webkit.org/show_bug.cgi?id=97617
3390
3391         Reviewed by Anders Carlsson.
3392
3393         In the asynchronous land of threaded scrolling we lose the information about whether or not a scroll
3394         is programmatic.
3395
3396         This caused all scrolls to be treated as user scrolls and to generated scroll events.
3397
3398         We can fix this by passing the programmatic bit to the scrolling thread and re-applying it back in the main thread.
3399
3400         Unable to test threaded scrolling at this time.
3401
3402         Include the "Is programmatic scroll" bit in the scroll state:
3403         * page/scrolling/ScrollingTreeState.cpp:
3404         (WebCore::ScrollingTreeState::ScrollingTreeState):
3405         (WebCore::ScrollingTreeState::setRequestedScrollPosition): Also set whether or not this represents a programmatic scroll.
3406         * page/scrolling/ScrollingTreeState.h:
3407         (ScrollingTreeState):
3408         (WebCore::ScrollingTreeState::requestedScrollPositionRepresentsProgrammaticScroll):
3409
3410         Pass that bit back to the ScrollingCoordinator:
3411         * page/scrolling/ScrollingTree.cpp:
3412         (WebCore::ScrollingTree::ScrollingTree):
3413         (WebCore::ScrollingTree::commitNewTreeState):
3414         (WebCore::ScrollingTree::updateMainFrameScrollPosition):
3415         * page/scrolling/ScrollingTree.h:
3416
3417         * page/scrolling/ScrollingCoordinator.cpp:
3418         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate): Pass the "is programmatic scroll" bit to the scrolling thread.
3419         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition): Reset the "is programmatic scroll" bit on the FrameView.
3420         * page/scrolling/ScrollingCoordinator.h:
3421         (ScrollingCoordinator):
3422
3423         * page/FrameView.h:
3424         (FrameView):
3425         (WebCore::FrameView::inProgrammaticScroll): Expose setter/getters for the programmatic scroll flag.
3426         (WebCore::FrameView::setInProgrammaticScroll):
3427
3428 2012-09-26  Martin Robinson  <mrobinson@igalia.com>
3429
3430         [GTK] Use XDamage to simplify RedirectedXCompositeWindow
3431         https://bugs.webkit.org/show_bug.cgi?id=97267
3432
3433         Reviewed by Alejandro G. Castro.
3434
3435         Use XDamage to queue redraws of the widget when redirecting accelerated compositing
3436         to an offscreen window. This allows removing a finicky timer-based approach, improves
3437         performance, and allows simplifying things greatly.
3438
3439         No new tests. This is covered by existing tests.
3440
3441         * GNUmakefile.am: Add the XDamage CFLAGS in the appropriate place.
3442         * platform/gtk/RedirectedXCompositeWindow.cpp:
3443         (WebCore::getWindowHashMap): Added.
3444         (WebCore::filterXDamageEvent): Added.
3445         (WebCore::supportsXDamageAndXComposite): Added.
3446         (WebCore::RedirectedXCompositeWindow::create): Fail to create the window if
3447         the XServer doesn't support XDamage and XComposite.
3448         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Add XDamage support and
3449         remove the m_usable size distinction. Add the window the window HashMap now.
3450         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow): Remove the window
3451         from the window HashMap.
3452         (WebCore::RedirectedXCompositeWindow::resize): Now just immediately update the size.
3453         (WebCore::RedirectedXCompositeWindow::callDamageNotifyCallback): Added.
3454         * platform/gtk/RedirectedXCompositeWindow.h:
3455         (WebCore::RedirectedXCompositeWindow::setDamageNotifyCallback): Added.
3456
3457 2012-09-26  Ilya Tikhonovsky  <loislo@chromium.org>
3458
3459         Web Inspector: NMI: replace manual JS external resources counting with MemoryInstrumentation
3460         https://bugs.webkit.org/show_bug.cgi?id=97662
3461