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