Add smartInsertDeleteEnabled setting to WebCore::Page
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-27  Manuel Rego Casasnovas  <rego@igalia.com>
2
3         Add smartInsertDeleteEnabled setting to WebCore::Page
4         https://bugs.webkit.org/show_bug.cgi?id=107840
5
6         Reviewed by Ryosuke Niwa.
7
8         Covered by editing/deleting/smart-editing-disabled.html.
9
10         * page/Settings.in: Add new setting with true as initial value.
11
12 2013-02-27  Chris Fleizach  <cfleizach@apple.com>
13
14         WebSpeech: Support pause/resume ability
15         https://bugs.webkit.org/show_bug.cgi?id=107345
16
17         Reviewed by Beth Dakin.
18
19         Add in the pause/resume functionality to SpeechSynthesis. Also hook up
20         the callback events.
21
22         Test: platform/mac/fast/speechsynthesis/speech-synthesis-pause-resume.html
23
24         * Modules/speech/SpeechSynthesis.cpp:
25         (WebCore::SpeechSynthesis::SpeechSynthesis):
26         (WebCore::SpeechSynthesis::pending):
27         (WebCore::SpeechSynthesis::paused):
28         (WebCore::SpeechSynthesis::startSpeakingImmediately):
29         (WebCore::SpeechSynthesis::pause):
30         (WebCore::SpeechSynthesis::resume):
31         (WebCore):
32         (WebCore::SpeechSynthesis::didPauseSpeaking):
33         (WebCore::SpeechSynthesis::didResumeSpeaking):
34         * Modules/speech/SpeechSynthesis.h:
35         (SpeechSynthesis):
36         * platform/PlatformSpeechSynthesizer.h:
37         (PlatformSpeechSynthesizerClient):
38         (PlatformSpeechSynthesizer):
39         * platform/mac/PlatformSpeechSynthesizerMac.mm:
40         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
41         (-[WebSpeechSynthesisWrapper pause]):
42         (-[WebSpeechSynthesisWrapper resume]):
43         (-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
44         (WebCore::PlatformSpeechSynthesizer::pause):
45         (WebCore):
46         (WebCore::PlatformSpeechSynthesizer::resume):
47
48 2013-02-26  Alexey Proskuryakov  <ap@apple.com>
49
50         Don't add a body to platform request until necessary
51         https://bugs.webkit.org/show_bug.cgi?id=110900
52
53         Reviewed by Brady Eidson.
54
55         ResourceRequest now has more state for syncing between resource and platform parts.
56         In addition to tracking which is up to date, we also track which has up to date
57         HTTP Body.
58
59         The reason is that we don't need the body on request before it's actually sent,
60         and we actually cannot build it when networking is out of process.
61
62         * WebCore.exp.in: Updated exports.
63
64         * platform/network/ResourceRequestBase.h:
65         * platform/network/ResourceRequestBase.cpp:
66         (WebCore::ResourceRequestBase::setHTTPBody): Update HTTP body before returning it.
67         (WebCore::ResourceRequestBase::updatePlatformRequest): Update according to HTTPBodyUpdatePolicy.
68         (WebCore::ResourceRequestBase::updateResourceRequest): Ditto.
69
70         * platform/network/cf/FormDataStreamCFNet.cpp:
71         (WebCore::formDataStreamLengthPropertyName):
72         (WebCore::formCopyProperty):
73         (WebCore::setHTTPBody):
74         Changed to not update Content-Length in platform request directly. We need to keep it
75         in sync with resource request, and it's easier to do in a caller. Exposed computed
76         length as a property do avoid duplicating the work.
77
78         * platform/network/cf/FormDataStreamCFNet.h: Removed unnecessary httpBodyFromStream().
79
80         * platform/network/cf/ResourceHandleCFNet.cpp:
81         (WebCore::willSendRequest):
82         (WebCore::didReceiveResponse):
83         (WebCore::ResourceHandle::createCFURLConnection):
84         Update body when necessary.
85
86         (WebCore::ResourceRequest::nsURLRequest):
87         (WebCore::ResourceRequest::doUpdateResourceRequest):
88         (WebCore::ResourceRequest::doUpdateResourceHTTPBody):
89         (WebCore):
90         (WebCore::ResourceRequest::doUpdatePlatformRequest):
91         (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
92         (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody):
93         (WebCore::ResourceRequest::applyWebArchiveHackForMail):
94         Ditto.
95
96         * platform/network/cf/ResourceRequest.h: Track body up-to-date state.
97
98         * platform/network/cf/ResourceRequestCFNet.cpp:
99         (WebCore::ResourceRequest::cfURLRequest): Honor HTTPBodyUpdatePolicy.
100         (WebCore::ResourceRequest::doUpdatePlatformRequest): Don't update body here.
101         (WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Update the body, and make sure
102         that Content-Length is correct.
103         (WebCore::ResourceRequest::doUpdateResourceRequest): Don't update body here.
104         (WebCore::ResourceRequest::doUpdateResourceHTTPBody): Update the body, fixing a bug
105         where body stream was lost if this function got called.
106         (WebCore::ResourceRequest::applyWebArchiveHackForMail): No need to update body for this one.
107
108         * platform/network/mac/ResourceRequestMac.mm: Ditto (but this didn't have a bug
109         with streams in doUpdateResourceRequest()).
110
111         * platform/network/mac/FormDataStreamMac.h: Forward declare formDataStreamLengthPropertyName().
112
113         * platform/network/mac/ResourceHandleMac.mm:
114         (WebCore::ResourceHandle::createNSURLConnection):
115         (WebCore::ResourceHandle::start):
116         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
117         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
118         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
119         Update body when necessary.
120
121         * platform/network/blackberry/ResourceRequest.h:
122         * platform/network/chromium/ResourceRequest.h:
123         * platform/network/curl/ResourceRequest.h:
124         * platform/network/qt/ResourceRequest.h:
125         * platform/network/soup/ResourceRequest.h:
126         * platform/network/win/ResourceRequest.h:
127         Added stubs for new functions. These ports don't keep a platform request in ResourceRequest,
128         and don't need updating.
129
130 2013-02-27  Glenn Adams  <glenn@skynav.com>
131
132         Add ENABLE_CSS3_TEXT_LINE_BREAK flag.
133         https://bugs.webkit.org/show_bug.cgi?id=110944
134
135         Reviewed by Dean Jackson.
136
137         No new tests.
138
139         * Configurations/FeatureDefines.xcconfig:
140
141 2013-02-27  Andrei Bucur  <abucur@adobe.com>
142
143         REGRESSION(r124739): fast/lists/list-marker-remove-crash.html hits an assertion in MoveParagraphs
144         https://bugs.webkit.org/show_bug.cgi?id=93247
145
146         Reviewed by Darin Adler.
147
148         The listifyParagraph function inside InsertListCommand triggered a layout for the new list and updated
149         only the "start" Position. The insertion and layout may have changed the "end" Position as well. The patch
150         makes sure "end" is also recomputed.
151
152         Test: No new test, the patch fixes a regression.
153
154         * editing/InsertListCommand.cpp:
155         (WebCore::InsertListCommand::listifyParagraph):
156
157 2013-02-27  Zach Kuznia  <zork@chromium.org>
158
159         Add ENABLE_STREAM guards to FileReaderLoader
160         https://bugs.webkit.org/show_bug.cgi?id=110938
161
162         Reviewed by Hajime Morrita.
163
164         * fileapi/FileReaderLoader.cpp:
165         * fileapi/FileReaderLoader.h:
166
167 2013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
168
169         Switch QtWebKit to GStreamer 1.0.
170         https://bugs.webkit.org/show_bug.cgi?id=106669.
171
172         Original patch by Sebastian Dröge.
173         Reviewed by Csaba Osztrogonác.
174
175         * WebCore.pri:
176
177 2013-02-27  Eli Fidler  <efidler@rim.com>
178
179         [BlackBerry] Fix BlackBerry::Platform::String to WTF::String conversion when the string is Latin-1-encoded.
180         https://bugs.webkit.org/show_bug.cgi?id=110986
181
182         Reviewed by Yong Li.
183
184         Internally reviewed by Nima Ghanavatian.
185         BlackBerry PR 292922
186
187         We were assuming all platform strings were valid UTF-8, which isn't true for Latin-1 strings.
188
189         * platform/text/blackberry/StringBlackBerry.cpp:
190         (WTF::String::String):
191
192 2013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
193
194         [TexMap] REGRESSION(144183): It make negative delay tests fails
195         https://bugs.webkit.org/show_bug.cgi?id=110989
196
197         Reviewed by Noam Rosenthal.
198
199         Do not apply a negative offset to the animation starttime send to the GraphicLayerClient,
200         it needs the actual animation start not a virtual start.
201
202         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
203         (WebCore::GraphicsLayerTextureMapper::addAnimation):
204
205 2013-02-27  Aaron Colwell  <acolwell@chromium.org>
206
207         Fix SourceBufferList so SourceBuffer.append() calls are always rejected after the MediaSource is closed.
208         https://bugs.webkit.org/show_bug.cgi?id=110917
209
210         Reviewed by Eric Carlson.
211
212         Test: http/tests/media/media-source/video-media-source-reject-append-after-reopening.html
213
214         * Modules/mediasource/SourceBufferList.cpp:
215         (WebCore::SourceBufferList::clear):
216
217 2013-02-27  Justin Novosad  <junov@google.com>
218
219         REGRESSION (r134631) of border-radius percentage with border pixel
220         https://bugs.webkit.org/show_bug.cgi?id=110889
221
222         Reviewed by Simon Fraser.
223
224         Fixing background color filling to handle "non renderable" rounded
225         rectangles.
226
227         Test: fast/borders/border-radius-percent.html
228
229         * rendering/RenderBoxModelObject.cpp:
230         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
231
232 2013-02-27  Florin Malita  <fmalita@chromium.org>
233
234         [Chromium] Layout Test svg/custom/transform-with-shadow-and-gradient.svg is failing
235         https://bugs.webkit.org/show_bug.cgi?id=76557
236
237         Reviewed by Stephen Chenney.
238
239         Always use kDst_Mode transfer for the shadow looper. Using kSrc_Mode to enforce CSS
240         box-shadow opaqueness at this level is not necessary since the RenderBoxModel box
241         decoration code already makes sure that shadows are filled with opaque black.
242
243         This change aligns the SVG shadow behavior (and pixel results) with CG/Safari.
244
245         No new tests, coverage provided by existing tests.
246
247         * platform/graphics/skia/GraphicsContextSkia.cpp:
248         (WebCore::GraphicsContext::setPlatformShadow):
249
250 2013-02-25  Kentaro Hara  <haraken@chromium.org>
251
252         [V8] Generate a wrapper function for ReplaceableAttrSetter()
253         https://bugs.webkit.org/show_bug.cgi?id=110781
254
255         Reviewed by Adam Barth.
256
257         This is one of steps to insert TRACE_EVENT_STATE() macros
258         into DOM bindings. This patch introduces an indirection function
259         for xxxReplaceableAttrSetter(), like this:
260
261         // For non-custom replaceable setters (Note: One implementation
262         is enough for all replaceable setters in one interface.)
263         void V8XXX:::ReplaceableAttrSetterCallback(...) {
264           V8XXX::ReplaceableAttrSetter(...);
265         }
266
267         // For custom replaceable setters. (Note: This is treated as
268         a normal custom setter.)
269         void xxxAttrSetterCallback(...) {
270           return xxxAttrSetterCustom(...);
271         }
272
273         No tests. No change in behavior.
274
275         * bindings/scripts/CodeGeneratorV8.pm:
276         (GenerateReplaceableAttrSetterCallback):
277         (GenerateReplaceableAttrSetter):
278         (GenerateSingleBatchedAttribute):
279         (GenerateImplementation):
280         * bindings/scripts/test/V8/V8TestObj.cpp:
281         (WebCore::TestObjV8Internal::TestObjReplaceableAttrSetterCallback):
282         (TestObjV8Internal):
283         (WebCore):
284         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
285         (WebCore::TestTypedefsV8Internal::TestTypedefsReplaceableAttrSetterCallback):
286         (TestTypedefsV8Internal):
287
288 2013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
289
290         [Qt] Flash objects won't load until scrolling page
291         https://bugs.webkit.org/show_bug.cgi?id=110149
292
293         Reviewed by Simon Hausmann.
294
295         Revert r134222. The issue from bug 101836 is no longer reproducable,
296         and the fix was causing flash objects to not load properly.
297
298         * plugins/PluginPackage.cpp:
299         (WebCore::PluginPackage::determineQuirks):
300
301 2013-02-27  No'am Rosenthal  <noam@webkit.org>
302
303         [Texmap] TextureMapper is too eager to use intermediate surfaces
304         https://bugs.webkit.org/show_bug.cgi?id=110762
305
306         Reviewed by Allan Sandfeld Jensen.
307
308         Refactor the way intermediate surfaces are handled in TextureMapperLayer.
309         Beforehand, we would create an intermediate surface whenever there is a chance of overlap, and
310         the intermediate surface would be the largest possible. The result would then be drawn to the
311         target surface with the layer's opacity and mask.
312
313         This would make it so that (1) surfaces are created even when they're not needed, i.e. when there
314         is no actual overlap, and (2) mask wouldn't be applied correctly.
315
316         In this patch the behavior is changed so that the area to be painted is divided to "overlapping"
317         and "non overlapping" regions. The non-overlapping regions are painted directly, while the overlapping
318         regions are tiled to smaller rectangles painted using an intermediate surface.
319         Masks are applied to those intermediate surfaces based on the transform of the actual mask, not drawn
320         together with the content texture like before.
321
322         This optimizes for the more common case of opacity animations on a large tree, while making the quite
323         rare case of composited masks slightly less optimized but always correct.
324
325         Tests: compositing/overlap-blending/children-opacity-huge.html
326                compositing/overlap-blending/reflection-opacity-huge.html
327                compositing/overlap-blending/children-opacity-no-overlap.html
328
329         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
330         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
331         * platform/graphics/cairo/GraphicsContext3DPrivate.h:
332         (GraphicsContext3DPrivate):
333         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
334         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
335         * platform/graphics/efl/GraphicsContext3DPrivate.h:
336         (GraphicsContext3DPrivate):
337         * platform/graphics/qt/GraphicsContext3DQt.cpp:
338         (GraphicsContext3DPrivate):
339         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
340         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
341         (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
342         * platform/graphics/qt/MediaPlayerPrivateQt.h:
343         (MediaPlayerPrivateQt):
344         * platform/graphics/surfaces/GraphicsSurface.cpp:
345         (WebCore::GraphicsSurface::paintToTextureMapper):
346         * platform/graphics/surfaces/GraphicsSurface.h:
347         (GraphicsSurface):
348         * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp:
349         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
350         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
351         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
352         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp:
353         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
354         * platform/graphics/texmap/TextureMapperBackingStore.h:
355         (TextureMapperBackingStore):
356         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
357         (TextureMapperPlatformLayer):
358         * platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp:
359         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
360         * platform/graphics/texmap/TextureMapperSurfaceBackingStore.h:
361         (TextureMapperSurfaceBackingStore):
362         * platform/graphics/texmap/TextureMapperTile.cpp:
363         (WebCore::TextureMapperTile::paint):
364         * platform/graphics/texmap/TextureMapperTile.h:
365         (TextureMapperTile):
366         * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
367         (WebCore::TextureMapperTiledBackingStore::paintToTextureMapper):
368         * platform/graphics/texmap/TextureMapperTiledBackingStore.h:
369         (TextureMapperTiledBackingStore):
370         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
371         (WebCore::CoordinatedBackingStore::paintTilesToTextureMapper):
372         (WebCore::CoordinatedBackingStore::paintToTextureMapper):
373         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
374         (CoordinatedBackingStore):
375                 Removed the "mask" parameter from TextureMapperPlatformLayer and overrides, since
376                 we no longer paint the contents and the mask in the same pass.
377
378         * platform/graphics/texmap/TextureMapper.cpp:
379         (WebCore::TextureMapper::TextureMapper):
380         * platform/graphics/texmap/TextureMapper.h:
381         (WebCore::TextureMapper::setMaskMode):
382         (TextureMapper):
383         (WebCore::TextureMapper::isInMaskMode):
384         * platform/graphics/texmap/TextureMapperGL.cpp:
385         (WebCore::TextureMapperGL::drawNumber):
386         (WebCore::TextureMapperGL::drawTexture):
387         (WebCore::TextureMapperGL::draw):
388         (WebCore):
389         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
390         (WebCore::TextureMapperGL::drawFiltered):
391         * platform/graphics/texmap/TextureMapperGL.h:
392         (TextureMapperGL):
393         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
394         (WebCore::TextureMapperImageBuffer::drawTexture):
395         (WebCore::TextureMapperImageBuffer::drawSolidColor):
396         * platform/graphics/texmap/TextureMapperImageBuffer.h:
397         (TextureMapperImageBuffer):
398                 Instead of painting the mask together with the texture/color, paint the mask
399                 by drawing with DestinationIn to an existing surface.
400
401         * platform/graphics/texmap/TextureMapperLayer.cpp:
402         (TextureMapperPaintOptions):
403         (WebCore::TextureMapperLayer::paintSelf):
404         (WebCore::TextureMapperLayer::shouldBlend):
405         (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
406         (WebCore::TextureMapperLayer::replicaTransform):
407         (WebCore):
408         (WebCore::applyFilters):
409         (WebCore::resolveOverlaps):
410         (WebCore::TextureMapperLayer::computeOverlapRegions):
411         (WebCore::TextureMapperLayer::paintUsingOverlapRegions):
412         (WebCore::TextureMapperLayer::applyMask):
413         (WebCore::TextureMapperLayer::paintIntoSurface):
414         (WebCore::commitSurface):
415         (WebCore::TextureMapperLayer::paintWithIntermediateSurface):
416         (WebCore::TextureMapperLayer::paintRecursive):
417         * platform/graphics/texmap/TextureMapperLayer.h:
418         (WebCore):
419         (TextureMapperLayer):
420         (WebCore::TextureMapperLayer::hasFilters):
421         * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
422         (WebCore):
423         (WebCore::TextureMapperShaderProgram::create):
424         * platform/graphics/texmap/TextureMapperShaderProgram.h:
425
426 2013-02-27  Alexander Pavlov  <apavlov@chromium.org>
427
428         Web Inspector: [REGRESSION] [Audits] Disabled "Run" button styling is the same as the enabled one
429         https://bugs.webkit.org/show_bug.cgi?id=110971
430
431         Reviewed by Yury Semikhatsky.
432
433         Split out PanelEnablerView-related rules into panelEnabledView.css and restored the missing rules
434         in inspector.css.
435
436         * inspector/front-end/inspector.css:
437         * inspector/front-end/panelEnablerView.css:
438
439 2013-02-27  Kent Tamura  <tkent@chromium.org>
440
441         REGRESSION: INPUT_MULTIPLE_FIELDS_UI: Changing CSS display property on input[type=date] unexpectedly makes another line for ::-webkit-calendar-picker-indicator
442         https://bugs.webkit.org/show_bug.cgi?id=110974
443
444         Reviewed by Kentaro Hara.
445
446         Input elements with the multiple fields UI require flexible box
447         layout. We should use RenderFlexibleBox regardless of display
448         property values.
449
450         Tests: Update fast/forms/date/date-apparance-basic.html
451
452         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
453         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createRenderer):
454         Always use RenderFlexibleBox.
455         * html/BaseMultipleFieldsDateAndTimeInputType.h:
456         (BaseMultipleFieldsDateAndTimeInputType): Declare createRenderer.
457
458 2013-02-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
459
460         [TexMap] Flickering after transitions on Apple HTML5 demo
461         https://bugs.webkit.org/show_bug.cgi?id=102501
462
463         Reviewed by Noam Rosenthal.
464
465         Notify about animation start after the new animation is actually commited.
466
467         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
468         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
469         (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
470         (WebCore::GraphicsLayerTextureMapper::addAnimation):
471         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
472         (GraphicsLayerTextureMapper):
473
474 2013-02-27  Vivek Galatage  <vivek.vg@samsung.com>
475
476         Web Inspector: Refactor AuditsPanel with AuditController as newly introduced entity
477         https://bugs.webkit.org/show_bug.cgi?id=110866
478
479         Reviewed by Alexander Pavlov.
480
481         AuditController is being introduced in order to follow MVC pattern with the Audits.
482         This is the first step about the refactoring. Moving the methods from the AuditsPanel
483         into AuditController would ease the event driven approach to de-couple the AuditsPanel
484         and the AuditLauncherView.
485
486         No new tests as code refactoring.
487
488         * WebCore.gypi:
489         * WebCore.vcproj/WebCore.vcproj:
490         * inspector/compile-front-end.py:
491         * inspector/front-end/AuditController.js: Added.
492         (WebInspector.AuditController):
493         (WebInspector.AuditController.prototype.ruleResultReadyCallback):
494         (WebInspector.AuditController.prototype.categoryDoneCallback):
495         (WebInspector.AuditController.prototype._executeAudit):
496         (WebInspector.AuditController.prototype._auditFinishedCallback):
497         (WebInspector.AuditController.prototype.startAuditWhenResourcesReady):
498         (WebInspector.AuditController.prototype.initiateAudit):
499         (WebInspector.AuditController.prototype._reloadResources):
500         (WebInspector.AuditController.prototype._didMainResourceLoad):
501         * inspector/front-end/AuditLauncherView.js:
502         (WebInspector.AuditLauncherView):
503         (WebInspector.AuditLauncherView.prototype._startAudit):
504         * inspector/front-end/AuditsPanel.js:
505         (WebInspector.AuditsPanel):
506         (WebInspector.AuditsPanel.prototype.auditFinishedCallback):
507         * inspector/front-end/WebKit.qrc:
508
509 2013-02-27  Mihai Maerean  <mmaerean@adobe.com>
510
511         [CSS Regions] Region overset property is not properly computed when there is a region break
512         https://bugs.webkit.org/show_bug.cgi?id=92497
513
514         Reviewed by David Hyatt.
515
516         For "paginated" content in regions that has -webkit-region-break-after:always, the bottom margin was being passed
517         along for the next region in the chain, which shouldn't happen.
518
519         The fix is, at layout, to clear the bottom margin for the nodes (inside paginated contexts) that have
520         -webkit-region-break-after:always.
521
522         Tests: fast/multicol/break-after-always-bottom-margin.html
523                fast/regions/overset-break-nested.html
524                fast/regions/overset-break-with-sibling.html
525                fast/regions/overset-break.html
526
527         * rendering/RenderBlock.cpp:
528         (WebCore::RenderBlock::applyAfterBreak):
529
530 2013-02-27  Stephen Chenney  <schenney@chromium.org>
531
532         Bindings test results update after r144126
533         https://bugs.webkit.org/show_bug.cgi?id=108196
534
535         Unreviewed test update.
536
537         * bindings/scripts/test/JS/JSTestObj.cpp: Add include of CallbackFunction.h
538
539 2013-02-27  Vsevolod Vlasov  <vsevik@chromium.org>
540
541         Unreviewed inspector front-end closure compilaiton fix.
542
543         * inspector/front-end/ScriptsNavigator.js:
544         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
545         (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
546         * inspector/front-end/ScriptsPanel.js:
547         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
548
549 2013-02-27  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
550
551         [texmap] Do not apply clip state if redundant
552         https://bugs.webkit.org/show_bug.cgi?id=110790
553
554         Reviewed by Noam Rosenthal.
555
556         Add a bool to check if clip state has changed since last apply.
557
558         No behavior changes, thus covered by existing tests.
559
560         * platform/graphics/texmap/TextureMapperGL.cpp:
561         (WebCore::TextureMapperGL::ClipStack::reset):
562         (WebCore::TextureMapperGL::ClipStack::pop):
563         (WebCore::TextureMapperGL::ClipStack::apply):
564         * platform/graphics/texmap/TextureMapperGL.h:
565         (WebCore::TextureMapperGL::ClipStack::ClipStack):
566         (ClipStack):
567
568 2013-02-27  Eugene Klyuchnikov  <eustas@chromium.org>
569
570         Web Inspector: timeline stops working on certain sites
571         https://bugs.webkit.org/show_bug.cgi?id=110955
572
573         Reviewed by Alexander Pavlov.
574
575         Analysis: "timerId" value is number,
576         so it is not wrapped to node as expected.
577
578         Solution: wrap values of all types except Node.
579
580         * inspector/front-end/TimelinePresentationModel.js:
581         Wrap nonstring values to text nodes.
582
583 2013-02-27  Adam Barth  <abarth@webkit.org>
584
585         HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser can trigger ASSERT(m_speculations.isEmpty())
586         https://bugs.webkit.org/show_bug.cgi?id=110949
587
588         Reviewed by Eric Seidel.
589
590         We can hit this ASSERT if didReceiveParsedChunkFromBackgroundParser is
591         called from the background thread while we're processing
592         m_speculations (i.e., if processing m_speculations is taking a while
593         and we've yielded to the event loop).
594
595         It's hard to write a deterministic test for this patch, but it's hit
596         quite often with existing LayoutTests.
597
598         * html/parser/HTMLDocumentParser.cpp:
599         (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
600
601 2013-02-27  Kentaro Hara  <haraken@chromium.org>
602
603         [V8] Generate a wrapper function for named constructor callbacks
604         https://bugs.webkit.org/show_bug.cgi?id=110794
605
606         Reviewed by Adam Barth.
607
608         This would be the final step of generating wrapper functions.
609         The patch generates the following wrapper function for named
610         constructor callbacks.
611
612         Handle<Value> namedConstructorCallback(...)
613         {
614             return namedConstructor(...);
615         }
616
617         No tests. No change in behavior.
618
619         * bindings/scripts/CodeGeneratorV8.pm:
620         (GenerateNamedConstructor):
621         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
622         (WebCore::namedConstructor):
623         (WebCore::namedConstructorCallback):
624         (WebCore):
625         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
626         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
627         (WebCore::namedConstructor):
628         (WebCore::namedConstructorCallback):
629         (WebCore):
630         (WebCore::V8HTMLImageElementConstructor::GetTemplate):
631
632 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
633
634         Web Inspector: show raster tasks on Timeline
635         https://bugs.webkit.org/show_bug.cgi?id=105851
636
637         - add DeferPaint, Paint & RasterTask trace events handling to trace event processor;
638         - upon begin frame, emit aggregated background event for all raster tasks related to inspected page.
639
640         Reviewed by Pavel Feldman.
641
642         * inspector/InspectorInstrumentation.cpp:
643         (WebCore):
644         (WebCore::InspectorInstrumentation::willPaintImpl):
645         (InstrumentationEvents):
646         (InstrumentationEventArguments):
647         * inspector/InspectorInstrumentation.h:
648         (InstrumentationEvents):
649         (WebCore):
650         (InstrumentationEventArguments):
651         * inspector/InspectorTimelineAgent.cpp:
652         (TimelineRecordType):
653         (WebCore::InspectorTimelineAgent::stop):
654         (WebCore::InspectorTimelineAgent::didBeginFrame):
655         * inspector/InspectorTimelineAgent.h:
656         (TimelineRecordType):
657         (WebCore):
658         * inspector/TimelineRecordFactory.cpp:
659         (WebCore::TimelineRecordFactory::createRasterData):
660         (WebCore):
661         * inspector/TimelineRecordFactory.h:
662         (TimelineRecordFactory):
663         * inspector/TimelineTraceEventProcessor.cpp:
664         (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
665         (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
666         (WebCore):
667         (WebCore::TimelineTraceEventProcessor::registerHandler):
668         (WebCore::TimelineTraceEventProcessor::shutdown):
669         (WebCore::TimelineTraceEventProcessor::TraceEvent::findParameter):
670         (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
671         (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
672         (WebCore::TimelineTraceEventProcessor::onBeginFrame):
673         (WebCore::TimelineTraceEventProcessor::onPaintLayerBegin):
674         (WebCore::TimelineTraceEventProcessor::onPaintLayerEnd):
675         (WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
676         (WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
677         (WebCore::TimelineTraceEventProcessor::onLayerDeleted):
678         (WebCore::TimelineTraceEventProcessor::onPaint):
679         (WebCore::TimelineTraceEventProcessor::flushRasterizerStatistics):
680         (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
681         (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
682         * inspector/TimelineTraceEventProcessor.h:
683         (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
684         (WebCore::TimelineTraceEventProcessor::TraceEvent::id):
685         (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
686         (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
687         (TimelineTraceEventProcessor):
688         * inspector/front-end/TimelineModel.js:
689         * inspector/front-end/TimelinePresentationModel.js:
690         (WebInspector.TimelinePresentationModel._initRecordStyles):
691
692 2013-02-26  Uday Kiran  <udaykiran@motorola.com>
693
694         getPropertyValue for -webkit-column-rule returns null, should compute the shorthand value
695         https://bugs.webkit.org/show_bug.cgi?id=110698
696
697         Reviewed by Alexander Pavlov.
698
699         Test: fast/css/getPropertyValue-column-rule.html
700
701         * css/StylePropertySet.cpp:
702         (WebCore::StylePropertySet::getPropertyValue):
703
704 2013-02-26  Uday Kiran  <udaykiran@motorola.com>
705
706         getPropertyValue for -webkit-margin-collapse returns null, should compute the shorthand value
707         https://bugs.webkit.org/show_bug.cgi?id=110903
708
709         Reviewed by Alexander Pavlov.
710
711         getPropertyValue("-webkit-margin-collapse") should compute shorthand value
712         when -webkit-margin-collapse is specified in CSS.
713
714         Test: fast/css/getPropertyValue-webkit-margin-collapse.html
715
716         * css/StylePropertySet.cpp:
717         (WebCore::StylePropertySet::getPropertyValue):
718
719 2013-02-26  Uday Kiran  <udaykiran@motorola.com>
720
721         getPropertyValue for -webkit-marquee returns null, should compute the shorthand value
722         https://bugs.webkit.org/show_bug.cgi?id=110816
723
724         Reviewed by Alexander Pavlov.
725
726         Compute the shorthand value for '-webkit-marquee' specified in CSS.
727
728         Test: fast/css/getPropertyValue-webkit-marquee.html
729
730         * css/StylePropertySet.cpp:
731         (WebCore::StylePropertySet::getPropertyValue):
732
733 2013-02-26  Kentaro Hara  <haraken@chromium.org>
734
735         [V8] Remove Event::dataTransferAttrGetterCustom() and Event::valueAttrSetterCustom()
736         https://bugs.webkit.org/show_bug.cgi?id=110666
737
738         Reviewed by Adam Barth.
739
740         Event::dataTransferAttrGetterCustom() is not used
741         (i.e. the custom method is not registered to V8).
742         Event::valueAttrSetterCustom() is declared but not
743         implemented. We can remove them.
744
745         No tests. No change in behavior.
746
747         * bindings/scripts/CodeGeneratorV8.pm:
748         (GenerateHeaderCustomCall):
749         * bindings/v8/custom/V8EventCustom.cpp:
750
751 2013-02-26  Dimitri Glazkov  <dglazkov@chromium.org>
752
753         SelectorQuery should not ever use ResolvingStyle mode.
754         https://bugs.webkit.org/show_bug.cgi?id=110843
755
756         It looks like we accidentally used ResolvingStyle mode for webkitMatchesSelector, and I exacerbated the problem
757         in r143858 by switching all of SelectorQuery to use it. There aren't any visible effects, but the style bits
758         of elements are unnecessarily twiddled when if we do that. Let's not do it.
759
760         Reviewed by Eric Seidel.
761
762         No public-facing behavior change, covered by existing tests.
763
764         * dom/SelectorQuery.cpp:
765         (WebCore::SelectorDataList::selectorMatches): Switched to always use QueryingRules mode.
766
767 2013-02-26  Adam Barth  <abarth@webkit.org>
768
769         Silence this ASSERT. It is triggered by the threaded HTML parser.
770         Investigation to follow in https://bugs.webkit.org/show_bug.cgi?id=110937
771
772         * loader/DocumentLoader.cpp:
773         (WebCore::DocumentLoader::checkLoadComplete):
774
775 2013-02-26  Mark Lam  <mark.lam@apple.com>
776
777         SQLTransactionBackend::doCleanup() should not nullify its current
778         statement and transaction error fields.
779         https://bugs.webkit.org/show_bug.cgi?id=110826.
780
781         Reviewed by Geoffrey Garen.
782
783         The reason for this is because the frontend SQLTransaction may have
784         tasks that are already registered via callOnMainThread(), and may
785         invoke transaction state functions that access these objects in the
786         SQLTransactionBackend. This proves to be problematic if the database
787         was interrupted resulting in doCleanup() being called concurrently
788         while those states are executing.
789
790         Instead, we leave their clean up to the SQLTransactionBackend destructor
791         which is guaranteed to only be called when the SQLTransaction is also
792         destructing i.e. these objects are no longer needed.
793
794         No new tests.
795
796         * Modules/webdatabase/SQLTransactionBackend.cpp:
797         (WebCore::SQLTransactionBackend::doCleanup):
798
799 2013-02-26  Anders Carlsson  <andersca@apple.com>
800
801         Implement StorageAreaProxy::getItem and StorageAreaProxy::setItem
802         https://bugs.webkit.org/show_bug.cgi?id=110927
803
804         Reviewed by Sam Weinig.
805
806         Export StorageMap::getItem and StorageMap::setItem.
807
808         * WebCore.exp.in:
809
810 2013-02-26  Adam Klein  <adamk@chromium.org>
811
812         Parsing of HTML tags in MathML Text Insertion Points leads to bogus parser behavior
813         https://bugs.webkit.org/show_bug.cgi?id=110808
814
815         Reviewed by Adam Barth.
816
817         When looking for various table tags in the HTMLElementStack, compare
818         QualifiedNames rather than just local names, where necessary.
819
820         Note that not all uses have been "fixed"; I've only changed for which
821         I could write a test with differing behavior. A followup patch to
822         rationalize the use of QualifiedName vs local names would be ideal.
823
824         Tests: html5lib/generated/run-math-data.html
825                html5lib/generated/run-math-write.html
826
827         * html/parser/HTMLElementStack.cpp:
828         (WebCore::inScopeCommon): Added a version of inScopeCommon that
829         handles QualifiedNames instead of just localNames.
830         (WebCore::HTMLElementStack::inTableScope): When given a QualifiedName,
831         call the new version of inScopeCommon().
832         * html/parser/HTMLTreeBuilder.cpp:
833         (WebCore::HTMLTreeBuilder::processStartTag):
834         (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
835         (WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
836
837 2013-02-26  Kaustubh Atrawalkar  <kaustubh@motorola.com>
838
839         Notification.requestPermission callback should be optional
840         https://bugs.webkit.org/show_bug.cgi?id=108196
841
842         Reviewed by Adam Barth.
843
844         Spec says it should be optional.
845         http://notifications.spec.whatwg.org/#notification
846
847         Test: fast/notifications/notifications-request-permission-optional.html
848
849         * GNUmakefile.list.am:
850         * Modules/notifications/Notification.h:
851         (Notification):
852         * Modules/notifications/Notification.idl:
853         * Target.pri:
854         * UseJSC.cmake:
855         * UseV8.cmake:
856         * WebCore.gypi:
857         * WebCore.vcproj/WebCore.vcproj:
858         * WebCore.vcxproj/WebCore.vcxproj:
859         * WebCore.vcxproj/WebCore.vcxproj.filters:
860         * WebCore.xcodeproj/project.pbxproj:
861         * bindings/js/JSNotificationCustom.cpp: Removed.
862         * bindings/scripts/CodeGeneratorJS.pm:
863         (GenerateParametersCheck):
864         * bindings/v8/custom/V8NotificationCustom.cpp: Removed.
865
866 2013-02-26  Joshua Bell  <jsbell@chromium.org>
867
868         IndexedDB: Add temporary diagnostic code to IDBRequest.result getter
869         https://bugs.webkit.org/show_bug.cgi?id=110916
870
871         Reviewed by Kentaro Hara.
872
873         Implement a custom getter for IDBRequest.result that does one additional hidden
874         property set, to try and isolate the flaky crash seen in wkbug.com/105363 which is
875         difficult to repro locally. If the crash moves to the new line it will point
876         the investigation in a new direction. Also add an assertion that probes string
877         wrappers (the expected type).
878
879         * Modules/indexeddb/IDBRequest.idl: Mark attribute as [Custom]
880         * WebCore.gypi: New file.
881         * bindings/v8/custom/V8IDBRequestCustom.cpp: Added.
882         (WebCore::V8IDBRequest::resultAttrGetterCustom): Implementation - copy/paste from
883         generated code, plus extra setNamedHiddenReference call and string ASSERT.
884
885 2013-02-26  Anders Carlsson  <andersca@apple.com>
886
887         Add a couple of symbols needed by WebKit2.
888
889         * WebCore.exp.in:
890
891 2013-02-26  Michelangelo De Simone  <michelangelo@webkit.org>
892
893         [CSS Shaders] Implement color and luminosity non-separable blend modes
894         https://bugs.webkit.org/show_bug.cgi?id=106226
895
896         Added the following GLSL helper functions to the CustomFilterValidatedProgram:
897
898             - css_Lum(C): returns the luminosity for the color C
899             - css_ClipColor(C): clips color C
900             - css_SetLum(C, l): sets the luminosity l on the color C
901
902         The above functions are being used for the "color" and "luminosity" non-separable
903         blend modes, the relevant spec for such modes is at URL:
904         https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable
905
906         Reviewed by Dean Jackson.
907
908         Tests: css3/filters/custom/custom-filter-nonseparable-blend-mode-color.html
909                css3/filters/custom/custom-filter-nonseparable-blend-mode-luminosity.html
910
911         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
912         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
913
914 2013-02-26  Anders Carlsson  <andersca@apple.com>
915
916         StorageAreaProxy should hold on to a StorageMap and not a HashMap
917         https://bugs.webkit.org/show_bug.cgi?id=110919
918
919         Reviewed by Jessie Berlin.
920
921         StorageMap should be a private header.
922
923         * WebCore.xcodeproj/project.pbxproj:
924
925 2013-02-26  Stephen Chenney  <schenney@chromium.org>
926
927         feDisplacementMap filter gets color space wrong
928         https://bugs.webkit.org/show_bug.cgi?id=105929
929
930         Reviewed by Dirk Schulze.
931
932         Tests: svg/filters/feDisplacementMap-color-interpolation-filters-expected.svg
933                svg/filters/feDisplacementMap-color-interpolation-filters.svg
934                svg/filters/feDisplacementMap-filterUnits-expected.svg
935                svg/filters/feDisplacementMap-filterUnits.svg
936
937         According to the spec, the SVG feDisplacementMap filter should not
938         change the color space on its first input, and other vendors seem to
939         agree that this also means that the output should be in the first
940         input's color space. That makes sense: we are displacing the input,
941         not otherwise manipulating colors.
942
943         This change improves color space handling for filters by more
944         explicitly tracking which color space is used for the filter's
945         operation and which is used for the filter's result. It provides a
946         means for filter effects to override the color-interpolation-filters
947         property as defined by the spec. feFlood and feDisplacementMap use
948         this new feature to enforce the spec requirements.
949
950         * platform/graphics/filters/FEDisplacementMap.cpp:
951         (WebCore::FEDisplacementMap::setResultColorSpace): Override the default color space with the
952             same color space as the first input filter.
953         (WebCore):
954         (WebCore::FEDisplacementMap::transformResultColorSpace): Only transform the color space on
955             the second filter input.
956         (WebCore::FEDisplacementMap::platformApplySoftware): Make the application code more efficient,
957             and give slightly better numerical accuracy.
958         * platform/graphics/filters/FEDisplacementMap.h:
959         (FEDisplacementMap): Declare setResultColorSpace.
960         * platform/graphics/filters/FEFlood.cpp:
961         (WebCore::FEFlood::platformApplySoftware): Remove the call that forces
962             the result color space. We do it now in the setResultColorSpace.
963         * platform/graphics/filters/FEFlood.h:
964         (FEFlood): Add setResultColorSPace override that enforces sRGB color space. But not if using
965             CG, which apparently does this this already internally.
966         * platform/graphics/filters/FilterEffect.cpp:
967         (WebCore::FilterEffect::FilterEffect): Rename m_colorSpace to m_operatingColorSpace.
968         (WebCore::FilterEffect::apply): Allow filter effects to
969             override the color space conversion of their inputs.
970         (WebCore::FilterEffect::createImageBufferResult): Always create the
971             image buffer with the result color space.
972         * platform/graphics/filters/FilterEffect.h:
973         (WebCore::FilterEffect::operatingColorSpace): New accessor.
974         (WebCore::FilterEffect::setOperatingColorSpace): New accessor.
975         (WebCore::FilterEffect::resultColorSpace): New accessor.
976         (WebCore::FilterEffect::setResultColorSpace): New accessor.
977         (FilterEffect):
978         (WebCore::FilterEffect::transformResultColorSpace): A new virtual
979             method that allows filter effects individual control over the color
980             space conversion of their inputs.
981         * platform/graphics/filters/SourceGraphic.h:
982         (WebCore::SourceGraphic::SourceGraphic): Variable rename.
983         * rendering/FilterEffectRenderer.cpp:
984         (WebCore::FilterEffectRenderer::build): Use accessors to set color
985             space to enable per-effect overrides.
986         * rendering/svg/RenderSVGResourceFilter.cpp:
987         (WebCore::RenderSVGResourceFilter::buildPrimitives): Use accessors to set color.
988
989 2013-02-26  Mike West  <mkwst@chromium.org>
990
991         X-Frame-Options should accept ALLOWALL as a valid value.
992         https://bugs.webkit.org/show_bug.cgi?id=110857
993
994         Reviewed by Adam Barth.
995
996         DoubleClick, among others, serves ALLOWALL as a 'X-Frame-Options' value
997         with the intent of (shock!) allowing a resource to be framed by all
998         origins. Given its prevelance, and the fact that IE supports the header,
999         we shouldn't call it out as invalid.
1000
1001         This patch tweaks the warning logic to only throw the warning if the
1002         header's value isn't 'ALLOWALL', 'DENY', or 'SAMEORIGIN'.
1003
1004         Test: http/tests/security/XFrameOptions/x-frame-options-allowall.html
1005
1006         * loader/FrameLoader.cpp:
1007         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
1008
1009 2013-02-26  Tony Chang  <tony@chromium.org>
1010
1011         CSS Flexbox: dynamically applied align-items doesn't affect item alignment
1012         https://bugs.webkit.org/show_bug.cgi?id=110341
1013
1014         Reviewed by Ojan Vafai.
1015
1016         If flex items don't change width, we don't lay them out again. This causes problems
1017         when an item goes from stretch to non-stretch since we need to relayout to get the
1018         smaller height. Fix this by marking flex items that were stretch as needing layout.
1019
1020         Test: css3/flexbox/relayout-align-items.html
1021
1022         * rendering/RenderFlexibleBox.cpp:
1023         (WebCore::resolveAlignment): Pull out common code for computing flex item style.
1024         (WebCore::RenderFlexibleBox::styleDidChange): Mark children as needing layout.
1025         (WebCore::RenderFlexibleBox::alignmentForChild): Use resolveAlignment.
1026         * rendering/RenderFlexibleBox.h:
1027
1028 2013-02-26  Anders Carlsson  <andersca@apple.com>
1029
1030         StorageMap can just import an entire map of items at once
1031         https://bugs.webkit.org/show_bug.cgi?id=110904
1032
1033         Reviewed by Beth Dakin.
1034
1035         Instead of iterating over the map inside StorageAreaSync, just pass it directly
1036         (through StorageAreaImpl) to StorageMap and iterate over it there.
1037
1038         * storage/StorageAreaImpl.cpp:
1039         (WebCore::StorageAreaImpl::importItems):
1040         * storage/StorageAreaImpl.h:
1041         (StorageAreaImpl):
1042         * storage/StorageAreaSync.cpp:
1043         (WebCore::StorageAreaSync::performImport):
1044         * storage/StorageMap.cpp:
1045         (WebCore::StorageMap::importItems):
1046         * storage/StorageMap.h:
1047         (StorageMap):
1048
1049 2013-02-26  CHAUDHARY VINEET  <rgf748@motorola.com>
1050
1051         [JSC] static methods with Callback should not have this pointer
1052         https://bugs.webkit.org/show_bug.cgi?id=110846
1053
1054         Reviewed by Kentaro Hara.
1055
1056         Fixing the JSC Codegenerator not to use 'this' pointer in static methods.
1057
1058         No new tests. 
1059
1060         * bindings/scripts/CodeGeneratorJS.pm:
1061         (GenerateParametersCheck):
1062         * bindings/scripts/test/JS/JSTestObj.cpp:
1063         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
1064         (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
1065         * bindings/scripts/test/JS/JSTestObj.h:
1066         * bindings/scripts/test/TestObj.idl:
1067         * bindings/scripts/test/V8/V8TestObj.cpp:
1068         (WebCore::TestObjV8Internal::staticMethodWithCallbackAndOptionalArgMethod):
1069         (TestObjV8Internal):
1070         (WebCore::TestObjV8Internal::staticMethodWithCallbackAndOptionalArgMethodCallback):
1071         (WebCore::TestObjV8Internal::staticMethodWithCallbackArgMethod):
1072         (WebCore::TestObjV8Internal::staticMethodWithCallbackArgMethodCallback):
1073         (WebCore::ConfigureV8TestObjTemplate):
1074
1075 2013-02-20  Alpha Lam  <hclam@chromium.org>
1076
1077         GIFImageReader to read from source data directly
1078         https://bugs.webkit.org/show_bug.cgi?id=109662
1079
1080         Reviewed by Stephen White.
1081
1082         This is the first patch to improve GIF image decoding.
1083
1084         GIFImageReader has an internal 256 bytes buffer to saving incoming
1085         bytes. This mechanism is out-dated because WebKit holds the entire
1086         file in memory and it is not necessary to hold data in an intermediate
1087         buffer.
1088
1089         This is also a blocker for later work to parse and decode GIF
1090         incrementally.
1091
1092         This change removed the imtermediate 'hold' buffer and uses an index
1093         for data position to keep track of parsing of the GIF file. Buffer for
1094         global colormap and local colormap are also removed because they can be
1095         referenced from the data stream.
1096
1097         This change is tested by:
1098
1099         Layout tests
1100         All tests passed under fast/images.
1101
1102         Unit tests
1103         Added GIFImageDecoderTest for Chromium.
1104
1105         Local testing
1106         I tested this implementation against a set of 50k GIF images and
1107         there's no crashes and produces bit-exact results as previous code.
1108
1109         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1110         (WebCore::GIFImageDecoder::setData):
1111         (WebCore::GIFImageDecoder::frameCount):
1112         (WebCore::GIFImageDecoder::haveDecodedRow):
1113         (WebCore::GIFImageDecoder::decode):
1114         * platform/image-decoders/gif/GIFImageReader.cpp:
1115         (GIFImageReader::doLZW):
1116         (GIFImageReader::decode):
1117         (GIFImageReader::decodeInternal):
1118         (GIFImageReader::setRemainingBytes):
1119         * platform/image-decoders/gif/GIFImageReader.h:
1120         (GIFFrameContext):
1121         (GIFFrameContext::GIFFrameContext):
1122         (GIFFrameContext::~GIFFrameContext):
1123         (GIFImageReader::GIFImageReader):
1124         (GIFImageReader::~GIFImageReader):
1125         (GIFImageReader::setData):
1126         (GIFImageReader):
1127         (GIFImageReader::globalColormap):
1128         (GIFImageReader::localColormap):
1129         (GIFImageReader::localColormapSize):
1130         (GIFImageReader::data):
1131         (GIFImageReader::colormap):
1132
1133 2013-02-26  Christian Biesinger  <cbiesinger@chromium.org>
1134
1135         Empty <button>s should collapse; empty <input type="button"> should not collapse
1136         https://bugs.webkit.org/show_bug.cgi?id=110654
1137
1138         Reviewed by Ojan Vafai.
1139
1140         This patch also fixes other height computation issues with flex boxes
1141         related to scroll bars and hasLineIfEmpty()=true. See below for
1142         details.
1143
1144         Tests: css3/flexbox/button.html
1145                css3/flexbox/position-absolute-child-with-contenteditable.html
1146
1147         * rendering/RenderBlock.cpp:
1148         (WebCore::RenderBlock::layoutBlock): Add a FIXME to make
1149         border/padding/scrollbar inclusion more consistent with other
1150         renderers.
1151         * rendering/RenderButton.h:
1152         (WebCore::RenderButton::hasLineIfEmpty): We only want a line for
1153         <input type=button|submit|reset>, for consistency with Firefox.
1154
1155         * rendering/RenderFlexibleBox.cpp:
1156         (WebCore::RenderFlexibleBox::layoutBlock): Start out layoutBlock by
1157         setting the logical height to border + padding + scrollbar height to
1158         ensure that we have space for the scrollbar even without children. The
1159         layoutFlexItems change below is not enough because we also need this
1160         when hasLineIfEmpty() is false.
1161         (WebCore::RenderFlexibleBox::layoutFlexItems): Ensure we have a line
1162         when hasLineIfEmpty() is true by calling setLogicalHeight(border+
1163         padding+scrollbar+lineHeight()) if we don't have a flex line.
1164
1165 2013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
1166
1167         Unreviewed, rolling out r143941.
1168         http://trac.webkit.org/changeset/143941
1169         https://bugs.webkit.org/show_bug.cgi?id=110901
1170
1171         This is a step in the wrong direction as it ties us to what
1172         grid-{row|column} expect (see
1173         https://bugs.webkit.org/show_bug.cgi?id=110777 for the right
1174         direction) (Requested by jchaffraix on #webkit).
1175
1176         * css/CSSComputedStyleDeclaration.cpp:
1177         (WebCore::valueForGridPosition):
1178         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1179         * css/StyleResolver.cpp:
1180         (WebCore::createGridPosition):
1181         (WebCore::StyleResolver::applyProperty):
1182         * rendering/RenderGrid.cpp:
1183         (WebCore::RenderGrid::maximumIndexInDirection):
1184         (WebCore::RenderGrid::placeItemsOnGrid):
1185         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
1186         (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
1187         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
1188         (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
1189         (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
1190         * rendering/RenderGrid.h:
1191         * rendering/style/GridPosition.h:
1192         * rendering/style/RenderStyle.h:
1193         * rendering/style/StyleGridItemData.h:
1194         (StyleGridItemData):
1195
1196 2013-02-26  Jer Noble  <jer.noble@apple.com>
1197
1198         Unreviewed build fix; use correct macro for platform name in FeatureDefines.xcconfig.
1199
1200         * Configurations/FeatureDefines.xcconfig:
1201
1202 2013-02-26  Andrew Lo  <anlo@rim.com>
1203
1204         [BlackBerry] Animated images not animating on accelerated compositing layers
1205         https://bugs.webkit.org/show_bug.cgi?id=110886
1206
1207         Reviewed by Rob Buis.
1208
1209         Internally reviewed by Arvid Nilsson.
1210         Internal PR 299598.
1211
1212         Animated images on AC layers call GraphicsLayer::setContentsToImage
1213         on each frame with the same Image.
1214
1215         We need to set needs display in that case so that the frames are
1216         displayed.
1217
1218         No new tests are needed since there is no new functionality.
1219
1220         * platform/graphics/blackberry/LayerWebKitThread.cpp:
1221         (WebCore::LayerWebKitThread::setContents):
1222
1223 2013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
1224
1225         Unreviewed, rolling out r144065.
1226         http://trac.webkit.org/changeset/144065
1227         https://bugs.webkit.org/show_bug.cgi?id=110896
1228
1229         Causing failures and crashes on Chromium Win7 and Win XP
1230         (Requested by schenney on #webkit).
1231
1232         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
1233         (WebCore::normalizeCharacters):
1234         (WebCore::HarfBuzzShaper::HarfBuzzShaper):
1235         * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
1236         (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
1237
1238 2013-02-26  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1239
1240         [TexMap] Ignore layer repaint request when drawsContent is false
1241         https://bugs.webkit.org/show_bug.cgi?id=110888
1242
1243         Reviewed by Noam Rosenthal.
1244
1245         As long as drawsContent is false we should ignore requests for repaints.
1246         A full repaint will be requested when drawsContent is changed to true.
1247
1248         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1249         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
1250         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
1251         (WebCore::GraphicsLayerTextureMapper::setDrawsContent):
1252
1253 2013-02-26  Joshua Bell  <jsbell@chromium.org>
1254
1255         IndexedDB: IDBObjectStore.index() doesn't report errors after deleteIndex()
1256         https://bugs.webkit.org/show_bug.cgi?id=110792
1257
1258         Reviewed by Tony Chang.
1259
1260         The object store's metadata wasn't updated if the index hadn't been accessed
1261         by script and hence placed in the name->object map. Make sure the metadata
1262         is always updated.
1263
1264         Test: storage/indexeddb/deleteIndex-bug110792.html
1265
1266         * Modules/indexeddb/IDBObjectStore.cpp:
1267         (WebCore::IDBObjectStore::deleteIndex): Always update the object store's metadata.
1268
1269 2013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
1270
1271         Unreviewed, rolling out r144019.
1272         http://trac.webkit.org/changeset/144019
1273         https://bugs.webkit.org/show_bug.cgi?id=110892
1274
1275         due to 8% perf regression on chromium-win7 intl1 page cycler,
1276         see https://bugs.webkit.org/show_bug.cgi?id=110872 (Requested
1277         by gasubic on #webkit).
1278
1279         * platform/text/LineBreakIteratorPoolICU.h:
1280         (WebCore::LineBreakIteratorPool::take):
1281         (WebCore::LineBreakIteratorPool::put):
1282         (LineBreakIteratorPool):
1283         * platform/text/TextBreakIterator.h:
1284         (WebCore):
1285         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
1286         (WebCore::LazyLineBreakIterator::get):
1287         (WebCore::LazyLineBreakIterator::reset):
1288         (LazyLineBreakIterator):
1289         * platform/text/TextBreakIteratorICU.cpp:
1290         (WebCore::acquireLineBreakIterator):
1291         (WebCore::releaseLineBreakIterator):
1292         * rendering/RenderBlockLineLayout.cpp:
1293         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
1294         * rendering/RenderText.cpp:
1295         (WebCore::RenderText::computePreferredLogicalWidths):
1296         * rendering/RenderText.h:
1297         (WebCore):
1298         * rendering/break_lines.cpp:
1299         (WebCore):
1300         (WebCore::isBreakableSpace):
1301         (WebCore::needsLineBreakIterator):
1302         (WebCore::nextBreakablePosition):
1303         (WebCore::nextBreakablePositionIgnoringNBSP):
1304         * rendering/break_lines.h:
1305         (WebCore):
1306         (WebCore::isBreakable):
1307
1308 2013-02-26  Dana Jansens  <danakj@chromium.org>
1309
1310         Create the SharedGraphicsContext3D through its own method.
1311         https://bugs.webkit.org/show_bug.cgi?id=109345
1312
1313         Reviewed by James Robinson.
1314
1315         Allow creating a GraphicsContext3DPrivate from an externally owned
1316         WebGraphicsContext3D and GrContext. Then create the shared graphics
1317         context from these provided by the embedder.
1318
1319         This falls back to the old path if the new methods return NULL to
1320         let us land this immediately and then transition the chromium side
1321         over to this path.
1322
1323         * platform/chromium/support/GraphicsContext3DPrivate.cpp:
1324         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1325         (WebCore):
1326         (WebCore::GraphicsContext3DPrivate::createGraphicsContextFromExternalWebContextAndGrContext):
1327         (WebCore::GraphicsContext3DPrivate::grContext):
1328         * platform/chromium/support/GraphicsContext3DPrivate.h:
1329         (GraphicsContext3DPrivate):
1330         (WebCore::GraphicsContext3DPrivate::webContext):
1331         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
1332         (WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
1333
1334 2013-02-26  Antti Koivisto  <antti@apple.com>
1335
1336         REGRESSION(r143986): fast/files/revoke-blob-url.html asserts
1337         https://bugs.webkit.org/show_bug.cgi?id=110885
1338         
1339         Reviewed by Alexey Proskuryakov.
1340
1341         The ResourceRequest string constructor assumes that the string is a valid URL. Use KURL constructor instead.
1342
1343         * html/DOMURL.cpp:
1344         (WebCore::DOMURL::revokeObjectURL):
1345
1346 2013-02-26  Dean Jackson  <dino@apple.com>
1347
1348         Draw intermediate snapshots if possible
1349         https://bugs.webkit.org/show_bug.cgi?id=110811
1350
1351         Reviewed by Simon Fraser.
1352
1353         After http://webkit.org/b/110495 we delayed snapshotting until we've
1354         received a nice image, but this made the page look like it is broken.
1355         We should draw any intermediate snapshots that we find, which might
1356         include content such as progress bars/spinners.
1357
1358         * html/HTMLPlugInElement.h:
1359         (WebCore::HTMLPlugInElement::isPlugInImageElement): Expose virtual method
1360         to indicate if this is a HTMLPlugInImageElement or not.
1361         * html/HTMLPlugInImageElement.cpp:
1362         (WebCore::HTMLPlugInImageElement::updateSnapshot): If we have
1363         a RenderEmbeddedObject renderer, then tell it to repaint.
1364         * html/HTMLPlugInImageElement.h:
1365         (WebCore::HTMLPlugInImageElement::snapshotImage): Expose an
1366         accessor for snapshot images.
1367         * rendering/RenderEmbeddedObject.cpp:
1368         (WebCore::RenderEmbeddedObject::paintSnapshotImage): New helper
1369         method to render an image directly. This code is similar to
1370         that in RenderSnapshottedPlugIn.
1371         (WebCore::RenderEmbeddedObject::paintContents): The virtual implementation
1372         of this method for use when we have a snapshot to paint. If we are a plugin that is
1373         in the process of being snapshotted, ask our HTMLPlugInImageElement for a
1374         snapshot and paint that instead. In the case where we are not snapshotting,
1375         or we do not yet have a snapshot, this will call back into the RenderWidget code.
1376         * rendering/RenderEmbeddedObject.h:
1377         (RenderEmbeddedObject): New methods paintSnapshotImage and paintContents
1378         * rendering/RenderWidget.cpp:
1379         (WebCore::RenderWidget::paintContents): New method called in the middle
1380         of paint() that can be overridden by RenderEmbeddedObject. The code here was
1381         simply moved out of the previous paint().
1382         (WebCore::RenderWidget::paint): Call paintContents at the appropriate time.
1383         * rendering/RenderWidget.h:
1384         (RenderWidget): New virtual method paintContents.
1385
1386 2013-02-26  Levi Weintraub  <leviw@chromium.org>
1387
1388         Add support for 8 bit TextRuns for Chromium/HarfBuzz
1389         https://bugs.webkit.org/show_bug.cgi?id=99393
1390
1391         Reviewed by Eric Seidel.
1392
1393         Adding support for 8 bit TextRuns for platforms using HarfBuzz. To accomplish this,
1394         8 bit text runs are upconverted to 16 bit in the complex text path during string
1395         normalization, as HarfBuzz operates on UChars.
1396
1397         No new tests. No change in behavior.
1398
1399         (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
1400         * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
1401         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
1402         (WebCore::normalizeCharacters):
1403         (WebCore::HarfBuzzShaper::HarfBuzzShaper):
1404
1405 2013-02-26  Dmitry Zvorygin  <zvorygin@chromium.org>
1406
1407         Merged Tip and Debug log levels for web console.
1408         https://bugs.webkit.org/show_bug.cgi?id=109919
1409
1410         Reviewed by Pavel Feldman.
1411
1412         In every component either TIP or DEBUG level was used for reporting,
1413         but not both. This patch is prerequisite for Web Inspector console log filtering.
1414
1415         * css/MediaList.cpp:
1416         (WebCore::addResolutionWarningMessageToConsole):
1417         * inspector/ConsoleMessage.cpp:
1418         (WebCore::messageLevelValue):
1419         * loader/appcache/ApplicationCacheGroup.cpp:
1420         (WebCore::ApplicationCacheGroup::abort):
1421         * page/Console.cpp:
1422         (WebCore::printMessageSourceAndLevelPrefix):
1423         * page/ConsoleTypes.h:
1424         * xml/XSLTProcessorLibxslt.cpp:
1425         (WebCore::XSLTProcessor::parseErrorFunc):
1426         * xml/XSLTProcessorQt.cpp:
1427         (WebCore::XSLTMessageHandler::handleMessage):
1428
1429 2013-02-26  Alberto Garcia  <agarcia@igalia.com>
1430
1431         [BlackBerry] Upstream the datalist support UI
1432         https://bugs.webkit.org/show_bug.cgi?id=110736
1433
1434         Reviewed by Rob Buis.
1435
1436         Original code by Otto Derek Cheung <otcheung@rim.com>
1437
1438         * css/themeBlackBerry.css:
1439         (input::-webkit-suggestion-dropdown-box):
1440         (input::-webkit-suggestion-dropdown-box-item):
1441         (input::-webkit-suggestion-prefix-text):
1442         (input::-webkit-suggestion-dropdown-box-item-last):
1443         * platform/blackberry/RenderThemeBlackBerry.cpp:
1444         (WebCore::RenderThemeBlackBerry::supportsDataListUI):
1445         (WebCore):
1446         * platform/blackberry/RenderThemeBlackBerry.h:
1447         (RenderThemeBlackBerry):
1448
1449 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
1450
1451         Web Inspector: plumb trace events to Timeline agent
1452         https://bugs.webkit.org/show_bug.cgi?id=105796
1453
1454         Reviewed by Pavel Feldman.
1455
1456         - plumb trace events to Timeline;
1457         - add TimelineTraceEventProcessor to process selected trace events;
1458         - emit timeline events from TimelineTraceEventProcessor.
1459
1460         Note that actual event processing logic is a separate change.
1461
1462         * CMakeLists.txt: Added TimelineTraceEventProcessor.{h,cpp}.
1463         * GNUmakefile.list.am:  Ditto.
1464         * Target.pri: Ditto.
1465         * WebCore.gypi: Ditto.
1466         * WebCore.vcproj/WebCore.vcproj: Ditto.
1467         * WebCore.xcodeproj/project.pbxproj: Ditto.
1468         * inspector/InspectorAllInOne.cpp: Ditto.
1469         * inspector/InspectorClient.h:
1470         (InspectorClient):
1471         (WebCore::InspectorClient::setTraceEventCallback):
1472         * inspector/InspectorTimelineAgent.cpp: create/destroy trace event processor on start/stop.
1473         (WebCore::InspectorTimelineAgent::start): 
1474         (WebCore::InspectorTimelineAgent::stop):
1475         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1476         (WebCore::InspectorTimelineAgent::page):
1477         (WebCore):
1478         * inspector/InspectorTimelineAgent.h:
1479         (WebCore):
1480         (InspectorTimelineAgent):
1481         * inspector/TimelineTraceEventProcessor.cpp: Added.
1482         (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
1483         (WebCore):
1484         (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
1485         (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
1486         (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
1487         (WebCore::TimelineTraceEventProcessor::processEvent):
1488         (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
1489         (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
1490         * inspector/TimelineTraceEventProcessor.h: Added.
1491         (WebCore):
1492         (TimelineTraceEventProcessor):
1493         (TraceEvent):
1494         (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
1495         (WebCore::TimelineTraceEventProcessor::TraceEvent::timestamp):
1496         (WebCore::TimelineTraceEventProcessor::TraceEvent::phase):
1497         (WebCore::TimelineTraceEventProcessor::TraceEvent::name):
1498         (WebCore::TimelineTraceEventProcessor::TraceEvent::threadIdentifier):
1499         (WebCore::TimelineTraceEventProcessor::TraceEvent::argumentCount):
1500         (WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
1501         (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
1502         (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
1503         (WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
1504         (WebCore::TimelineTraceEventProcessor::TraceEvent::asString):
1505         (WebCore::TimelineTraceEventProcessor::EventTypeEntry::EventTypeEntry):
1506         (EventTypeEntry):
1507
1508 2013-02-18  Eugene Klyuchnikov  <eustas@chromium.org>
1509
1510         Web Inspector: Web Inspector: Specify return type of WebInspector.UIString
1511         https://bugs.webkit.org/show_bug.cgi?id=110095
1512
1513         Reviewed by Pavel Feldman.
1514
1515         Specify return type of WebInspector.UIString.
1516         Fix new js-compiler warnings.
1517
1518         This change will increase type coverage by 0.4% (to 81%)
1519
1520         * inspector/front-end/ObjectPropertiesSection.js: Fix type errors.
1521         * inspector/front-end/UIString.js:
1522         (WebInspector.UIString): Return type specified.
1523
1524 2013-02-26  Eugene Klyuchnikov  <eustas@chromium.org>
1525
1526         Web Inspector: [Resources] Cookies table looks empty.
1527         https://bugs.webkit.org/show_bug.cgi?id=110870
1528
1529         Reviewed by Pavel Feldman.
1530
1531         Fixed data-grid selector.
1532
1533         * inspector/front-end/resourcesPanel.css:
1534         (.storage-view .data-grid): Fixed selector.
1535
1536 2013-02-26  Vsevolod Vlasov  <vsevik@chromium.org>
1537
1538         Web Inspector: Migrate FileSystem inspection support to ResourceTreeModel's SecurityOriginAdded/Removed events.
1539         https://bugs.webkit.org/show_bug.cgi?id=110878
1540
1541         Reviewed by Alexander Pavlov.
1542
1543         Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
1544         FileSystemModel. This patch migrates FileSystem inspection support to new events.
1545
1546         * inspector/front-end/FileSystemModel.js:
1547         (WebInspector.FileSystemModel):
1548         (WebInspector.FileSystemModel.prototype._reset):
1549         (WebInspector.FileSystemModel.prototype._securityOriginAdded):
1550         (WebInspector.FileSystemModel.prototype._securityOriginRemoved):
1551         (WebInspector.FileSystemModel.prototype._addOrigin):
1552         (WebInspector.FileSystemModel.prototype._removeOrigin):
1553         (WebInspector.FileSystemModel.prototype.refreshFileSystemList):
1554
1555 2013-02-26  Antoine Quint  <graouts@apple.com>
1556
1557         Web Inspector: Cannot deep expand an element that has previously been partially expanded
1558         https://bugs.webkit.org/show_bug.cgi?id=110424
1559
1560         In the case where the children from the provided node have already been pushed, traverse
1561         children at the depth provided until we find children that have not been pushed yet.
1562
1563         Reviewed by Pavel Feldman.
1564
1565         * inspector/InspectorDOMAgent.cpp:
1566         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
1567
1568 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
1569
1570         Unreviewed, rolling out r144041, r144044, and r144048.
1571         http://trac.webkit.org/changeset/144041
1572         http://trac.webkit.org/changeset/144044
1573         http://trac.webkit.org/changeset/144048
1574         https://bugs.webkit.org/show_bug.cgi?id=105796
1575
1576         Broke build
1577
1578         * CMakeLists.txt:
1579         * GNUmakefile.list.am:
1580         * Target.pri:
1581         * WebCore.gypi:
1582         * WebCore.vcproj/WebCore.vcproj:
1583         * WebCore.xcodeproj/project.pbxproj:
1584         * inspector/InspectorAllInOne.cpp:
1585         * inspector/InspectorClient.h:
1586         * inspector/InspectorInstrumentation.cpp:
1587         (WebCore):
1588         (WebCore::InspectorInstrumentation::willPaintImpl):
1589         * inspector/InspectorInstrumentation.h:
1590         * inspector/InspectorTimelineAgent.cpp:
1591         (TimelineRecordType):
1592         (WebCore::InspectorTimelineAgent::start):
1593         (WebCore::InspectorTimelineAgent::stop):
1594         (WebCore::InspectorTimelineAgent::didBeginFrame):
1595         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1596         * inspector/InspectorTimelineAgent.h:
1597         (WebCore):
1598         (InspectorTimelineAgent):
1599         * inspector/TimelineRecordFactory.cpp:
1600         * inspector/TimelineRecordFactory.h:
1601         * inspector/TimelineTraceEventProcessor.cpp: Removed.
1602         * inspector/TimelineTraceEventProcessor.h: Removed.
1603         * inspector/front-end/TimelineModel.js:
1604         * inspector/front-end/TimelinePresentationModel.js:
1605         (WebInspector.TimelinePresentationModel._initRecordStyles):
1606
1607 2013-02-26  Vsevolod Vlasov  <vsevik@chromium.org>
1608
1609         Web Inspector: Migrate IndexedDB support to ResourceTreeModel's SecurityOriginAdded/Removed events.
1610         https://bugs.webkit.org/show_bug.cgi?id=110863
1611
1612         Reviewed by Alexander Pavlov.
1613
1614         Recently added SecurityOriginAdded/Removed events support was essentially duplicated in
1615         IndexedDBModel. This patch migrates IndexedDB support to new events.
1616
1617         * inspector/Inspector.json:
1618         * inspector/InspectorIndexedDBAgent.cpp:
1619         (WebCore):
1620         (WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
1621         (WebCore::InspectorIndexedDBAgent::requestDatabase):
1622         (WebCore::InspectorIndexedDBAgent::requestData):
1623         * inspector/InspectorIndexedDBAgent.h:
1624         (InspectorIndexedDBAgent):
1625         * inspector/front-end/IndexedDBModel.js:
1626         (WebInspector.IndexedDBModel):
1627         (WebInspector.IndexedDBModel.prototype._reset):
1628         (WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
1629         (WebInspector.IndexedDBModel.prototype._securityOriginAdded):
1630         (WebInspector.IndexedDBModel.prototype._securityOriginRemoved):
1631         (WebInspector.IndexedDBModel.prototype._addOrigin):
1632         (WebInspector.IndexedDBModel.prototype._removeOrigin):
1633         (WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
1634         (WebInspector.IndexedDBModel.prototype._loadDatabaseNames):
1635         (WebInspector.IndexedDBModel.prototype._loadDatabase):
1636         (WebInspector.IndexedDBModel.prototype.):
1637         (WebInspector.IndexedDBModel.prototype._requestData):
1638         * inspector/front-end/ResourceTreeModel.js:
1639         (WebInspector.ResourceTreeModel.prototype.securityOrigins):
1640
1641 2013-02-26  Alexander Pavlov  <apavlov@chromium.org>
1642
1643         Web Inspector: in protocol make field "securityOrigin" in type Page.Frame mandatory
1644         https://bugs.webkit.org/show_bug.cgi?id=80857
1645
1646         Reviewed by Vsevolod Vlasov.
1647
1648         Frame.securityOrigin has always been set to a valid value, so this change just fixes
1649         the protocol flaw.
1650
1651         * inspector/Inspector.json:
1652         * inspector/InspectorPageAgent.cpp:
1653         (WebCore::InspectorPageAgent::buildObjectForFrame):
1654         * inspector/front-end/ResourceTreeModel.js:
1655         (WebInspector.ResourceTreeFrame):
1656         (WebInspector.ResourceTreeFrame.prototype._navigate):
1657
1658 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
1659
1660         Unreviewed build fix following r144041.
1661
1662         * inspector/TimelineTraceEventProcessor.h:
1663         (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
1664
1665 2013-02-26  Vivek Galatage  <vivek.vg@samsung.com>
1666
1667         Web Inspector: DataGrid should reveal and select next/previous DataGridNode upon deletion of selected node
1668         https://bugs.webkit.org/show_bug.cgi?id=110862
1669
1670         Reviewed by Alexander Pavlov.
1671
1672         While deleting entries in the DataGrid, deleting of selected node should trigger selection of
1673         next possible (backward/forward) DataGridNode.
1674
1675         * inspector/front-end/DataGrid.js:
1676         (WebInspector.DataGrid.prototype._keyDown):
1677         (WebInspector.DataGridNode.prototype.get leftPadding):
1678         (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
1679
1680 2013-02-26  Andrey Kosyakov  <caseq@chromium.org>
1681
1682         Web Inspector: show raster tasks on Timeline
1683         https://bugs.webkit.org/show_bug.cgi?id=105851
1684
1685         - add PaintLayer, Paint & RasterTask trace events handling to trace event processor;
1686         - upon begin frame, emit aggregated background event for all raster tasks related to the inspected page.
1687
1688         Reviewed by Pavel Feldman.
1689
1690         * inspector/InspectorInstrumentation.cpp:
1691         (WebCore):
1692         (WebCore::InspectorInstrumentation::willPaintImpl):
1693         (InstrumentationEvents):
1694         (InstrumentationEventArguments):
1695         * inspector/InspectorInstrumentation.h:
1696         (InstrumentationEvents):
1697         (WebCore):
1698         (InstrumentationEventArguments):
1699         * inspector/InspectorTimelineAgent.cpp:
1700         (TimelineRecordType):
1701         (WebCore::InspectorTimelineAgent::stop):
1702         (WebCore::InspectorTimelineAgent::didBeginFrame):
1703         * inspector/InspectorTimelineAgent.h:
1704         (TimelineRecordType):
1705         (WebCore):
1706         * inspector/TimelineRecordFactory.cpp:
1707         (WebCore::TimelineRecordFactory::createRasterData):
1708         (WebCore):
1709         * inspector/TimelineRecordFactory.h:
1710         (TimelineRecordFactory):
1711         * inspector/TimelineTraceEventProcessor.cpp:
1712         (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
1713         (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
1714         (WebCore):
1715         (WebCore::TimelineTraceEventProcessor::registerHandler):
1716         (WebCore::TimelineTraceEventProcessor::shutdown):
1717         (WebCore::TimelineTraceEventProcessor::TraceEvent::findParameter):
1718         (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
1719         (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
1720         (WebCore::TimelineTraceEventProcessor::onBeginFrame):
1721         (WebCore::TimelineTraceEventProcessor::onPaintLayerBegin):
1722         (WebCore::TimelineTraceEventProcessor::onPaintLayerEnd):
1723         (WebCore::TimelineTraceEventProcessor::onRasterTaskBegin):
1724         (WebCore::TimelineTraceEventProcessor::onRasterTaskEnd):
1725         (WebCore::TimelineTraceEventProcessor::onLayerDeleted):
1726         (WebCore::TimelineTraceEventProcessor::onPaint):
1727         (WebCore::TimelineTraceEventProcessor::flushRasterizerStatistics):
1728         (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
1729         (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
1730         * inspector/TimelineTraceEventProcessor.h:
1731         (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
1732         (WebCore::TimelineTraceEventProcessor::TraceEvent::id):
1733         (WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
1734         (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
1735         (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
1736         (WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
1737         (TimelineTraceEventProcessor):
1738         * inspector/front-end/TimelineModel.js:
1739         * inspector/front-end/TimelinePresentationModel.js:
1740         (WebInspector.TimelinePresentationModel._initRecordStyles):
1741
1742 2013-02-26  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
1743
1744         Work around a MSVC 2012 Update 1 bug causing a crash on x86
1745         https://bugs.webkit.org/show_bug.cgi?id=110488
1746
1747         Reviewed by Anders Carlsson.
1748
1749         The crash happens when building with /O2, where TextEncodingNameHash::equal is
1750         incorrectly optimized with the inlined toASCIILower and uses a register already in use.
1751         The function returns false incorrectly, causing a mismatch of text encoding name which
1752         then results in a null pointer access.
1753
1754         Slightly rewording the use of the inline function lets the compiler produce correct code.
1755
1756         The bug has already been reported and should be fixed in the next release of MSVS later this year.
1757         https://connect.microsoft.com/VisualStudio/feedback/details/777533/vs2012-c-optimizing-bug-when-using-inline-and-char-return-type-x86-target-only
1758
1759         * platform/text/TextEncodingRegistry.cpp:
1760
1761 2013-02-01  Andrey Kosyakov  <caseq@chromium.org>
1762
1763         Web Inspector: plumb trace events to Timeline agent
1764         https://bugs.webkit.org/show_bug.cgi?id=105796
1765
1766         Reviewed by Pavel Feldman.
1767
1768         - plumb trace events to Timeline;
1769         - add TimelineTraceEventProcessor to process selected trace events;
1770         - emit timeline events from TimelineTraceEventProcessor.
1771
1772         Note that actual event processing logic is a separate change.
1773
1774         * CMakeLists.txt:
1775         * GNUmakefile.list.am:
1776         * Target.pri:
1777         * WebCore.gypi:
1778         * WebCore.vcproj/WebCore.vcproj:
1779         * WebCore.xcodeproj/project.pbxproj:
1780         * inspector/Inspector.json:
1781         * inspector/InspectorAllInOne.cpp:
1782         * inspector/InspectorClient.h:
1783         (InspectorClient):
1784         (WebCore::InspectorClient::setTraceEventCallback):
1785         * inspector/InspectorTimelineAgent.cpp:
1786         (WebCore::InspectorTimelineAgent::start):
1787         (WebCore::InspectorTimelineAgent::stop):
1788         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1789         (WebCore::InspectorTimelineAgent::appendBackgroundThreadRecord):
1790         (WebCore):
1791         (WebCore::InspectorTimelineAgent::page):
1792         * inspector/InspectorTimelineAgent.h:
1793         (WebCore):
1794         (InspectorTimelineAgent):
1795         * inspector/TimelineTraceEventProcessor.cpp: Added.
1796         (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
1797         (WebCore):
1798         (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
1799         (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
1800         (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
1801         (WebCore::TimelineTraceEventProcessor::processEvent):
1802         (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
1803         (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
1804         * inspector/TimelineTraceEventProcessor.h: Added.
1805         (WebCore):
1806         (TimelineTraceEventProcessor):
1807         (TraceEvent):
1808         (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
1809         (WebCore::TimelineTraceEventProcessor::TraceEvent::timestamp):
1810         (WebCore::TimelineTraceEventProcessor::TraceEvent::phase):
1811         (WebCore::TimelineTraceEventProcessor::TraceEvent::name):
1812         (WebCore::TimelineTraceEventProcessor::TraceEvent::threadIdentifier):
1813         (WebCore::TimelineTraceEventProcessor::TraceEvent::argumentCount):
1814         (WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
1815         (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
1816         (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
1817         (WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
1818         (WebCore::TimelineTraceEventProcessor::TraceEvent::asString):
1819         (WebCore::TimelineTraceEventProcessor::EventTypeEntry::EventTypeEntry):
1820         (EventTypeEntry):
1821         * inspector/front-end/TimelineFrameController.js:
1822         (WebInspector.TimelineFrameController.prototype._addRecord):
1823         * inspector/front-end/TimelinePanel.js:
1824         (WebInspector.TimelineRecordListRow.prototype.update):
1825         (WebInspector.TimelineRecordGraphRow.prototype.update):
1826         * inspector/front-end/TimelinePresentationModel.js:
1827         (WebInspector.TimelinePresentationModel.Record):
1828         (WebInspector.TimelinePresentationModel.insertRetrospecitveRecord):
1829         (WebInspector.TimelinePresentationModel.Record.prototype.get isBackground):
1830         * inspector/front-end/timelinePanel.css:
1831         (.timeline-tree-item.background .timeline-tree-icon):
1832         (.timeline-graph-side.background .timeline-graph-bar):
1833
1834 2013-02-01  Andrey Kosyakov  <caseq@chromium.org>
1835
1836         Web Inspector: display background events on Timeline
1837         https://bugs.webkit.org/show_bug.cgi?id=108599
1838
1839         Reviewed by Pavel Feldman.
1840
1841         - add optional `thread' field to timeline event;
1842         - if thread field is present, display the event as 'background' (hollow bar / list icon), align to nearest foreground event;
1843         - do not account background events in Frame mode of overview.
1844
1845         * inspector/Inspector.json:
1846         * inspector/InspectorTimelineAgent.cpp:
1847         (WebCore::InspectorTimelineAgent::appendBackgroundThreadRecord):
1848         (WebCore):
1849         * inspector/InspectorTimelineAgent.h:
1850         (InspectorTimelineAgent):
1851         * inspector/front-end/TimelineFrameController.js:
1852         (WebInspector.TimelineFrameController.prototype._addRecord):
1853         * inspector/front-end/TimelinePanel.js:
1854         (WebInspector.TimelineRecordListRow.prototype.update):
1855         (WebInspector.TimelineRecordGraphRow.prototype.update):
1856         * inspector/front-end/TimelinePresentationModel.js:
1857         (WebInspector.TimelinePresentationModel.Record):
1858         (WebInspector.TimelinePresentationModel.insertRetrospecitveRecord):
1859         (WebInspector.TimelinePresentationModel.Record.prototype.get isBackground):
1860         * inspector/front-end/timelinePanel.css:
1861         (.timeline-tree-item.background .timeline-tree-icon):
1862         (.timeline-graph-side.background .timeline-graph-bar):
1863
1864 2013-02-26  Kentaro Hara  <haraken@chromium.org>
1865
1866         [V8] Rename BatchedCallback to BatchedMethod
1867         https://bugs.webkit.org/show_bug.cgi?id=110791
1868
1869         Reviewed by Adam Barth.
1870
1871         Now 'Callback' is used to refer to functions that are called back
1872         by V8. DOM methods should be referred to as 'Method's.
1873
1874         No tests. No change in behavior.
1875
1876         * bindings/scripts/CodeGeneratorV8.pm:
1877         (GenerateImplementation):
1878         * bindings/scripts/test/V8/V8Float64Array.cpp:
1879         (WebCore):
1880         (WebCore::ConfigureV8Float64ArrayTemplate):
1881         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1882         (WebCore):
1883         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
1884         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1885         (WebCore):
1886         (WebCore::ConfigureV8TestEventTargetTemplate):
1887         * bindings/scripts/test/V8/V8TestInterface.cpp:
1888         (WebCore):
1889         (WebCore::ConfigureV8TestInterfaceTemplate):
1890         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1891         (WebCore):
1892         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
1893         * bindings/scripts/test/V8/V8TestObj.cpp:
1894         (WebCore):
1895         (WebCore::ConfigureV8TestObjTemplate):
1896         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1897         (WebCore):
1898         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
1899         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
1900         (WebCore):
1901         (WebCore::ConfigureV8TestTypedefsTemplate):
1902         * bindings/v8/V8DOMConfiguration.cpp:
1903         (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
1904         (WebCore::V8DOMConfiguration::configureTemplate):
1905         * bindings/v8/V8DOMConfiguration.h:
1906         (V8DOMConfiguration):
1907
1908 2013-02-26  Takashi Toyoshima  <toyoshim@chromium.org>
1909
1910         Add User-Agent header in opening handshake headers.
1911         https://bugs.webkit.org/show_bug.cgi?id=110601
1912
1913         Reviewed by Alexey Proskuryakov.
1914
1915         RFC-6455 doesn't require to send User-Agent header, but allow it.
1916         Many web application developers want to have it, and Firefox already
1917         did it. This patch adds User-Agent header in opening handshake also in
1918         WebKit ports.
1919
1920         Test: http/tests/websocket/tests/hybi/useragent-in-openinghandshake.html
1921
1922         * Modules/websockets/WebSocketHandshake.cpp:
1923         (WebCore::WebSocketHandshake::clientHandshakeMessage):
1924         (WebCore::WebSocketHandshake::clientHandshakeRequest):
1925
1926 2013-02-26  Mike West  <mkwst@chromium.org>
1927
1928         XSSAuditor: Don't rely on implicit casting when copying the document's KURL to String.
1929         https://bugs.webkit.org/show_bug.cgi?id=110859
1930
1931         Reviewed by Jochen Eisinger.
1932
1933         XSSAuditor::init should explicitly make a thread-safe copy of the
1934         document's URL as a String rather than relying on implicit casting from
1935         a copy of the KURL.
1936
1937         This shouldn't change any visible behavior; all existing XSSAuditor
1938         tests should continue to pass. They'll now just be a bit more smug while
1939         doing so.
1940
1941         * html/parser/XSSAuditor.cpp:
1942         (WebCore::XSSAuditor::init):
1943
1944 2013-02-26  Takashi Sakamoto  <tasak@google.com>
1945
1946         Shadow DOM styles appear to be over-eagerly shared
1947         https://bugs.webkit.org/show_bug.cgi?id=110797
1948
1949         Reviewed by Dimitri Glazkov.
1950
1951         A style of a distributed node should not be shared, because the node
1952         might be affected by styles in a shadow dom tree, i.e. :distributed
1953         or something.
1954
1955         Test: fast/dom/shadow/no-style-sharing-with-distributed-nodes.html
1956
1957         * css/StyleResolver.cpp:
1958         (WebCore::StyleResolver::locateCousinList):
1959         Skip shadow hosts, because children of shadow hosts are distributed
1960         nodes and cannot share their styles.
1961
1962 2013-02-26  Adam Klein  <adamk@chromium.org>
1963
1964         Remove unused conditional includes of {MathML,SVG}Names.h
1965         https://bugs.webkit.org/show_bug.cgi?id=110809
1966
1967         Reviewed by Eric Seidel.
1968
1969         * html/parser/HTMLConstructionSite.cpp:
1970
1971 2013-02-26  Eric Seidel  <eric@webkit.org>
1972
1973         Threaded HTML parser fails fast/loader/stateobjects/state-attribute-history-getter.html
1974         https://bugs.webkit.org/show_bug.cgi?id=110801
1975
1976         Reviewed by Adam Barth.
1977
1978         This causes 6 more tests to pass for the threaded parser,
1979         an solves all of our timeout issues.
1980
1981         These tests which were failing were racy, we just were never
1982         hitting the race due to using file urls.  This change fixes
1983         the threaded parser to emulate one more of the EOF quirks from
1984         the loader/main-thread-parser interaction.
1985
1986         * html/parser/HTMLDocumentParser.cpp:
1987         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
1988
1989 2013-02-26  Alexander Pavlov  <apavlov@chromium.org>
1990
1991         Web Inspector: CSSAgent.setStyleSheetText crashes on inline styles
1992         https://bugs.webkit.org/show_bug.cgi?id=110359
1993
1994         Reviewed by Pavel Feldman.
1995
1996         * inspector/InspectorCSSAgent.cpp:
1997         (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::undo): Pass ExceptionCode into setText().
1998         (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::redo): Ditto.
1999         * inspector/InspectorStyleSheet.cpp:
2000         (WebCore::InspectorStyleSheet::setText): Make use of checkPageStyleSheet().
2001         (WebCore::InspectorStyleSheet::setRuleSelector): Ditto.
2002         (WebCore::InspectorStyleSheet::addRule): Ditto.
2003         (WebCore::InspectorStyleSheet::deleteRule): Ditto.
2004         (WebCore::InspectorStyleSheet::checkPageStyleSheet):
2005           Return NOT_SUPPORTED_ERR if no m_pageStyleSheet.
2006         (WebCore::InspectorStyleSheet::setStyleText): Check field directly.
2007         * inspector/InspectorStyleSheet.h:
2008
2009 2013-02-26  Tien-Ren Chen  <trchen@chromium.org>
2010
2011         Implement coordinated scrollbar for subframes and overflow:scroll
2012         https://bugs.webkit.org/show_bug.cgi?id=109560
2013
2014         Reviewed by James Robinson.
2015
2016         This patch obsoletes ScrollingCoordinatorPrivate for the Chromium
2017         implementation. Also removes the concept of a single main scrolling
2018         layer. Should use HashMap to keep track resources for multiple
2019         scrollable objects.
2020
2021         Many of the callbacks are extended to support ScrollableArea instead
2022         of just FrameView. Now ScrollingCoordinatorChromium coordinates
2023         scrollbars for both subframes and overflow:scroll.
2024
2025         Some drive-by change:
2026         1. Remove the GraphicsLayer parameter for layer change callbacks.
2027            Should be able to get the latest layer from the ScrollableArea anyway.
2028         2. Should start from main frame document when updating touch event target rects.
2029
2030         New chromium test: ScrollingCoordinatorChromiumTest.iframeScrolling
2031
2032         * page/Frame.cpp:
2033         (WebCore::Frame::willDetachPage):
2034         * page/FrameView.cpp:
2035         (WebCore::FrameView::prepareForDetach):
2036         (WebCore::FrameView::layerForScrolling):
2037         (WebCore):
2038         * page/FrameView.h:
2039         (FrameView):
2040         * page/scrolling/ScrollingCoordinator.cpp:
2041         (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea):
2042         (WebCore):
2043         (WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
2044         (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea):
2045         * page/scrolling/ScrollingCoordinator.h:
2046         (WebCore::ScrollingCoordinator::willDestroyScrollableArea):
2047         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
2048         (WebCore::ScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
2049         (ScrollingCoordinator):
2050         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2051         (WebCore::scrollingWebLayerForGraphicsLayer):
2052         (WebCore::ScrollingCoordinatorChromium::scrollingWebLayerForScrollableArea):
2053         (WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
2054         (WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
2055         (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
2056         (WebCore::ScrollingCoordinatorChromium::touchEventTargetRectsDidChange):
2057         (WebCore::createScrollbarLayer):
2058         (WebCore::detachScrollbarLayer):
2059         (WebCore::setupScrollbarLayer):
2060         (WebCore::ScrollingCoordinatorChromium::willDestroyScrollableArea):
2061         (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollbarLayerDidChange):
2062         (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
2063         (WebCore::ScrollingCoordinatorChromium::setTouchEventTargetRects):
2064         (WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
2065         (WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
2066         (WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
2067         (WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
2068         (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
2069         (WebCore::ScrollingCoordinatorChromium::addWebScrollbarLayer):
2070         (WebCore):
2071         (WebCore::ScrollingCoordinatorChromium::getWebScrollbarLayer):
2072         (WebCore::ScrollingCoordinatorChromium::removeWebScrollbarLayer):
2073         * page/scrolling/chromium/ScrollingCoordinatorChromium.h:
2074         (WebCore):
2075         (ScrollingCoordinatorChromium):
2076         * page/scrolling/mac/ScrollingCoordinatorMac.h:
2077         (ScrollingCoordinatorMac):
2078         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2079         (WebCore::ScrollingCoordinatorMac::scrollableAreaScrollbarLayerDidChange):
2080         * platform/ScrollableArea.h:
2081         (ScrollableArea):
2082         (WebCore::ScrollableArea::layerForScrolling):
2083         * platform/graphics/GraphicsLayer.h:
2084         (GraphicsLayer):
2085         (WebCore::GraphicsLayer::setContentsToPlatformLayer):
2086         * rendering/RenderLayer.cpp:
2087         (WebCore::RenderLayer::~RenderLayer):
2088         (WebCore::RenderLayer::layerForScrolling):
2089         (WebCore):
2090         * rendering/RenderLayer.h:
2091         (RenderLayer):
2092         * rendering/RenderLayerBacking.cpp:
2093         (WebCore::RenderLayerBacking::updateOverflowControlsLayers):
2094         (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
2095         (WebCore::RenderLayerBacking::updateScrollingLayers):
2096         * rendering/RenderLayerCompositor.cpp:
2097         (WebCore::RenderLayerCompositor::frameViewDidScroll):
2098         (WebCore::RenderLayerCompositor::scrollingLayerDidChange):
2099         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2100
2101 2013-02-26  Kentaro Hara  <haraken@chromium.org>
2102
2103         [V8] Overloaded constructors don't need header declarations
2104         https://bugs.webkit.org/show_bug.cgi?id=110799
2105
2106         Reviewed by Adam Barth.
2107
2108         They are implemented as static functions in cpp files.
2109         Header declarations are not needed.
2110
2111         No tests. No change in behavior.
2112
2113         * bindings/scripts/CodeGeneratorV8.pm:
2114         (GenerateHeader):
2115         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
2116
2117 2013-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
2118
2119         Unreviewed, rolling out r144016.
2120         http://trac.webkit.org/changeset/144016
2121         https://bugs.webkit.org/show_bug.cgi?id=110856
2122
2123         Breaks compilation on chromium mac (Requested by vsevik on
2124         #webkit).
2125
2126         * platform/chromium/KeyCodeConversionGtk.cpp:
2127         (WebCore::windowsKeyCodeForKeyEvent):
2128
2129 2013-02-26  Glenn Adams  <glenn@skynav.com>
2130
2131         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
2132         https://bugs.webkit.org/show_bug.cgi?id=89235
2133
2134         Reviewed by Eric Seidel.
2135
2136         This patch adds semantic support for the CSS3 line-break property (qua -webkit-line-break),
2137         and enables testing on (apple) mac ports. Follow on patches will enable these tests on
2138         other ports as they are incrementally verified.
2139
2140         See also wiki documentation at:
2141         [1] http://trac.webkit.org/wiki/LineBreaking
2142         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
2143
2144         Tests: css3/line-break/line-break-auto-centered.html
2145                css3/line-break/line-break-auto-half-kana.html
2146                css3/line-break/line-break-auto-hyphens.html
2147                css3/line-break/line-break-auto-inseparables.html
2148                css3/line-break/line-break-auto-iteration-marks.html
2149                css3/line-break/line-break-auto-postfixes.html
2150                css3/line-break/line-break-auto-prefixes.html
2151                css3/line-break/line-break-auto-sound-marks.html
2152                css3/line-break/line-break-loose-centered.html
2153                css3/line-break/line-break-loose-half-kana.html
2154                css3/line-break/line-break-loose-hyphens.html
2155                css3/line-break/line-break-loose-inseparables.html
2156                css3/line-break/line-break-loose-iteration-marks.html
2157                css3/line-break/line-break-loose-postfixes.html
2158                css3/line-break/line-break-loose-prefixes.html
2159                css3/line-break/line-break-loose-sound-marks.html
2160                css3/line-break/line-break-normal-centered.html
2161                css3/line-break/line-break-normal-half-kana.html
2162                css3/line-break/line-break-normal-hyphens.html
2163                css3/line-break/line-break-normal-inseparables.html
2164                css3/line-break/line-break-normal-iteration-marks.html
2165                css3/line-break/line-break-normal-postfixes.html
2166                css3/line-break/line-break-normal-prefixes.html
2167                css3/line-break/line-break-normal-sound-marks.html
2168                css3/line-break/line-break-strict-centered.html
2169                css3/line-break/line-break-strict-half-kana.html
2170                css3/line-break/line-break-strict-hyphens.html
2171                css3/line-break/line-break-strict-inseparables.html
2172                css3/line-break/line-break-strict-iteration-marks.html
2173                css3/line-break/line-break-strict-postfixes.html
2174                css3/line-break/line-break-strict-prefixes.html
2175                css3/line-break/line-break-strict-sound-marks.html
2176
2177         These tests were previously added in http://trac.webkit.org/changeset/143378, but skipped
2178         in generic TestExpectations. In this patch, they are marked as Pass for the (apple) mac ports.
2179
2180         * platform/text/LineBreakIteratorPoolICU.h:
2181         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
2182         Add static function to construct ICU locale argument (also used as pool key) with additional
2183         break keyword.
2184         (LineBreakIteratorPool):
2185         (WebCore::LineBreakIteratorPool::take):
2186         (WebCore::LineBreakIteratorPool::put):
2187         Remove direct dependency from ICU library (and types), moving that dependency into
2188         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
2189         Update to take line break mode into account.
2190         Create (and cache) different break iterators depending on line break mode (in addition to locale),
2191         which entails expanding pool entry key format to optionally append "@break=" +
2192         "loose"|"normal"|"strict" keyword to locale string.
2193
2194         * platform/text/TextBreakIterator.h:
2195         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
2196         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
2197         (WebCore::LazyLineBreakIterator::get):
2198         (WebCore::LazyLineBreakIterator::reset):
2199         (LazyLineBreakIterator):
2200         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
2201         Add state member to indicate line break mode.
2202
2203         * platform/text/TextBreakIteratorICU.cpp:
2204         (WebCore::acquireLineBreakIterator):
2205         Use new line break mode when making iterator from pool.
2206         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
2207         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
2208         (WebCore::releaseLineBreakIterator):
2209         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
2210         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
2211         (WebCore):
2212         (WebCore::isCJKLocale):
2213         New functions for determining if CJK rules apply.
2214         (WebCore::openLineBreakIterator):
2215         New function for abstracting opening of ICU style line break iterator. This is now
2216         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
2217         This function also takes into account the line break mode.
2218         (WebCore::closeLineBreakIterator):
2219         (WebCore::mapLineIteratorModeToRules):
2220         New function for abstracting closing of ICU style line break iterator. This is now
2221         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
2222
2223         * rendering/RenderBlockLineLayout.cpp:
2224         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak):
2225         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
2226         Add looseMode local variable to prevent need for computing under isBreakable().
2227
2228         * rendering/RenderText.cpp:
2229         (WebCore::mapLineBreakToIteratorMode):
2230         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
2231         and RenderBlock::LineBreaker::nextLineBreak.
2232         (WebCore):
2233         (WebCore::RenderText::computePreferredLogicalWidths):
2234         Ensure (lazy line) breakIterator is initialized for line break mode.
2235         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
2236
2237         * rendering/RenderText.h:
2238         (WebCore):
2239         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
2240         and RenderBlock::LineBreaker::nextLineBreak.
2241
2242         * rendering/break_lines.cpp:
2243         (WebCore):
2244         Introduce (local) enum NBSPBehavior for expanding template on nextBreakablePosition.
2245         (WebCore::isBreakableSpace):
2246         Add externally specified loose mode parameter to prevent need to invoke line break iterator
2247         accessor method on each invocation. Use new loose mode flavors off NBP functions.
2248         (WebCore::needsLineBreakIterator):
2249         Use enum NBSP behavior template parameter rather than boolean.
2250         (WebCore::nextBreakablePositionNonLoosely):
2251         Extend name to distinguish from loose flavor of this function.
2252         (WebCore::nextBreakablePositionLoosely):
2253         Add loose flavor of NBP invoked only when loose mode applies, in which case ASCII shortcut
2254         table cannot be used.
2255         (WebCore::nextBreakablePosition):
2256         (WebCore::nextBreakablePositionIgnoringNBSP):
2257         Use (renamed) non-loose flavor of NBP.
2258         (WebCore::nextBreakablePositionLoose):
2259         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
2260         Introduce loose flavor of NBP template expansions.
2261
2262         * rendering/break_lines.h:
2263         (WebCore):
2264         (WebCore::isBreakable):
2265         Add externally specified loose mode parameter to prevent need to invoke line break iterator
2266         accessor method on each invocation.
2267
2268 2013-02-26  James Weatherall  <wez@chromium.org>
2269
2270         keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
2271         https://bugs.webkit.org/show_bug.cgi?id=85642
2272
2273         Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
2274
2275         Reviewed by Ojan Vafai.
2276
2277         * platform/chromium/KeyCodeConversionGtk.cpp:
2278         (WebCore::windowsKeyCodeForKeyEvent):
2279
2280 2013-02-25  Adam Barth  <abarth@webkit.org>
2281
2282         6% regression in intl1 page cycler on chromium-mac
2283         https://bugs.webkit.org/show_bug.cgi?id=110784
2284
2285         Unreviewed.
2286
2287         This patch restores the code that I rolled out in
2288         http://trac.webkit.org/changeset/143960 and
2289         http://trac.webkit.org/changeset/143983. Rolling out those patches did
2290         not heal the bot.
2291
2292         * dom/Element.cpp:
2293         (WebCore::Element::addAttributeInternal):
2294         (WebCore::ShareableElementData::ShareableElementData):
2295         (WebCore::UniqueElementData::makeShareableCopy):
2296         (WebCore::UniqueElementData::addAttribute):
2297         (WebCore::UniqueElementData::removeAttribute):
2298         (WebCore::ElementData::reportMemoryUsage):
2299         (WebCore::UniqueElementData::getAttributeItem):
2300         (WebCore):
2301         (WebCore::UniqueElementData::attributeItem):
2302         * dom/Element.h:
2303         (ElementData):
2304         (UniqueElementData):
2305         (WebCore::isShadowHost):
2306         (WebCore::ElementData::length):
2307         (WebCore::ElementData::attributeItem):
2308         * html/parser/BackgroundHTMLParser.cpp:
2309         (WebCore::BackgroundHTMLParser::resumeFrom):
2310         (WebCore::BackgroundHTMLParser::pumpTokenizer):
2311         (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
2312         * html/parser/CSSPreloadScanner.cpp:
2313         (WebCore):
2314         (WebCore::CSSPreloadScanner::scanCommon):
2315         (WebCore::CSSPreloadScanner::scan):
2316         (WebCore::CSSPreloadScanner::emitRule):
2317         * html/parser/CSSPreloadScanner.h:
2318         (CSSPreloadScanner):
2319         * html/parser/HTMLDocumentParser.cpp:
2320         (WebCore::HTMLDocumentParser::startBackgroundParser):
2321         * html/parser/HTMLPreloadScanner.cpp:
2322         (WebCore::TokenPreloadScanner::tagIdFor):
2323         (WebCore):
2324         (WebCore::TokenPreloadScanner::initiatorFor):
2325         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
2326         (TokenPreloadScanner::StartTagScanner):
2327         (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
2328         (WebCore::TokenPreloadScanner::createCheckpoint):
2329         (WebCore::TokenPreloadScanner::rewindTo):
2330         (WebCore::TokenPreloadScanner::scan):
2331         (WebCore::TokenPreloadScanner::scanCommon):
2332         (WebCore::TokenPreloadScanner::updatePredictedBaseURL):
2333         (WebCore::HTMLPreloadScanner::scan):
2334         * html/parser/HTMLPreloadScanner.h:
2335         (TokenPreloadScanner):
2336         (WebCore::TokenPreloadScanner::isSafeToSendToAnotherThread):
2337         (WebCore::TokenPreloadScanner::Checkpoint::Checkpoint):
2338         (Checkpoint):
2339
2340 2013-02-25  Chris Rogers  <crogers@google.com>
2341
2342         AudioDestinationChromium should pass in inputDeviceId when creating WebKit::WebAudioDevice
2343         https://bugs.webkit.org/show_bug.cgi?id=110796
2344
2345         Reviewed by Kenneth Russell.
2346
2347         * platform/audio/chromium/AudioDestinationChromium.cpp:
2348         (WebCore::AudioDestinationChromium::AudioDestinationChromium):
2349
2350 2013-02-25  Mark Lam  <mark.lam@apple.com>
2351
2352         Need a more robust WebSQL disk usage computation.
2353         https://bugs.webkit.org/show_bug.cgi?id=110805.
2354
2355         Reviewed by Geoffrey Garen.
2356
2357         - Changed DatabaseTracker::usageForOrigin() to compute the disk usage
2358           for a specified origin by fetching database sizes from the file system
2359           instead of using cached file size values.
2360
2361         - The OriginQuotaManager and OriginUsageRecord are no longer needed.
2362           Updated build files to reflect this.
2363
2364         - Removed getMaxSizeForDatabase() from DatabaseManager, DatabaseServer,
2365           and AbstractDatabaseServer since it is only needed in the backend.
2366
2367         - DatabaseTracker::getMaxSizeForDatabase() now calls usageForOrigin()
2368           to get the disk usage for its computation.
2369
2370         - The performance difference for this changes is a 1.6% degradation
2371           per additional database whose size needs to be fetched. This is a
2372           worst case estimated based on the disk-stat-speed-test.html benchmark
2373           (attached to bugzilla). The benchmark writes an average of 16 bytes per
2374           transaction. Most real-world transactions will likely write more
2375           content than that. Since disk write IO time will dominate over memory
2376           read time for fetching the file size, the degradation ratio will only
2377           reduce with larger workloads.
2378
2379         No layout test, but there is a quota-test.html attached to bugzilla.
2380         The test is a webpage that can be loaded into multiple tabs to
2381         consuming storage space. While the test is running, we can run a
2382         "du -k; du -k *" on the database directory to verify that the total
2383         disk usage does not far exceed the allowed quota (some small error
2384         is expected). Without this change, each database from each tab may
2385         exceed the quota by that same maginitude of error.
2386
2387         * CMakeLists.txt:
2388         * GNUmakefile.list.am:
2389         * Modules/webdatabase/AbstractDatabaseServer.h:
2390         * Modules/webdatabase/Database.cpp:
2391         * Modules/webdatabase/Database.h:
2392         * Modules/webdatabase/DatabaseBackendBase.cpp:
2393         (WebCore::DatabaseBackendBase::maximumSize):
2394         * Modules/webdatabase/DatabaseManager.cpp:
2395         * Modules/webdatabase/DatabaseManager.h:
2396         * Modules/webdatabase/DatabaseServer.cpp:
2397         * Modules/webdatabase/DatabaseServer.h:
2398         * Modules/webdatabase/DatabaseTracker.cpp:
2399         (WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
2400         (WebCore::DatabaseTracker::canEstablishDatabase):
2401         (WebCore::DatabaseTracker::retryCanEstablishDatabase):
2402         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
2403         (WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
2404         (WebCore::DatabaseTracker::fullPathForDatabase):
2405         (WebCore::DatabaseTracker::addOpenDatabase):
2406         (WebCore::DatabaseTracker::removeOpenDatabase):
2407         (WebCore::DatabaseTracker::usageForOrigin):
2408         (WebCore::DatabaseTracker::deleteOrigin):
2409         (WebCore::DatabaseTracker::deleteDatabase):
2410         * Modules/webdatabase/DatabaseTracker.h:
2411         * Modules/webdatabase/OriginQuotaManager.cpp: Removed.
2412         * Modules/webdatabase/OriginQuotaManager.h: Removed.
2413         * Modules/webdatabase/OriginUsageRecord.cpp: Removed.
2414         * Modules/webdatabase/OriginUsageRecord.h: Removed.
2415         * Modules/webdatabase/SQLTransactionBackend.cpp:
2416         (WebCore::SQLTransactionBackend::runCurrentStatementAndGetNextState):
2417         * Modules/webdatabase/SQLTransactionBackendSync.cpp:
2418         (WebCore::SQLTransactionBackendSync::executeSQL):
2419         * Modules/webdatabase/SQLTransactionClient.cpp:
2420         * Modules/webdatabase/SQLTransactionClient.h:
2421         * Modules/webdatabase/chromium/SQLTransactionClientChromium.cpp:
2422         * Target.pri:
2423         * WebCore.gyp/WebCore.gyp:
2424         * WebCore.gypi:
2425         * WebCore.vcproj/WebCore.vcproj:
2426         * WebCore.vcxproj/WebCore.vcxproj:
2427         * WebCore.vcxproj/WebCore.vcxproj.filters:
2428         * WebCore.xcodeproj/project.pbxproj:
2429
2430 2013-02-25  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
2431
2432         [texmap] Rename TextureMapperGL::ClipStack::init to reset
2433         https://bugs.webkit.org/show_bug.cgi?id=110783
2434
2435         Reviewed by Noam Rosenthal.
2436
2437         Functions named init() are usually called inside ctor's to initialize
2438         member variables that were unable to be assigned on an initialization
2439         list, which is not the case, and also because reset() better reflects
2440         the behavior (clears the clip stack and assigns a value to the initial
2441         clip state).
2442
2443         No behavior changes, thus covered by existing tests.
2444
2445         * platform/graphics/texmap/TextureMapperGL.cpp:
2446         (WebCore::TextureMapperGL::ClipStack::reset):
2447         (WebCore::TextureMapperGL::beginPainting):
2448         (WebCore::BitmapTextureGL::initializeDepthBuffer):
2449         * platform/graphics/texmap/TextureMapperGL.h:
2450         (ClipStack):
2451
2452 2013-02-25  Adam Barth  <abarth@webkit.org>
2453
2454         Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-javascript-url.html
2455         https://bugs.webkit.org/show_bug.cgi?id=110637
2456
2457         Reviewed by Eric Seidel.
2458
2459         With the main thread parser, we always parse the first chunk of content
2460         returned as the result of evaluating a JavaScript URL synchronously. In
2461         particular, if the first chunk has an inline script, we'll execute it
2462         synchronously.
2463
2464         Previous to this patch, the threaded parser would always parse this
2465         content asynchronously. It's conceivable that there could be some
2466         content relying on the synchronous behavior, so this patch introduces
2467         the notion of "pinning" a parser to the main thread and uses that
2468         concept to force the result of JavaScript URLs to be parsed on the main
2469         thread (which is probably desirable anyway because they're likely to be
2470         quite short).
2471
2472         This patch fixes fast/parser/iframe-sets-parent-to-javascript-url.html
2473         and fast/dom/javascript-url-crash-function.html with the threaded
2474         parser with --enable-threaded-html-parser.
2475
2476         * dom/DocumentParser.h:
2477         (WebCore::DocumentParser::pinToMainThread):
2478         (DocumentParser):
2479         * html/parser/HTMLDocumentParser.cpp:
2480         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
2481         (WebCore):
2482         (WebCore::HTMLDocumentParser::pinToMainThread):
2483         * html/parser/HTMLDocumentParser.h:
2484         (HTMLDocumentParser):
2485         (WebCore::HTMLDocumentParser::shouldUseThreading):
2486         * loader/DocumentWriter.cpp:
2487         (WebCore::DocumentWriter::replaceDocument):
2488
2489 2013-02-25  Jessie Berlin  <jberlin@apple.com>
2490
2491         Update the localizable strings file.
2492
2493         Rubber-stamped by Anders Carlsson.
2494
2495         * English.lproj/Localizable.strings:
2496
2497 2013-02-25  Xueqing Huang  <huangxueqing@baidu.com>
2498
2499         Flexbox should ignore firstLetter pseudo element.
2500         https://bugs.webkit.org/show_bug.cgi?id=105126
2501
2502         Reviewed by Tony Chang.
2503
2504         The CSS WG decided that first-line and first-letter should not
2505         apply to flex containers.
2506         http://dev.w3.org/csswg/css3-flexbox/issue-cr-2012#issue-13
2507
2508         tests:
2509         css3/flexbox/flexbox-ignore-firstLetter.html
2510         css3/flexbox/flexbox-ignore-container-firstLetter.html       
2511
2512         * rendering/RenderBlock.cpp:
2513         (WebCore::findFirstLetterBlock):
2514
2515 2013-02-25  Simon Fraser  <simon.fraser@apple.com>
2516
2517         Lots of unnecessary DidLayout notifications when scrolling zoomed page with iframes
2518         https://bugs.webkit.org/show_bug.cgi?id=110824
2519
2520         Reviewed by Tim Horton.
2521         
2522         RenderWidget::setWidgetGeometry() compares the old and new frame rects to decide
2523         if the geometry changed. However, it use implicit IntRect->LayoutRect promotion in
2524         the comparison, and then roundedIntRect() in setting. Thus the code would think
2525         that the geometry changed, even when the final assigned frame did not.
2526         
2527         Fix by computing the new frame using roundedIntRect(), and using that to determine
2528         whether the geometry changed.
2529
2530         No way to test DidLayout notifications in DRT/WTR.
2531
2532         * rendering/RenderWidget.cpp:
2533         (WebCore::RenderWidget::setWidgetGeometry):
2534
2535 2013-02-21  Jeffrey Pfau  <jpfau@apple.com>
2536
2537         Optionally partition cache to prevent using cache for tracking
2538         https://bugs.webkit.org/show_bug.cgi?id=110269
2539
2540         Reviewed by Maciej Stachowiak.
2541
2542         Implement memory cache partitioning by passing the cache name through
2543         resource requests into a new version of resourceForURL.
2544
2545         Test: http/tests/cache/partitioned-cache.html
2546
2547         * Configurations/FeatureDefines.xcconfig: Add defines for cache partitioning and public suffix list usage
2548         * WebCore.exp.in: Export new functions for WKSI and test suite
2549         * WebCore.xcodeproj/project.pbxproj:
2550         * html/DOMURL.cpp:
2551         (WebCore::DOMURL::revokeObjectURL): Retrofit for new resourceForRequest function
2552         * inspector/InspectorPageAgent.cpp:
2553         (WebCore::InspectorPageAgent::cachedResource): Retrofit for new resourceForRequest function
2554         * inspector/InspectorResourceAgent.cpp:
2555         (WebCore::InspectorResourceAgent::replayXHR): Retrofit for new resourceForRequest function
2556         * loader/DocumentLoader.h:
2557         (DocumentLoader):
2558         (WebCore::DocumentLoader::recordMemoryCacheLoadForFutureClientNotification): Retrofit for new resourceForRequest function
2559         (WebCore::DocumentLoader::takeMemoryCacheLoadsForClientNotification): Retrofit for new resourceForRequest function
2560         * loader/FrameLoader.cpp:
2561         (WebCore::FrameLoader::loadedResourceFromMemoryCache): Retrofit for new resourceForRequest function
2562         (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Retrofit for new resourceForRequest function
2563         * loader/archive/cf/LegacyWebArchive.cpp:
2564         (WebCore::LegacyWebArchive::create): Retrofit for new resourceForRequest function
2565         * loader/cache/CachedResource.cpp:
2566         (WebCore::CachedResource::~CachedResource):
2567         * loader/cache/CachedResource.h: Retrofit for new resourceForRequest function
2568         (CachedResource):
2569         (WebCore::CachedResource::cachePartition):
2570         * loader/cache/CachedResourceLoader.cpp:
2571         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Retrofit for new resourceForRequest function
2572         (WebCore::CachedResourceLoader::requestResource): Retrofit for new resourceForRequest function
2573         (WebCore::CachedResourceLoader::loadResource): Retrofit for new resourceForRequest function
2574         * loader/cache/MemoryCache.cpp:
2575         (WebCore):
2576         (WebCore::partitionName): Add function for determining absolute partition name
2577         (WebCore::MemoryCache::add): Retrofit for partition mapping
2578         (WebCore::MemoryCache::revalidationSucceeded): Retrofit for partition mapping
2579         (WebCore::MemoryCache::resourceForURL): Call into new resourceForRequest
2580         (WebCore::MemoryCache::resourceForRequest): Retrofit for partition mapping
2581         (WebCore::MemoryCache::evict): Retrofit for partition mapping
2582         (WebCore::MemoryCache::removeResourcesWithOrigin): Retrofit for partition mapping
2583         (WebCore::MemoryCache::getOriginsWithCache): Retrofit for partition mapping
2584         (WebCore::MemoryCache::removeUrlFromCache): Retrofit for partition mapping
2585         (WebCore::MemoryCache::removeRequestFromCache): Retrofit for partition mapping
2586         (WebCore::MemoryCache::removeRequestFromCacheImpl): Retrofit for partition mapping
2587         (WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add function for calling removeRequestFromCacheImpl that takes a CrossThreadResourceRequestData
2588         (WebCore::MemoryCache::getStatistics): Retrofit for partition mapping
2589         (WebCore::MemoryCache::setDisabled): Retrofit for partition mapping
2590         * loader/cache/MemoryCache.h:
2591         (MemoryCache):
2592         * page/SecurityOrigin.cpp:
2593         (WebCore):
2594         (WebCore::SecurityOrigin::cachePartition): Add function for determining the cache partition name
2595         * page/SecurityOrigin.h:
2596         (SecurityOrigin):
2597         * platform/PublicSuffix.h: Added.
2598         (WebCore):
2599         * platform/mac/PublicSuffixMac.mm: Added.
2600         (WebCore):
2601         (WebCore::isPublicSuffix):
2602         (WebCore::topPrivatelyControlledDomain):
2603         * platform/mac/WebCoreSystemInterface.h:
2604         * platform/mac/WebCoreSystemInterface.mm:
2605         * platform/network/cf/ResourceRequest.h:
2606         (ResourceRequest):
2607         (WebCore::ResourceRequest::cachePartition):
2608         (WebCore::ResourceRequest::setCachePartition):
2609         (CrossThreadResourceRequestData):
2610         * platform/network/cf/ResourceRequestCFNet.cpp:
2611         (WebCore::ResourceRequest::doPlatformCopyData): Pass through cache partition name
2612         (WebCore):
2613         (WebCore::ResourceRequest::doPlatformAdopt): Pass through cache partition name
2614         * platform/network/mac/ResourceRequestMac.mm:
2615         (WebCore::ResourceRequest::doUpdateResourceRequest): Pass through cache partition name
2616         (WebCore::ResourceRequest::doUpdatePlatformRequest): Pass through cache partition name
2617
2618 2013-02-25  Jer Noble  <jer.noble@apple.com>
2619
2620         Normalize ENABLE_ENCRYPTED_MEDIA definitions across all FeatureDefines files.
2621         https://bugs.webkit.org/show_bug.cgi?id=110806
2622
2623         Reviewed by Alexey Proskuryakov.
2624
2625         Ensure both ENCRYPTED_MEDIA and ENCRYPTED_MEDIA_V2 are enabled on macosx_1090.
2626
2627         * Configurations/FeatureDefines.xcconfig:
2628
2629         Fix some build errors which occurred when both ENCRYPTED_MEDIA and 
2630         ENCRYPTED_MEDIA_V2 were enabled:
2631         * html/HTMLMediaElement.cpp:
2632         (WebCore::HTMLMediaElement::webkitGenerateKeyRequest):
2633         (WebCore::HTMLMediaElement::webkitAddKey):
2634         * page/DOMWindow.idl:
2635
2636 2013-02-25  Adam Barth  <abarth@webkit.org>
2637
2638         6% regression in intl1 page cycler on chromium-mac
2639         https://bugs.webkit.org/show_bug.cgi?id=110784
2640
2641         Reviewed by Eric Seidel.
2642
2643         This patch reverts http://trac.webkit.org/changeset/143014 to see if
2644         that's the cause of the PLT regression. If it's not the cause, I'll
2645         roll it back in.
2646
2647         * dom/Element.cpp:
2648         (WebCore::Element::addAttributeInternal):
2649         (WebCore::ShareableElementData::ShareableElementData):
2650         (WebCore::UniqueElementData::makeShareableCopy):
2651         (WebCore::ElementData::addAttribute):
2652         (WebCore::ElementData::removeAttribute):
2653         (WebCore::ElementData::reportMemoryUsage):
2654         * dom/Element.h:
2655         (ElementData):
2656         (UniqueElementData):
2657         (WebCore::ElementData::mutableAttributeVector):
2658         (WebCore):
2659         (WebCore::ElementData::immutableAttributeArray):
2660         (WebCore::ElementData::length):
2661         (WebCore::ElementData::getAttributeItem):
2662         (WebCore::ElementData::attributeItem):
2663
2664 2013-02-25  Tim Horton  <timothy_horton@apple.com>
2665
2666         Page::m_isInWindow is uninitialized
2667         https://bugs.webkit.org/show_bug.cgi?id=110807
2668
2669         Reviewed by Simon Fraser.
2670
2671         Ideally m_isInWindow and m_isOnscreen would default to false, and be flipped to true
2672         when the Page is put in-window or on-screen. However, only the Mac port seems to ever
2673         call setIsInWindow/didMoveOnscreen. So, we have to default to true and flip it to false
2674         immediately after construction on Mac.
2675
2676         This is just matching the behaviour of the existing m_isOnscreen.
2677
2678         * page/Page.cpp:
2679         (WebCore::Page::Page): Initialize m_isInWindow to true.
2680
2681 2013-02-25  Kentaro Hara  <haraken@chromium.org>
2682
2683         Unreviewed build fix after r143965.
2684
2685         * bindings/scripts/CodeGeneratorV8.pm:
2686         (GenerateOverloadedConstructorCallback):
2687         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
2688         (WebCore::TestOverloadedConstructorsV8Internal::constructor):
2689
2690 2013-02-25  Gustavo Noronha Silva  <gns@gnome.org>
2691
2692         Build fix for gtk2-based library.
2693
2694         Reviewed by Martin Robinson.
2695
2696         * platform/gtk/WidgetRenderingContext.cpp: move gtk2 check to after the config.h
2697         include, which is the one that includes autotoolsconfig.h, where the gtk2 define
2698         lives.
2699
2700 2013-02-25  Sheriff Bot  <webkit.review.bot@gmail.com>
2701
2702         Unreviewed, rolling out r143936.
2703         http://trac.webkit.org/changeset/143936
2704         https://bugs.webkit.org/show_bug.cgi?id=110789
2705
2706         Causes webkit_unit_tests failures on android dbg (Requested by
2707         vollick on #webkit).
2708
2709         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2710         (WebCore::GIFImageDecoder::GIFImageDecoder):
2711         (WebCore::GIFImageDecoder::setData):
2712         (WebCore::GIFImageDecoder::frameCount):
2713         (WebCore::GIFImageDecoder::decodingHalted):
2714         (WebCore):
2715         (WebCore::GIFImageDecoder::haveDecodedRow):
2716         (WebCore::GIFImageDecoder::decode):
2717         * platform/image-decoders/gif/GIFImageDecoder.h:
2718         (GIFImageDecoder):
2719         * platform/image-decoders/gif/GIFImageReader.cpp:
2720         (GIFImageReader::doLZW):
2721         (GIFImageReader::read):
2722         * platform/image-decoders/gif/GIFImageReader.h:
2723         (GIFFrameContext):
2724         (GIFFrameContext::GIFFrameContext):
2725         (GIFFrameContext::~GIFFrameContext):
2726         (GIFImageReader::GIFImageReader):
2727         (GIFImageReader::~GIFImageReader):
2728         (GIFImageReader):
2729         (GIFImageReader::globalColormap):
2730         (GIFImageReader::globalColormapSize):
2731
2732 2013-02-25  Kentaro Hara  <haraken@chromium.org>
2733
2734         [V8] Generate a wrapper function for method callbacks
2735         https://bugs.webkit.org/show_bug.cgi?id=110769
2736
2737         Reviewed by Adam Barth.
2738
2739         This is one of steps to insert TRACE_EVENT_STATE() macros
2740         into DOM bindings. This patch introduces an indirection
2741         function for xxxMethod(), like this:
2742
2743         // For non-custom methods
2744         void xxxMethodCallback(...) {
2745           xxxMethod(...);
2746         }
2747
2748         // For custom methods
2749         void xxxMethodCallback(...) {
2750           return xxxMethodCustom(...);
2751         }
2752
2753         No tests. No change in behavior.
2754
2755         * bindings/scripts/CodeGeneratorV8.pm:
2756         (GenerateDomainSafeFunctionGetter):
2757         (GenerateOverloadedFunction):
2758         (GenerateFunctionCallback):
2759         (GenerateFunction):
2760         (GenerateNonStandardFunction):
2761         (GenerateImplementation):
2762         (GenerateFunctionCallString):
2763         * bindings/scripts/test/V8/V8Float64Array.cpp:
2764         (WebCore::Float64ArrayV8Internal::fooMethodCallback):
2765         (Float64ArrayV8Internal):
2766         (WebCore::Float64ArrayV8Internal::setMethodCallback):
2767         (WebCore):
2768         (WebCore::ConfigureV8Float64ArrayTemplate):
2769         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2770         (WebCore::TestActiveDOMObjectV8Internal::excitingFunctionMethodCallback):
2771         (TestActiveDOMObjectV8Internal):
2772         (WebCore::TestActiveDOMObjectV8Internal::postMessageMethodCallback):
2773         (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
2774         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
2775         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2776         (WebCore::TestCustomNamedGetterV8Internal::anotherFunctionMethodCallback):
2777         (TestCustomNamedGetterV8Internal):
2778         (WebCore):
2779         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2780         (WebCore::TestEventTargetV8Internal::itemMethodCallback):
2781         (TestEventTargetV8Internal):
2782         (WebCore::TestEventTargetV8Internal::addEventListenerMethodCallback):
2783         (WebCore::TestEventTargetV8Internal::removeEventListenerMethodCallback):
2784         (WebCore::TestEventTargetV8Internal::dispatchEventMethodCallback):
2785         (WebCore):
2786         (WebCore::ConfigureV8TestEventTargetTemplate):
2787         * bindings/scripts/test/V8/V8TestInterface.cpp:
2788         (WebCore::TestInterfaceV8Internal::supplementalMethod1MethodCallback):
2789         (TestInterfaceV8Internal):
2790         (WebCore::TestInterfaceV8Internal::supplementalMethod2MethodCallback):
2791         (WebCore::TestInterfaceV8Internal::supplementalMethod3MethodCallback):
2792         (WebCore::TestInterfaceV8Internal::supplementalMethod4MethodCallback):
2793         (WebCore):
2794         (WebCore::ConfigureV8TestInterfaceTemplate):
2795         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2796         (WebCore::TestMediaQueryListListenerV8Internal::methodMethodCallback):
2797         (TestMediaQueryListListenerV8Internal):
2798         (WebCore):
2799         * bindings/scripts/test/V8/V8TestObj.cpp:
2800         (WebCore::TestObjV8Internal::voidMethodMethodCallback):
2801         (TestObjV8Internal):
2802         (WebCore::TestObjV8Internal::voidMethodWithArgsMethodCallback):
2803         (WebCore::TestObjV8Internal::longMethodMethodCallback):
2804         (WebCore::TestObjV8Internal::longMethodWithArgsMethodCallback):
2805         (WebCore::TestObjV8Internal::objMethodMethod):
2806         (WebCore::TestObjV8Internal::objMethodMethodCallback):
2807         (WebCore::TestObjV8Internal::objMethodWithArgsMethodCallback):
2808         (WebCore::TestObjV8Internal::methodWithSequenceArgMethodCallback):
2809         (WebCore::TestObjV8Internal::methodReturningSequenceMethodCallback):
2810         (WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsMethodCallback):
2811         (WebCore::TestObjV8Internal::serializedValueMethodCallback):
2812         (WebCore::TestObjV8Internal::optionsObjectMethodCallback):
2813         (WebCore::TestObjV8Internal::methodWithExceptionMethodCallback):
2814         (WebCore::TestObjV8Internal::customMethodMethodCallback):
2815         (WebCore::TestObjV8Internal::customMethodWithArgsMethodCallback):
2816         (WebCore::TestObjV8Internal::addEventListenerMethodCallback):
2817         (WebCore::TestObjV8Internal::removeEventListenerMethodCallback):
2818         (WebCore::TestObjV8Internal::withScriptStateVoidMethodCallback):
2819         (WebCore::TestObjV8Internal::withScriptStateObjMethodCallback):
2820         (WebCore::TestObjV8Internal::withScriptStateVoidExceptionMethodCallback):
2821         (WebCore::TestObjV8Internal::withScriptStateObjExceptionMethodCallback):
2822         (WebCore::TestObjV8Internal::withScriptExecutionContextMethodCallback):
2823         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateMethodCallback):
2824         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateObjExceptionMethodCallback):
2825         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesMethodCallback):
2826         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackMethodCallback):
2827         (WebCore::TestObjV8Internal::methodWithOptionalArgMethodCallback):
2828         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgMethodCallback):
2829         (WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsMethodCallback):
2830         (WebCore::TestObjV8Internal::methodWithOptionalStringMethodCallback):
2831         (WebCore::TestObjV8Internal::methodWithOptionalStringIsUndefinedMethodCallback):
2832         (WebCore::TestObjV8Internal::methodWithOptionalStringIsNullStringMethodCallback):
2833         (WebCore::TestObjV8Internal::methodWithCallbackArgMethodCallback):
2834         (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgMethodCallback):
2835         (WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgMethodCallback):
2836         (WebCore::TestObjV8Internal::conditionalMethod1MethodCallback):
2837         (WebCore::TestObjV8Internal::conditionalMethod2MethodCallback):
2838         (WebCore::TestObjV8Internal::conditionalMethod3MethodCallback):
2839         (WebCore::TestObjV8Internal::overloadedMethodMethodCallback):
2840         (WebCore::TestObjV8Internal::classMethodMethodCallback):
2841         (WebCore::TestObjV8Internal::classMethodWithOptionalMethodCallback):
2842         (WebCore::TestObjV8Internal::classMethod2MethodCallback):
2843         (WebCore::TestObjV8Internal::overloadedMethod1MethodCallback):
2844         (WebCore::TestObjV8Internal::classMethodWithClampMethodCallback):
2845         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod1MethodCallback):
2846         (WebCore::TestObjV8Internal::enabledAtRuntimeMethod2MethodCallback):
2847         (WebCore::TestObjV8Internal::enabledPerContextMethod1MethodCallback):
2848         (WebCore::TestObjV8Internal::enabledPerContextMethod2MethodCallback):
2849         (WebCore::TestObjV8Internal::stringArrayFunctionMethodCallback):
2850         (WebCore::TestObjV8Internal::domStringListFunctionMethodCallback):
2851         (WebCore::TestObjV8Internal::getSVGDocumentMethodCallback):
2852         (WebCore::TestObjV8Internal::convert1MethodCallback):
2853         (WebCore::TestObjV8Internal::convert2MethodCallback):
2854         (WebCore::TestObjV8Internal::convert4MethodCallback):
2855         (WebCore::TestObjV8Internal::convert5MethodCallback):
2856         (WebCore::TestObjV8Internal::mutablePointFunctionMethodCallback):
2857         (WebCore::TestObjV8Internal::immutablePointFunctionMethodCallback):
2858         (WebCore::TestObjV8Internal::orangeMethodCallback):
2859         (WebCore::TestObjV8Internal::strictFunctionMethodCallback):
2860         (WebCore::TestObjV8Internal::variadicStringMethodMethodCallback):
2861         (WebCore::TestObjV8Internal::variadicDoubleMethodMethodCallback):
2862         (WebCore::TestObjV8Internal::variadicNodeMethodMethodCallback):
2863         (WebCore):
2864         (WebCore::ConfigureV8TestObjTemplate):
2865         (WebCore::V8TestObj::installPerContextPrototypeProperties):
2866         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2867         (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListMethodCallback):
2868         (TestSerializedScriptValueInterfaceV8Internal):
2869         (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListMethodCallback):
2870         (WebCore):
2871         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2872         (WebCore::TestTypedefsV8Internal::funcMethodCallback):
2873         (TestTypedefsV8Internal):
2874         (WebCore::TestTypedefsV8Internal::multiTransferListMethodCallback):
2875         (WebCore::TestTypedefsV8Internal::setShadowMethodCallback):
2876         (WebCore::TestTypedefsV8Internal::methodWithSequenceArgMethodCallback):
2877         (WebCore::TestTypedefsV8Internal::nullableArrayArgMethodCallback):
2878         (WebCore::TestTypedefsV8Internal::funcWithClampMethodCallback):
2879         (WebCore::TestTypedefsV8Internal::immutablePointFunctionMethodCallback):
2880         (WebCore::TestTypedefsV8Internal::stringArrayFunctionMethodCallback):
2881         (WebCore::TestTypedefsV8Internal::stringArrayFunction2MethodCallback):
2882         (WebCore::TestTypedefsV8Internal::methodWithExceptionMethodCallback):
2883         (WebCore):
2884         (WebCore::ConfigureV8TestTypedefsTemplate):
2885
2886 2013-02-25  Kentaro Hara  <haraken@chromium.org>
2887
2888         [V8] Generate a wrapper method for constructor callbacks
2889         https://bugs.webkit.org/show_bug.cgi?id=110765
2890
2891         Reviewed by Adam Barth.
2892
2893         This is one of steps to insert TRACE_EVENT_STATE() macros
2894         into DOM bindings. This patch introduces an indirection
2895         function for constructor(), like this:
2896
2897         // For non-custom constructors
2898         void constructorCallback(...) {
2899           return constructor(...);
2900         }
2901
2902         // For custom constructors
2903         void constructorCallback(...) {
2904           return constructorCustom(...);
2905         }
2906
2907         No tests. No change in behavior.
2908
2909         * bindings/scripts/CodeGeneratorV8.pm:
2910         (GenerateHeader):
2911         (GenerateOverloadedConstructorCallback):
2912         (GenerateSingleConstructorCallback):
2913         (GenerateConstructorCallback):
2914         (GenerateConstructor):
2915         (GenerateEventConstructor):
2916         (GenerateTypedArrayConstructor):
2917         (GenerateNamedConstructor):
2918         (GenerateConstructorHeader):
2919         (GenerateImplementation):
2920         * bindings/scripts/test/V8/V8Float64Array.cpp:
2921         (WebCore::Float64ArrayV8Internal::constructor):
2922         (Float64ArrayV8Internal):
2923         (WebCore::V8Float64Array::constructorCallback):
2924         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2925         (WebCore::TestEventConstructorV8Internal::constructor):
2926         (WebCore):
2927         (WebCore::V8TestEventConstructor::constructorCallback):
2928         * bindings/scripts/test/V8/V8TestInterface.cpp:
2929         (WebCore::TestInterfaceV8Internal::constructor):
2930         (TestInterfaceV8Internal):
2931         (WebCore::V8TestInterface::constructorCallback):
2932         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2933         (WebCore::V8TestNamedConstructorConstructorCallback):
2934         * bindings/scripts/test/V8/V8TestNode.cpp:
2935         (WebCore::TestNodeV8Internal::constructor):
2936         (TestNodeV8Internal):
2937         (WebCore::V8TestNode::constructorCallback):
2938         * bindings/scripts/test/V8/V8TestObj.cpp:
2939         (WebCore::TestObjV8Internal::constructor):
2940         (TestObjV8Internal):
2941         (WebCore::V8TestObj::constructorCallback):
2942         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
2943         (WebCore::TestOverloadedConstructorsV8Internal::constructor1):
2944         (WebCore::TestOverloadedConstructorsV8Internal::constructor2):
2945         (WebCore::TestOverloadedConstructorsV8Internal::constructor3):
2946         (WebCore::TestOverloadedConstructorsV8Internal::constructor4):
2947         (WebCore::TestOverloadedConstructorsV8Internal::constructor):
2948         (WebCore):
2949         (WebCore::V8TestOverloadedConstructors::constructorCallback):
2950         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2951         (WebCore::TestSerializedScriptValueInterfaceV8Internal::constructor):
2952         (TestSerializedScriptValueInterfaceV8Internal):
2953         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
2954         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2955         (WebCore::TestTypedefsV8Internal::constructor):
2956         (TestTypedefsV8Internal):
2957         (WebCore::V8TestTypedefs::constructorCallback):
2958
2959 2013-02-24  Kentaro Hara  <haraken@chromium.org>
2960
2961         [V8] Generate xxxAttrSetterCallback()
2962         https://bugs.webkit.org/show_bug.cgi?id=110726
2963
2964         Reviewed by Adam Barth.
2965
2966         This is one of steps to insert TRACE_EVENT_STATE() macros into DOM bindings.
2967         This patch introduces an indirection function for xxxAttrSetter(), like this:
2968
2969         // For non-custom setters
2970         void xxxAttrSetterCallback(...) {
2971           xxxAttrSetter(...);
2972         }
2973
2974         // For custom setters.
2975         void xxxAttrSetterCallback(...) {
2976           return xxxAttrSetterCustom(...);
2977         }
2978
2979         No tests. No change in behavior.
2980
2981         * bindings/scripts/CodeGeneratorV8.pm:
2982         (GenerateNormalAttrSetterCallback):
2983         (GenerateNormalAttrSetter):
2984         (GenerateSingleBatchedAttribute):
2985         (GenerateImplementation):
2986         * bindings/scripts/test/V8/V8TestInterface.cpp:
2987         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetterCallback):
2988         (TestInterfaceV8Internal):
2989         (WebCore::TestInterfaceV8Internal::supplementalStr2AttrSetterCallback):
2990         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetterCallback):
2991         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrSetterCallback):
2992         (WebCore):
2993         * bindings/scripts/test/V8/V8TestObj.cpp:
2994         (WebCore::TestObjV8Internal::staticStringAttrAttrSetterCallback):
2995         (TestObjV8Internal):
2996         (WebCore::TestObjV8Internal::enumAttrAttrSetterCallback):
2997         (WebCore::TestObjV8Internal::shortAttrAttrSetterCallback):
2998         (WebCore::TestObjV8Internal::unsignedShortAttrAttrSetterCallback):
2999         (WebCore::TestObjV8Internal::longAttrAttrSetterCallback):
3000         (WebCore::TestObjV8Internal::longLongAttrAttrSetterCallback):
3001         (WebCore::TestObjV8Internal::unsignedLongLongAttrAttrSetterCallback):
3002         (WebCore::TestObjV8Internal::stringAttrAttrSetterCallback):
3003         (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
3004         (WebCore::TestObjV8Internal::testObjAttrAttrSetterCallback):
3005         (WebCore::TestObjV8Internal::XMLObjAttrAttrSetterCallback):
3006         (WebCore::TestObjV8Internal::createAttrSetterCallback):
3007         (WebCore::TestObjV8Internal::reflectedStringAttrAttrSetterCallback):
3008         (WebCore::TestObjV8Internal::reflectedIntegralAttrAttrSetterCallback):
3009         (WebCore::TestObjV8Internal::reflectedUnsignedIntegralAttrAttrSetterCallback):
3010         (WebCore::TestObjV8Internal::reflectedBooleanAttrAttrSetterCallback):
3011         (WebCore::TestObjV8Internal::reflectedURLAttrAttrSetterCallback):
3012         (WebCore::TestObjV8Internal::reflectedCustomIntegralAttrAttrSetterCallback):
3013         (WebCore::TestObjV8Internal::reflectedCustomBooleanAttrAttrSetterCallback):
3014         (WebCore::TestObjV8Internal::reflectedCustomURLAttrAttrSetterCallback):
3015         (WebCore::TestObjV8Internal::typedArrayAttrAttrSetterCallback):
3016         (WebCore::TestObjV8Internal::attrWithGetterExceptionAttrSetterCallback):
3017         (WebCore::TestObjV8Internal::attrWithSetterExceptionAttrSetterCallback):
3018         (WebCore::TestObjV8Internal::stringAttrWithGetterExceptionAttrSetterCallback):
3019         (WebCore::TestObjV8Internal::stringAttrWithSetterExceptionAttrSetterCallback):
3020         (WebCore::TestObjV8Internal::customAttrAttrSetterCallback):
3021         (WebCore::TestObjV8Internal::withScriptStateAttributeAttrSetterCallback):
3022         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeAttrSetterCallback):
3023         (WebCore::TestObjV8Internal::withScriptStateAttributeRaisesAttrSetterCallback):
3024         (WebCore::TestObjV8Internal::withScriptExecutionContextAttributeRaisesAttrSetterCallback):
3025         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeAttrSetterCallback):
3026         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetterCallback):
3027         (WebCore::TestObjV8Internal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetterCallback):
3028         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetterCallback):
3029         (WebCore::TestObjV8Internal::conditionalAttr1AttrSetterCallback):
3030         (WebCore::TestObjV8Internal::conditionalAttr2AttrSetterCallback):
3031         (WebCore::TestObjV8Internal::conditionalAttr3AttrSetterCallback):
3032         (WebCore::TestObjV8Internal::anyAttributeAttrSetterCallback):
3033         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr1AttrSetterCallback):
3034         (WebCore::TestObjV8Internal::enabledAtRuntimeAttr2AttrSetterCallback):
3035         (WebCore::TestObjV8Internal::enabledPerContextAttr1AttrSetterCallback):
3036         (WebCore::TestObjV8Internal::enabledPerContextAttr2AttrSetterCallback):
3037         (WebCore::TestObjV8Internal::floatArrayAttrSetterCallback):
3038         (WebCore::TestObjV8Internal::doubleArrayAttrSetterCallback):
3039         (WebCore::TestObjV8Internal::mutablePointAttrSetterCallback):
3040         (WebCore::TestObjV8Internal::immutablePointAttrSetterCallback):
3041         (WebCore::TestObjV8Internal::strawberryAttrSetterCallback):
3042         (WebCore::TestObjV8Internal::strictFloatAttrSetterCallback):
3043         (WebCore::TestObjV8Internal::idAttrSetterCallback):
3044         (WebCore):
3045         (WebCore::ConfigureV8TestObjTemplate):
3046         (WebCore::V8TestObj::installPerContextProperties):
3047         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3048         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetterCallback):
3049         (TestSerializedScriptValueInterfaceV8Internal):
3050         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetterCallback):
3051         (WebCore):
3052         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
3053         (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetterCallback):
3054         (TestTypedefsV8Internal):
3055         (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetterCallback):
3056         (WebCore::TestTypedefsV8Internal::attrWithGetterExceptionAttrSetterCallback):
3057         (WebCore::TestTypedefsV8Internal::attrWithSetterExceptionAttrSetterCallback):
3058         (WebCore::TestTypedefsV8Internal::stringAttrWithGetterExceptionAttrSetterCallback):
3059         (WebCore::TestTypedefsV8Internal::stringAttrWithSetterExceptionAttrSetterCallback):
3060         (WebCore):
3061
3062 2013-02-25  Adam Barth  <abarth@webkit.org>
3063
3064         Build fix for Debug.
3065
3066         * html/parser/HTMLDocumentParser.cpp:
3067         (WebCore::HTMLDocumentParser::startBackgroundParser):
3068
3069 2013-02-25  Adam Barth  <abarth@webkit.org>
3070
3071         6% regression in intl1 page cycler on chromium-mac
3072         https://bugs.webkit.org/show_bug.cgi?id=110784
3073
3074         Reviewed by Eric Seidel.
3075
3076         This patch attempts to heal the regression by reverting all the changes
3077         to the preload scanner up to (and including)
3078         http://trac.webkit.org/changeset/143020/.
3079
3080         * html/parser/BackgroundHTMLParser.cpp:
3081         (WebCore::BackgroundHTMLParser::resumeFrom):
3082         (WebCore::BackgroundHTMLParser::pumpTokenizer):
3083         (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
3084         * html/parser/CSSPreloadScanner.cpp:
3085         (WebCore::CSSPreloadScanner::scan):
3086         (WebCore::CSSPreloadScanner::emitRule):
3087         * html/parser/CSSPreloadScanner.h:
3088         (CSSPreloadScanner):
3089         * html/parser/HTMLPreloadScanner.cpp:
3090         (WebCore::isStartTag):
3091         (WebCore):
3092         (WebCore::isStartOrEndTag):
3093         (WebCore::TokenPreloadScanner::identifierFor):
3094         (WebCore::TokenPreloadScanner::inititatorFor):
3095         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
3096         (WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
3097         (WebCore::TokenPreloadScanner::processPossibleTemplateTag):
3098         (WebCore::TokenPreloadScanner::processPossibleStyleTag):
3099         (WebCore::TokenPreloadScanner::processPossibleBaseTag):
3100         (WebCore::TokenPreloadScanner::scan):
3101         (WebCore::HTMLPreloadScanner::scan):
3102         * html/parser/HTMLPreloadScanner.h:
3103         (TokenPreloadScanner):
3104
3105 2013-02-25  Mark Lam  <mark.lam@apple.com>
3106
3107         Changed DatabaseTracker::getMaxSizeForDatabase() to return the previous
3108         database size instead of 0 when the quota limit has been reached.
3109         https://bugs.webkit.org/show_bug.cgi?id=110557.
3110
3111         Reviewed by Geoffrey Garen.
3112
3113         Testing of concurrent multi-process consumption of database quota shows that
3114         returning a value of 0 when the quota is exceeded still allows some databases
3115         to run away with unbounded growth. However, if getMaxSizeForDatabase() returns
3116         the existing database size, the underlying sqlite3 database will successfully
3117         reject new growth.
3118
3119         The value returned by DatabaseTracker::getMaxSizeForDatabase() is used to set
3120         the SQLite3 database size using a sql command "PRAGMA max_page_count = <size>".
3121         The SQLite3 documentation on this pragma says, "The maximum page count cannot
3122         be reduced below the current database size."
3123
3124         It is undefined what setting it to a reduced size will do. So, we're changing
3125         getMaxSizeForDatabase() to return the existing size instead.
3126
3127         No new tests.
3128
3129         * Modules/webdatabase/DatabaseTracker.cpp:
3130         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
3131
3132 2013-02-25  Tony Chang  <tony@chromium.org>
3133
3134         Refactor logic for relaying out children out of RenderBlock::styleDidChange
3135         https://bugs.webkit.org/show_bug.cgi?id=110661
3136
3137         Reviewed by David Hyatt.
3138
3139         Instead of having styleDidChange need to know which children to mark as needing layout,
3140         use a bool to keep track of border and padding width changes so at layout time, we know
3141         we need to set relayoutChildren=true.
3142
3143         We steal a bit from m_lineHeight reducing the possible line height from around 500 million pixels
3144         to 250 million pixels.
3145
3146         No new tests, this should be covered by fast/block/positioning/border-change-relayout-test.html and
3147         fast/block/dynamic-padding-border.html.
3148
3149         * rendering/RenderBlock.cpp:
3150         (WebCore::RenderBlock::RenderBlock): Fix indent and initialize m_hasBorderOrPaddingLogicalWidthChanged.
3151         (WebCore::RenderBlock::styleDidChange): Remove logic for setting children as needing layout.
3152         (WebCore::RenderBlock::updateLogicalWidthAndColumnWidth): Return true if border or padding width changed.
3153         * rendering/RenderBlock.h:
3154         (RenderBlock): Steal a bit from m_lineHeight and give it to m_hasBorderOrPaddingLogicalWidthChanged.
3155
3156 2013-02-25  Alexis Menard  <alexis@webkit.org>
3157
3158         transition-property property doesn't accept "all, <IDENT>".
3159         https://bugs.webkit.org/show_bug.cgi?id=110074
3160
3161         Reviewed by Dean Jackson.
3162
3163         http://dev.w3.org/csswg/css3-transitions/#transition-property-property
3164         allows all, <IDENT> as a value for the transition-property property. In
3165         fact thanks to http://trac.webkit.org/changeset/143019 we correctly
3166         implemented that behavior for transition shorthand property while
3167         fixing bugs on the previous implementation. We did introduce a
3168         AnimationParseContext to track whether the parsing of the
3169         transition-property was finished or not in relation to the keyword.
3170         This patch extend that mechanism to the longhand by renaming the
3171         boolean and the functions to use it in the context class and set it
3172         correctly while parsing the longhand property.
3173
3174         Test: LayoutTests/transitions/transitions-parsing.html
3175
3176         * css/CSSParser.cpp:
3177         (WebCore::AnimationParseContext::AnimationParseContext):
3178         (WebCore::AnimationParseContext::commitAnimationPropertyKeyword):
3179         (WebCore::AnimationParseContext::animationPropertyKeywordAllowed):
3180         (AnimationParseContext):
3181         (WebCore::CSSParser::parseAnimationShorthand):
3182         (WebCore::CSSParser::parseTransitionShorthand):
3183         (WebCore::CSSParser::parseAnimationProperty): We can remove the
3184         condition inShorthand() here, if 'none' is parsed then no more keyword
3185         can appear, if 'all' is parsed then we can continue the parsing but
3186         invalidate the property if another keyword is encountered. These
3187         conditions are valid for the shorthand and the longhand.
3188
3189 2013-02-25  No'am Rosenthal  <noam@webkit.org>
3190
3191         [Texmap] LayoutTests/compositing/animation/state-at-end-event-transform-layer.html shows a red square where it shouldn't
3192         https://bugs.webkit.org/show_bug.cgi?id=110685
3193
3194         Reviewed by Martin Robinson.
3195
3196         Removed m_shouldUpdateCurrentTransformFromGraphicsLayer etc., as they don't do
3197         what they're supposed to do. No flickers observed.
3198
3199         LayoutTests/compositing/animation/state-at-end-event-transform-layer.html now works correctly.
3200
3201         * platform/graphics/texmap/TextureMapperLayer.cpp:
3202         (WebCore::TextureMapperLayer::setAnimatedTransform):
3203         (WebCore::TextureMapperLayer::setAnimatedOpacity):
3204         (WebCore::TextureMapperLayer::setAnimatedFilters):
3205         (WebCore::TextureMapperLayer::syncAnimations):
3206         * platform/graphics/texmap/TextureMapperLayer.h:
3207         (WebCore::TextureMapperLayer::TextureMapperLayer):
3208         (TextureMapperLayer):
3209
3210 2013-02-25  Jer Noble  <jer.noble@apple.com>
3211
3212         AVFoundation.framework and QTKit.framework are lazy-loaded on every WebProcess launch
3213         https://bugs.webkit.org/show_bug.cgi?id=110725
3214
3215         Reviewed by Eric Carlson.
3216
3217         When settings are changed, do not re-query the media engines (which causes their respective
3218         frameworks to load). Instead, merely clear any previously loaded media engines so that
3219         the media engine list will be re-queried the next time installedMediaEngines() is called.
3220
3221         (WebCore::MediaPlayer::resetMediaEngines): Renamed from requeryMediaEngines.
3222         * platform/graphics/MediaPlayer.h:
3223         * html/HTMLMediaElement.cpp:
3224         (WebCore::HTMLMediaElement::resetMediaEngines): Ditto.
3225         * html/HTMLMediaElement.h:
3226         * page/Settings.cpp:
3227         (WebCore::Settings::setAVFoundationEnabled): Call renamed method.
3228         (WebCore::Settings::setQTKitEnabled):  Ditto.
3229         * platform/graphics/MediaPlayer.cpp:
3230         (WebCore::installedMediaEngines): Only clear out previously queried engines.
3231
3232 2013-02-25  Martin Robinson  <mrobinson@igalia.com>
3233
3234         Try to fix the Windows gyp build after r143937
3235
3236         * WebCore.gypi: Update the filename in the source list.
3237
3238 2013-02-25  Julien Chaffraix  <jchaffraix@webkit.org>
3239
3240         [CSS Grid Layout] Refactor RenderStyle's grid position storage in preparation to supporting spanning
3241         https://bugs.webkit.org/show_bug.cgi?id=110651
3242
3243         Reviewed by Ojan Vafai.
3244
3245         The current code stores grid-{row|column} as a single GridPosition value. While this works well currently,
3246         we want to be able to handle 2 GridPosition as this enables row / column spanning.
3247
3248         That's what this refactoring achieves: it replaces the internal storage by a GridPositions that contains a 
3249         single GridPosition for now. The rest is mechanical updates.
3250
3251         Refactoring covered by existing tests.
3252
3253         * css/CSSComputedStyleDeclaration.cpp:
3254         (WebCore::valueForGridPositions):
3255         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3256         Added the simple wrapper valueForGridPositions and updated the rest of the code.
3257
3258         * css/StyleResolver.cpp:
3259         (WebCore::createGridPositions):
3260         (WebCore::StyleResolver::applyProperty):
3261         Ditto with createGridPositions.
3262
3263         * rendering/RenderGrid.cpp:
3264         (WebCore::RenderGrid::maximumIndexInDirection):
3265         (WebCore::RenderGrid::placeItemsOnGrid):
3266         (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
3267         (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
3268         (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
3269         (WebCore::RenderGrid::autoPlacementMajorAxisPositionsForChild):
3270         (WebCore::RenderGrid::autoPlacementMinorAxisPositionsForChild):
3271         Updated the code after adding the indirection: s/GridPosition/GridPositions/ and
3272         use the firstPosition helper.
3273
3274         * rendering/RenderGrid.h:
3275         * rendering/style/GridPosition.h:
3276         (WebCore::GridPositions::GridPositions):
3277         (WebCore::GridPositions::firstPosition):
3278         (WebCore::GridPositions::operator==):
3279         Added this class to add the indirection. For now, it only wraps the single GridPosition.
3280
3281         * rendering/style/RenderStyle.h:
3282         * rendering/style/StyleGridItemData.h:
3283         Updated to store / take / return a GridPositions.
3284
3285 2013-02-25  Dimitri Glazkov  <dglazkov@chromium.org>
3286
3287         Revert r143840 because it caused flaky crashes.
3288         https://bugs.webkit.org/show_bug.cgi?id=110766
3289
3290 2013-02-25  Alexey Proskuryakov  <ap@apple.com>
3291
3292         Remove an obsolete workaround for relaxing 3rd party cookie policy
3293         https://bugs.webkit.org/show_bug.cgi?id=110664
3294
3295         Reviewed by Benjamin Poulain.
3296
3297         Removed shouldRelaxThirdPartyCookiePolicy(). This workaround is no longer needed,
3298         because CFNetwork performs the same check starting with 10.6.8.
3299
3300         Also, the workaround was not quite correct and harmful for performance, as it
3301         was always changing main document URL to an untrue value, which caused ResourceRequest
3302         regeneration.
3303
3304         * platform/network/ResourceHandle.h:
3305         * platform/network/cf/ResourceHandleCFNet.cpp:
3306         (WebCore::ResourceHandle::createCFURLConnection):
3307         (WebCore::ResourceHandle::start):
3308         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
3309         * platform/network/mac/ResourceHandleMac.mm:
3310         (WebCore::ResourceHandle::createNSURLConnection):
3311         (WebCore::ResourceHandle::start):
3312         (WebCore::ResourceHandle::platformLoadResourceSynchronously):
3313
3314 2013-02-25  Vsevolod Vlasov  <vsevik@chromium.org>
3315
3316         WebInspector: Do not keep track of resources unless they have a valid loader identifier.
3317         https://bugs.webkit.org/show_bug.cgi?id=110761
3318
3319         Reviewed by Pavel Feldman.
3320
3321         * inspector/NetworkResourcesData.cpp:
3322         (WebCore::NetworkResourcesData::responseReceived):
3323         (WebCore::NetworkResourcesData::setResourceType):
3324         (WebCore::NetworkResourcesData::resourceType):
3325         (WebCore::NetworkResourcesData::setResourceContent):
3326         (WebCore::NetworkResourcesData::maybeAddResourceData):
3327         (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
3328         (WebCore::NetworkResourcesData::addCachedResource):
3329         (WebCore::NetworkResourcesData::addResourceSharedBuffer):
3330         (WebCore::NetworkResourcesData::data):
3331         (WebCore::NetworkResourcesData::xhrReplayData):
3332         (WebCore::NetworkResourcesData::setXHRReplayData):
3333         (WebCore::NetworkResourcesData::reuseXHRReplayData):
3334         (WebCore::NetworkResourcesData::resourceDataForRequestId):
3335         (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
3336         (WebCore::NetworkResourcesData::ensureFreeSpace):
3337         * inspector/NetworkResourcesData.h:
3338         (NetworkResourcesData):
3339
3340 2013-02-25  Mariusz Grzegorczyk  <mariusz.g@samsung.com>
3341
3342         [EFL][GTK] Move text selection/focus notification for a11y from gtk to atk directory
3343         https://bugs.webkit.org/show_bug.cgi?id=110221
3344
3345         Reviewed by Martin Robinson.
3346
3347         Share implementation between efl and gtk.
3348         Update build with changes made.
3349
3350         * GNUmakefile.list.am: Change WebCore/editing/gtk/FrameSelectionGtk.cpp to WebCore/editing/atk/FrameSelectionAtk.cpp to build.
3351         * PlatformEfl.cmake: Add WebCore/editing/atk to include directories, add Webcore/editing/atk/FrameSelectionAtk.cpp to build.
3352         * editing/FrameSelection.h: Omit notifyAccessibilityForSelectionChange() stub for EFL port.
3353         (WebCore):
3354         * editing/atk/FrameSelectionAtk.cpp: Renamed from Source/WebCore/editing/gtk/FrameSelectionGtk.cpp.
3355         (WebCore):
3356         (WebCore::emitTextSelectionChange):
3357         (WebCore::maybeEmitTextFocusChange):
3358         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
3359
3360 2013-02-25  Alpha Lam  <hclam@chromium.org>
3361
3362         GIFImageReader to read from source data directly
3363         https://bugs.webkit.org/show_bug.cgi?id=109662
3364
3365         Reviewed by Stephen White.
3366
3367         This is the first patch to improve GIF image decoding.
3368
3369         GIFImageReader has an internal 256 bytes buffer to saving incoming
3370         bytes. This mechanism is out-dated because WebKit holds the entire
3371         file in memory and it is not necessary to hold data in an intermediate
3372         buffer.
3373
3374         This is also a blocker for later work to parse and decode GIF
3375         incrementally.
3376
3377         This change removed the imtermediate 'hold' buffer and uses an index
3378         for data position to keep track of parsing of the GIF file. Buffer for
3379         global colormap and local colormap are also removed because they can be
3380         referenced from the data stream.
3381
3382         This change is tested by:
3383
3384         Layout tests
3385         All tests passed under fast/images.
3386
3387         Unit tests
3388         Added GIFImageDecoderTest for Chromium.
3389
3390         Local testing
3391         I tested this implementation against a set of 50k GIF images and
3392         there's no crashes and produces bit-exact results as previous code.
3393
3394         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3395         (WebCore::GIFImageDecoder::setData):
3396         (WebCore::GIFImageDecoder::frameCount):
3397         (WebCore::GIFImageDecoder::haveDecodedRow):
3398         (WebCore::GIFImageDecoder::decode):
3399         * platform/image-decoders/gif/GIFImageReader.cpp:
3400         (GIFImageReader::doLZW):
3401         (GIFImageReader::decode):
3402         (GIFImageReader::decodeInternal):
3403         (GIFImageReader::setRemainingBytes):
3404         * platform/image-decoders/gif/GIFImageReader.h:
3405         (GIFFrameContext):
3406         (GIFFrameContext::GIFFrameContext):
3407         (GIFFrameContext::~GIFFrameContext):
3408         (GIFImageReader::GIFImageReader):
3409         (GIFImageReader::~GIFImageReader):
3410         (GIFImageReader::setData):
3411         (GIFImageReader):
3412         (GIFImageReader::globalColormap):
3413         (GIFImageReader::localColormap):
3414         (GIFImageReader::localColormapSize):
3415         (GIFImageReader::data):
3416         (GIFImageReader::colormap):
3417
3418 2013-02-25  Sergio Villar Senin  <svillar@igalia.com>
3419
3420         [soup] "Too many redirects" error loading chat in plus.google.com
3421         https://bugs.webkit.org/show_bug.cgi?id=64575
3422
3423         Reviewed by Martin Robinson.
3424
3425         Set the firstPartyForCookies for the new request on redirects to
3426         the URL used for redirection.
3427
3428         Test: http/tests/cookies/set-cookie-on-redirect.html
3429
3430         * platform/network/soup/ResourceHandleSoup.cpp:
3431         (WebCore::doRedirect):
3432
3433 2013-02-25  Andreas Kling  <akling@apple.com>
3434
3435         Reduce amount of code that includes StylePropertySet.h
3436         <http://webkit.org/b/101149>
3437
3438         Reviewed by Antti Koivisto.
3439
3440         StylePropertySet.h and dependents were getting included by the majority of WebKit
3441         through either StyledElement.h or CSSStyleDeclaration.h. This change removes those includes
3442         and moves inclusion to .cpp files instead. After this change, it's possible to hack most
3443         of WebCore/css/ and rebuild <100 files instead of >1000.
3444
3445         The only real code change&n