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