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