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