[REGRESSION] Layout Test webaudio/biquad-getFrequencyResponse.html is failing
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-09-24  Chris Rogers  <crogers@google.com>
2
3         [REGRESSION] Layout Test webaudio/biquad-getFrequencyResponse.html is failing
4         https://bugs.webkit.org/show_bug.cgi?id=97439
5
6         Reviewed by Kenneth Russell.
7
8         Fixes uninitialized member variable.
9
10         This should fix flaky failing test: webaudio/biquad-getFrequencyResponse.html
11
12         * Modules/webaudio/BiquadProcessor.cpp:
13         (WebCore::BiquadProcessor::BiquadProcessor):
14
15 2012-09-24  Tony Chang  <tony@chromium.org>
16
17         flex-grow should be 1 when omitted from flex shorthand
18         https://bugs.webkit.org/show_bug.cgi?id=97480
19
20         Reviewed by Ojan Vafai.
21
22         We were using 0, based on an outdated version of the spec.
23
24         Tests: css3/flexbox/flex-property-parsing.html
25                css3/flexbox/flex-algorithm.html: New test case.
26
27         * css/CSSParser.cpp:
28         (WebCore::CSSParser::parseFlex):
29
30 2012-09-24  Benjamin Poulain  <benjamin@webkit.org>
31
32         Add support for query encoding to WTFURL
33         https://bugs.webkit.org/show_bug.cgi?id=97422
34
35         Reviewed by Adam Barth.
36
37         Add the Charset conversion on WebCore side.
38
39         * platform/KURLWTFURL.cpp:
40         (WebCore::KURL::KURL):
41         (CharsetConverter):
42         (WebCore::CharsetConverter::CharsetConverter):
43         * platform/mac/KURLMac.mm:
44         (WebCore::KURL::KURL):
45
46 2012-09-24  Benjamin Poulain  <benjamin@webkit.org>
47
48         Integrate most of GoogleURL in WTFURL
49         https://bugs.webkit.org/show_bug.cgi?id=97405
50
51         Reviewed by Adam Barth.
52
53         Loosen KURLWTFURL to be able to run most tests in Debug.
54
55         * platform/KURLWTFURL.cpp:
56         (WebCore::KURL::KURL):
57         (WebCore::KURL::hasPort):
58         (WebCore::KURL::user):
59         (WebCore::KURL::pass):
60         (WebCore::KURL::hasPath):
61         (WebCore::KURL::path):
62         (WebCore::KURL::query):
63         (WebCore::KURL::fragmentIdentifier):
64         (WebCore::KURL::fileSystemPath):
65
66 2012-09-24  Hans Muller  <hmuller@adobe.com>
67
68         [CSS Exclusions] ExclusionShape API should use logical coordinates for input/output
69         https://bugs.webkit.org/show_bug.cgi?id=96156
70
71         Reviewed by Dirk Schulze.
72
73         Correct how ExclusionShapes deal with logical coordinates and enable
74         shape-inside exclusion layout for vertical writing-modes.
75
76         BasicShape's are defined in physical cooordinates, incoming line and box
77         dimensions are logical coordinates, and the ExclusionShape internals assume
78         that lines are aligned with the Y axis. The createExclusionShape() method
79         is responsible for converting the BasicShape to the internal coordinate
80         system when the writing-mode is vertical. Similarly, the getInclude,ExcludedIntervals()
81         methods are responsible for converting their logical line parameters to Y
82         values in the internal coordinate system. The min,maxYForLogicalLine()
83         methods do the conversion, based on the WritingMode the ExclusionShape
84         was created with. The getInclude,ExcludedIntervals() methods return the
85         logical left and right edges of line segments. No transformation is needed for this.
86
87         The ExclusionShape's internal coordinate system is essentially the
88         "logical" one, except that top/bottom always map to Y, no matter what
89         the writing-mode is.  This is just to simplify writing geometrical shape
90         algorithms, notably the complex ones for polygons. The bug report includes a
91         pair of diagrams that clarify how internal coordinates are related to logical
92         and physical coordinates.
93
94         Test: fast/exclusions/shape-inside/shape-inside-vertical-text.html
95
96         * rendering/ExclusionRectangle.cpp:
97         (WebCore::ExclusionRectangle::getExcludedIntervals): rename more accurately reflects return value
98         (WebCore::ExclusionRectangle::getIncludedIntervals): rename for consistency with "excluded" version
99         * rendering/ExclusionRectangle.h:
100         * rendering/ExclusionShape.cpp:
101         (WebCore):
102         (WebCore::ExclusionShape::createExclusionShape):
103         * rendering/ExclusionShape.h:
104         (LineSegment):
105         (WebCore::LineSegment::LineSegment): relocated from WrapShapeInfo.h
106         (WebCore):
107         (ExclusionShape):
108         (WebCore::ExclusionShape::minYForLogicalLine):
109         (WebCore::ExclusionShape::maxYForLogicalLine):
110         (WebCore::ExclusionShape::internalToLogicalBoundingBox):
111         * rendering/WrapShapeInfo.cpp:
112         (WebCore::WrapShapeInfo::isWrapShapeInfoEnabledForRenderBlock):
113         (WebCore::WrapShapeInfo::computeShapeSize): pass writingMode to createExclusionShape()
114         (WebCore::WrapShapeInfo::computeSegmentsForLine): removed short-circuit for vertical writing-modes
115         * rendering/WrapShapeInfo.h:
116         (WebCore):
117
118 2012-09-24  Tony Chang  <tony@chromium.org>
119
120         Replace RenderMeter::updateLogicalHeight to RenderMeter::computeLogicalHeight
121         https://bugs.webkit.org/show_bug.cgi?id=97475
122
123         Reviewed by Ojan Vafai.
124
125         Using RenderMeter::computeLogicalHeight is part of bug 96804.
126         Also fix some code to be vertical writing mode aware. This doesn't actually cause
127         a behavioral difference because we use percentage heights/widths which don't depend on
128         updateLogicalWidth or computeLogicalHeight.  You can still see bugs if you try to set
129         the min-width on a <meter> node in a vertical writing mode.
130
131         No new tests, no behavioral changes.
132
133         * rendering/RenderMeter.cpp:
134         (WebCore::RenderMeter::updateLogicalWidth): Make vertical writing mode aware.
135         (WebCore::RenderMeter::computeLogicalHeight): Switch from updateLogicalHeight and make vertical writing mode aware.
136         * rendering/RenderMeter.h:
137         (RenderMeter):
138
139 2012-09-24  Dimitri Glazkov  <dglazkov@chromium.org>
140
141         Remove unbaked support for :scope pseudo-class.
142         https://bugs.webkit.org/show_bug.cgi?id=97467
143
144         Reviewed by Antti Koivisto.
145
146         It turns out, the Selectors 4 require ":scope" to match contextual reference element set, which would be the root node in querySelector:
147         http://dev.w3.org/csswg/selectors4/#the-scope-pseudo
148
149         Right now, we simply make ":scope" equivalent to ":root", which is not correct. Let's remove the partial implementation until we have
150         time/energy to fully implement it.
151
152         No new tests, removing half-baked feature.
153
154         * css/CSSSelector.cpp:
155         (WebCore::CSSSelector::pseudoId): Removed all mentions of PseudoScope
156         (WebCore::nameToPseudoTypeMap): Ditto.
157         (WebCore::CSSSelector::extractPseudoType): Ditto.
158         * css/CSSSelector.h: Ditto.
159         * css/SelectorChecker.cpp:
160         (WebCore::SelectorChecker::checkOneSelector): Ditto.
161
162 2012-09-24  Ryosuke Niwa  <rniwa@webkit.org>
163
164         suspend/resumeWidgetHierarchyUpdates should be a RAII object
165         https://bugs.webkit.org/show_bug.cgi?id=96706
166
167         Reviewed by Simon Fraser.
168
169         Replaced suspendWidgetHierarchyUpdates and resumeWidgetHierarchyUpdates by WidgetHierarchyUpdatesSuspensionScope.
170
171         * WebCore.exp.in: Export new symbols.
172         * dom/ContainerNode.cpp:
173         (WebCore::ContainerNode::removeChild):
174         (WebCore::ContainerNode::removeChildren):
175         * dom/Document.cpp:
176         (WebCore::Document::recalcStyle):
177         * dom/Element.cpp:
178         (WebCore::Element::attach):
179         (WebCore::Element::detach):
180         * page/mac/EventHandlerMac.mm:
181         (WebCore::EventHandler::passMouseDownEventToWidget):
182         * rendering/RenderWidget.cpp:
183         (WebCore):
184         (WebCore::WidgetHierarchyUpdatesSuspensionScope::widgetNewParentMap):
185         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
186         (WebCore::moveWidgetToParentSoon):
187         * rendering/RenderWidget.h:
188         (WidgetHierarchyUpdatesSuspensionScope):
189         (WebCore::WidgetHierarchyUpdatesSuspensionScope::WidgetHierarchyUpdatesSuspensionScope):
190         (WebCore::WidgetHierarchyUpdatesSuspensionScope::~WidgetHierarchyUpdatesSuspensionScope):
191         (WebCore::WidgetHierarchyUpdatesSuspensionScope::isSuspended):
192         (WebCore::WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove):
193         (WebCore):
194         (RenderWidget):
195
196 2012-09-24  Otto Derek Cheung  <otcheung@rim.com>
197
198         [BlackBerry] Reverting implementation for 407 error pages
199         https://bugs.webkit.org/show_bug.cgi?id=97455
200
201         Reviewed by Rob Buis.
202
203         Revert "[BlackBerry] Show custom error page when 407 is received"
204         This reverts commit e6d14529428fe47916fcb997528095b8acad2f2b.
205
206         * platform/network/blackberry/NetworkJob.cpp:
207         (WebCore::NetworkJob::handleNotifyStatusReceived):
208         (WebCore::NetworkJob::notifyAuthReceived):
209         (WebCore::NetworkJob::sendRequestWithCredentials):
210
211 2012-09-24  Sheriff Bot  <webkit.review.bot@gmail.com>
212
213         Unreviewed, rolling out r129388.
214         http://trac.webkit.org/changeset/129388
215         https://bugs.webkit.org/show_bug.cgi?id=97477
216
217         Caused an assertion in a WebKit2 unit test (Requested by
218         abarth on #webkit).
219
220         * WebCore.exp.in:
221         * loader/FrameLoader.cpp:
222         (WebCore::FrameLoader::didBeginDocument):
223         * loader/SubresourceLoader.cpp:
224         (WebCore::SubresourceLoader::willSendRequest):
225         * loader/cache/CachedImage.cpp:
226         * loader/cache/CachedImage.h:
227         (WebCore::CachedImage::stillNeedsLoad):
228         (CachedImage):
229         * loader/cache/CachedResource.cpp:
230         (WebCore::CachedResource::didAddClient):
231         * loader/cache/CachedResource.h:
232         (WebCore):
233         * loader/cache/CachedResourceLoader.cpp:
234         (WebCore::CachedResourceLoader::CachedResourceLoader):
235         (WebCore::CachedResourceLoader::requestImage):
236         (WebCore::CachedResourceLoader::canRequest):
237         (WebCore::CachedResourceLoader::requestResource):
238         (WebCore::CachedResourceLoader::revalidateResource):
239         (WebCore::CachedResourceLoader::loadResource):
240         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
241         (WebCore::CachedResourceLoader::setAutoLoadImages):
242         * loader/cache/CachedResourceLoader.h:
243         (CachedResourceLoader):
244         * page/Settings.cpp:
245         (WebCore::setLoadsImagesAutomaticallyInAllFrames):
246         (WebCore::Settings::Settings):
247         (WebCore::Settings::setLoadsImagesAutomatically):
248         (WebCore::Settings::loadsImagesAutomaticallyTimerFired):
249         (WebCore::Settings::setImagesEnabled):
250         * page/Settings.h:
251         (Settings):
252         * testing/InternalSettings.cpp:
253         (WebCore::InternalSettings::Backup::Backup):
254         (WebCore::InternalSettings::Backup::restoreTo):
255         * testing/InternalSettings.h:
256         (Backup):
257         (InternalSettings):
258         * testing/InternalSettings.idl:
259
260 2012-09-24  Erik Arvidsson  <arv@chromium.org>
261
262         DOM4 remove method
263         https://bugs.webkit.org/show_bug.cgi?id=73885
264
265         Reviewed by Ojan Vafai.
266
267         This adds the DOM 4 remove method.
268         
269         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-childnode-remove
270         
271         The remove method removes the node from its parent if it has a parent.
272
273         Tests: fast/dom/Comment/remove.html
274                fast/dom/DocumentType/remove.html
275                fast/dom/Element/remove.html
276                fast/dom/Text/remove.html
277
278         * dom/CharacterData.idl:
279         * dom/DocumentType.idl:
280         * dom/Element.idl:
281         * dom/Node.cpp:
282         (WebCore::Node::remove): The spec says to do nothing if the node has no parent.
283         * html/parser/HTMLTreeBuilder.cpp:
284         (WebCore::HTMLTreeBuilder::processStartTagForInBody): Cleanup.
285         * html/track/TextTrackCue.cpp:
286         (WebCore::TextTrackCue::removeDisplayTree): No need to check parenNode twice.
287
288 2012-09-24  Tommy Widenflycht  <tommyw@google.com>
289
290         MediaStream API: Fix the incorrectly spelled RTCPeerConnection::onnegotiationneeded callback
291         https://bugs.webkit.org/show_bug.cgi?id=97456
292
293         Reviewed by Adam Barth.
294
295         Renamed onnegotationneeded to onnegotiationneeded.
296
297         Existing test updated. 
298
299         * Modules/mediastream/RTCPeerConnection.cpp:
300         (WebCore::RTCPeerConnection::negotiationNeeded):
301         * Modules/mediastream/RTCPeerConnection.h:
302         (RTCPeerConnection):
303         * Modules/mediastream/RTCPeerConnection.idl:
304         * dom/EventNames.h:
305         (WebCore):
306
307 2012-09-24  Peter Beverloo  <peter@chromium.org>
308
309         Android's mock scrollbars shows up as a difference in layout test results
310         https://bugs.webkit.org/show_bug.cgi?id=96382
311
312         Reviewed by Adam Barth.
313
314         Remove the exceptions made for layout tests in Android's scrollbar theme.
315         This will make our actual scrollbars show up in layout test pixel results,
316         bringing the tests closer to what we actually ship.
317
318         An important difference with other platforms is that scrollbars do not
319         take any width on Android, they're rendered on top of the content. Therefore
320         each test that has a visible scrollbar does not just need a new pixel
321         result, but will also need a new text result. This will be handled as part
322         of a larger rebaselining process.
323
324         Will be exercised by every layout test that has a scrollbar.
325
326         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
327         (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
328         (WebCore::ScrollbarThemeChromiumAndroid::usesOverlayScrollbars):
329         (WebCore::ScrollbarThemeChromiumAndroid::hasThumb):
330         * platform/chromium/ScrollbarThemeChromiumAndroid.h:
331         (ScrollbarThemeChromiumAndroid):
332
333 2012-09-24  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
334
335         [BlackBerry] Basic authentication challenge credentials for stored credentials again after restarting browser
336         https://bugs.webkit.org/show_bug.cgi?id=96362
337
338         Reviewed by Rob Buis.
339
340         Fix a mistake of the commit 11fdc73c7c74bbd736ed4160248ff59636a01864
341         Trunk has been changed during reviewing that patch.
342
343         No new tests, this is to correct a build error.
344
345         * platform/network/blackberry/CredentialBackingStore.cpp:
346         (WebCore::CredentialBackingStore::getProtectionSpace):
347
348 2012-09-24  Dan Bernstein  <mitz@apple.com>
349
350         Reverted r129176, the fix for <http://webkit.org/b/97269>, because it introduced a
351         discrepancy between line breaking and max width computation.
352
353         Rubber-stamped by Anders Carlsson.
354
355         * platform/graphics/mac/ComplexTextController.cpp:
356         (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
357
358 2012-09-24  Bo Liu  <boliu@chromium.org>
359
360         Reland "Add in-place reload behavior to ImagesEnabled setting" with optimizations
361         https://bugs.webkit.org/show_bug.cgi?id=97055
362
363         Reviewed by Adam Barth.
364
365         Relanding 128780, 128676, 128645. Was reverted in 128914 due to
366         performance regression in Chromium.
367
368         New changes in addition to previously reverted patches:
369
370         Refactored CachedResource::requestResource, loadResource, and
371         revalidateResource. Moved CachedResource::load method to end of
372         requestResource so there is one place where load is called for all
373         resources.
374
375         Added a enum parameter for requestResource and
376         determineRevalidationPolicy so that FrameLoaderClient::allowImage call
377         do not need to be called multiple times.
378
379         Removed CachedImage::load call in requestImage so it is not called
380         twice.
381
382         Removed unnecessary Frame.h includes in CachedResource and
383         CachedImage.
384
385         Removed dead load() method declaration in CachedImage.
386
387         Updated text expectation for two image-permissions tests to reflect
388         the removed calls to allowImage.
389
390         Tests: fast/loader/display-image-unset-allows-cached-image-load.html
391                fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html
392                fast/loader/images-enabled-unset-can-block-image-and-can-reload-in-place.html
393
394         * WebCore.exp.in:
395         * loader/FrameLoader.cpp:
396         (WebCore::FrameLoader::didBeginDocument):
397         * loader/SubresourceLoader.cpp:
398         (WebCore::SubresourceLoader::willSendRequest):
399         * loader/cache/CachedImage.cpp:
400         * loader/cache/CachedImage.h:
401         * loader/cache/CachedResource.cpp:
402         (WebCore::CachedResource::didAddClient):
403         * loader/cache/CachedResource.h:
404         (WebCore):
405         (WebCore::CachedResource::stillNeedsLoad):
406         * loader/cache/CachedResourceLoader.cpp:
407         (WebCore::CachedResourceLoader::CachedResourceLoader):
408         (WebCore::CachedResourceLoader::requestImage):
409         (WebCore::CachedResourceLoader::canRequest):
410         (WebCore::CachedResourceLoader::requestResource):
411         (WebCore::CachedResourceLoader::revalidateResource):
412         (WebCore::CachedResourceLoader::loadResource):
413         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
414         (WebCore::CachedResourceLoader::setAutoLoadImages):
415         (WebCore):
416         (WebCore::CachedResourceLoader::setImagesEnabled):
417         (WebCore::CachedResourceLoader::clientDefersImage):
418         (WebCore::CachedResourceLoader::shouldDeferImageLoad):
419         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
420         * loader/cache/CachedResourceLoader.h:
421         (CachedResourceLoader):
422         * page/Settings.cpp:
423         (WebCore::setImageLoadingSettings):
424         (WebCore::Settings::Settings):
425         (WebCore::Settings::setLoadsImagesAutomatically):
426         (WebCore::Settings::imageLoadingSettingsTimerFired):
427         (WebCore::Settings::setImagesEnabled):
428         * page/Settings.h:
429         (Settings):
430         * testing/InternalSettings.cpp:
431         (WebCore::InternalSettings::Backup::Backup):
432         (WebCore::InternalSettings::Backup::restoreTo):
433         (WebCore::InternalSettings::setImagesEnabled):
434         (WebCore):
435         * testing/InternalSettings.h:
436         (Backup):
437         (InternalSettings):
438         * testing/InternalSettings.idl:
439
440 2012-09-24  Joone Hur  <joone.hur@intel.com>, Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
441
442         [GTK] Implement GraphicsLayer using Clutter
443         https://bugs.webkit.org/show_bug.cgi?id=73767
444
445         Reviewed by Martin Robinson.
446         
447         This patch is needed for enabling Accelerated Compositing(Clutter backend) 
448         with the patches submitted in bug 92045 and 91940.
449         
450         No new tests. This will be covered by pixel tests for Qt/GTK+ accelerated
451         compositing and 3D transforms.
452
453         * GNUmakefile.list.am:
454         * platform/clutter/GRefPtrClutter.cpp: Removed.
455         * platform/clutter/GRefPtrClutter.h: Removed.
456         * platform/graphics/clutter/PlatformClutterLayerClient.h: Added.
457         (WebCore):
458         (PlatformClutterLayerClient):
459         (WebCore::PlatformClutterLayerClient::~PlatformClutterLayerClient):
460         * platform/graphics/clutter/TransformationMatrixClutter.cpp: Added to convert CoglMatrix to 
461         TransformationMatrix.
462         (WebCore):
463         (WebCore::TransformationMatrix::operator CoglMatrix):
464         * platform/graphics/transforms/TransformationMatrix.h:
465         (TransformationMatrix):
466
467 2012-09-24  David Grogan  <dgrogan@chromium.org>
468
469         Unprefix IndexedDB
470         https://bugs.webkit.org/show_bug.cgi?id=96548
471
472         Reviewed by Adam Barth.
473
474         We are largely compatible with the FF implementation and the w3c test
475         suite submitted by MS. The w3c test suite doesn't yet check
476         for lack of prefix; this is mostly to signal to devs that we think our
477         implementation is stable.
478
479         This patch uses the new FeatureObserver to get data about prefixed
480         vs unprefixed usage.
481
482         Tests: storage/indexeddb/unprefix-workers.html
483                storage/indexeddb/unprefix.html
484
485         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
486         (WebCore::DOMWindowIndexedDatabase::indexedDB):
487         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
488         (DOMWindowIndexedDatabase):
489         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
490         * Modules/indexeddb/WorkerContextIndexedDatabase.cpp:
491         (WebCore::WorkerContextIndexedDatabase::indexedDB):
492         * Modules/indexeddb/WorkerContextIndexedDatabase.h:
493         (WorkerContextIndexedDatabase):
494         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
495         * bindings/generic/RuntimeEnabledFeatures.h:
496         Making the auxiliary objects RuntimeEnabled didn't make much sense as
497         they are useless without the factory, so always enable them.
498
499         (WebCore::RuntimeEnabledFeatures::indexedDBEnabled):
500         * bindings/scripts/CodeGeneratorGObject.pm:
501         (SkipAttribute):
502         * page/FeatureObserver.h:
503
504 2012-09-24  Andrey Adaikin  <aandrey@chromium.org>
505
506         Web Inspector: [WebGL] First step towards 2D canvas instrumentation in injected script
507         https://bugs.webkit.org/show_bug.cgi?id=96746
508
509         Reviewed by Pavel Feldman.
510
511         First step towards the 2D canvas instrumentation from the WebGL injected script module side.
512         We trace and save all calls that affect the 2D canvas context state and it's resources (Gradient and Pattern)
513         so that we could replay the context and resources states later.
514         The 2D canvas context state consists of:
515         - current transformation matrix
516         - current default path
517         - current clipping region (affected by the "clip" command)
518         - current values of the context attributes (like strokeStyle, fillStyle, etc.)
519         - a stack of saved drawing states (affected by the "save" and "restore" commands)
520
521         * inspector/InjectedScriptCanvasModuleSource.js:
522         (.):
523
524 2012-09-24  Andrey Adaikin  <aandrey@chromium.org>
525
526         Web Inspector: [TextEditor] conditional breakpoint popup not showing up the first time
527         https://bugs.webkit.org/show_bug.cgi?id=97442
528
529         Reviewed by Pavel Feldman.
530
531         1) The conditional breakpoint popup may not show up the first time we click on the gutter.
532         This was the case because the popup decoration element would be deleted from the line while
533         it was being highlighted and appended afterwards. Now we do not remove decorations from the
534         DOM while highlighting.
535
536         2) Also the popup will close itself on any mouse click event, even if it's targeted to the
537         input box itself. This was due to pointer-events: none; CSS style for the parent element.
538         Now we just override this style for the input box.
539
540         * inspector/front-end/DefaultTextEditor.js:
541         (WebInspector.TextEditorMainPanel.prototype._paintLine):
542         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
543         (WebInspector.TextEditorMainPanel.prototype._insertTextNodeBefore):
544         * inspector/front-end/inspector.css:
545         (.source-frame-breakpoint-condition):
546
547 2012-09-24  Andrey Adaikin  <aandrey@chromium.org>
548
549         Web Inspector: [Canvas] set CanvasAgent in InstrumentingAgents upon calling enable command
550         https://bugs.webkit.org/show_bug.cgi?id=97331
551
552         Reviewed by Yury Semikhatsky.
553
554         We should set CanvasAgent in InstrumentingAgents from enable() command and remove from disable(), instead of doing this in constructor and destructor.
555
556         * inspector/InspectorCanvasAgent.cpp:
557         (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
558         (WebCore::InspectorCanvasAgent::~InspectorCanvasAgent):
559         (WebCore::InspectorCanvasAgent::restore):
560         (WebCore::InspectorCanvasAgent::enable):
561         (WebCore::InspectorCanvasAgent::disable):
562         * inspector/InspectorCanvasAgent.h:
563         (InspectorCanvasAgent):
564         * inspector/InspectorCanvasInstrumentation.h:
565         (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
566         (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
567
568 2012-09-24  Patrick Gansterer  <paroga@webkit.org>
569
570         Remove remaining WTF_DEPRECATED_STRING_OPERATORS from cpp files
571         https://bugs.webkit.org/show_bug.cgi?id=97412
572
573         Reviewed by Adam Barth.
574
575         * css/StylePropertySet.cpp: Removed useless define.
576
577 2012-09-20  Emil A Eklund  <eae@chromium.org>
578
579         snapToSize rounds the incorrectly for negative locations
580         https://bugs.webkit.org/show_bug.cgi?id=97265
581
582         Reviewed by Eric Seidel.
583
584         Change snapSizeToPixel to preserve sign for location which
585         affects rounding.
586
587         Test: fast/sub-pixel/snap-negative-location.html
588
589         * platform/FractionalLayoutUnit.h:
590         (WebCore::snapSizeToPixel):
591
592 2012-09-24  Jonathan Liu  <net147@gmail.com>
593
594         Use unsigned char for bitfield instead of unsigned.
595         https://bugs.webkit.org/show_bug.cgi?id=97447
596
597         Reviewed by Andreas Kling.
598
599         Not all compilers will pad an unsigned bitfield to the smallest size.
600         Use unsigned char instead of unsigned to reduce padding for compilers
601         that pad to the underlying type.
602
603         No new tests. There is already a compile-time assertion.
604
605         * css/CSSRule.cpp:
606         (SameSizeAsCSSRule):
607         * css/CSSRule.h:
608         (CSSRule):
609
610 2012-09-24  Peter Rybin  <peter.rybin@gmail.com>
611
612         Web Inspector: don't allow exception in front-end when expanding function scope
613         https://bugs.webkit.org/show_bug.cgi?id=97346
614
615         Reviewed by Yury Semikhatsky.
616
617         A missing guard condition is added.
618
619         * inspector/front-end/ObjectPropertiesSection.js:
620         (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate.didGetDetails):
621         (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
622
623 2012-09-24  Arvid Nilsson  <anilsson@rim.com>
624
625         [BlackBerry] Add cookie database API
626         https://bugs.webkit.org/show_bug.cgi?id=97102
627
628         Reviewed by Antonio Gomes.
629
630         Add a CookieManager method that takes a list of strings to parse
631         instead of just one string. Expose CookieParser::parseOneCookie.
632
633         Reviewed internally by Otto D. Cheung.
634
635         No change in behavior, no new tests.
636
637         * platform/blackberry/CookieManager.cpp:
638         (WebCore::CookieManager::setCookies):
639         (WebCore):
640         * platform/blackberry/CookieManager.h:
641         * platform/blackberry/CookieParser.cpp:
642         (WebCore::CookieParser::parseOneCookie):
643         (WebCore):
644         * platform/blackberry/CookieParser.h:
645         (CookieParser):
646
647 2012-09-24  Vsevolod Vlasov  <vsevik@chromium.org>
648
649         Web Inspector: Open resource dialog has too many false positive matches.
650         https://bugs.webkit.org/show_bug.cgi?id=97332
651
652         Reviewed by Alexander Pavlov.
653
654         Improved open resource dialog filtering to make the amount of false
655         positive search results less.
656
657         * inspector/front-end/FilteredItemSelectionDialog.js:
658         (WebInspector.FilteredItemSelectionDialog.prototype._innerCreateSearchRegExp):
659         (WebInspector.FilteredItemSelectionDialog.prototype._highlightItem.get var):
660         (WebInspector.FilteredItemSelectionDialog.prototype._highlightItem):
661
662 2012-09-24  Andrey Adaikin  <aandrey@chromium.org>
663
664         Web Inspector: [Canvas] support 2D canvas instrumentation from the inspector C++ code
665         https://bugs.webkit.org/show_bug.cgi?id=97203
666
667         Reviewed by Yury Semikhatsky.
668
669         Implements wrapping a 2D canvas context through the injected canvas module script facility.
670
671         * bindings/js/JSHTMLCanvasElementCustom.cpp:
672         (WebCore::JSHTMLCanvasElement::getContext):
673         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
674         (WebCore::V8HTMLCanvasElement::getContextCallback):
675         * inspector/InjectedScriptCanvasModule.cpp:
676         (WebCore::InjectedScriptCanvasModule::wrapCanvas2DContext):
677         (WebCore):
678         (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
679         (WebCore::InjectedScriptCanvasModule::callWrapContextFunction):
680         * inspector/InjectedScriptCanvasModule.h:
681         (InjectedScriptCanvasModule):
682         * inspector/InspectorCanvasAgent.cpp:
683         (WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
684         (WebCore):
685         * inspector/InspectorCanvasAgent.h:
686         (InspectorCanvasAgent):
687         * inspector/InspectorCanvasInstrumentation.h:
688         (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
689         (WebCore):
690         * inspector/InspectorInstrumentation.h:
691         (InspectorInstrumentation):
692
693 2012-09-24  Pavel Feldman  <pfeldman@chromium.org>
694
695         Web Inspector:EXC_BAD_ACCESS upon closing page with node highlighted
696         https://bugs.webkit.org/show_bug.cgi?id=97446
697
698         Reviewed by Alexander Pavlov.
699
700         Added 0 check on frame view.
701
702         * inspector/InspectorOverlay.cpp:
703         (WebCore::InspectorOverlay::update):
704
705 2012-09-21  Alexander Pavlov  <apavlov@chromium.org>
706
707         Web Inspector: [REGRESSION] Cmd-Shift-C doesn't enable element inspection mode when inspector hidden
708         https://bugs.webkit.org/show_bug.cgi?id=97249
709
710         Reviewed by Yury Semikhatsky.
711
712         Fix regression from r125871.
713
714         * inspector/front-end/InspectorFrontendAPI.js:
715         (InspectorFrontendAPI.enterInspectElementMode):
716         * inspector/front-end/inspector.js:
717         (WebInspector._createGlobalStatusBarItems):
718         (WebInspector.documentKeyDown):
719
720 2012-09-24  Alexander Pavlov  <apavlov@chromium.org>
721
722         Web Inspector: Disable persistence of master switches in the "Overrides" settings tab
723         https://bugs.webkit.org/show_bug.cgi?id=97440
724
725         Reviewed by Yury Semikhatsky.
726
727         Disables enforcement of device metrics, geolocation, and device orientation overrides on Web Inspector start.
728
729         * inspector/InspectorPageAgent.cpp:
730         (WebCore::InspectorPageAgent::restore):
731         * inspector/front-end/SettingsScreen.js:
732         (WebInspector.UserAgentSettingsTab.prototype._onMetricsCheckboxClicked):
733         (WebInspector.UserAgentSettingsTab.prototype._onGeolocationOverrideCheckboxClicked):
734         (WebInspector.UserAgentSettingsTab.prototype._onDeviceOrientationOverrideCheckboxClicked):
735         * inspector/front-end/UserAgentSupport.js:
736         (WebInspector.UserAgentSupport):
737         (WebInspector.UserAgentSupport.prototype.toggleDeviceMetricsOverride):
738         (WebInspector.UserAgentSupport.prototype.toggleGeolocationPositionOverride):
739         (WebInspector.UserAgentSupport.prototype.toggleDeviceOrientationOverride):
740         * inspector/front-end/externs.js:
741
742 2012-09-24  Vivek Galatage  <vivekgalatage@gmail.com>
743
744         Web Inspector: implement testing harness for pure protocol tests.
745         https://bugs.webkit.org/show_bug.cgi?id=90675
746
747         Reviewed by Yury Semikhatsky.
748
749         Implementing the testing harness as the APIs of Internals object not
750         only reduced platform specific patching of DRTs but also minimized the
751         the effort required to open up the new dummy inspector Frontend. 
752         
753         The openDummyInspectorFrontend method will return the handle to newly 
754         created DOMWindow. This DOMWindow object can be utilized inside the test 
755         case to communicate using postMessage WebAPI.
756         
757         The newly created DOMWindow will host the protocol-test.html which
758         will seed the necessary JS libraries to communicate with the
759         InspectorBackend.
760
761         Test: inspector-protocol/css-getSupportedCSSProperties.html
762
763         * WebCore.exp.in:
764         * WebCore.gypi:
765         * inspector/InspectorClient.h:
766         (InspectorClient):
767         * testing/Internals.cpp:
768         (InspectorFrontendClientDummy):
769         (WebCore::InspectorFrontendClientDummy::~InspectorFrontendClientDummy):
770         (WebCore):
771         (WebCore::InspectorFrontendClientDummy::InspectorFrontendClientDummy):
772         (InspectorFrontendChannelDummy):
773         (WebCore::InspectorFrontendChannelDummy::~InspectorFrontendChannelDummy):
774         (WebCore::InspectorFrontendChannelDummy::InspectorFrontendChannelDummy):
775         (WebCore::InspectorFrontendChannelDummy::sendMessageToFrontend):
776         (WebCore::Internals::consoleMessageArgumentCounts):
777         (WebCore::Internals::openDummyInspectorFrontend):
778         (WebCore::Internals::closeDummyInspectorFrontend):
779         * testing/Internals.h:
780         (WebCore):
781         (Internals):
782         * testing/Internals.idl:
783
784 2012-09-24  Keishi Hattori  <keishi@webkit.org>
785
786         REGRESSION(r127727): Calendar picker focus doesn't loop in calendar-picker.html
787         https://bugs.webkit.org/show_bug.cgi?id=97183
788
789         Reviewed by Kent Tamura.
790
791         Fixing bug calendar-picker.html. The page popup behaves fine because
792         this code is only necessary in calendar-picker.html where the focus can
793         move outside of the picker because we are just using an iframe.
794
795         No new tests. Added tests to calendar-picker-key-operations.html.
796
797         * Resources/pagepopups/calendarPicker.js:
798         (YearMonthController.prototype.attachTo):
799         (CalendarPicker.prototype._handleBodyKeyDown):
800
801 2012-09-24  Andrey Kosyakov  <caseq@chromium.org>
802
803         Unreviewed follow-up to r129336 -- fixed closure compiler warnings.
804
805         * inspector/front-end/HAREntry.js:
806         * inspector/front-end/TimelineModel.js:
807
808 2012-09-24  Andrey Adaikin  <aandrey@chromium.org>
809
810         Web Inspector: [TextEditor] Line numbers out of sync after closing breakpoint condition editor
811         https://bugs.webkit.org/show_bug.cgi?id=96510
812
813         Reviewed by Vsevolod Vlasov.
814
815         Sync line heights on adding/removing decorations.
816
817         * inspector/front-end/DefaultTextEditor.js:
818         (WebInspector.TextEditorGutterChunk):
819         (WebInspector.TextEditorGutterChunk.prototype.addDecoration):
820         (WebInspector.TextEditorGutterChunk.prototype.removeDecoration):
821         (WebInspector.TextEditorGutterChunk.prototype.set expanded):
822         (WebInspector.TextEditorGutterChunk.prototype.get height):
823         (WebInspector.TextEditorGutterChunk.prototype._createRow):
824         (WebInspector.TextEditorMainChunk.prototype.addDecoration):
825         (WebInspector.TextEditorMainChunk.prototype.removeDecoration):
826         (WebInspector.TextEditorMainChunk.prototype.removeAllDecorations):
827
828 2012-09-21  Andrey Kosyakov  <caseq@chromium.org>
829
830         Web Inspector: support saving HAR with resources content
831         https://bugs.webkit.org/show_bug.cgi?id=97341
832
833         Reviewed by Vsevolod Vlasov.
834
835         - add WebInspector.HARWriter that writes HAR with content to a stream;
836         - replace Save all as HAR with Save all with Content as HAR in network's panel context menu;
837         - remove entries for copying/saving of individual request items to reduce clutter in context menu;
838         - a drive-by fix of an exception when invoking context menu not on a network item;
839
840         Test: http/tests/inspector/network/har-content.html
841
842         * English.lproj/localizedStrings.js:
843         * inspector/front-end/FileUtils.js:
844         * inspector/front-end/HAREntry.js:
845         (WebInspector.HAREntry.prototype._buildPostData):
846         (WebInspector.HARLog.prototype.build):
847         (WebInspector.HARLog.prototype._creator):
848         (WebInspector.HARWriter):
849         (WebInspector.HARWriter.prototype.write):
850         (WebInspector.HARWriter.prototype._onContentAvailable):
851         (WebInspector.HARWriter.prototype._beginWrite):
852         (WebInspector.HARWriter.prototype._writeNextChunk):
853         * inspector/front-end/NetworkPanel.js:
854         (WebInspector.NetworkLogView.prototype.get statusBarItems):
855         (WebInspector.NetworkLogView.prototype._createStatusBarItems):
856         (WebInspector.NetworkLogView.prototype._contextMenu):
857         (WebInspector.NetworkLogView.prototype._exportAll.openCallback):
858         (WebInspector.NetworkLogView.prototype._exportAll):
859
860 2012-09-24  Nico Weber  <thakis@chromium.org>
861
862         [chromium] Remove BitLockerSkia. It's apparently not used.
863         https://bugs.webkit.org/show_bug.cgi?id=97434
864
865         Reviewed by Kent Tamura.
866
867         * platform/graphics/skia/BitLockerSkia.cpp: Removed.
868         * platform/graphics/skia/BitLockerSkia.h: Removed.
869
870 2012-09-24  Matt Falkenhagen  <falken@chromium.org>
871
872         Skeleton implementation of dialog.showModal()
873         https://bugs.webkit.org/show_bug.cgi?id=97425
874
875         Reviewed by Kent Tamura.
876
877         This adds a basic implementation of showModal(), so it later can be
878         used to test the top layer, once it is implemented. The main features
879         of showModal(), modality and the top layer, are not yet implemented.
880
881         Test: fast/dom/HTMLDialogElement/dialog-show-modal.html
882
883         * html/HTMLDialogElement.cpp:
884         (WebCore::HTMLDialogElement::showModal): The same as show(), but throws an error in the cases specified in the spec.
885         (WebCore):
886         * html/HTMLDialogElement.h:
887         (HTMLDialogElement):
888         * html/HTMLDialogElement.idl:
889
890 2012-09-24  Ryuan Choi  <ryuan.choi@samsung.com>
891
892         [EFL] Regression after r129328
893         https://bugs.webkit.org/show_bug.cgi?id=97429
894
895         Unreviewed, rolling out r129328.
896
897         * platform/efl/RenderThemeEfl.cpp:
898         (WebCore::RenderTheme::themeForPage):
899
900 2012-09-23  Ryuan Choi  <ryuan.choi@samsung.com>
901
902         [EFL] Duplicated RenderThemeEfl creation for same page
903         https://bugs.webkit.org/show_bug.cgi?id=88391
904
905         Reviewed by Gyuyoung Kim.
906
907         Other ports return one or two RenderTheme regardless of page.
908         But, WebKit/Efl can create different theme for each page and
909         themeForPage creates new RenderTheme whenever it is called with page.
910         So more than one RenderTheme can be created for a page.
911
912         This patches checks whether page already has RenderTheme not to create new
913         RenderTheme for same page.
914
915         * platform/efl/RenderThemeEfl.cpp:
916         (WebCore::RenderTheme::themeForPage):
917
918 2012-09-23  Keishi Hattori  <keishi@webkit.org>
919
920         Add suggestionPicker to CalendarPicker
921         https://bugs.webkit.org/show_bug.cgi?id=97201
922
923         Reviewed by Kent Tamura.
924
925         This adds the suggestionPicker to CalendarPicker. It is not available yet as a datalist UI but it can be used inside ManualTests/forms/calendar-picker.html.
926
927         No new tests. Suggestion Picker can be tested in ManualTests/forms/calendar-picker.html.
928
929         * Resources/pagepopups/calendarPicker.js:
930         (initialize):
931         (openSuggestionPicker):
932         * Resources/pagepopups/pickerCommon.js:
933         (enclosingNodeOrSelfWithClass):
934         * Resources/pagepopups/suggestionPicker.css: Added.
935         (.suggestion-list):
936         (.suggestion-list-entry):
937         (.suggestion-list-entry:focus):
938         (.suggestion-list-entry:focus .label):
939         (.suggestion-list-entry .content):
940         (.suggestion-list-entry .title):
941         (.suggestion-list-entry .label):
942         (.measuring-width .suggestion-list-entry .label):
943         (.suggestion-list .separator):
944         * Resources/pagepopups/suggestionPicker.js: Added.
945         (SuggestionPicker):
946         (SuggestionPicker.validateConfig):
947         (SuggestionPicker.prototype.cleanup):
948         (SuggestionPicker.prototype._setColors): Creates css rules that sets highlight colors.
949         (SuggestionPicker.prototype._createSuggestionEntryElement): Creates an entry that when selected submits the value.
950         (SuggestionPicker.prototype._createActionEntryElement): Creates an entry that causes an action. (e.x. "Other...")
951         (SuggestionPicker.prototype._measureMaxContentWidth): Temporarily left align everything to measure the width.
952         (SuggestionPicker.prototype._fixWindowSize):
953         (SuggestionPicker.prototype._layout):
954         (SuggestionPicker.prototype.selectEntry):
955         (SuggestionPicker.prototype._handleEntryClick):
956         (SuggestionPicker.prototype._findFirstVisibleEntry):
957         (SuggestionPicker.prototype._findLastVisibleEntry):
958         (SuggestionPicker.prototype._handleBodyKeyDown):
959         (SuggestionPicker.prototype._handleEntryMouseOver):
960         (SuggestionPicker.prototype._handleMouseOut):
961         * WebCore.gyp/WebCore.gyp:
962
963 2012-09-23  Andreas Kling  <kling@webkit.org>
964
965         REGRESSION(r128239): Mutable ElementAttributeData leak their Attribute vectors.
966         <http://webkit.org/b/97423>
967
968         Reviewed by Anders Carlsson.
969
970         r128239 added a WTF::deleteOwnedPtr() override for ElementAttributeData*, but ElementAttributeData is
971         a ref-counted object. Fixed this by overriding deref() instead to call the appropriate subclass destructor.
972
973         * dom/ElementAttributeData.h:
974         (WebCore::ElementAttributeData::deref):
975
976 2012-09-23  Byungwoo Lee  <bw80.lee@gmail.com>
977
978         Fix build warnings : -Wunused-parameter, -Wparentheses, -Wuninitialized.
979         https://bugs.webkit.org/show_bug.cgi?id=97306
980
981         Reviewed by Benjamin Poulain.
982
983         Fix build warning about -Wunused-parameter on ImageBufferCairo.cpp,
984         ImageDecoder.h by using ASSERT_UNUSED() macro.
985
986         * platform/graphics/cairo/ImageBufferCairo.cpp:
987         (WebCore::encodeImage):
988         * platform/image-decoders/ImageDecoder.h:
989         (WebCore::ImageDecoder::rgbColorProfile):
990         (WebCore::ImageDecoder::inputDeviceColorProfile):
991
992 2012-09-23  Andreas Kling  <kling@webkit.org>
993
994         Enable ElementAttributeData sharing for non-HTML elements.
995         <http://webkit.org/b/97413>
996
997         Reviewed by Anders Carlsson.
998
999         Use the whole qualified tag name when creating the ElementAttributeData cache key
1000         instead of just the localName(). This allows sharing and caching of attribute data
1001         for non-HTML elements and makes the code a little cleaner.
1002
1003         * dom/Element.cpp:
1004         (WebCore::Element::parserSetAttributes):
1005
1006             Enable the ElementAttributeData sharing path for non-HTML elements.
1007
1008         * dom/ElementAttributeData.h:
1009
1010             Make immutableAttributeArray() public so Document can call it instead of getting
1011             the raw data address from a const_cast'ed attributeItem(0).
1012
1013         * dom/Document.cpp:
1014         (WebCore::ImmutableAttributeDataCacheKey::ImmutableAttributeDataCacheKey):
1015         (WebCore::ImmutableAttributeDataCacheKey::operator!=):
1016         (WebCore::ImmutableAttributeDataCacheKey::hash):
1017         (ImmutableAttributeDataCacheKey):
1018         (WebCore::ImmutableAttributeDataCacheEntry::ImmutableAttributeDataCacheEntry):
1019         (ImmutableAttributeDataCacheEntry):
1020         (WebCore::Document::cachedImmutableAttributeData):
1021
1022             Let the immutable attribute data cache use a QualifiedName/attributes key
1023             instead of the AtomicString/attributes we were using before. We still grab the
1024             existingHash() from the QualifiedName::localName() and use that for the actual
1025             HashMap key.
1026
1027 2012-09-23  Mike West  <mkwst@chromium.org>
1028
1029         Measure the usage of the "X-WebKit-CSP" header in the hopes of dropping the prefix completely.
1030         https://bugs.webkit.org/show_bug.cgi?id=97408
1031
1032         Reviewed by Adam Barth.
1033
1034         We plan on landing the unprefixed header in webkit.org/b/96765 once the
1035         spec moves to CR. Though we plan to use it for experimentation in the
1036         near future, we'll want to drop the prefixed header completely at some
1037         point in the future. Starting to measure its usage now will give us a
1038         good baseline when we start contemplating that decision.
1039
1040         No new functionality, so no new tests.
1041
1042         * page/ContentSecurityPolicy.cpp:
1043         (WebCore::ContentSecurityPolicy::didReceiveHeader):
1044         * page/FeatureObserver.h:
1045
1046 2012-09-22  Dominic Mazzoni  <dmazzoni@google.com>
1047
1048         AX: Layout tests would be easier to write if AccessibilityController could find an element by id
1049         https://bugs.webkit.org/show_bug.cgi?id=97301
1050
1051         Reviewed by Chris Fleizach.
1052
1053         Add a method to get the DOM "id" attribute from an accessible object, only for layout tests.
1054
1055         Makes existing test more cross-platform:
1056         Tests: accessibility/aria-hidden-with-elements.html
1057
1058         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1059         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1060
1061 2012-09-22  Thierry Reding  <thierry.reding@avionic-design.de>
1062
1063         [GTK] Build is broken with GLib Unicode backend
1064         https://bugs.webkit.org/show_bug.cgi?id=97308.
1065
1066         Reviewed by Carlos Garcia Campos.
1067
1068         The TextBreakIteratorGtk implementation uses ubrk_close() to delete
1069         the iterator. However that function is ICU specific and not declared
1070         when using the GLib backend. Instead the iterator can simply be freed
1071         using the delete operator.
1072
1073         This commit is based on work by Martin Schlemmer who posted a fix for
1074         this here:
1075
1076             http://permalink.gmane.org/gmane.os.opendarwin.webkit.gtk/1210
1077
1078         No new tests.
1079
1080         * platform/text/gtk/TextBreakIteratorGtk.cpp:
1081         (WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator):
1082         Free iterator using delete instead of ubrk_close().
1083
1084 2012-09-21  Ami Fischman  <fischman@chromium.org>
1085
1086         HTMLMediaElement isn't garbage collected between document reloads
1087         https://bugs.webkit.org/show_bug.cgi?id=97020
1088
1089         Reviewed by Eric Carlson.
1090
1091         JS-created (as opposed to DOM-created) Audio nodes never got collected, because they
1092         appear to always hasPendingActivity(), because m_playing is never set to false.
1093
1094         Manual test added: ManualTests/audio-freed-during-reload.html
1095
1096         * html/HTMLMediaElement.cpp:
1097         (WebCore::HTMLMediaElement::stop): set m_playing = false; explicitly.
1098
1099 2012-09-21  Simon Fraser  <simon.fraser@apple.com>
1100
1101         RenderMarquee causes ASSERTION FAILED: enclosingIntRect(rendererMappedResult) == enclosingIntRect(FloatQuad(result).boundingBox()) : WebCore::FloatRect WebCore::RenderGeometryMap::absoluteRect(const WebCore::FloatRect &) const
1102         https://bugs.webkit.org/show_bug.cgi?id=92464
1103
1104         Reviewed by Sam Weinig.
1105
1106         Marquees could cause an updateCompositingLayersAfterScroll() to be called when
1107         we're in the middle of updating layer positions. updateCompositingLayersAfterScroll()
1108         does a full RenderLayer tree walk, but its use of RenderGeomeryMap reveals that
1109         it's using layers whose positions haven't been updated yet.
1110         
1111         Fix by avoiding the updateCompositingLayersAfterScroll() if we're in the process
1112         of updating a marquee when updating layer positions. We'll do a compositing update
1113         soon anyway.
1114
1115         Tested by fast/events/tabindex-focus-blur-all.html
1116
1117         * rendering/RenderLayer.cpp:
1118         (WebCore::RenderLayer::RenderLayer):
1119         (WebCore::RenderLayer::updateLayerPositions):
1120         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
1121         (WebCore::RenderLayer::scrollTo):
1122         * rendering/RenderLayer.h:
1123         (RenderLayer):
1124
1125 2012-09-21  Adam Klein  <adamk@chromium.org>
1126
1127         Remove bogus assertions from ChildListMutationScope
1128         https://bugs.webkit.org/show_bug.cgi?id=97372
1129
1130         Reviewed by Ryosuke Niwa.
1131
1132         Some asserts (and their accompanying comment) were trying to enforce
1133         proper usage of ChildListMutationScope from WebCore, but in the
1134         presence of MutationEvents they could fail due to arbitrary script
1135         execution.
1136
1137         This change gets rid of those asserts and adds tests exercising
1138         the (pre-existing) codepaths for handling these out-of-order cases.
1139         Without this patch, these tests ASSERT in debug builds.
1140
1141         Tests: fast/mutation/added-out-of-order.html
1142                fast/mutation/removed-out-of-order.html
1143
1144         * dom/ChildListMutationScope.cpp:
1145         (WebCore::ChildListMutationAccumulator::childAdded):
1146         (WebCore::ChildListMutationAccumulator::willRemoveChild):
1147         * dom/ChildListMutationScope.h:
1148         (WebCore):
1149
1150 2012-09-21  Dan Bernstein  <mitz@apple.com>
1151
1152         REGRESSION (r129176): Incorrect line breaking when kerning occurs between a space and the following character
1153         https://bugs.webkit.org/show_bug.cgi?id=97377
1154
1155         Reviewed by Enrica Casucci.
1156
1157         Test: fast/text/kerning-with-TextLayout.html
1158
1159         When kerning is enabled, the last character in a word may have its advance shortened because
1160         of its trailing space. To account for that, words are measured along with the trailing space,
1161         then the width of a space is subtracted from the result. This doesn’t work when the trailing
1162         space itself has its advance shortened due to the character following it, which can happen
1163         when using the TextLayout optimization. However, when the optimization is used, the advance
1164         of the last character of the word is already adjusted for the trailing space, so there is no
1165         need to measure with that space and subtract its advance.
1166
1167         * rendering/RenderBlockLineLayout.cpp:
1168         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Changed to not use the trailingSpaceWidth
1169         mechanism when TextLayout is being used.
1170
1171 2012-09-21  Adam Klein  <adamk@chromium.org>
1172
1173         Simplify and optimize ChildListMutationScope
1174         https://bugs.webkit.org/show_bug.cgi?id=97352
1175
1176         Reviewed by Ryosuke Niwa.
1177
1178         ChildListMutationScope is one of the most complicated bits of
1179         MutationObserver implementation. This patch aims to simplify it for
1180         clarity and improve its performance (mostly by just doing less).
1181
1182         The big change is to remove the MutationAccumulatorRouter class,
1183         replacing it with lifetime-management logic in ChildListMutationAccumulator
1184         ChildListMutationScope is expected to call getOrCreate() in
1185         its constructor, and each scope holds a RefPtr to the accumulator.
1186         When the last scope holding such a RefPtr is destroyed,
1187         ChildListMutationAccumulator's destructor enqueues the accumulated record.
1188
1189         This greatly reduces the number of lines of code, and condenses
1190         two HashMaps into one. It also reduces hash lookups, which now
1191         occur only on scope creation and when the refcount for a given
1192         accumulator reaches 0 (previously, each childAdded and willRemoveChild
1193         call could result in two hash lookups each).
1194
1195         There are some minor changes as well: the ChildListMutationAccumulator::clear()
1196         method is gone, as it was doing more work than necessary;
1197         DEFINE_STATIC_LOCAL is now used instead of hand-rolled static-management
1198         code; ChildListMutationAccumulator::m_lastAdded is no longer a RefPtr, since it
1199         always points at a Node that's already being ref'd by the accumulator.
1200         Also various minor syntactic cleanups.
1201
1202         No new tests, no change in behavior.
1203
1204         * dom/ChildListMutationScope.cpp:
1205         (WebCore::accumulatorMap): Reduced two maps to one, and manage its lifetime with DEFINE_STATIC_LOCAL.
1206         (WebCore::ChildListMutationAccumulator::ChildListMutationAccumulator): Remove unnecessary call to clear() (which itself has been removed).
1207         (WebCore::ChildListMutationAccumulator::~ChildListMutationAccumulator): Enqueue record if not empty at destruction, and have the accumulator
1208         remove itself from the map.
1209         (WebCore::ChildListMutationAccumulator::getOrCreate): Replaces half of MutationAccumulatorRouter's job.
1210         (WebCore::ChildListMutationAccumulator::childAdded): Minor RefPtr usage improvements.
1211         (WebCore::ChildListMutationAccumulator::isRemovedNodeInOrder): Simplify RefPtr syntax.
1212         (WebCore::ChildListMutationAccumulator::willRemoveChild): Minor RefPtr usage improvements.
1213         (WebCore::ChildListMutationAccumulator::enqueueMutationRecord): Replace call to clear() with clearing m_lastAdded,
1214         since it's the only bit not cleared by the MutationRecord creation call. Also remove
1215         isEmpty check and replace with asserts now that it's a private method.
1216         (WebCore::ChildListMutationAccumulator::isEmpty): Added more assertions about emptiness.
1217         * dom/ChildListMutationScope.h:
1218         (WebCore):
1219         (ChildListMutationAccumulator): Extract the inner class to make everything easier to read.
1220         (WebCore::ChildListMutationScope::ChildListMutationScope): Store m_accumulator rather than m_target.
1221         (WebCore::ChildListMutationScope::~ChildListMutationScope): ditto
1222         (WebCore::ChildListMutationScope::childAdded): ditto
1223         (WebCore::ChildListMutationScope::willRemoveChild): ditto
1224         (ChildListMutationScope):
1225         * html/HTMLElement.cpp: Remove unused ChildListMutationScope.h #include.
1226
1227 2012-09-21  Chris Rogers  <crogers@google.com>
1228
1229         BiquadFilterNode must take audio-rate parameter changes into account
1230         https://bugs.webkit.org/show_bug.cgi?id=97369
1231
1232         Reviewed by Kenneth Russell.
1233
1234         BiquadFilterNode is currently ignoring any timeline or audio-rate changes to its parameters.
1235         We now check if any of its parameters have timeline or audio-rate changes and, if so, take
1236         them into account.  Otherwise, we use ordinary parameter smoothing/de-zippering which is
1237         the case when the parameters are adjusted, for example, from a knob or slider in the UI.
1238
1239         * Modules/webaudio/BiquadDSPKernel.cpp:
1240         (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
1241         * Modules/webaudio/BiquadProcessor.cpp:
1242         (WebCore::BiquadProcessor::checkForDirtyCoefficients):
1243         * Modules/webaudio/BiquadProcessor.h:
1244         (WebCore::BiquadProcessor::hasSampleAccurateValues):
1245         (BiquadProcessor):
1246
1247 2012-09-21  Brandon Jones  <bajones@google.com>
1248
1249         Add support for OES_vertex_array_object in chromium
1250         https://bugs.webkit.org/show_bug.cgi?id=96578
1251
1252         Reviewed by Kenneth Russell.
1253
1254         Adding basic reference counting to WebGLBuffer objects to satisfy spec requirements
1255         for the OES_vertex_array_object extension. Added code to allow calls to the
1256         OES_vertex_array_object extension to interface properly with the chromium WebGL
1257         implementation.
1258
1259         Test: fast/canvas/webgl/oes-vertex-array-object.html
1260
1261         * html/canvas/WebGLRenderingContext.cpp:
1262         (WebCore):
1263         (WebCore::WebGLRenderingContext::deleteBuffer):
1264         (WebCore::WebGLRenderingContext::vertexAttribPointer):
1265         * html/canvas/WebGLVertexArrayObjectOES.cpp:
1266         (WebCore::WebGLVertexArrayObjectOES::setElementArrayBuffer):
1267         (WebCore):
1268         * html/canvas/WebGLVertexArrayObjectOES.h:
1269         (WebGLVertexArrayObjectOES):
1270         (WebCore::WebGLVertexArrayObjectOES::getVertexAttribStateSize):
1271         * platform/chromium/support/Extensions3DChromium.cpp:
1272         (WebCore::Extensions3DChromium::createVertexArrayOES):
1273         (WebCore::Extensions3DChromium::deleteVertexArrayOES):
1274         (WebCore::Extensions3DChromium::isVertexArrayOES):
1275         (WebCore::Extensions3DChromium::bindVertexArrayOES):
1276
1277 2012-09-21  Kenichi Ishibashi  <bashi@chromium.org>
1278
1279         [Chromium] Use OpenTypeVerticalData on Linux
1280         https://bugs.webkit.org/show_bug.cgi?id=97277
1281
1282         Reviewed by Tony Chang.
1283
1284         Remove HarfBuzz dependency from GlyphPageTreeNodeSkia. Use OpenTypeVerticalData instead.
1285
1286         No new tests. Rebaselined existing tests.
1287
1288         * WebCore.gyp/WebCore.gyp: Added OpenTypeTypes.h and OpenTypeVerticalData.(cpp|h) for linux and android.
1289         * platform/graphics/FontCache.cpp:
1290         Inserted a space between > and > in typedef of FontVerticalDataCache so that making some compilers happy.
1291         (WebCore):
1292         * platform/graphics/SimpleFontData.h:
1293         (SimpleFontData): Moved declaration of m_verticalData to avoid compile warnings.
1294         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
1295         (WebCore):
1296         (WebCore::FontPlatformData::verticalData): Added.
1297         (WebCore::FontPlatformData::openTypeTable): Added.
1298         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
1299         (WebCore):
1300         (FontPlatformData):
1301         * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp: Removed substituteWithVerticalGlyphs().
1302         (WebCore::GlyphPage::fill):
1303
1304 2012-09-21  Jeremy Apthorp  <jeremya@chromium.org>
1305
1306         Crash in WebCore::Document::fullScreenChangeDelayTimerFired
1307         https://bugs.webkit.org/show_bug.cgi?id=97367
1308
1309         Reviewed by Abhishek Arya.
1310
1311         The document could be destroyed during the processing of the
1312         fullscreenchange event, if the document was destroyed as a result of
1313         one of the dispatchEvent calls.
1314
1315         This bug isn't reliably reproducible, so no new tests.
1316
1317         * dom/Document.cpp:
1318         (WebCore::Document::fullScreenChangeDelayTimerFired):
1319
1320 2012-09-21  Pratik Solanki  <psolanki@apple.com>
1321
1322         No need to pass order file for WebCoreTestSupport build
1323         https://bugs.webkit.org/show_bug.cgi?id=97363
1324
1325         Reviewed by David Kilzer.
1326
1327         No new tests because no functional change.
1328
1329         * Configurations/WebCoreTestSupport.xcconfig:
1330
1331 2012-09-21  Chris Rogers  <crogers@google.com>
1332
1333         Add Web Audio support for deprecated/legacy APIs
1334         https://bugs.webkit.org/show_bug.cgi?id=97050
1335
1336         Reviewed by Eric Carlson.
1337
1338         The Web Audio API specification has undergone much review and some small API changes
1339         have been made (mostly naming-related changes).  This patch adds an ENABLE_LEGACY_WEB_AUDIO
1340         build option to allow ports to support the old names.
1341
1342         Tests changed:
1343         audiobuffersource-playbackrate.html
1344         audiobuffersource.html
1345         note-grain-on-testing.js
1346         oscillator-testing.js
1347
1348         * Configurations/FeatureDefines.xcconfig:
1349         * GNUmakefile.features.am:
1350         * Modules/webaudio/AudioBufferSourceNode.cpp:
1351         (WebCore::AudioBufferSourceNode::startGrain):
1352         (WebCore):
1353         (WebCore::AudioBufferSourceNode::noteGrainOn):
1354         * Modules/webaudio/AudioBufferSourceNode.h:
1355         (AudioBufferSourceNode):
1356         * Modules/webaudio/AudioBufferSourceNode.idl:
1357         * Modules/webaudio/AudioScheduledSourceNode.cpp:
1358         (WebCore::AudioScheduledSourceNode::start):
1359         (WebCore::AudioScheduledSourceNode::stop):
1360         (WebCore):
1361         (WebCore::AudioScheduledSourceNode::noteOn):
1362         (WebCore::AudioScheduledSourceNode::noteOff):
1363         * Modules/webaudio/AudioScheduledSourceNode.h:
1364         * Modules/webaudio/Oscillator.idl:
1365         * page/FeatureObserver.h:
1366
1367 2012-09-21  Mark Pilgrim  <pilgrim@chromium.org>
1368
1369         [Chromium] remove getFontFamilyForCharacters from PlatformSupport
1370         https://bugs.webkit.org/show_bug.cgi?id=96282
1371
1372         Reviewed by Tony Chang.
1373
1374         Migrating away from PlatformSupport. getFontFamilyForCharacters is
1375         moved to FontCache.h and overridden by the two platforms that
1376         need it (Chromium Linux and Blackberry). New files for the overrides.
1377         Part of a larger refactoring series. See tracking bug 82948.
1378
1379         * PlatformBlackBerry.cmake:
1380         * WebCore.gypi:
1381         * platform/chromium/PlatformSupport.h:
1382         (PlatformSupport):
1383         * platform/graphics/FontCache.h:
1384         (SimpleFontFamily):
1385         (FontCache):
1386         * platform/graphics/blackberry/FontCacheBlackberry.cpp: Added.
1387         (WebCore):
1388         (WebCore::FontCache::getFontFamilyForCharacters):
1389         * platform/graphics/blackberry/skia/PlatformSupport.cpp:
1390         (WebCore):
1391         * platform/graphics/blackberry/skia/PlatformSupport.h:
1392         (PlatformSupport):
1393         * platform/graphics/chromium/FontCacheAndroid.cpp:
1394         (WebCore::FontCache::getFontDataForCharacters):
1395         * platform/graphics/chromium/FontCacheChromiumLinux.cpp: Added.
1396         (WebCore):
1397         (WebCore::FontCache::getFontFamilyForCharacters):
1398         * platform/graphics/skia/FontCacheSkia.cpp:
1399         (WebCore::FontCache::getFontDataForCharacters):
1400
1401 2012-09-21  Chris Fleizach  <cfleizach@apple.com>
1402
1403         AX: WebKit exposes incorrect bounds for embedded SVG in HTML
1404         https://bugs.webkit.org/show_bug.cgi?id=96168
1405
1406         Reviewed by Eric Seidel.
1407
1408         Override absoluteFocusRingQuads() for SVG objects because the default
1409         implementation relies on addFocusRingRects(). In addFocusRingRects(), SVG 
1410         objects adds local positions for its rects instead of absolute positions.
1411
1412         Test: accessibility/svg-bounds.html
1413
1414         * rendering/RenderObject.h:
1415         (RenderObject):
1416         * rendering/svg/RenderSVGModelObject.cpp:
1417         (WebCore):
1418         (WebCore::RenderSVGModelObject::absoluteFocusRingQuads):
1419         * rendering/svg/RenderSVGModelObject.h:
1420         (RenderSVGModelObject):
1421
1422 2012-09-21  Lianghui Chen  <liachen@rim.com>
1423
1424         [BlackBerry] Really fix bug 95488 that user can get the authentication challenge dialog while the other tab has focus.
1425         https://bugs.webkit.org/show_bug.cgi?id=97348
1426         Internal PR: 186597.
1427
1428         Internally reviewed by Yong Li, Joe Mason.
1429         Reviewed by Yong Li.
1430
1431         Add a singleton AuthenticationChallengeManager to manage authentication
1432         challenge dialog. It does following things:
1433         Record page creation/deletion, so it knows what page is present or not.
1434         Record page visibility change so it knows when to display a dialog or not.
1435         Accept authentication challenge, and decide whether to postpone the
1436             challenge dialog based on whether there is active authentication challenge
1437             dialog already and whether its page is visible or not.
1438         When a challenge result comes back, notify the result to all clients
1439             authenticating for the same protection space, and then start the next
1440             authentication challenge from the same page, if there is one.
1441         When a page becomes visible, start the first authentication challenge
1442             dialog that has been blocked before.
1443
1444         And to support this new AuthenticationChallengeManager, and making the
1445             challenge really asynchronous, NetworkJob has been updated to support
1446             the concept of "freeze", which means buffering all network loading status
1447             change but don't send them to NetworkJob clients.
1448         This is necessary when authentication challenge is asynchronous, as the
1449             previous network loading status will likely come before user make any
1450             decision.
1451
1452         No new tests for platform specific internal change.
1453
1454         * PlatformBlackBerry.cmake:
1455         * platform/blackberry/AuthenticationChallengeManager.cpp: Added.
1456         (WebCore):
1457         (ChallengeInfo):
1458         (WebCore::ChallengeInfo::ChallengeInfo):
1459         (AuthenticationChallengeManagerPrivate):
1460         (WebCore::AuthenticationChallengeManagerPrivate::AuthenticationChallengeManagerPrivate):
1461         (WebCore::AuthenticationChallengeManagerPrivate::resumeAuthenticationChallenge):
1462         (WebCore::AuthenticationChallengeManagerPrivate::startAuthenticationChallenge):
1463         (WebCore::AuthenticationChallengeManagerPrivate::pageExists):
1464         (WebCore::AuthenticationChallengeManager::AuthenticationChallengeManager):
1465         (WebCore::AuthenticationChallengeManager::pageCreated):
1466         (WebCore::AuthenticationChallengeManager::pageDeleted):
1467         (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
1468         (WebCore::AuthenticationChallengeManager::authenticationChallenge):
1469         (WebCore::AuthenticationChallengeManager::cancelAuthenticationChallenge):
1470         (WebCore::AuthenticationChallengeManager::notifyChallengeResult):
1471         (WebCore::AuthenticationChallengeManager::instance):
1472         (WebCore::AuthenticationChallengeManager::init):
1473         * platform/blackberry/AuthenticationChallengeManager.h:
1474         (WebCore):
1475         (AuthenticationChallengeManager):
1476         * platform/blackberry/PageClientBlackBerry.h:
1477         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
1478         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1479         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
1480         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
1481         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
1482         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
1483         (MediaPlayerPrivate):
1484         * platform/network/blackberry/NetworkJob.cpp:
1485         (WebCore::NetworkJob::NetworkJob):
1486         (WebCore::NetworkJob::~NetworkJob):
1487         (WebCore):
1488         (WebCore::NetworkJob::handleNotifyStatusReceived):
1489         (WebCore::NetworkJob::handleNotifyClose):
1490         (WebCore::NetworkJob::sendRequestWithCredentials):
1491         (WebCore::NetworkJob::notifyChallengeResult):
1492         * platform/network/blackberry/NetworkJob.h:
1493         (NetworkJob):
1494
1495 2012-09-21  Simon Hausmann  <simon.hausmann@digia.com>
1496
1497         Unreviewed, rolling out r129248.
1498         http://trac.webkit.org/changeset/129248
1499         https://bugs.webkit.org/show_bug.cgi?id=96000
1500
1501         Broke win build
1502
1503         * Target.pri:
1504         * WebCore.vcproj/WebCore.vcproj:
1505         * rendering/RenderingAllInOne.cpp:
1506
1507 2012-09-21  Simon Hausmann  <simon.hausmann@nokia.com>
1508
1509         Make RenderingAllInOne.cpp usable for ports other than Apple/Win
1510         https://bugs.webkit.org/show_bug.cgi?id=96000
1511
1512         Reviewed by Ryosuke Niwa.
1513
1514         RenderingAllInOne.cpp unconditionally includes RenderThemeWin. This patch separates
1515         it out from the file.
1516
1517         * Target.pri: Add RenderingAllInOne.cpp to the list of supported all-in-one files.
1518         * WebCore.vcproj/WebCore.vcproj: Compile RenderThemeWin.cpp separately.
1519         * rendering/RenderingAllInOne.cpp: Don't include RenderThemeWin.cpp here.
1520
1521 2012-09-21  Joanmarie Diggs  <jdiggs@igalia.com>
1522
1523         REGRESSION (r127882): accessibility/spinbutton-value.html failing on GTK
1524         https://bugs.webkit.org/show_bug.cgi?id=96196
1525
1526         Reviewed by Martin Robinson.
1527
1528         The "regression" is that a new test was added but the support was missing
1529         in the Gtk port for spin buttons.
1530
1531         No new tests. Instead the new test which had been skipped was unskipped
1532         as part of this fix.
1533
1534         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
1535         (atkRole): Map SpinButtonRole to ATK_ROLE_SPIN_BUTTON
1536         (getInterfaceMaskFromObject): Add SpinButtonRole to the roles implementing
1537         the AtkValue interface.
1538
1539 2012-09-21  Joanmarie Diggs  <jdiggs@igalia.com>
1540
1541         [GTK] [Stable] Infinite recursion in WebCore::AXObjectCache::getOrCreate
1542         https://bugs.webkit.org/show_bug.cgi?id=96932
1543
1544         Reviewed by Martin Robinson.
1545
1546         Make the decision based on RenderObjects rather than AccessibilityObjects
1547         to avoid the infinite recursion which occurs when remapAriaRoleDueToParent
1548         gets called.
1549
1550         Test: platform/gtk/accessibility/remapped-aria-crash.html
1551
1552         * accessibility/gtk/AccessibilityObjectAtk.cpp:
1553         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
1554
1555 2012-09-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1556
1557         [BlackBerry] HTML5 media does not handle SSL certificate failures
1558         https://bugs.webkit.org/show_bug.cgi?id=93324
1559
1560         Reviewed by Eric Carlson.
1561
1562         RIM PR: 116205
1563         Passed FrameLoaderClientBlackBerry's playerId to MMRPlayer::load()
1564         because MMRPlayer::load() added playerId as a new parameter, which
1565         is required to initiate a MediaSSLHandlerStream to deal with
1566         certificate failure when loading a "https" media url.
1567
1568         Internally reviewed by Joe Mason <jmason@rim.com>.
1569
1570         No new tests since there's no functional change.
1571
1572         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
1573         (WebCore::MediaPlayerPrivate::load):
1574
1575 2012-09-21  Evan Wallace  <evan.exe@gmail.com>
1576
1577         [WebSocket] Receiving a large message is really slow
1578         https://bugs.webkit.org/show_bug.cgi?id=97237
1579
1580         Reviewed by Alexey Proskuryakov.
1581
1582         WebSocketChannel always reallocates its internal buffer when it receives
1583         and appends new data which causes dramatic slowdowns for messages over
1584         2 MB in size. This patch changes the internal buffer of WebSocketChannel
1585         from a raw char array to a Vector<char> and uses its amortized append()
1586         method. This brings the time to receive a 5 MB message from 5.2 seconds
1587         to 0.25 seconds.
1588
1589         This patch is only for optimization. No new tests are needed.
1590
1591         * Modules/websockets/WebSocketChannel.cpp:
1592         (WebCore::WebSocketChannel::WebSocketChannel):
1593         (WebCore::WebSocketChannel::~WebSocketChannel):
1594         (WebCore::WebSocketChannel::fail):
1595         (WebCore::WebSocketChannel::resume):
1596         (WebCore::WebSocketChannel::didReceiveSocketStreamData):
1597         (WebCore::WebSocketChannel::appendToBuffer):
1598         (WebCore::WebSocketChannel::skipBuffer):
1599         (WebCore::WebSocketChannel::processBuffer):
1600         (WebCore::WebSocketChannel::resumeTimerFired):
1601         (WebCore::WebSocketChannel::processFrame):
1602         * Modules/websockets/WebSocketChannel.h:
1603
1604 2012-09-21  Andrey Adaikin  <aandrey@chromium.org>
1605
1606         Fix build with ENABLE_WEBGL=false
1607         https://bugs.webkit.org/show_bug.cgi?id=97309
1608
1609         Reviewed by Eric Seidel.
1610
1611         WebKit no longer builds when WEBGL is not enabled.
1612
1613         * rendering/FilterEffectRenderer.h:
1614         (FilterEffectRenderer):
1615
1616 2012-09-21  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1617
1618         [BlackBerry] Media player won't resize for the following source when first source fail to load
1619         https://bugs.webkit.org/show_bug.cgi?id=97342
1620
1621         Reviewed by Yong Li.
1622
1623         As platformPlayer will notify MediaPlayerPrivate for size change
1624         when loading metadata failed (in this case hasVideo() is false),
1625         we should prevent MediaPlayerPrivate to set width and height
1626         attribute of media element, otherwise we won't get the correct
1627         dimension for the following media sources.
1628
1629         Internally reviewed by Max Feil.
1630
1631         Test case: media/video-size.html
1632
1633         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
1634         (WebCore::MediaPlayerPrivate::resizeSourceDimensions):
1635
1636 2012-09-21  Dan Bernstein  <mitz@apple.com>
1637
1638         REGRESSION (r126763): Incorrect line breaking when both kerning and word spacing are enabled
1639         https://bugs.webkit.org/show_bug.cgi?id=97280
1640
1641         Reviewed by Adele Peterson.
1642
1643         Font::width() never applies word spacing to the first character in the TextRun. The
1644         TextLayout optimization tried to achieve this behavior by not applying word spacing to
1645         any character, which led to this bug.
1646
1647         Test: fast/text/word-space-with-kerning-2.html
1648
1649         * platform/graphics/mac/ComplexTextController.cpp:
1650         (WebCore::TextLayout::TextLayout): Changed to use the given font rather than a version
1651         without word spacing.
1652         (WebCore::TextLayout::width): Added a check if the run starts with a space at a non-zero
1653         offset. If that is the case, then the ComplexTextController has added word spacing to that
1654         space, so subtract it here in order to maintain the behavior described above.
1655
1656 2012-09-21  Sheriff Bot  <webkit.review.bot@gmail.com>
1657
1658         Unreviewed, rolling out r129219.
1659         http://trac.webkit.org/changeset/129219
1660         https://bugs.webkit.org/show_bug.cgi?id=97338
1661
1662         Presumably broke Apple Mac compilation (Requested by yurys_ on
1663         #webkit).
1664
1665         * bindings/js/JSHTMLCanvasElementCustom.cpp:
1666         (WebCore::JSHTMLCanvasElement::getContext):
1667         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
1668         (WebCore::V8HTMLCanvasElement::getContextCallback):
1669         * inspector/InjectedScriptCanvasModule.cpp:
1670         (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
1671         (WebCore):
1672         * inspector/InjectedScriptCanvasModule.h:
1673         (InjectedScriptCanvasModule):
1674         * inspector/InspectorCanvasAgent.cpp:
1675         * inspector/InspectorCanvasAgent.h:
1676         * inspector/InspectorCanvasInstrumentation.h:
1677         * inspector/InspectorInstrumentation.h:
1678         (InspectorInstrumentation):
1679
1680 2012-09-21  Andrey Adaikin  <aandrey@chromium.org>
1681
1682         Web Inspector: [Canvas] support 2D canvas instrumentation from the inspector C++ code
1683         https://bugs.webkit.org/show_bug.cgi?id=97203
1684
1685         Reviewed by Yury Semikhatsky.
1686
1687         Implements wrapping a 2D canvas context through the injected canvas module script facility.
1688
1689         * bindings/js/JSHTMLCanvasElementCustom.cpp:
1690         (WebCore::JSHTMLCanvasElement::getContext):
1691         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
1692         (WebCore::V8HTMLCanvasElement::getContextCallback):
1693         * inspector/InjectedScriptCanvasModule.cpp:
1694         (WebCore::InjectedScriptCanvasModule::wrapCanvas2DContext):
1695         (WebCore):
1696         (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
1697         (WebCore::InjectedScriptCanvasModule::callWrapContextFunction):
1698         * inspector/InjectedScriptCanvasModule.h:
1699         (InjectedScriptCanvasModule):
1700         * inspector/InspectorCanvasAgent.cpp:
1701         (WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
1702         (WebCore):
1703         * inspector/InspectorCanvasAgent.h:
1704         (InspectorCanvasAgent):
1705         * inspector/InspectorCanvasInstrumentation.h:
1706         (WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
1707         (WebCore):
1708         * inspector/InspectorInstrumentation.h:
1709         (InspectorInstrumentation):
1710
1711 2012-09-20  Andrey Kosyakov  <caseq@chromium.org>
1712
1713         Web Inspector: [refactoring] simplify interface to FileOutputStream
1714         https://bugs.webkit.org/show_bug.cgi?id=97226
1715
1716         Reviewed by Yury Semikhatsky.
1717
1718         - change OutputStream interface to match that of stream;
1719         - fix OutputStream implementations (FileOutputStream and those in heap profiler);
1720         - fix usages in Timeline and HeapProfiler.
1721
1722         * inspector/front-end/FileUtils.js:
1723         (WebInspector.OutputStream.prototype.write):
1724         (WebInspector.OutputStream.prototype.close):
1725         (WebInspector.ChunkedFileReader.prototype.start):
1726         (WebInspector.ChunkedFileReader.prototype._onChunkLoaded):
1727         (WebInspector.ChunkedXHRReader.prototype.start):
1728         (WebInspector.ChunkedXHRReader.prototype._onProgress):
1729         (WebInspector.ChunkedXHRReader.prototype._onLoad):
1730         (WebInspector.FileOutputStream):
1731         (WebInspector.FileOutputStream.prototype.open.callbackWrapper):
1732         (WebInspector.FileOutputStream.prototype.open):
1733         (WebInspector.FileOutputStream.prototype.write):
1734         (WebInspector.FileOutputStream.prototype.close):
1735         (WebInspector.FileOutputStream.prototype._onAppendDone):
1736         * inspector/front-end/HeapSnapshotLoader.js:
1737         (WebInspector.HeapSnapshotLoader.prototype.close):
1738         (WebInspector.HeapSnapshotLoader.prototype.write):
1739         * inspector/front-end/HeapSnapshotProxy.js:
1740         (WebInspector.HeapSnapshotLoaderProxy.prototype.startTransfer):
1741         (WebInspector.HeapSnapshotLoaderProxy.prototype.write):
1742         (WebInspector.HeapSnapshotLoaderProxy.prototype.close):
1743         * inspector/front-end/HeapSnapshotView.js:
1744         (WebInspector.HeapProfileHeader):
1745         (WebInspector.HeapProfileHeader.prototype.load):
1746         (WebInspector.HeapProfileHeader.prototype._setupWorker):
1747         (WebInspector.HeapProfileHeader.prototype.dispose):
1748         (WebInspector.HeapProfileHeader.prototype.transferChunk.callback):
1749         (WebInspector.HeapProfileHeader.prototype.transferChunk):
1750         (WebInspector.HeapProfileHeader.prototype.finishHeapSnapshot):
1751         (WebInspector.HeapProfileHeader.prototype.saveToFile.onOpen):
1752         (WebInspector.HeapProfileHeader.prototype.saveToFile):
1753         * inspector/front-end/TimelineModel.js:
1754         (WebInspector.TimelineModel.prototype._createFileWriter):
1755         (WebInspector.TimelineModel.prototype.saveToFile.callback):
1756         (WebInspector.TimelineModel.prototype.saveToFile):
1757         (WebInspector.TimelineModelLoader):
1758         (WebInspector.TimelineModelLoader.prototype.write):
1759         (WebInspector.TimelineModelLoader.prototype.close):
1760         (WebInspector.TimelineSaver):
1761         (WebInspector.TimelineSaver.prototype.save):
1762         (WebInspector.TimelineSaver.prototype._writeNextChunk):
1763
1764 2012-09-21  Alexandru Chiculita  <achicu@adobe.com>
1765
1766         -webkit-clip-path is applied on elements that are not descendant of the container
1767         https://bugs.webkit.org/show_bug.cgi?id=97217
1768
1769         Reviewed by Dirk Schulze.
1770
1771         The clip-path was set on the GraphicsContext, but was never restored, thus making all the layers
1772         rendered in the same "group" of save/restore state use the same clip-path.
1773
1774         Test: css3/masking/clip-path-restore.html
1775
1776         * css/StyleResolver.cpp:
1777         (WebCore::StyleResolver::collectMatchingRulesForList):
1778         clip-path property should create a stacking-context, otherwise the RenderLayers will not be nested,
1779         meaning that the clip-path of the parent is not going to apply correctly.
1780
1781         * rendering/RenderLayer.cpp:
1782         (WebCore::RenderLayer::paintLayerContents):
1783
1784 2012-09-21  Kent Tamura  <tkent@chromium.org>
1785
1786         Remove unused functions of LocalizedDate.h
1787         https://bugs.webkit.org/show_bug.cgi?id=97311
1788
1789         Reviewed by Kentaro Hara.
1790
1791         WebCore::localizedTimeFormatText, WebCore::localizedShortTimeFormatText,
1792         and WebCore::timeAMPMLabels are not used any more because we switched to
1793         the corresponding functions of Localizer.
1794
1795         No new tests because of no behavior changes.
1796
1797         * platform/text/Localizer.h:
1798         (Localizer): Moved comments from LocalizedDate.h.
1799         * platform/text/LocalizedDate.h:
1800         (WebCore): Removed localizedTimeFormatText,
1801         localizedShortTimeFormatText, and timeAMPMLabels.
1802         * platform/text/LocalizedDateICU.cpp:
1803         (WebCore): ditto.
1804         * platform/text/LocalizedDateWin.cpp:
1805         (WebCore): ditto.
1806         * platform/text/mac/LocalizedDateMac.cpp:
1807         (WebCore): ditto.
1808
1809 2012-09-21  Keishi Hattori  <keishi@webkit.org>
1810
1811         Add datalist suggestions into DateTimeChooserParameters
1812         https://bugs.webkit.org/show_bug.cgi?id=97292
1813
1814         Reviewed by Kent Tamura.
1815
1816         We read datalist suggestions, add them to DateTimeChooserParameters,
1817         and pass them to the page popup.
1818
1819         No new tests. No behavior change yet.
1820
1821         * html/shadow/CalendarPickerElement.cpp:
1822         (WebCore::CalendarPickerElement::openPopup): Read datalist suggestions and add them to DateTimeChooserParameters
1823         * platform/DateTimeChooser.h:
1824         (DateTimeChooserParameters): Added localizedSuggestionValues so we can show localized values inside the page popup.
1825
1826 2012-09-21  Yoshifumi Inoue  <yosin@chromium.org>
1827
1828         [Forms] DateTimeEditElement::layout() should take date time format as a parameter
1829         https://bugs.webkit.org/show_bug.cgi?id=97300
1830
1831         Reviewed by Kent Tamura.
1832
1833         This patch introduces DateTimeEditElement::LayoutParameters struct for
1834         passing four parameters to DateTimeEditElement::layout() for passing
1835         date time format from client of DateTimeEditElement instead of
1836         DateTimeEditElement::layout() takes time or short time format.
1837
1838         This patch is a part of preparation of introducing multiple fields
1839         date/datetime/month/week input UI.
1840
1841         This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
1842         ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
1843
1844         No new tests. This patch doesn't change behavior.
1845
1846         * html/TimeInputType.cpp:
1847         (WebCore::TimeInputType::updateInnerTextValue): Changed to use LayoutParmeters.
1848         * html/shadow/DateTimeEditElement.cpp:  Removed unused include files, LocalizedDate.h and LocalizedNumber.h.
1849         (DateTimeEditBuilder):
1850         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Changed parameters to LayoutParmeters.
1851         (WebCore::DateTimeEditElement::LayoutParameters::shouldHaveSecondField): Moved from DateTimeEditBuilder::needSecondField().
1852         (WebCore::DateTimeEditElement::layout): Changed to take LayoutParameters.
1853         (WebCore::DateTimeEditElement::setValueAsDate): ditto
1854         (WebCore::DateTimeEditElement::setEmptyValue): ditto
1855         * html/shadow/DateTimeEditElement.h: Removed unused classe declarations DateComponents and DateTimeEditLayouter.
1856         (LayoutParameters):  Added to bundle parameters for layout().
1857         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Added.
1858
1859 2012-09-20  Pavel Feldman  <pfeldman@chromium.org>
1860
1861         Web Inspector: render grid scale to the right / at bottom in case box is close to 0 on that axis.
1862         https://bugs.webkit.org/show_bug.cgi?id=97219
1863
1864         Reviewed by Vsevolod Vlasov.
1865
1866         Otherwise, it is hard to inspect objects close to (0, 0)
1867
1868         * inspector/InspectorOverlayPage.html:
1869
1870 2012-09-21  Sheriff Bot  <webkit.review.bot@gmail.com>
1871
1872         Unreviewed, rolling out r129086.
1873         http://trac.webkit.org/changeset/129086
1874         https://bugs.webkit.org/show_bug.cgi?id=97312
1875
1876         Broke input rendering (Requested by shinyak on #webkit).
1877
1878         * html/BaseButtonInputType.cpp:
1879         (WebCore):
1880         * html/BaseButtonInputType.h:
1881         (WebCore::BaseButtonInputType::BaseButtonInputType):
1882         (BaseButtonInputType):
1883         * html/FileInputType.cpp:
1884         (WebCore::UploadButtonElement::create):
1885         (WebCore::UploadButtonElement::createForMultiple):
1886         * html/HTMLInputElement.cpp:
1887         (WebCore::HTMLInputElement::parseAttribute):
1888         * html/InputType.cpp:
1889         * html/InputType.h:
1890         (InputType):
1891         * rendering/RenderButton.cpp:
1892         (WebCore::RenderButton::RenderButton):
1893         (WebCore::RenderButton::styleDidChange):
1894         (WebCore::RenderButton::updateFromElement):
1895         (WebCore):
1896         (WebCore::RenderButton::setText):
1897         (WebCore::RenderButton::text):
1898         * rendering/RenderButton.h:
1899         (RenderButton):
1900
1901 2012-09-21  Kihong Kwon  <kihong.kwon@samsung.com>
1902
1903         Remove useless class prototypes from Vibration.h
1904         https://bugs.webkit.org/show_bug.cgi?id=97304
1905
1906         Reviewed by Kentaro Hara.
1907
1908         Remove two useless class prototype statements in the Vibration.h
1909
1910         * Modules/vibration/Vibration.h:
1911
1912 2012-09-21  Keishi Hattori  <keishi@webkit.org>
1913
1914         Prepare CalendarPicker so we can add another picker, SuggetionPicker
1915         https://bugs.webkit.org/show_bug.cgi?id=97193
1916
1917         Reviewed by Kent Tamura.
1918
1919         Preparation so we can add another picker to CalendarPicker and switch
1920         between them.
1921
1922         No new tests. No behavior change.
1923
1924         * Resources/pagepopups/calendarPicker.css:
1925         (.calendar-picker): Added so we can apply these styles just to calendar picker.
1926         * Resources/pagepopups/calendarPicker.js:
1927         (CalendarPicker.validateConfig): Renamed so each picker can validate the config object.
1928         (initialize):
1929         (closePicker): Call Picker.cleanup().
1930         (openCalendarPicker):
1931         (CalendarPicker):
1932         (CalendarPicker.prototype.cleanup): Cleanup event listener on document.body.
1933         * Resources/pagepopups/pickerCommon.js:
1934         (Picker.prototype.cleanup):
1935
1936 2012-09-20  John Mellor  <johnme@chromium.org>
1937
1938         Text Autosizing: Cluster text at flow roots, for consistency and to avoid autosizing headers/footers.
1939         https://bugs.webkit.org/show_bug.cgi?id=97025
1940
1941         Reviewed by Julien Chaffraix.
1942
1943         This patch has 3 main changes:
1944
1945         1. All text within a "cluster" (roughly equivalent to a CSS flow root /
1946            block formatting context) must have a uniform textAutosizingMultiplier,
1947            except for subtrees which are themselves clusters. This improves the
1948            consistency of the final output, since sibling blocks are now more
1949            likely to have the same multiplier (hence grow in proportion).
1950
1951         2. Clusters must contain a minimum amount of text in order to be
1952            autosized (4 lines of text, assuming each char is 1em wide, so about
1953            2 lines of text in practice). This is to reduce the likelihood of
1954            autosizing things like headers and footers, which can be quite
1955            visually distracting. The rationale is that if a cluster contains
1956            very few lines of text then it's ok to have to zoom in and pan from
1957            side to side to read each line, since if there are very few lines of
1958            text you'll only need to pan across once or twice.
1959
1960         3. To avoid adding a 3rd tree traversal, processSubtree/processBox were
1961            refactored such that all of Text Autosizing now happens as a single
1962            tree traversal (hence halving the number of tree traversals done).
1963
1964         Tests: fast/text-autosizing/cluster-narrow-in-wide.html
1965                fast/text-autosizing/cluster-wide-in-narrow.html
1966                fast/text-autosizing/clusters-insufficient-text.html
1967                fast/text-autosizing/clusters-insufficient-width.html
1968                fast/text-autosizing/clusters-sufficient-text-except-in-root.html
1969                fast/text-autosizing/clusters-sufficient-width.html
1970
1971         * rendering/TextAutosizer.cpp:
1972         (TextAutosizingWindowInfo):
1973
1974             Added this struct to bundle together the various sizes that
1975             processSubtree needs to pass to every recursive call to
1976             processCluster and processContainer.
1977
1978         (WebCore::TextAutosizer::processSubtree):
1979
1980             - Bundle windowSize and minLayoutSize together as a single struct,
1981               TextAutosizingWindowInfo, rather than passing them separately.
1982             - Walk up the tree to find the current cluster and container, rather
1983               than (incorrectly) assuming that the layoutRoot is always a
1984               container.
1985             - Call processCluster instead of traversing the tree.
1986
1987         (WebCore::TextAutosizer::processCluster):
1988
1989             Calculates the multiplier based on the width of the cluster (moved
1990             the calculation here from processBox, since now the multiplier is
1991             fixed per cluster), and delegates to processContainer for the actual
1992             tree traversal (since clusters are also containers).
1993
1994         (WebCore::contentHeightIsConstrained):
1995
1996             Changed parameter to RenderBlock.
1997
1998         (WebCore::TextAutosizer::processContainer):
1999
2000             This now takes care of the whole tree traversal, recursively calling
2001             processCluster/processContainer when it encounters such an object,
2002             and setMultiplier on RenderText objects (as processBox used to).
2003             Also added a check that the RenderText's multiplier is not already
2004             equal to the target multiplier (to save needlessly setting it).
2005
2006         (WebCore::TextAutosizer::isContainer):
2007
2008             - Changed to be a positive (is) instead of negative (isNot) check.
2009             - Require objects to be RenderBlocks so it's easier to find them
2010               using containingBlock, and there don't seem to be many interesting
2011               RenderBoxes that aren't RenderBlocks.
2012
2013         (WebCore::TextAutosizer::isAutosizingCluster):
2014
2015             A container that is also a flow root / block formatting context
2016             (approximately), hence demarcates an independent region of the page,
2017             within which we want consistent autosizing.
2018
2019         (WebCore::TextAutosizer::clusterShouldBeAutosized):
2020
2021             Uses measureDescendantTextWidth and to check whether the cluster
2022             contains enough text to be worth autosizing.
2023
2024         (WebCore::TextAutosizer::measureDescendantTextWidth):
2025
2026             Recursively traverse the cluster, skipping constrained height
2027             containers as processContainer does, to measure how much autosizable
2028             text it contains. Early out as soon as the minimum text width is
2029             reached.
2030
2031         (WebCore::TextAutosizer::nextInPreOrderSkippingDescendantsOfContainers):
2032
2033             Replaces nextInPreOrderMatchingFilter. The filter is now fixed to
2034             isContainer (we no longer need an isAutosizingCluster filter, since
2035             I consolidated the tree traversal), and filtered objects are
2036             actually returned (so they can in turn be recursively traversed),
2037             it's just their descendants that get skipped.
2038
2039         * rendering/TextAutosizer.h:
2040         (TextAutosizer):
2041
2042             - Deleted RenderObjectFilterFunctor, since the filter of
2043               nextInPreOrderSkippingDescendantsOfContainers is now fixed.
2044
2045 2012-09-20  Yoshifumi Inoue  <yosin@chromium.org>
2046
2047         [Platform] There are memory leak in LocaleICU
2048         https://bugs.webkit.org/show_bug.cgi?id=97289
2049
2050         Reviewed by Kent Tamura.
2051
2052         This patch adds udt_close() calls for medium time format and short
2053         time format data used in LocaleICU class to avoid memory leak.
2054
2055         This memory leak is found by external tool Valgrind and reported in
2056         Chromium bug repositry(http://crbug.com/151006) with stack trace of
2057         call path of leaked memory.
2058
2059         This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
2060         ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
2061
2062         No new tests. External tool such as Valgrind will check this memory leak.
2063
2064         * platform/text/LocaleICU.cpp:
2065         (WebCore::LocaleICU::~LocaleICU): Added to call udt_close() for m_mediumTimeFormat
2066         and m_shortTimeFormat which have UDateFormat objects.
2067
2068 2012-09-20  Kenichi Ishibashi  <bashi@chromium.org>
2069
2070         Chromium mac cannot display AppleColorEmoji
2071         https://bugs.webkit.org/show_bug.cgi?id=97286
2072
2073         Reviewed by Kent Tamura.
2074
2075         Disable AppleColorEmoji for now. We will re-enable it after Skia supports CTFontDrawGlyphs().
2076
2077         No new tests. Fallback fonts should be used for emoji codepoints.
2078
2079         * platform/graphics/mac/FontCacheMac.mm:
2080         (WebCore::FontCache::getFontDataForCharacters):
2081
2082 2012-09-20  Luke Macpherson   <macpherson@chromium.org>
2083
2084         Fix use-after free when using a variable to specify a -webkit-filter.
2085         https://bugs.webkit.org/show_bug.cgi?id=97153
2086
2087         Reviewed by Abhishek Arya.
2088
2089         Make StyleResolver's m_pendingSVGDocuments a hashmap of RefPtr instead of raw pointers such that the document values cannot be freed prematurely.
2090         Present assumption is that storing raw pointers is ok because CSSValues will live as long as the StyleResolver instance, however that it no longer
2091         true when variables are used, so we must ensure we increment the reference counter to ensure the CSSValues are not freed prematurely.
2092
2093         Test: fast/css/variables/var-filter.html
2094
2095         * css/StyleResolver.cpp:
2096         (WebCore::StyleResolver::collectMatchingRulesForList):
2097         * css/StyleResolver.h:
2098         (StyleResolver):
2099
2100 2012-09-20  Levi Weintraub  <leviw@chromium.org>
2101
2102         Prevent reading stale data from InlineTextBoxes
2103         https://bugs.webkit.org/show_bug.cgi?id=94750
2104
2105         Reviewed by Abhishek Arya.
2106
2107         Text from dirty InlineTextBoxes should never be read or used. This change
2108         enforces this design goal by forcefully zero-ing out the start and length
2109         of InlineTextBoxes when they're being marked dirty. Ideally, we'd also
2110         add asserts to the accessors for this data, but there are still several
2111         places in editing that cause this. https://bugs.webkit.org/show_bug.cgi?id=97264
2112         tracks these cases.
2113
2114         This change involves making markDirty virtual. Running the line-layout
2115         performance test as well as profiling resizing the html5 spec showed
2116         negligable impact with this change.
2117
2118         No new tests as this doesn't change any proper behavior.
2119
2120         * dom/Position.cpp:
2121         (WebCore::Position::downstream): Adding a FIXME.
2122         * rendering/InlineBox.h:
2123         (WebCore::InlineBox::markDirty): Marking virtual to allow InlineTextBox to
2124         overload and zero out its start and length.
2125         * rendering/InlineTextBox.cpp:
2126         (WebCore::InlineTextBox::markDirty): Zeroing out the start and length when
2127         we mark the box dirty.
2128         * rendering/InlineTextBox.h:
2129         * rendering/RenderText.cpp:
2130         (WebCore::RenderText::setTextWithOffset): Adding a FIXME.
2131
2132 2012-09-20  Adam Barth  <abarth@webkit.org>
2133
2134         Measure how often web pages use Worker and SharedWorker
2135         https://bugs.webkit.org/show_bug.cgi?id=97273
2136
2137         Reviewed by Ojan Vafai.
2138
2139         We're not considering removing these features, but it will give us a
2140         baseline idea of how often they're used.
2141
2142         * page/FeatureObserver.h:
2143         * workers/SharedWorker.cpp:
2144         (WebCore::SharedWorker::create):
2145         * workers/Worker.cpp:
2146         (WebCore::Worker::create):
2147
2148 2012-09-20  Tony Chang  <tony@chromium.org>
2149
2150         [chromium] Enable more clang warnings
2151         https://bugs.webkit.org/show_bug.cgi?id=97257
2152
2153         Reviewed by James Robinson.
2154
2155         Add -Wunused-parameter to WebCore targets. Apple's Mac compile already
2156         warns on this and it's a common source of error for Chromium patches.
2157
2158         No new tests, should compile cleanly.
2159
2160         * WebCore.gyp/WebCore.gyp:
2161
2162 2012-09-20  Dan Bernstein  <mitz@apple.com>
2163
2164         Kerning never occurs between a space and the following glyph
2165         https://bugs.webkit.org/show_bug.cgi?id=97269
2166
2167         Reviewed by Tim Horton.
2168
2169         Covered by several existing tests.
2170
2171         * platform/graphics/mac/ComplexTextController.cpp:
2172         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Changed to not reset the advance
2173         of a space, and added a comment about how this also needs to be fixed for other characters
2174         that are treated as spaces.
2175
2176 2012-09-20  Kenichi Ishibashi  <bashi@chromium.org>
2177
2178         [Chromium] Improve glyph selection of HarfBuzzShaper
2179         https://bugs.webkit.org/show_bug.cgi?id=97164
2180
2181         Reviewed by Tony Chang.
2182
2183         Take into account clusters for selection.
2184
2185         Test: fast/text/international/hebrew-selection.html
2186
2187         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
2188         (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Removed m_logClusters.
2189         m_logCluster is no longer used.
2190         (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
2191         - If targetX is in the left side of the first cluster, return the leftmost character index.
2192         - If targetX is in the right side of the last cluster, return the rightmost character index.
2193         - If targetX is between the right side of the cluster N and the left side of the cluster N+1, then:
2194           - return N+1 for LTR.
2195           - return N for RTL.
2196         (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
2197         Find the cluster of index in question, then:
2198         - return the left side boundary of the cluster for LTR.
2199         - return the right side boundary of the cluster for RTL.
2200         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
2201         (HarfBuzzRun):
2202
2203 2012-09-20  Tony Chang  <tony@chromium.org>
2204
2205         Replace RenderListBox::updateLogicalHeight with RenderListBox::computeLogicalHeight
2206         https://bugs.webkit.org/show_bug.cgi?id=97263
2207
2208         Reviewed by Ojan Vafai.
2209
2210         This is part of making computeLogicalHeight virtual so with any RenderBox pointer, one
2211         can compute the logical height without mutating the RenderBox.
2212
2213         No new tests, this is a refactor and existing list box tests should pass.
2214
2215         * rendering/RenderBox.h:
2216         (RenderBox):
2217         * rendering/RenderListBox.cpp:
2218         (WebCore::RenderListBox::layout): Move layout related logic here.
2219         (WebCore::RenderListBox::computeLogicalHeight): Use const version and remove layout related code.
2220         * rendering/RenderListBox.h:
2221         (RenderListBox): Override computeLogicalHeight.
2222
2223 2012-09-20  Mike West  <mkwst@chromium.org>
2224
2225         CSP reports should send an empty "blocked-uri" rather than nothing.
2226         https://bugs.webkit.org/show_bug.cgi?id=97256
2227
2228         Reviewed by Adam Barth.
2229
2230         In cases where a Content Security Policy violation report is generated
2231         without blocking a resource at a particular URI (inline scripts, for
2232         example), we currently leave the "blocked-uri" attribute out of the
2233         report entirely. For the same reason that we included the "referrer"
2234         attribute in webkit.org/b/97233, we should include an explicitly empty
2235         "blocked-uri" in these cases.
2236
2237         This new behavior is covered by updates to existing test expectations
2238         around the reporting functionality.
2239
2240         * page/ContentSecurityPolicy.cpp:
2241         (WebCore::ContentSecurityPolicy::reportViolation):
2242             If the 'blocked-uri' is invalid, add a "blocked-uri" attribute that
2243             is explicitly empty.
2244
2245 2012-09-20  Patrick Gansterer  <paroga@webkit.org>
2246
2247         Add String::numberToFixedPrecisionString()
2248         https://bugs.webkit.org/show_bug.cgi?id=96330
2249
2250         Reviewed by Benjamin Poulain.
2251
2252         * platform/text/TextStream.cpp:
2253         (WebCore::TextStream::operator<<): Use the new function instead of String::number() with flags.
2254
2255 2012-09-20  Adam Klein  <adamk@chromium.org>
2256
2257         Rename ContainerNode::parserAddChild "parserAppendChild" for consistency
2258         https://bugs.webkit.org/show_bug.cgi?id=97254
2259
2260         Reviewed by Adam Barth.
2261
2262         No functional change, all the below changes are simple renames.
2263
2264         * dom/ContainerNode.cpp:
2265         (WebCore::ContainerNode::takeAllChildrenFrom):
2266         (WebCore::ContainerNode::parserAppendChild):
2267         * dom/ContainerNode.h:
2268         (ContainerNode):
2269         * dom/DOMImplementation.cpp:
2270         (WebCore::DOMImplementation::createDocument):
2271         * editing/markup.cpp:
2272         (WebCore::createFragmentForTransformToFragment):
2273         * html/HTMLViewSourceDocument.cpp:
2274         (WebCore::HTMLViewSourceDocument::createContainingTable):
2275         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
2276         (WebCore::HTMLViewSourceDocument::addLine):
2277         (WebCore::HTMLViewSourceDocument::finishLine):
2278         (WebCore::HTMLViewSourceDocument::addText):
2279         (WebCore::HTMLViewSourceDocument::addBase):
2280         (WebCore::HTMLViewSourceDocument::addLink):
2281         * html/parser/HTMLConstructionSite.cpp:
2282         (WebCore::executeTask):
2283         * html/parser/HTMLTreeBuilder.cpp:
2284         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2285         * html/track/WebVTTParser.cpp:
2286         (WebCore::WebVTTParser::constructTreeFromToken):
2287         * xml/XMLErrors.cpp:
2288         (WebCore::createXHTMLParserErrorHeader):
2289         (WebCore::XMLErrors::insertErrorMessageBlock):
2290         * xml/parser/XMLDocumentParser.cpp:
2291         (WebCore::XMLDocumentParser::enterText):
2292         (WebCore::XMLDocumentParser::parseDocumentFragment):
2293         * xml/parser/XMLDocumentParserLibxml2.cpp:
2294         (WebCore::XMLDocumentParser::startElementNs):
2295         (WebCore::XMLDocumentParser::processingInstruction):
2296         (WebCore::XMLDocumentParser::cdataBlock):
2297         (WebCore::XMLDocumentParser::comment):
2298         (WebCore::XMLDocumentParser::internalSubset):
2299         * xml/parser/XMLDocumentParserQt.cpp:
2300         (WebCore::XMLDocumentParser::parseStartElement):
2301         (WebCore::XMLDocumentParser::parseProcessingInstruction):
2302         (WebCore::XMLDocumentParser::parseCdata):
2303         (WebCore::XMLDocumentParser::parseComment):
2304         (WebCore::XMLDocumentParser::parseDtd):
2305         * xml/parser/XMLTreeBuilder.cpp:
2306         (WebCore::XMLTreeBuilder::processDOCTYPE):
2307         (WebCore::XMLTreeBuilder::processStartTag):
2308         (WebCore::XMLTreeBuilder::add):
2309
2310 2012-09-20  James Robinson  <jamesr@chromium.org>
2311
2312         [chromium] Remove unused copy of chromium compositor implementation files
2313         https://bugs.webkit.org/show_bug.cgi?id=97255
2314
2315         Reviewed by Adam Barth.
2316
2317         Now that use_libcc_for_compositor is set to 1 these files aren't used anywhere.
2318
2319         * WebCore.gyp/WebCore.gyp:
2320         * WebCore.gypi:
2321         * platform/chromium/support/CCThreadImpl.cpp: Removed.
2322         * platform/chromium/support/CCThreadImpl.h: Removed.
2323         * platform/chromium/support/WebCompositorImpl.cpp: Removed.
2324         * platform/chromium/support/WebCompositorImpl.h: Removed.
2325         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp: Removed.
2326         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h: Removed.
2327         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp: Removed.
2328         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h: Removed.
2329         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
2330         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
2331         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
2332         * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp: Removed.
2333         * platform/graphics/chromium/CanvasLayerTextureUpdater.h: Removed.
2334         * platform/graphics/chromium/ContentLayerChromium.cpp: Removed.
2335         * platform/graphics/chromium/ContentLayerChromium.h: Removed.
2336         * platform/graphics/chromium/ContentLayerChromiumClient.h: Removed.
2337         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp: Removed.
2338         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h: Removed.
2339         * platform/graphics/chromium/GeometryBinding.cpp: Removed.
2340         * platform/graphics/chromium/GeometryBinding.h: Removed.
2341         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2342         * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp: Removed.
2343         * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h: Removed.
2344         * platform/graphics/chromium/IOSurfaceLayerChromium.cpp: Removed.
2345         * platform/graphics/chromium/IOSurfaceLayerChromium.h: Removed.
2346         * platform/graphics/chromium/ImageLayerChromium.cpp: Removed.
2347         * platform/graphics/chromium/ImageLayerChromium.h: Removed.
2348         * platform/graphics/chromium/LayerChromium.cpp: Removed.
2349         * platform/graphics/chromium/LayerChromium.h: Removed.
2350         * platform/graphics/chromium/LayerTextureSubImage.cpp: Removed.
2351         * platform/graphics/chromium/LayerTextureSubImage.h: Removed.
2352         * platform/graphics/chromium/LayerTextureUpdater.h: Removed.
2353         * platform/graphics/chromium/PlatformColor.h: Removed.
2354         * platform/graphics/chromium/ProgramBinding.cpp: Removed.
2355         * platform/graphics/chromium/ProgramBinding.h: Removed.
2356         * platform/graphics/chromium/RateLimiter.cpp: Removed.
2357         * platform/graphics/chromium/RateLimiter.h: Removed.
2358         * platform/graphics/chromium/RenderSurfaceChromium.cpp: Removed.
2359         * platform/graphics/chromium/RenderSurfaceChromium.h: Removed.
2360         * platform/graphics/chromium/ScrollbarLayerChromium.cpp: Removed.
2361         * platform/graphics/chromium/ScrollbarLayerChromium.h: Removed.
2362         * platform/graphics/chromium/ShaderChromium.cpp: Removed.
2363         * platform/graphics/chromium/ShaderChromium.h: Removed.
2364         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp: Removed.
2365         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h: Removed.
2366         * platform/graphics/chromium/SolidColorLayerChromium.cpp: Removed.
2367         * platform/graphics/chromium/SolidColorLayerChromium.h: Removed.
2368         * platform/graphics/chromium/TextureCopier.cpp: Removed.
2369         * platform/graphics/chromium/TextureCopier.h: Removed.
2370         * platform/graphics/chromium/TextureLayerChromium.cpp: Removed.
2371         * platform/graphics/chromium/TextureLayerChromium.h: Removed.
2372         * platform/graphics/chromium/TextureLayerChromiumClient.h: Removed.
2373         * platform/graphics/chromium/ThrottledTextureUploader.cpp: Removed.
2374         * platform/graphics/chromium/ThrottledTextureUploader.h: Removed.
2375         * platform/graphics/chromium/TiledLayerChromium.cpp: Removed.
2376         * platform/graphics/chromium/TiledLayerChromium.h: Removed.
2377         * platform/graphics/chromium/TreeSynchronizer.cpp: Removed.
2378         * platform/graphics/chromium/TreeSynchronizer.h: Removed.
2379         * platform/graphics/chromium/UnthrottledTextureUploader.h: Removed.
2380         * platform/graphics/chromium/VideoLayerChromium.cpp: Removed.
2381         * platform/graphics/chromium/VideoLayerChromium.h: Removed.
2382         * platform/graphics/chromium/cc/CCActiveAnimation.cpp: Removed.
2383         * platform/graphics/chromium/cc/CCActiveAnimation.h: Removed.
2384         * platform/graphics/chromium/cc/CCAnimationCurve.cpp: Removed.
2385         * platform/graphics/chromium/cc/CCAnimationCurve.h: Removed.
2386         * platform/graphics/chromium/cc/CCAnimationEvents.h: Removed.
2387         * platform/graphics/chromium/cc/CCAppendQuadsData.h: Removed.
2388         * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.cpp: Removed.
2389         * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.h: Removed.
2390         * platform/graphics/chromium/cc/CCCompletionEvent.h: Removed.
2391         * platform/graphics/chromium/cc/CCDamageTracker.cpp: Removed.
2392         * platform/graphics/chromium/cc/CCDamageTracker.h: Removed.
2393         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp: Removed.
2394         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h: Removed.
2395         * platform/graphics/chromium/cc/CCDebugRectHistory.cpp: Removed.
2396         * platform/graphics/chromium/cc/CCDebugRectHistory.h: Removed.
2397         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp: Removed.
2398         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h: Removed.
2399         * platform/graphics/chromium/cc/CCDirectRenderer.cpp: Removed.
2400         * platform/graphics/chromium/cc/CCDirectRenderer.h: Removed.
2401         * platform/graphics/chromium/cc/CCDrawQuad.cpp: Removed.
2402         * platform/graphics/chromium/cc/CCDrawQuad.h: Removed.
2403         * platform/graphics/chromium/cc/CCFontAtlas.cpp: Removed.
2404         * platform/graphics/chromium/cc/CCFontAtlas.h: Removed.
2405         * platform/graphics/chromium/cc/CCFrameRateController.cpp: Removed.
2406         * platform/graphics/chromium/cc/CCFrameRateController.h: Removed.
2407         * platform/graphics/chromium/cc/CCFrameRateCounter.cpp: Removed.
2408         * platform/graphics/chromium/cc/CCFrameRateCounter.h: Removed.
2409         * platform/graphics/chromium/cc/CCGraphicsContext.h: Removed.
2410         * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp: Removed.
2411         * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h: Removed.
2412         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp: Removed.
2413         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h: Removed.
2414         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp: Removed.
2415         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h: Removed.
2416         * platform/graphics/chromium/cc/CCInputHandler.h: Removed.
2417         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp: Removed.
2418         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h: Removed.
2419         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp: Removed.
2420         * platform/graphics/chromium/cc/CCLayerAnimationController.h: Removed.
2421         * platform/graphics/chromium/cc/CCLayerImpl.cpp: Removed.
2422         * platform/graphics/chromium/cc/CCLayerImpl.h: Removed.
2423         * platform/graphics/chromium/cc/CCLayerIterator.cpp: Removed.
2424         * platform/graphics/chromium/cc/CCLayerIterator.h: Removed.
2425         * platform/graphics/chromium/cc/CCLayerQuad.cpp: Removed.
2426         * platform/graphics/chromium/cc/CCLayerQuad.h: Removed.
2427         * platform/graphics/chromium/cc/CCLayerSorter.cpp: Removed.
2428         * platform/graphics/chromium/cc/CCLayerSorter.h: Removed.
2429         * platform/graphics/chromium/cc/CCLayerTilingData.cpp: Removed.
2430         * platform/graphics/chromium/cc/CCLayerTilingData.h: Removed.
2431         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: Removed.
2432         * platform/graphics/chromium/cc/CCLayerTreeHost.h: Removed.
2433         * platform/graphics/chromium/cc/CCLayerTreeHostClient.h: Removed.
2434         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp: Removed.
2435         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h: Removed.
2436         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: Removed.
2437         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: Removed.
2438         * platform/graphics/chromium/cc/CCMathUtil.cpp: Removed.
2439         * platform/graphics/chromium/cc/CCMathUtil.h: Removed.
2440         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: Removed.
2441         * platform/graphics/chromium/cc/CCOcclusionTracker.h: Removed.
2442         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp: Removed.
2443         * platform/graphics/chromium/cc/CCOverdrawMetrics.h: Removed.
2444         * platform/graphics/chromium/cc/CCPageScaleAnimation.cpp: Removed.
2445         * platform/graphics/chromium/cc/CCPageScaleAnimation.h: Removed.
2446         * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp: Removed.
2447         * platform/graphics/chromium/cc/CCPrioritizedTexture.h: Removed.
2448         * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp: Removed.
2449         * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h: Removed.
2450         * platform/graphics/chromium/cc/CCPriorityCalculator.cpp: Removed.
2451         * platform/graphics/chromium/cc/CCPriorityCalculator.h: Removed.
2452         * platform/graphics/chromium/cc/CCProxy.cpp: Removed.
2453         * platform/graphics/chromium/cc/CCProxy.h: Removed.
2454         * platform/graphics/chromium/cc/CCQuadCuller.cpp: Removed.
2455         * platform/graphics/chromium/cc/CCQuadCuller.h: Removed.
2456         * platform/graphics/chromium/cc/CCQuadSink.h: Removed.
2457         * platform/graphics/chromium/cc/CCRenderPass.cpp: Removed.
2458         * platform/graphics/chromium/cc/CCRenderPass.h: Removed.
2459         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp: Removed.
2460         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h: Removed.
2461         * platform/graphics/chromium/cc/CCRenderPassSink.h: Removed.
2462         * platform/graphics/chromium/cc/CCRenderSurface.cpp: Removed.
2463         * platform/graphics/chromium/cc/CCRenderSurface.h: Removed.
2464         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp: Removed.
2465         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.h: Removed.
2466         * platform/graphics/chromium/cc/CCRenderer.h: Removed.
2467         * platform/graphics/chromium/cc/CCRendererGL.cpp: Removed.
2468         * platform/graphics/chromium/cc/CCRendererGL.h: Removed.
2469         * platform/graphics/chromium/cc/CCRenderingStats.h: Removed.
2470         * platform/graphics/chromium/cc/CCResourceProvider.cpp: Removed.
2471         * platform/graphics/chromium/cc/CCResourceProvider.h: Removed.
2472         * platform/graphics/chromium/cc/CCScheduler.cpp: Removed.
2473         * platform/graphics/chromium/cc/CCScheduler.h: Removed.
2474         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp: Removed.
2475         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h: Removed.
2476         * platform/graphics/chromium/cc/CCScopedTexture.cpp: Removed.
2477         * platform/graphics/chromium/cc/CCScopedTexture.h: Removed.
2478         * platform/graphics/chromium/cc/CCScopedThreadProxy.h: Removed.
2479         * platform/graphics/chromium/cc/CCScrollbarAnimationController.cpp: Removed.
2480         * platform/graphics/chromium/cc/CCScrollbarAnimationController.h: Removed.
2481         * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.cpp: Removed.
2482         * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.h: Removed.
2483         * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.cpp: Removed.
2484         * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.h: Removed.
2485         * platform/graphics/chromium/cc/CCScrollbarGeometryStub.cpp: Removed.
2486         * platform/graphics/chromium/cc/CCScrollbarGeometryStub.h: Removed.
2487         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp: Removed.
2488         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h: Removed.
2489         * platform/graphics/chromium/cc/CCSettings.cpp: Removed.
2490         * platform/graphics/chromium/cc/CCSettings.h: Removed.
2491         * platform/graphics/chromium/cc/CCSharedQuadState.cpp: Removed.
2492         * platform/graphics/chromium/cc/CCSharedQuadState.h: Removed.
2493         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: Removed.
2494         * platform/graphics/chromium/cc/CCSingleThreadProxy.h: Removed.
2495         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp: Removed.
2496         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h: Removed.
2497         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp: Removed.
2498         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h: Removed.
2499         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp: Removed.
2500         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h: Removed.
2501         * platform/graphics/chromium/cc/CCTexture.cpp: Removed.
2502         * platform/graphics/chromium/cc/CCTexture.h: Removed.
2503         * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp: Removed.
2504         * platform/graphics/chromium/cc/CCTextureDrawQuad.h: Removed.
2505         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp: Removed.
2506         * platform/graphics/chromium/cc/CCTextureLayerImpl.h: Removed.
2507         * platform/graphics/chromium/cc/CCTextureUpdateController.cpp: Removed.
2508         * platform/graphics/chromium/cc/CCTextureUpdateController.h: Removed.
2509         * platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp: Removed.
2510         * platform/graphics/chromium/cc/CCTextureUpdateQueue.h: Removed.
2511         * platform/graphics/chromium/cc/CCThread.h: Removed.
2512         * platform/graphics/chromium/cc/CCThreadProxy.cpp: Removed.
2513         * platform/graphics/chromium/cc/CCThreadProxy.h: Removed.
2514         * platform/graphics/chromium/cc/CCThreadTask.h: Removed.
2515         * platform/graphics/chromium/cc/CCTileDrawQuad.cpp: Removed.
2516         * platform/graphics/chromium/cc/CCTileDrawQuad.h: Removed.
2517         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp: Removed.
2518         * platform/graphics/chromium/cc/CCTiledLayerImpl.h: Removed.
2519         * platform/graphics/chromium/cc/CCTimeSource.h: Removed.
2520         * platform/graphics/chromium/cc/CCTimer.cpp: Removed.
2521         * platform/graphics/chromium/cc/CCTimer.h: Removed.
2522         * platform/graphics/chromium/cc/CCTimingFunction.cpp: Removed.
2523         * platform/graphics/chromium/cc/CCTimingFunction.h: Removed.
2524         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: Removed.
2525         * platform/graphics/chromium/cc/CCVideoLayerImpl.h: Removed.
2526         * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp: Removed.
2527         * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h: Removed.
2528
2529 2012-09-20  Tony Chang  <tony@chromium.org>
2530
2531         Implement absolutely positioned flex items
2532         https://bugs.webkit.org/show_bug.cgi?id=93798
2533
2534         Reviewed by Ojan Vafai.
2535
2536         Previously, we treated absolutely positioned flex items as a 0x0 placeholder element.
2537         Now we position the 0x0 placeholder where the next item would go. This causes the
2538         following changes:
2539         - justify-content: space-{around,between} no longer change due to the existence of absolutely positioned flex items.
2540         - alignment doesn't change the placement of absolutely positioned flex items.
2541         - auto margins in the alignment direction don't do anything on absolutely positioned flex items.
2542
2543         Test: css3/flexbox/position-absolute-children.html
2544
2545         * rendering/RenderFlexibleBox.cpp:
2546         (WebCore::RenderFlexibleBox::availableAlignmentSpaceForChild): Absolutely positioned flex items should not use this.
2547         (WebCore::RenderFlexibleBox::updateAutoMarginsInCrossAxis): Absolutely positioned flex items should not use this.
2548         (WebCore::initialJustifyContentOffset): If there are no flex items, space-around should center an absolutely positioned flex item.
2549         (WebCore::RenderFlexibleBox::numberOfInFlowPositionedChildren): Helper method for helping to compute space-between and space-around.
2550         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Fix spacing when space-between or space-around.
2551         (WebCore::RenderFlexibleBox::layoutColumnReverse): Fix spacing when space-between or space-around.
2552         (WebCore::RenderFlexibleBox::alignChildren): Treat absolutely positioned children like flex-start.
2553         * rendering/RenderFlexibleBox.h: numberOfInFlowPositionedChildren method.
2554
2555 2012-09-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2556
2557         Unreviewed, rolling out r129144.
2558         http://trac.webkit.org/changeset/129144
2559         https://bugs.webkit.org/show_bug.cgi?id=97244
2560
2561         causing lots of assertions in tests (Requested by smfr on
2562         #webkit).
2563
2564         * rendering/InlineBox.h:
2565         (WebCore::InlineBox::markDirty):
2566         * rendering/InlineTextBox.cpp:
2567         * rendering/InlineTextBox.h:
2568         (WebCore::InlineTextBox::start):
2569         (WebCore::InlineTextBox::end):
2570         (WebCore::InlineTextBox::len):
2571         (WebCore::InlineTextBox::offsetRun):
2572
2573 2012-09-20  Mike West  <mkwst@chromium.org>
2574
2575         CSP reports should send an empty 'referrer' rather than nothing.
2576         https://bugs.webkit.org/show_bug.cgi?id=97233
2577
2578         Reviewed by Adam Barth.
2579
2580         Currently, if a protected resource doesn't have a referrer, then any
2581         Content Security Policy violations send a report that doesn't contain
2582         a referrer attribute. It's arguably friendlier to developers to include
2583         an explicitly empty attribute.
2584
2585         This new behavior is covered by updates to existing test expectations
2586         around the reporting functionality.
2587
2588         * page/ContentSecurityPolicy.cpp:
2589         (WebCore::ContentSecurityPolicy::reportViolation):
2590             Drop the 'if', and always write out a referrer.
2591
2592 2012-09-20  David Barton  <dbarton@mathscribe.com>
2593
2594         [MathML] Increase visual space around fraction parts, italic variables, and operators
2595         https://bugs.webkit.org/show_bug.cgi?id=97228
2596
2597         Reviewed by Eric Seidel.
2598
2599         This makes MathML more readable, and more in agreement with Firefox and TeX.
2600
2601         Tested by existing tests.
2602
2603         * css/mathml.css:
2604         (mfrac > :first-child):
2605         (mfrac > :last-child):
2606         (mfrac):
2607         (mi):
2608         (msub > mi:first-child, msubsup > mi:first-child):
2609             - Subscripts don't need to move right after an italic <mi>.
2610         (msubsup > mi:first-child + * + *):
2611             - Superscripts do need to move right after an italic <mi>.
2612         (math > mo, mrow > mo, msqrt > mo, mtd > mo):
2613             - These are ok values for now. It will be better to use different values for different operators, as the FIXME says.
2614         (math > mo:last-child, mrow > mo:last-child, msqrt > mo:last-child, mtd > mo:last-child):
2615             - Prefix and postfix operators, including fences, generally get less spacing than infix operators.
2616         
2617         * rendering/mathml/RenderMathMLFenced.cpp:
2618         (WebCore::RenderMathMLFenced::createMathMLOperator):
2619             - Usually the separator is a comma or semicolon, so we only put space after it for now.
2620         (WebCore::RenderMathMLFenced::makeFences):
2621         (WebCore::RenderMathMLFenced::addChild):
2622         (WebCore::RenderMathMLFenced::styleDidChange):
2623         * rendering/mathml/RenderMathMLFenced.h:
2624         (RenderMathMLFenced):
2625         
2626         * rendering/mathml/RenderMathMLFraction.cpp:
2627         (WebCore):
2628         (WebCore::RenderMathMLFraction::updateFromElement):
2629             - gDenominatorPad is now handled by mathml.css.
2630         
2631         * rendering/mathml/RenderMathMLSubSup.cpp:
2632         (WebCore):
2633         (WebCore::RenderMathMLSubSup::fixScriptsStyle):
2634             - gSubsupScriptMargin is now handled by mathml.css.
2635
2636 2012-09-20  Tommy Widenflycht  <tommyw@google.com>
2637
2638         MediaStream API: Extend UserMediaRequest with a ownerDocument method
2639         https://bugs.webkit.org/show_bug.cgi?id=97095
2640
2641         Reviewed by Adam Barth.
2642
2643         Chromium need to know exactly which frame called getUserMedia so that it can
2644         clean away the stream when the frame goes away.
2645         Since that information is available in webkit add an accessor method.
2646
2647         Chromium mock class extended to test the added method.
2648
2649         * Modules/mediastream/UserMediaRequest.cpp:
2650         (WebCore::UserMediaRequest::ownerDocument):
2651         (WebCore):
2652         * Modules/mediastream/UserMediaRequest.h:
2653         (WebCore):
2654         (UserMediaRequest):
2655
2656 2012-09-20  Levi Weintraub  <leviw@chromium.org>
2657
2658         Prevent reading stale data from InlineTextBoxes
2659         https://bugs.webkit.org/show_bug.cgi?id=94750
2660
2661         Reviewed by Eric Seidel.
2662
2663         Text from dirty InlineTextBoxes should never be read or used. This change enforces this
2664         design goal by forcefully zero-ing out the start and length of InlineTextBoxes when 
2665         they're being marked dirty. It also adds asserts to accessors for those members.
2666
2667         This change involves making markDirty virtual. Running the line-layout performance test
2668         as well as profiling resizing the html5 spec showed negligable impact with this change.
2669
2670         No new tests as this doesn't change any proper behavior.
2671
2672         * rendering/InlineBox.h:
2673         (WebCore::InlineBox::markDirty): Making virtual to allow InlineTextBox to overload and
2674         zero out its start and length.
2675         * rendering/InlineTextBox.cpp:
2676         (WebCore::InlineTextBox::markDirty): Zeroing out start and length when we mark the box dirty.
2677         * rendering/InlineTextBox.h:
2678         (WebCore::InlineTextBox::start): Adding an assert when we hit this case.
2679         (WebCore::InlineTextBox::end): Ditto.
2680         (WebCore::InlineTextBox::len): Ditto.
2681         (WebCore::InlineTextBox::offsetRun): Ditto.
2682
2683 2012-09-20  Mike West  <mkwst@chromium.org>
2684
2685         Support paths in Content Security Policy directives.
2686         https://bugs.webkit.org/show_bug.cgi?id=89750
2687
2688         Reviewed by Adam Barth.
2689
2690         In CSP 1.0, paths are simply ignored: 'script-src
2691         http://example.com/path/to/a/file' would allow script to be loaded from
2692         http://example.com/path/to/a/file/javascript.js, but also from
2693         http://example.com/javascript.js.
2694
2695         This patch is an experimental implementation of more granular path
2696         support in CSP source lists as proposed in the current editor's draft of
2697         CSP 1.1. Paths are treated as specifying directories in which resources
2698         can be found, and are implicitly terminated with a '/': in other words,
2699         'script-src http://a.com/path' is the same as
2700         'script-src http://a.com/path/'. Moreover, paths cannot contain either
2701         '?' or '#' characters.
2702
2703         This is implemented outside the CSP_NEXT flag. All ports will be
2704         effected.
2705
2706         Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#matching
2707
2708         Tests: http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01.html
2709                http/tests/security/contentSecurityPolicy/source-list-parsing-paths-02.html
2710
2711         * page/ContentSecurityPolicy.cpp:
2712         (WebCore::CSPSource::CSPSource):
2713             Store a path along with each CSP source.
2714         (WebCore::CSPSource::matches):
2715             Check the path when comparing a URL to the source.
2716         (WebCore::CSPSource::pathMatches):
2717             Compare the URL-decoded version of the resource to validate against
2718             the source's stored path. If the resource's path begins with the
2719             stored path, then it matches! If not, it doesn't.
2720         (CSPSource):
2721             Store a path along with each CSP source.
2722         (WebCore::CSPSourceList::parse):
2723             Pass a 'path' in when creating CSPSource objects.
2724         (WebCore::CSPSourceList::parsePath):
2725             Actually parse the path, flagging errors if '?' or '#' are present,
2726             URL-decoding the result, and ensuring that a terminal '/' is
2727             added if necessary.
2728         (WebCore::CSPSourceList::addSourceSelf):
2729             Ensure that 'self' sources have an empty path.
2730         * page/ContentSecurityPolicy.h:
2731             Dropping the "ignored path component" console warning.
2732
2733 2012-09-20  Joanmarie Diggs  <jdiggs@igalia.com>
2734
2735         [GTK] ControlsPanel string is not localized in LocalizedStringsGtk
2736         https://bugs.webkit.org/show_bug.cgi?id=96502
2737
2738         Reviewed by Chris Fleizach.
2739
2740         Adds the ControlsPanel string to the strings localized in LocalizedStringsGtk.
2741
2742         Test: platform/gtk/accessibility/media-controls-panel-title.html
2743
2744         * platform/gtk/LocalizedStringsGtk.cpp:
2745         (WebCore::localizedMediaControlElementString):
2746
2747 2012-09-20  Julien Chaffraix  <jchaffraix@webkit.org>
2748
2749         Remove isStartColumn in the border collapsing code
2750         https://bugs.webkit.org/show_bug.cgi?id=97024
2751
2752         Reviewed by Abhishek Arya.
2753
2754         isStartColumn is embedding the same information as prevCell. As we need to compute it
2755         in most of the cases, we may as well just reuse them.
2756
2757         While touching this code, I cleaned up the code by removing some unneeded checks and renaming
2758         some variables in preparation for bug 79272.
2759
2760         Refactoring covered by existing collapsing borders tests.
2761
2762         * rendering/RenderTableCell.cpp:
2763         (WebCore::RenderTableCell::computeCollapsedStartBorder):
2764         Removed |isStartColumn|.
2765
2766         (WebCore::RenderTableCell::computeCollapsedEndBorder):
2767         Added a comment about why |isEndColumn| is needed. Also cleaned up this code to be
2768         consistent with computeCollapsedStartBorder.
2769
2770 2012-09-20  Andrey Adaikin  <aandrey@chromium.org>
2771
2772         Web Inspector: setPropertyValue does not work for non-finite numbers
2773         https://bugs.webkit.org/show_bug.cgi?id=97016
2774
2775         Reviewed by Vsevolod Vlasov.
2776
2777         Fix: setting a property to NaN, Infinity or -Infinity numbers did not work.
2778
2779         * inspector/front-end/RemoteObject.js:
2780         (WebInspector.RemoteObject.prototype.setPropertyValue):
2781
2782 2012-09-20  Otto Derek Cheung  <otcheung@rim.com>
2783
2784         Web Inspector: Cookie info in Network Resources Cookies tab are incorrect
2785         https://bugs.webkit.org/show_bug.cgi?id=95491
2786
2787         Reviewed by Vsevolod Vlasov.
2788
2789         Web Inspector: Cookie info in Network Resources Cookies tab are incorrect
2790         https://bugs.webkit.org/show_bug.cgi?id=95491
2791
2792         Fixing a typo that causes cookies to appear as a "Session"
2793         cookie in the Networking panel because it can never find a properly named
2794         "expired" header.
2795
2796         This bug exposes another bug where the cookie GMT strings are inproperly
2797         parsed, causing an "invalid date" error to show up in the cookies tab in 
2798         the Networking panel.
2799
2800         Also changed test expectations in LayoutTests/inspector/cookie-parser-expected.txt
2801
2802         * inspector/front-end/CookieParser.js:
2803         (WebInspector.Cookie.prototype.get session):
2804
2805 2012-09-20  Alexander Pavlov  <apavlov@chromium.org>
2806
2807         Web Inspector: [Elements] Word wrap disablement in the DOM tree broken
2808         https://bugs.webkit.org/show_bug.cgi?id=97185
2809
2810         Reviewed by Pavel Feldman.
2811
2812         Restored the effective "white-space: nowrap" for the tree elements.
2813
2814         * inspector/front-end/inspector.css:
2815         (.nowrap):
2816
2817 2012-09-20  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2818
2819         [TouchAdjustment] Simplify and improve hybrid distance function.
2820         https://bugs.webkit.org/show_bug.cgi?id=96519
2821
2822         Reviewed by Antonio Gomes.
2823
2824         The current distance function is a combination of two functions. One measuring the distance from
2825         the hot-spot in the touch-area to the centerline of the target, and one measuring how much of the
2826         target is covered.
2827
2828         The distance to the center-line was used instead of just the distance to the target, to make it
2829         easier to hit small targets near big targets. The very same feature is however also the reason
2830         measuring how much the target is covered is added. Using the distance to center-line is therefore
2831         redundant now, and can be replaced with the simpler 'distance the hot-spot needs to be adjusted'.
2832
2833         Tested by existing touchadjustment tests.
2834
2835         * page/TouchAdjustment.cpp:
2836         (TouchAdjustment):
2837         (WebCore::TouchAdjustment::hybridDistanceFunction):
2838         * platform/graphics/IntRect.cpp:
2839         * platform/graphics/IntRect.h:
2840         (IntRect):
2841
2842 2012-09-20  Yoshifumi Inoue  <yosin@chromium.org>
2843
2844         [Forms] HTMLSelectElement should call formStateDidChange on both menulist and lisbox mode
2845         https://bugs.webkit.org/show_bug.cgi?id=97177
2846
2847         Reviewed by Kent Tamura.
2848
2849         This patch makes listbox mode select element to call formStateDidChange()
2850         when selected options are changed.
2851
2852         For this change, this patch moves notifyFormStateChanged() to
2853         HTMLFormControlElementWithState class from HTMLTextFormControlElement
2854         for sharing code HTMLSelectElement class and HTMLInputElement/HTMLTextAreaElement
2855         derived from HTMLTextFormControlElement.
2856
2857         No new tests. We can't test this change in WebKit test tools. Test script
2858         will be implemented in Chromium side.
2859
2860         * html/HTMLFormControlElementWithState.cpp:
2861         (WebCore::HTMLFormControlElementWithState::notifyFormStateChanged):
2862         (WebCore):
2863         * html/HTMLFormControlElementWithState.h: Moved a declaration of notifyFormStateChanged() from HTMLTextFormControlElement.
2864         (HTMLFormControlElementWithState): Moved an implemented of notifyFormStateChanged() from HTMLTextFormControlElement.
2865         * html/HTMLSelectElement.cpp:
2866         (WebCore::HTMLSelectElement::selectOption): Changed to call notifyFormStateChanged() instead of formStateDidChange().
2867         (WebCore::HTMLSelectElement::updateListBoxSelection): Changed to call notifyFormStateChanged().
2868         * html/HTMLTextFormControlElement.cpp: Moved an implemented of notifyFormStateChanged() to HTMLFormControlElementWithState class.
2869         * html/HTMLTextFormControlElement.h: Moved a declaration of notifyFormStateChanged() to HTMLFormControlElementWithState class.
2870
2871 2012-09-20  Keishi Hattori  <keishi@webkit.org>
2872
2873         REGRESSION(r127727): Can't navigate between months with arrow keys in calendar picker
2874         https://bugs.webkit.org/show_bug.cgi?id=97166
2875
2876         Reviewed by Kent Tamura.
2877
2878         Fixing bug in r127727 so arrow keys work properly.
2879
2880         Test: fast/forms/date/calendar-picker-key-operations.html
2881
2882         * Resources/pagepopups/calendarPicker.js:
2883         (DaysTable.prototype._maybeSetPreviousMonth):
2884         (DaysTable.prototype._maybeSetNextMonth):
2885
2886 2012-09-18  Alexander Pavlov  <apavlov@chromium.org>
2887
2888         Web Inspector: Use and process the actual ScriptId in the protocol EventListener object
2889         https://bugs.webkit.org/show_bug.cgi?id=93271
2890
2891         Reviewed by Yury Semikhatsky.
2892
2893         - Use the actual script identifier in the "location" object's "scriptId" field
2894           for the DOM.EventListener protocol type, but send the script URL in the new "sourceName" field.
2895         - Use 0-based lines in the "location" object's "lineNumber" field for linkifyRawLocation() to work correctly.
2896         - Fixed formatting of links to listener locations to contain "(program)" rather than empty string.
2897
2898         * bindings/js/ScriptEventListener.cpp:
2899         (WebCore::eventListenerHandlerLocation):
2900         * bindings/js/ScriptEventListener.h:
2901         (WebCore):
2902         * bindings/v8/ScriptEventListener.cpp:
2903         (WebCore::eventListenerHandlerLocation):
2904         * bindings/v8/ScriptEventListener.h:
2905         (WebCore):
2906         * inspector/Inspector.json:
2907         * inspector/InspectorDOMAgent.cpp:
2908         (WebCore::InspectorDOMAgent::buildObjectForEventListener):
2909         * inspector/front-end/BreakpointsSidebarPane.js:
2910         * inspector/front-end/EventListenersSidebarPane.js:
2911         * inspector/front-end/Linkifier.js:
2912         (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor):
2913         * inspector/front-end/ResourceUtils.js:
2914         (WebInspector.formatLinkText): Use "(program)" if URL is empty.
2915
2916 2012-09-19  Dan Bernstein  <mitz@apple.com>
2917
2918         WebCore part of adding a setting and API for disabling screen font substitution
2919         https://bugs.webkit.org/show_bug.cgi?id=97168
2920
2921         Reviewed by Tim Horton.
2922
2923         * WebCore.exp.in: Added an entry for Settings::setScreenFontSubstitutionEnabled.
2924         * css/StyleResolver.cpp:
2925         (WebCore::StyleResolver::collectMatchingRulesForList): Changed to use printer fonts if
2926         screen font substitution is not enabled.
2927         * page/Settings.cpp:
2928         (WebCore::Settings::Settings): Added initializer for new m_screenFontSubstitutionEnabled
2929         member variable. The initial value is true, matching existing behavior.
2930         (WebCore::Settings::setScreenFontSubstitutionEnabled): Added this setter, which updated the
2931         member variable and forces a style recalc in all pages using this Settings.
2932         * page/Settings.h:
2933         (Settings): Added m_screenFontSubstitutionEnabled boolean member variable.
2934         (WebCore::Settings::screenFontSubstitutionEnabled): Added this getter.
2935
2936 2012-09-19  Yoshifumi Inoue  <yosin@chromium.org>
2937
2938         [Forms] multiple fields time input UI should call notifyFormStateChanged() when value of field is changed
2939         https://bugs.webkit.org/show_bug.cgi?id=97169
2940
2941         Reviewed by Kent Tamura.
2942
2943         This patch makes multiple fields time input UI calls notifyFormStateChanged()
2944         when field value is changed as other input types do.
2945
2946         This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
2947         ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
2948
2949         No new tests. We can't test this change in WebKit test tools. Test script
2950         will be implemented in Chromium side.
2951
2952         * html/TimeInputType.cpp:
2953         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged):
2954
2955 2012-09-19  Keishi Hattori  <keishi@webkit.org>
2956
2957         REGRESSION(r127727): Calendar picker focus ring should be hidden until key event
2958         https://bugs.webkit.org/show_bug.cgi?id=97165
2959
2960         Reviewed by Kent Tamura.
2961
2962         The regression was caused because NoFocusRing class was being removed
2963         from then main element inside resetMain().
2964
2965         No new tests. Covered by calendar-picker-appearance.html.
2966
2967         * Resources/pagepopups/calendarPicker.js:
2968         (initialize):
2969         (CalendarPicker):
2970         (CalendarPicker.prototype._layout):
2971         (DaysTable.prototype._handleKey):
2972         (CalendarPicker.prototype._handleBodyKeyDown):
2973         (CalendarPicker.prototype.maybeUpdateFocusStyle): Make this a method of CalendarPicker because we don't use it for other pickers.
2974
2975 2012-09-19  David Grogan  <dgrogan@chromium.org>
2976
2977         IndexedDB: Print console warning about setVersion
2978         https://bugs.webkit.org/show_bug.cgi?id=96575
2979
2980         Reviewed by Tony Chang.
2981
2982         setVersion has been out of the spec for almost a year but there are
2983         still a lot of users.
2984
2985         We show the warning once per database object as an approximation for
2986         once per page.
2987
2988         No new tests, but 150-something rebaselines.
2989
2990         * Modules/indexeddb/IDBDatabase.cpp:
2991         (WebCore::IDBDatabase::IDBDatabase):
2992         (WebCore::IDBDatabase::setVersion):
2993         * Modules/indexeddb/IDBDatabase.h:
2994         (IDBDatabase):
2995
2996 2012-09-19  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
2997
2998         [BlackBerry] Basic authentication challenge credentials for stored credentials again after restarting browser
2999         https://bugs.webkit.org/show_bug.cgi?id=96362
3000
3001         Reviewed by Rob Buis.
3002
3003         This patch enable reading credentials from the persistent credential storage
3004         when it is not private browsing mode and there is not a credential in the RAM
3005         for the requested resource.
3006
3007         Since we don't load persistent stored credentials into RAM at the starting time,
3008         even we have saved the credentials at the last browsing, after restarting the browser,
3009         it will still challenge for credentials for the requesting resources.
3010
3011         No new tests, it uses the original authentication tests. There is no way to
3012         clear all credentials or restarting browsers to test this feature.
3013
3014         * platform/network/blackberry/CredentialBackingStore.cpp:
3015         (WebCore::CredentialBackingStore::getProtectionSpace):
3016         (WebCore):
3017         * platform/network/blackberry/CredentialBackingStore.h:
3018         (CredentialBackingStore):
3019         * platform/network/blackberry/NetworkManager.cpp:
3020         (WebCore::NetworkManager::startJob):
3021
3022 2012-09-19  Shinya Kawanaka  <shinyak@chromium.org>
3023
3024         [Refactoring] ButtonInputType of <input> element should have innerElement to make <input> AuthorShadowDOM-ready
3025         https://bugs.webkit.org/show_bug.cgi?id=95939
3026
3027         Reviewed by Dimitri Glazkov.
3028
3029         We had 2 ways to show text in RenderButton. One is to use RenderButton::setText() and the other is to add renderer
3030         as a child of RenderButton. <input type="button"> used the former one, and <button> used the latter one.
3031         The former makes RenderButton a bit messy, and also prevents from making <input> AuthorShadowDOM ready.
3032
3033         So we remove RenderButton::setText() and refactor <input type="button"> to use a Shadow DOM to show text.
3034
3035         Since the text in <input type="button"> should create RenderTextFragment, we introduce TextForButtonInputType
3036         class. RenderText will allow us to select the inner text of <input>, but it should not.
3037
3038         No new tests, existing tests should cover the change.
3039
3040         * html/BaseButtonInputType.cpp:
3041         (TextForButtonInputType): Special Text node which creates RenderTextFragment.
3042         (WebCore):
3043         (WebCore::TextForButtonInputType::create):
3044         (WebCore::TextForButtonInputType::TextForButtonInputType):
3045         (WebCore::TextForButtonInputType::createRenderer):
3046         (WebCore::BaseButtonInputType::BaseButtonInputType):
3047         (WebCore::BaseButtonInputType::createShadowSubtree):
3048         (WebCore::BaseButtonInputType::destroyShadowSubtree):
3049         (WebCore::BaseButtonInputType::valueAttributeChanged): When a button value is changed, we reflect the value to
3050         the text node in ShadowDOM.
3051         * html/BaseButtonInputType.h:
3052         (BaseButtonInputType):
3053         * html/FileInputType.cpp:
3054         (WebCore::UploadButtonElement::create): Creates Shadow DOM subtree.
3055         (WebCore::UploadButtonElement::createForMultiple): Creates Shadow DOM subtree.
3056         * html/HTMLInputElement.cpp:
3057         (WebCore::HTMLInputElement::parseAttribute):
3058         * html/InputType.cpp:
3059         (WebCore::InputType::valueAttributeChanged):
3060         (WebCore):
3061         * html/InputType.h:
3062         (InputType):
3063         * rendering/RenderButton.cpp:
3064         (WebCore::RenderButton::RenderButton):
3065         (WebCore::RenderButton::styleDidChange): Removed unnecessary text related code.
3066         * rendering/RenderButton.h:
3067         (RenderButton):
3068
3069 2012-09-19  Jason Liu  <jason.liu@torchmobile.com.cn>
3070
3071         [BlackBerry] Get infinite amount of requests after attempting re-authentication basic.
3072         https://bugs.webkit.org/show_bug.cgi?id=96994
3073
3074         Reviewed by Rob Buis.
3075
3076         We should remove the wrong credentials before calling sendRequestWithCredentials again.
3077         #PR 200226
3078         Reviewed internally by Jonathan Dong.
3079
3080         No new tests. It is covered by ManualTests/blackberry/http-auth-challenge.html.
3081
3082
3083         * platform/network/blackberry/NetworkJob.cpp:
3084         (WebCore::NetworkJob::notifyAuthReceived):
3085
3086 2012-09-19  Adam Barth  <abarth@webkit.org>
3087
3088         Remove Blob.webkitSlice
3089         https://bugs.webkit.org/show_bug.cgi?id=96715
3090
3091         Reviewed by Darin Fisher.
3092
3093         Based on these usage metrics, it appears that it is safe to remove
3094         Blob.webkitSlice. Folks that were previously calling webkitSlice should
3095         just call slice instead. They do the same thing.
3096
3097         Ratio of Blob.webkitSlice calls to Blob.slice: 14.87%
3098         Ratio of Blob.webkitSlice calls to Document creation: 0.0053%
3099
3100         * fileapi/Blob.cpp:
3101         (WebCore::Blob::slice):
3102         * fileapi/Blob.h:
3103         (Blob):
3104         * fileapi/Blob.idl:
3105         * fileapi/File.h:
3106         (File):
3107         * inspector/front-end/FileUtils.js:
3108         (WebInspector.ChunkedFileReader.prototype._loadChunk):
3109
3110 2012-09-19  Julien Chaffraix  <jchaffraix@webkit.org>
3111
3112         The collapsing border code needs direction-aware border getters
3113         https://bugs.webkit.org/show_bug.cgi?id=96710
3114
3115         Reviewed by Ojan Vafai.
3116
3117         This refactoring is needed to extend our collapsing border support for mixed directionality
3118         at the table cell level (we currently wrongly ignore any direction below the row-group). For
3119         now, the new helpers are dumb and return exactly the old result but they will be made
3120         direction-aware in a follow-up change.
3121
3122         Refactoring covered by existing tests.
3123
3124         * rendering/RenderBox.h:
3125         (WebCore::RenderBox::hasSameDirectionAs):
3126         Added this helper function. For now, it's only used to compare against
3127         the table direction but we will reuse it to compare the current cell
3128         direction against the other table parts.
3129
3130         * rendering/RenderTableCell.h:
3131         (WebCore::RenderTableCell::computeCollapsedStartBorder):
3132         (WebCore::RenderTableCell::computeCollapsedEndBorder):
3133         Transitioned those 2 functions to using the new direction-aware functions.
3134
3135         * rendering/RenderTable.cpp:
3136         (WebCore::RenderTable::tableStartBorderAdjoiningCell):
3137         (WebCore::RenderTable::tableEndBorderAdjoiningCell):
3138         * rendering/RenderTableSection.cpp:
3139         (WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
3140         (WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):
3141         * rendering/RenderTableCell.h:
3142         (WebCore::RenderTableCell::borderAdjoiningTableStart):
3143         (WebCore::RenderTableCell::borderAdjoiningTableEnd):
3144         * rendering/RenderTableSection.h:
3145         (WebCore::RenderTableSection::borderAdjoiningTableStart):
3146         (WebCore::RenderTableSection::borderAdjoiningTableEnd):
3147         Updated those call sites to use RenderBox::hasSameDirectionAs.
3148
3149         * rendering/RenderTableCell.h:
3150         (WebCore::RenderTableCell::borderAdjoiningNextCell):
3151         (WebCore::RenderTableCell::borderAdjoiningPreviousCell):
3152         * rendering/RenderTableCol.cpp:
3153         (WebCore::RenderTableCol::borderAdjoiningCellStartBorder):
3154         (WebCore::RenderTableCol::borderAdjoiningCellEndBorder):
3155         (WebCore::RenderTableCol::borderAdjoiningCellBefore):
3156         (WebCore::RenderTableCol::borderAdjoiningCellAfter):
3157         * rendering/RenderTableCol.h:
3158         * rendering/RenderTableRow.cpp:
3159         (WebCore::RenderTableRow::borderAdjoiningStartCell):
3160         (WebCore::RenderTableRow::borderAdjoiningEndCell):
3161         * rendering/RenderTableRow.h:
3162         (WebCore::RenderTableRow::borderAdjoiningTableStart):
3163         (WebCore::RenderTableRow::borderAdjoiningTableEnd):
3164         * rendering/RenderTableSection.cpp:
3165         (WebCore::RenderTableSection::borderAdjoiningStartCell):
3166         (WebCore::RenderTableSection::borderAdjoiningEndCell):
3167         New direction-aware functions. Added some ASSERT to ensure
3168         we don't call them with the wrong parameters.
3169
3170 2012-09-19  Kentaro Hara  <haraken@chromium.org>
3171
3172         [V8] ScriptController::compileAndRunScript() can crash
3173         https://bugs.webkit.org/show_bug.cgi?id=96567
3174
3175         Reviewed by Adam Barth.
3176
3177         See chromium bug: http://code.google.com/p/chromium/issues/detail?id=146776
3178
3179         The root cause is that v8::PreCompile() can return 0 when the stack of
3180         V8's parser overflows (c.f. http://code.google.com/codesearch#OAMlx_jo-ck/src/v8/src/parser.cc&exact_package=chromium&q=kPreParseStackOverflow&type=cs&l=6021).
3181
3182         This patch adds the 0 check to the caller side. Given that precompileScript()
3183         is just trying to speculatively precompile a script, it's OK to give up
3184         precompiling for such edge cases.
3185
3186         Manually tested with the html generated by the following shell script:
3187
3188           echo '<script language="JavaScript" type="text/javascript" src="asan-crash.js"></script>' > asan-crash.html
3189           echo 'if(wURLF.search("")>=0) {}' > asan-crash.js
3190           for i in `seq 14830`
3191           do
3192             echo 'else if(wURLF.search("")>=0) {}' >> asan-crash.js
3193           done
3194
3195         I didn't add the test because '14380' depends on an environment
3196         and because we don't want to add a huge html test.
3197
3198         * bindings/v8/ScriptSourceCode.cpp:
3199         (WebCore::ScriptSourceCode::precompileScript):
3200
3201 2012-09-19  Joshua Bell  <jsbell@chromium.org>
3202
3203         IndexedDB: Pending call cleanup
3204         https://bugs.webkit.org/show_bug.cgi?id=96952
3205
3206         Reviewed by Tony Chang.
3207
3208         Replace RefPtr usage with OwnPtr for PendingXXXCalls (since they're never referenced twice)
3209         and replace queue of "second half open" calls with a single item.
3210
3211         No new tests - no functional changes.
3212
3213         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3214         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
3215         (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
3216         (WebCore::IDBDatabaseBackendImpl::PendingDeleteCall::create):
3217         (WebCore::IDBDatabaseBackendImpl::PendingSetVersionCall::create):
3218         (WebCore::IDBDatabaseBackendImpl::setVersion):
3219         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
3220         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
3221         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
3222         (WebCore::IDBDatabaseBackendImpl::close):
3223         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
3224         (IDBDatabaseBackendImpl):
3225
3226 2012-09-19  Kenichi Ishibashi  <bashi@chromium.org>
3227
3228         [Chromium] Improve glyph positioning of HarfBuzzShaper
3229         https://bugs.webkit.org/show_bug.cgi?id=97093
3230
3231         Reviewed by Tony Chang.
3232
3233         For proper positioning, HarfBuzzShaper requires the positions(offsets and advance)
3234         of the previous glyph. This mean we need to shape all HarfBuzzRuns before glyph positioning.
3235         Collect and shape HarfBuzzRuns, then set positions of glyphs.
3236
3237         No new tests. Tests that uses spacing for complex text (e.g. fast/text/atsui-negative-spacing-features.html)
3238         should close in the expectations. (not the identical, maybe there are subtle differences between
3239         harfbuzz old and harfbuzz ng)
3240
3241         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
3242         (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Allocate m_offsets.
3243         (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions): Renamed and set offset too.
3244         (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
3245         (WebCore::HarfBuzzShaper::shape): Call fillGlyphBuffer() if we need to fill glyphBuffer.
3246         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Removed glyph positioning code.
3247         (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun): Ditto.
3248         (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun): Added.
3249         (WebCore):
3250         (WebCore::HarfBuzzShaper::fillGlyphBuffer): Added.
3251         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
3252         (HarfBuzzRun):
3253         (WebCore::HarfBuzzShaper::HarfBuzzRun::offsets): Added.
3254         (WebCore::HarfBuzzShaper::HarfBuzzRun::glyphToCharacterIndexes): Added.
3255         (HarfBuzzShaper):
3256
3257 2012-09-19  James Simonsen  <simonjam@chromium.org>
3258
3259         [Chromium] Disable resource load scheduling
3260         https://bugs.webkit.org/show_bug.cgi?id=97131
3261
3262         Reviewed by Nate Chapin.
3263
3264         We'll use Chrome's network stack for scheduling instead.
3265
3266         No new tests.
3267
3268         * loader/ResourceLoadScheduler.cpp:
3269         * loader/cache/CachedResourceLoader.cpp:
3270         (WebCore::CachedResourceLoader::preload):
3271
3272 2012-09-19  Dan Bernstein  <mitz@apple.com>
3273
3274         When kerning is enabled, word spacing is doubly accounted for in RenderText::computePreferredLogicalWidths
3275         https://bugs.webkit.org/show_bug.cgi?id=97146
3276
3277         Reviewed by Anders Carlsson.
3278
3279         Test: fast/text/word-space-with-kerning.html
3280
3281         * rendering/RenderText.cpp:
3282         (WebCore::RenderText::computePreferredLogicalWidths): When kerning is enabled, words are
3283         measured with their trailing space, if there is one, then the width of a space is subtracted.
3284         Changed that width, stored in the local variable wordTrailingSpaceWidth, to include the
3285         word spacing, since it is included in the result of widthFromCache().
3286
3287 2012-09-19  Joshua Bell  <jsbell@chromium.org>
3288
3289         IndexedDB: Remove "current transaction" concept from backing store
3290         https://bugs.webkit.org/show_bug.cgi?id=96663
3291
3292         Reviewed by Tony Chang.
3293
3294         IndexedDB should allow multiple transactions to run in parallel within and
3295         across databases within an origin. As an initial step to enabling this, the
3296         backing store should not hold a "current transaction" - instead, operations
3297         should be done relative to a transaction managed by the database.
3298
3299         No new tests - no functional changes.
3300
3301         * Modules/indexeddb/IDBBackingStore.h:
3302         (IDBBackingStore):
3303         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3304         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
3305         (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
3306         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
3307         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
3308         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
3309         (IDBDatabaseBackendImpl):
3310         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
3311         (WebCore::IDBIndexBackendImpl::openCursorInternal):
3312         (WebCore::IDBIndexBackendImpl::countInternal):
3313         (WebCore::IDBIndexBackendImpl::count):
3314         (WebCore::IDBIndexBackendImpl::getInternal):
3315         (WebCore::IDBIndexBackendImpl::getKeyInternal):
3316         (WebCore::IDBIndexBackendImpl::get):
3317         (WebCore::IDBIndexBackendImpl::getKey):
3318         * Modules/indexeddb/IDBIndexBackendImpl.h:
3319         (IDBIndexBackendImpl):
3320         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
3321         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
3322         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
3323         (WebCore::IDBLevelDBBackingStore::createObjectStore):
3324         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
3325         (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
3326         (WebCore):
3327         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
3328         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
3329         (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
3330         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
3331         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
3332         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
3333         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
3334         (WebCore::IDBLevelDBBackingStore::createIndex):
3335         (WebCore::IDBLevelDBBackingStore::deleteIndex):
3336         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
3337         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
3338         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
3339         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
3340         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
3341         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
3342         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
3343         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
3344         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
3345         (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
3346         (WebCore::IDBLevelDBBackingStore::Transaction::begin):
3347         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
3348         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
3349         * Modules/indexeddb/IDBLevelDBBackingStore.h:
3350         (IDBLevelDBBackingStore):
3351         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransaction):
3352         (Transaction):
3353         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
3354         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3355         (WebCore::IDBObjectStoreBackendImpl::get):
3356         (WebCore::IDBObjectStoreBackendImpl::getInternal):
3357         (WebCore):
3358         (WebCore::makeIndexWriters):
3359         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
3360         (WebCore::IDBObjectStoreBackendImpl::putInternal):
3361         (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
3362         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
3363         (WebCore::IDBObjectStoreBackendImpl::clear):
3364         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
3365         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
3366         (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
3367         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
3368         (WebCore::IDBObjectStoreBackendImpl::count):
3369         (WebCore::IDBObjectStoreBackendImpl::countInternal):
3370         (WebCore::IDBObjectStoreBackendImpl::generateKey):
3371         (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
3372         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
3373         (IDBObjectStoreBackendImpl):
3374
3375 2012-09-19  Terry Anderson  <tdanderson@chromium.org>
3376
3377         [chromium] Store the contents scale factor in PlatformContextSkia on initialization
3378         https://bugs.webkit.org/show_bug.cgi?id=96137
3379
3380         Reviewed by Stephen White.
3381
3382         When the compositor creates a PlatformContextSkia, the scale on |canvas| will 
3383         be equal to the content scale factor (which, without pinch-to-zoom, will be
3384         the same as the device scale factor). Set this value as a member on PlatformContextSkia, 
3385         which will be used to correctly render glyphs when hinting is used and the device
3386         scale factor is not 1.
3387
3388         Tests: added two new unit tests.
3389
3390         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
3391         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
3392         * platform/graphics/skia/PlatformContextSkia.cpp:
3393         (WebCore::PlatformContextSkia::PlatformContextSkia):
3394         (WebCore::PlatformContextSkia::setupPaintCommon):
3395         * platform/graphics/skia/PlatformContextSkia.h:
3396         (PlatformContextSkia):
3397         (WebCore::PlatformContextSkia::setHintingScaleFactor):
3398         (WebCore::PlatformContextSkia::hintingScaleFactor):
3399
3400 2012-09-19  Kenichi Ishibashi  <bashi@chromium.org>
3401
3402         [Chromium] HarfBuzzShaper should take into account combining characters
3403         https://bugs.webkit.org/show_bug.cgi?id=97069
3404
3405         Reviewed by Tony Chang.
3406
3407         When dividing a text run into HarfBuzzRuns, try to find suitable SimpleFontData for
3408         combining character sequence if there are one or more mark characters are followed.
3409         If there is no combined glyphs in the font, use fallback font for mark characters.
3410
3411         No new tests.
3412         In platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html,
3413         U+0947 (devanagari vowel sign e) should be displayed.
3414         In fast/text/wide-zero-width-space.html, &eacute; and e&#0301; should look identical.
3415
3416         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
3417         (WebCore):
3418         (WebCore::fontDataForCombiningCharacterSequence): Added.
3419         (WebCore::HarfBuzzShaper::collectHarfBuzzRuns): See above description.
3420
3421 2012-09-19  Tony Chang  <tony@chromium.org>
3422
3423         Remove RenderIFrame::updateLogicalHeight and RenderIFrame::updateLogicalWidth
3424         https://bugs.webkit.org/show_bug.cgi?id=97049