Vertical flow support for OpenType fonts with the least platform dependencies
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-29  Koji Ishii  <kojiishi@gmail.com>
2
3
4         Vertical flow support for OpenType fonts with the least platform dependencies
5         https://bugs.webkit.org/show_bug.cgi?id=81326
6
7         Reviewed by Dan Bernstein.
8
9         This patch introduces a new class OpenTypeVerticalData to read
10         vertical font metrics from OpenType fonts.
11
12         Currently, WebKit relies on platform APIs to do the work. However,
13         some platforms such as Windows lack support for all the capabilities
14         WebKit requires for vertical flow and the text-orientation property
15         to work correctly. Reading OpenType tables directly also gives
16         benefits in consistent behavior among the WebKit platforms.
17
18         This patch is for any platforms that want to parse OpenType tables
19         directly, but it's currently included only in CGWin and isn't on any
20         code path even on CGWin yet. Caller's side change for CGWin and
21         support for other platforms will be in separate bugs.
22
23         No new tests are required. No behavior changes.
24
25         * WebCore.vcproj/WebCore.vcproj: Added OpenTypeTypes.h and OpenTypeVerticalData.h/cpp.
26         * platform/SharedBuffer.cpp: Add create(size_t)
27         (WebCore::SharedBuffer::SharedBuffer):
28         (WebCore):
29         * platform/SharedBuffer.h: Add create(size_t)
30         (WebCore::SharedBuffer::create):
31         (SharedBuffer):
32         * platform/graphics/FontPlatformData.h: Added openTypeTable().
33         (WebCore):
34         (FontPlatformData):
35         * platform/graphics/SimpleFontData.h: Added sizePerUnit().
36         (WebCore::SimpleFontData::sizePerUnit): size() / unitsPerEm() for less multiplication.
37         * platform/graphics/opentype/OpenTypeTypes.h: Added OpenType basic type definitions.
38         (OpenType):
39         (WebCore::OpenType::BigEndianShort::operator short):
40         (WebCore::OpenType::BigEndianShort::BigEndianShort):
41         (BigEndianShort):
42         (WebCore::OpenType::BigEndianUShort::operator unsigned short):
43         (WebCore::OpenType::BigEndianUShort::BigEndianUShort):
44         (BigEndianUShort):
45         (WebCore::OpenType::BigEndianLong::operator int):
46         (WebCore::OpenType::BigEndianLong::BigEndianLong):
47         (BigEndianLong):
48         (WebCore::OpenType::BigEndianULong::operator unsigned):
49         (WebCore::OpenType::BigEndianULong::BigEndianULong):
50         (BigEndianULong):
51         * platform/graphics/opentype/OpenTypeVerticalData.cpp: Added.
52         (OpenType):
53         (HheaTable):
54         (VheaTable):
55         (Entry):
56         (VORGTable):
57         (VertOriginYMetrics):
58         (WebCore::OpenType::VORGTable::requiredSize):
59         (WebCore):
60         (WebCore::validatedPtr):
61         (WebCore::OpenTypeVerticalData::OpenTypeVerticalData):
62         (WebCore::OpenTypeVerticalData::advanceHeight): Advance height for a glyph.
63         (WebCore::OpenTypeVerticalData::getVerticalTranslationsForGlyphs): Vertical origin.
64         * platform/graphics/opentype/OpenTypeVerticalData.h: Added.
65         (WebCore):
66         (OpenTypeVerticalData): A new class to handle vertical flow data in OpenType.
67         (WebCore::OpenTypeVerticalData::isOpenType):
68         (WebCore::OpenTypeVerticalData::hasVerticalMetrics):
69         (WebCore::OpenTypeVerticalData::hasVORG):
70         * platform/graphics/win/FontPlatformDataWin.cpp:
71         (WebCore):
72         (WebCore::FontPlatformData::openTypeTable): Implemented openTypeTable() for Win32.
73
74 2012-03-29  Leo Yang  <leo.yang@torchmobile.com.cn>
75
76         [BlackBerry] Sync up PlatformMouseEvent
77         https://bugs.webkit.org/show_bug.cgi?id=82567
78
79         Reviewed by Rob Buis.
80
81         This patch is adding blackberry specific members to PlatformMouseEvent.
82         Also re-base PlatformMouseEventBlackBerry to adapt to the re-factor
83         of PlatformMouseEvent.
84
85         * platform/PlatformMouseEvent.h:
86         (PlatformMouseEvent): BlackBerry specific constructor.
87         (WebCore::PlatformMouseEvent::inputMethod): Input source of mouse event
88         for blackberry platform.
89         * platform/blackberry/PlatformMouseEventBlackBerry.cpp:
90         (WebCore::PlatformMouseEvent::PlatformMouseEvent): Re-base the constructor
91         to adapt the re-factor of PlatformMouseEvent.
92
93 2012-03-29  Leo Yang  <leo.yang@torchmobile.com.cn>
94
95         [BlackBerry] Turn on STORE_FONT_CUSTOM_PLATFORM_DATA in CachedFont.cpp
96         https://bugs.webkit.org/show_bug.cgi?id=82573
97
98         Reviewed by Rob Buis.
99
100         Tests: covered by existing tests.
101
102         * loader/cache/CachedFont.cpp:
103
104 2012-03-29  Adam Barth  <abarth@webkit.org>
105
106         [Chromium] Attempt to fix the component build
107         https://bugs.webkit.org/show_bug.cgi?id=82676
108
109         Reviewed by Dirk Pranke.
110
111         Now that we're implementing some of the WEBKIT_EXPORT symbols in
112         WebCore/platform/chromium/support, we need to tell the build system
113         that we want to actually export these symbols.
114
115         * WebCore.gyp/WebCore.gyp:
116
117 2012-03-29  Adam Barth  <abarth@webkit.org>
118
119         Unreviewed, rolling out r112572.
120         http://trac.webkit.org/changeset/112572
121         https://bugs.webkit.org/show_bug.cgi?id=82582
122
123         Does not compile in Windows component build
124
125         * WebCore.gyp/WebCore.gyp:
126         * WebCore.gypi:
127
128 2012-03-29  Adam Barth  <abarth@webkit.org>
129
130         Unreviewed, rolling out r112579.
131         http://trac.webkit.org/changeset/112579
132         https://bugs.webkit.org/show_bug.cgi?id=82657
133
134         Does not compile in Windows component build
135
136         * WebCore.gypi:
137
138 2012-03-29  Adam Barth  <abarth@webkit.org>
139
140         Unreviewed, rolling out r112611.
141         http://trac.webkit.org/changeset/112611
142         https://bugs.webkit.org/show_bug.cgi?id=82676
143
144         Does not compile in Windows component build
145
146         * WebCore.gyp/WebCore.gyp:
147
148 2012-03-29  Bear Travis  <betravis@adobe.com>
149
150         Update shape-inside/shape-outside CSS Exclusion properties
151         https://bugs.webkit.org/show_bug.cgi?id=82365
152
153         Reviewed by Ryosuke Niwa.
154
155         Updating CSS property names for wrap-shape-inside and wrap-shape-outside
156         to shape-inside and shape-outside, per the current exclusions spec.
157         Renaming some parsing functions in CSSParser for clarity.
158         No new functionality.
159
160         * css/CSSComputedStyleDeclaration.cpp:
161         (WebCore):
162         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
163         * css/CSSParser.cpp:
164         (WebCore::CSSParser::parseValue):
165         (WebCore::CSSParser::parseClipShape):
166         (WebCore::CSSParser::parseExclusionShapeRect):
167         (WebCore::CSSParser::parseExclusionShapeCircle):
168         (WebCore::CSSParser::parseExclusionShapeEllipse):
169         (WebCore::CSSParser::parseExclusionShapePolygon):
170         (WebCore::CSSParser::parseExclusionShape):
171         * css/CSSParser.h:
172         * css/CSSProperty.cpp:
173         (WebCore::CSSProperty::isInheritedProperty):
174         * css/CSSPropertyNames.in:
175         * css/CSSStyleSelector.cpp:
176         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
177
178 2012-03-29  Ryan Sleevi  <rsleevi@chromium.org>
179
180         [chromium] Update paths in GYP files
181         https://bugs.webkit.org/show_bug.cgi?id=82663
182
183         Reviewed by Adam Barth.
184
185         * WebCore.gypi:
186         Remove PluginDataGtk.cpp following r112401
187
188 2012-03-29  Abhishek Arya  <inferno@chromium.org>
189
190         Crash in GenericEventQueue::~GenericEventQueue.
191         https://bugs.webkit.org/show_bug.cgi?id=81976
192
193         Reviewed by Eric Carlson.
194
195         * dom/GenericEventQueue.cpp:
196         (WebCore::GenericEventQueue::create):
197         (WebCore):
198         (WebCore::GenericEventQueue::GenericEventQueue):
199         (WebCore::GenericEventQueue::enqueueEvent):
200         (WebCore::GenericEventQueue::timerFired):
201         * dom/GenericEventQueue.h:
202         (GenericEventQueue):
203         * html/HTMLMediaElement.cpp:
204         (WebCore::HTMLMediaElement::HTMLMediaElement):
205         (WebCore::HTMLMediaElement::scheduleEvent):
206         (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
207         (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
208         (WebCore::HTMLMediaElement::hasPendingActivity):
209         * html/HTMLMediaElement.h:
210         (HTMLMediaElement):
211
212 2012-03-29  Adam Barth  <abarth@webkit.org>
213
214         [Chromium] Attempt to fix the component build
215         https://bugs.webkit.org/show_bug.cgi?id=82676
216
217         Unreviewed.
218
219         Now that we're implementing some of the WEBKIT_EXPORT symbols in
220         WebCore/platform/chromium/support, we need to tell the build system
221         that we want to actually export these symbols.
222
223         * WebCore.gyp/WebCore.gyp:
224
225 2012-03-29  Nate Chapin  <japhet@chromium.org>
226
227         Simplify reporting a main resource error to DocumentLoader and
228         FrameLoader.
229         https://bugs.webkit.org/show_bug.cgi?id=82649
230
231         Reviewed by Adam Barth.
232
233         No new tests, no functionality change intended.
234
235         * loader/DocumentLoader.cpp:
236         (WebCore::DocumentLoader::mainReceivedError): Remove isComplete parameter,
237             since it was always true. Call FrameLoader::receivedMainResourceError,
238             instead of the other way around.
239         * loader/DocumentLoader.h:
240         * loader/FrameLoader.cpp:
241         (WebCore::FrameLoader::receivedMainResourceError): Remove isComplete parameter,
242             since it was always true. Merge in most of mainReceivedCompleteError().
243         * loader/FrameLoader.h:
244         * loader/MainResourceLoader.cpp:
245         (WebCore::MainResourceLoader::receivedError):
246         (WebCore::MainResourceLoader::didCancel):
247
248 2012-03-28  Jer Noble  <jer.noble@apple.com>
249
250         Heap-use-after-free in WebCore::InlineFlowBox::deleteLine due to fullscreen issues.
251         https://bugs.webkit.org/show_bug.cgi?id=82055
252
253         Reviewed by David Hyatt.
254
255         No new tests; fixes fuzz test crasher which is not reproducible in DRT or WKTR.
256
257         When a RenderFullScreen object is inserted between a child and parent renderer, make sure the
258         parent renderer deletes its line boxes by calling setNeedsLayoutAndPrefWidthsRecalc().  This
259         forces its InlineBox renderers to be removed from the line boxes and their parents in the correct
260         order, fixing a double-delete crash.
261
262         The same is true when unwrapping the RenderFullScreen object, and when creating and inserting
263         the full screen placeholder.
264
265         * rendering/RenderFullScreen.cpp:
266         (RenderFullScreen::wrapRenderer):
267         (RenderFullScreen::unwrapRenderer):
268         (RenderFullScreen::createPlaceholder):
269
270 2012-03-29  Benjamin Poulain  <bpoulain@apple.com>
271
272         Get rid of Geolocation::positionChangedInternal(), use positionChanged() directly
273         https://bugs.webkit.org/show_bug.cgi?id=82543
274
275         Reviewed by Andreas Kling.
276
277         After the change to client based geolocation, the method positionChangedInternal()
278         is called only by positionChanged(). This patch remove this extra indirection.
279
280         * Modules/geolocation/Geolocation.cpp:
281         (WebCore::Geolocation::positionChanged):
282         * Modules/geolocation/Geolocation.h:
283         (Geolocation):
284         * WebCore.order:
285
286 2012-03-29  Joseph Pecoraro  <pecoraro@apple.com>
287
288         InputType attribute changed functions should happen after the attribute change
289         https://bugs.webkit.org/show_bug.cgi?id=82644
290
291         Reviewed by Benjamin Poulain.
292
293         * html/HTMLInputElement.cpp:
294         (WebCore::HTMLInputElement::parseAttribute):
295
296 2012-03-29  Bear Travis  <betravis@adobe.com>
297
298         Update CSS Exclusion wrap-flow values left & right to start & end
299         https://bugs.webkit.org/show_bug.cgi?id=82366
300
301         http://dev.w3.org/csswg/css3-exclusions/
302         -webkit-wrap-flow now takes the values start and end rather than
303         left and right. Updating the code to reflect this. Functionality
304         is covered by existing tests.
305         
306         Reviewed by Andreas Kling.
307
308         * css/CSSParser.cpp:
309         (WebCore::isValidKeywordPropertyAndValue):
310         * css/CSSPrimitiveValueMappings.h:
311         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
312         (WebCore::CSSPrimitiveValue::operator WrapFlow):
313         * rendering/style/RenderStyleConstants.h:
314
315 2012-03-29  Dirk Pranke  <dpranke@chromium.org>
316
317         rollout r112484, r112545, r112574
318         https://bugs.webkit.org/show_bug.cgi?id=82662
319
320         Unreviewed, build fix.
321
322         this appears to be producing some questionable differences on
323         the apple mac bots, and possibly one test on chromium linux.
324
325         * css/mediaControls.css:
326         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
327         * css/mediaControlsChromium.css:
328         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
329         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
330         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
331         * html/shadow/MediaControlElements.cpp:
332         (RenderMediaVolumeSliderContainer):
333         (WebCore):
334         (WebCore::RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer):
335         (WebCore::RenderMediaVolumeSliderContainer::layout):
336         (WebCore::MediaControlVolumeSliderContainerElement::createRenderer):
337         * html/shadow/MediaControlElements.h:
338         (MediaControlVolumeSliderContainerElement):
339         * html/shadow/MediaControlRootElementChromium.cpp:
340         (WebCore::MediaControlRootElementChromium::create):
341
342 2012-03-29  Julien Chaffraix  <jchaffraix@webkit.org>
343
344         REGRESSION (r110065-r110080): Content drawing outside overflow: hidden at ynet.co.il
345         https://bugs.webkit.org/show_bug.cgi?id=82129
346
347         Reviewed by Ojan Vafai.
348
349         Tests: fast/overflow/before-after-overflow-hidden-horizontal-writing-mode-tb-expected.html
350                fast/overflow/before-after-overflow-hidden-horizontal-writing-mode-tb.html
351                fast/overflow/before-after-overflow-hidden-vertical-writing-mode-rl-expected.html
352                fast/overflow/before-after-overflow-hidden-vertical-writing-mode-rl.html
353                fast/overflow/start-end-overflow-hidden-horizontal-writing-mode-tb-expected.html
354                fast/overflow/start-end-overflow-hidden-horizontal-writing-mode-tb.html
355                fast/overflow/start-end-overflow-hidden-vertical-writing-mode-rl-expected.html
356                fast/overflow/start-end-overflow-hidden-vertical-writing-mode-rl.html
357
358         This is a regression from r110072. I wrongly thought we should call ensureLayer if we create our RenderOverflow.
359         However the current overflow code removes the before and start overflows (like in horizontal writing mode with ltr direction,
360         we never have a top or a left overflow). Because of that we would not get a RenderLayer as expected and the overflow clip rects
361         would be wrong on our RenderLayer children.
362
363         * rendering/RenderBox.cpp:
364         (WebCore::RenderBox::addLayoutOverflow):
365         Moved the ensureLayer() call after the check that we do have some overflow but before we remove the overflow in some directions.
366
367 2012-03-29  Adam Barth  <abarth@webkit.org>
368
369         [Chromium] Move ResourceHandle to WebCore/platform/network/chromium
370         https://bugs.webkit.org/show_bug.cgi?id=82657
371
372         Reviewed by James Robinson.
373
374         We finally arive at our destination. This patch actually moves
375         WebCore::ResourceHandle from Source/WebKit/chromium/src to
376         Source/WebCore/network/chromium, matching its location in other ports.
377         To make this happen, we also need to move WrappedResourceRequest and
378         WrappedResourceResponse.
379
380         This patch is the last patch from
381         https://github.com/abarth/webkit/compare/master...webcore-platform
382
383         * WebCore.gypi:
384         * platform/chromium/support/WrappedResourceRequest.h: Copied from Source/WebKit/chromium/src/WrappedResourceRequest.h.
385         * platform/chromium/support/WrappedResourceResponse.h: Copied from Source/WebKit/chromium/src/WrappedResourceResponse.h.
386         * platform/network/chromium/ResourceHandle.cpp: Copied from Source/WebKit/chromium/src/ResourceHandle.cpp.
387         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
388         (WebCore::ResourceHandleInternal::start):
389         (WebCore::ResourceHandle::loadResourceSynchronously):
390         (WebCore::ResourceHandle::cacheMetadata):
391         * platform/network/chromium/ResourceHandleInternal.h: Copied from Source/WebKit/chromium/src/ResourceHandleInternal.h.
392
393 2012-03-29  Patrick Gansterer  <paroga@webkit.org>
394
395         Build fix for WinCE after r112555.
396
397         * platform/text/wince/TextCodecWinCE.cpp:
398         (WebCore::LanguageManager::LanguageManager):
399
400 2012-03-29  Anders Carlsson  <andersca@apple.com>
401
402         Images that reload via media queries don't paint when device scale factor changes
403         https://bugs.webkit.org/show_bug.cgi?id=82648
404         <rdar://problem/11143637>
405
406         Reviewed by Beth Dakin.
407
408         Commit scale factor changes before dirty rect changes, since setting the scale factor
409         can lead to more rects being dirtied when using the tile cache.
410
411         * platform/graphics/ca/GraphicsLayerCA.cpp:
412         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
413
414 2012-03-29  Adam Barth  <abarth@webkit.org>
415
416         Move CPP files related to ResourceHandle to WebCore/platform
417         https://bugs.webkit.org/show_bug.cgi?id=82582
418
419         Reviewed by James Robinson.
420
421         This patch moves a number of files that implement parts of the platform
422         portion of the Chromium WebKit API from the WebKit layer to
423         WebCore/platform. These files are in the dependency cone of
424         ResourceHandle and have no dependencies on anything outside
425         WebCore/platform.
426
427         * WebCore.gyp/WebCore.gyp:
428         * WebCore.gypi:
429         * platform/chromium/support: Added.
430         * platform/chromium/support/WebData.cpp: Copied from Source/WebKit/chromium/src/WebData.cpp.
431         * platform/chromium/support/WebHTTPBody.cpp: Copied from Source/WebKit/chromium/src/WebHTTPBody.cpp.
432         * platform/chromium/support/WebHTTPLoadInfo.cpp: Copied from Source/WebKit/chromium/src/WebHTTPLoadInfo.cpp.
433         * platform/chromium/support/WebURL.cpp: Copied from Source/WebKit/chromium/src/WebURL.cpp.
434         * platform/chromium/support/WebURLError.cpp: Copied from Source/WebKit/chromium/src/WebURLError.cpp.
435         * platform/chromium/support/WebURLRequest.cpp: Copied from Source/WebKit/chromium/src/WebURLRequest.cpp.
436         * platform/chromium/support/WebURLRequestPrivate.h: Copied from Source/WebKit/chromium/src/WebURLRequestPrivate.h.
437         * platform/chromium/support/WebURLResponse.cpp: Copied from Source/WebKit/chromium/src/WebURLResponse.cpp.
438         * platform/chromium/support/WebURLResponsePrivate.h: Copied from Source/WebKit/chromium/src/WebURLResponsePrivate.h.
439
440 2012-03-29  Michal Mocny  <mmocny@google.com>
441
442         [chromium] Ensure framebuffer exists at the start of beginDrawingFrame.
443         https://bugs.webkit.org/show_bug.cgi?id=82569
444
445         Reviewed by James Robinson.
446
447         Updated LayerRendererChromiumTest unittests.
448
449         * platform/graphics/chromium/LayerRendererChromium.cpp:
450         (WebCore::LayerRendererChromium::setVisible):
451         (WebCore::LayerRendererChromium::beginDrawingFrame):
452         * platform/graphics/chromium/LayerRendererChromium.h:
453         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
454         (WebCore::CCSingleThreadProxy::compositeAndReadback):
455         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
456         (WebCore::CCThreadProxy::compositeAndReadback):
457         (WebCore::CCThreadProxy::requestReadbackOnImplThread):
458
459 2012-03-29  Ryosuke Niwa  <rniwa@webkit.org>
460
461         Add a compile assert for the size of RenderBlock
462         https://bugs.webkit.org/show_bug.cgi?id=82586
463
464         Reviewed by Tony Chang.
465         
466         Add compile asserts for the size of RenderBlock and RenderBlock::MarginValues.
467         We can't add asserts for FloatingObject and MarginInfo because they're private to RenderBlock.
468
469         * rendering/RenderBlock.cpp:
470         (SameSizeAsRenderBlock):
471         (WebCore):
472         (WebCore::RenderBlock::addOverflowFromFloats):
473         (WebCore::RenderBlock::repaintOverhangingFloats):
474         (WebCore::RenderBlock::paintFloats):
475         (WebCore::RenderBlock::insertFloatingObject):
476         (WebCore::RenderBlock::clearFloats):
477         (WebCore::RenderBlock::addOverhangingFloats):
478         (WebCore::RenderBlock::addIntrudingFloats):
479         (WebCore::RenderBlock::hitTestFloats):
480         (WebCore::RenderBlock::adjustForBorderFit):
481         * rendering/RenderBlock.h:
482         (WebCore::RenderBlock::FloatingObject::shouldPaint):
483         (WebCore::RenderBlock::FloatingObject::setShouldPaint):
484         (WebCore::RenderBlock::FloatingObject::isDescendant):
485         (WebCore::RenderBlock::FloatingObject::setIsDescendant):
486         (FloatingObject):
487         (RenderBlock):
488
489 2012-03-29  Gavin Barraclough  <barraclough@apple.com>
490
491         Template the Yarr::Interpreter on the character type
492         https://bugs.webkit.org/show_bug.cgi?id=82637
493
494         Reviewed by Sam Weinig.
495
496         We should be able to call to the interpreter after having already checked the character type,
497         without having to re-package the character pointer back up into a string!
498
499         * inspector/ContentSearchUtils.cpp:
500         (WebCore::ContentSearchUtils::findMagicComment):
501         * platform/text/RegularExpression.cpp:
502         (WebCore::RegularExpression::match):
503             - Don't pass length.
504
505 2012-03-29  Sheriff Bot  <webkit.review.bot@gmail.com>
506
507         Unreviewed, rolling out r112553.
508         http://trac.webkit.org/changeset/112553
509         https://bugs.webkit.org/show_bug.cgi?id=82638
510
511         It made all tests crash on Qt WK2 (Requested by Ossy_away on
512         #webkit).
513
514         * Modules/geolocation/Geolocation.cpp:
515         (WebCore::Geolocation::stop):
516         (WebCore::Geolocation::lastPosition):
517         (WebCore::Geolocation::requestPermission):
518         (WebCore::Geolocation::startUpdating):
519         (WebCore::Geolocation::stopUpdating):
520         * Modules/geolocation/Geolocation.h:
521         (WebCore):
522         * Modules/geolocation/GeolocationController.cpp:
523         * Modules/geolocation/GeolocationController.h:
524         * WebCore.exp.in:
525         * page/GeolocationClient.h:
526         (WebCore):
527         (GeolocationClient):
528         * page/Page.cpp:
529         (WebCore::Page::Page):
530         (WebCore::Page::PageClients::PageClients):
531         * page/Page.h:
532         (WebCore):
533         (PageClients):
534         (Page):
535         (WebCore::Page::geolocationController):
536
537 2012-03-29  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
538
539         HashMap<>::add should return a more descriptive object
540         https://bugs.webkit.org/show_bug.cgi?id=71063
541
542         Reviewed by Ryosuke Niwa.
543
544         Update code to use AddResult instead of a pair. No new tests, just a refactoring.
545
546         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
547         (WebCore::SQLTransactionCoordinator::acquireLock):
548         * Modules/webdatabase/chromium/QuotaTracker.cpp:
549         (WebCore::QuotaTracker::updateDatabaseSize):
550         * bindings/js/DOMObjectHashTableMap.h:
551         (WebCore::DOMObjectHashTableMap::get):
552         * bindings/js/JSDOMBinding.cpp:
553         (WebCore::cacheDOMStructure):
554         * bindings/js/JSDOMBinding.h:
555         (WebCore::cacheWrapper):
556         * bindings/js/JSDOMGlobalObject.h:
557         (WebCore::getDOMConstructor):
558         * bindings/js/PageScriptDebugServer.cpp:
559         (WebCore::PageScriptDebugServer::addListener):
560         * bindings/js/ScriptDebugServer.cpp:
561         (WebCore::ScriptDebugServer::setBreakpoint):
562         * bindings/js/SerializedScriptValue.cpp:
563         (WebCore::CloneSerializer::startObjectInternal):
564         (WebCore::CloneSerializer::write):
565         * bindings/v8/NPV8Object.cpp:
566         (WebCore::npCreateV8ScriptObject):
567         * bridge/IdentifierRep.cpp:
568         (WebCore::IdentifierRep::get):
569         * bridge/NP_jsobject.cpp:
570         (ObjectMap::add):
571         * css/CSSComputedStyleDeclaration.cpp:
572         (WebCore::logUnimplementedPropertyID):
573         * css/CSSFontFaceSource.cpp:
574         (WebCore::CSSFontFaceSource::getFontData):
575         * css/CSSFontSelector.cpp:
576         (WebCore::CSSFontSelector::addFontFaceRule):
577         (WebCore::CSSFontSelector::getFontData):
578         * css/CSSSegmentedFontFace.cpp:
579         (WebCore::CSSSegmentedFontFace::getFontData):
580         * css/CSSStyleApplyProperty.cpp:
581         (WebCore::ApplyPropertyCounter::applyInheritValue):
582         (WebCore::ApplyPropertyCounter::applyValue):
583         * css/CSSStyleSelector.cpp:
584         (WebCore::CSSStyleSelector::appendAuthorStylesheets):
585         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
586         * css/CSSValuePool.cpp:
587         (WebCore::CSSValuePool::createIdentifierValue):
588         (WebCore::CSSValuePool::createColorValue):
589         (WebCore::CSSValuePool::createValue):
590         (WebCore::CSSValuePool::createFontFamilyValue):
591         (WebCore::CSSValuePool::createFontFaceValue):
592         * dom/CheckedRadioButtons.cpp:
593         (WebCore::RadioButtonGroup::add):
594         (WebCore::CheckedRadioButtons::addButton):
595         * dom/ChildListMutationScope.cpp:
596         (WebCore::ChildListMutationScope::MutationAccumulationRouter::incrementScopingLevel):
597         * dom/Document.cpp:
598         (WebCore::Document::windowNamedItems):
599         (WebCore::Document::documentNamedItems):
600         (WebCore::Document::getCSSCanvasElement):
601         (WebCore::Document::getItems):
602         * dom/DocumentEventQueue.cpp:
603         (WebCore::DocumentEventQueue::enqueueEvent):
604         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
605         (WebCore::DocumentEventQueue::pendingEventTimerFired):
606         * dom/DocumentOrderedMap.cpp:
607         (WebCore::DocumentOrderedMap::add):
608         * dom/EventListenerMap.cpp:
609         (WebCore::EventListenerMap::add):
610         * dom/Node.cpp:
611         (WebCore::Node::dumpStatistics):
612         (WebCore::Node::getElementsByTagName):
613         (WebCore::Node::getElementsByTagNameNS):
614         (WebCore::Node::getElementsByName):
615         (WebCore::Node::getElementsByClassName):
616         (WebCore::Node::collectMatchingObserversForMutation):
617         * dom/QualifiedName.cpp:
618         (WebCore::QualifiedName::init):
619         * dom/SpaceSplitString.cpp:
620         (WebCore::SpaceSplitStringData::create):
621         * dom/StyledElement.cpp:
622         (WebCore::StyledElement::updateAttributeStyle):
623         * html/HTMLCollection.cpp:
624         (WebCore::HTMLCollection::append):
625         * inspector/DOMPatchSupport.cpp:
626         (WebCore::DOMPatchSupport::diff):
627         * inspector/InspectorCSSAgent.cpp:
628         (WebCore::SelectorProfile::commitSelector):
629         * inspector/InspectorDOMAgent.cpp:
630         (WebCore::InspectorDOMAgent::performSearch):
631         * inspector/InspectorDebuggerAgent.cpp:
632         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
633         * inspector/InspectorValues.h:
634         (WebCore::InspectorObject::setValue):
635         (WebCore::InspectorObject::setObject):
636         (WebCore::InspectorObject::setArray):
637         * loader/appcache/ApplicationCacheGroup.cpp:
638         (WebCore::ApplicationCacheGroup::addEntry):
639         * loader/appcache/ApplicationCacheStorage.cpp:
640         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
641         * page/EventHandler.cpp:
642         (WebCore::EventHandler::handleTouchEvent):
643         * page/PageGroup.cpp:
644         (WebCore::PageGroup::pageGroup):
645         (WebCore::PageGroup::addVisitedLink):
646         (WebCore::PageGroup::addUserScriptToWorld):
647         (WebCore::PageGroup::addUserStyleSheetToWorld):
648         * page/SecurityPolicy.cpp:
649         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
650         * page/TouchAdjustment.cpp:
651         (WebCore::TouchAdjustment::compileSubtargetList):
652         * platform/cf/BinaryPropertyList.cpp:
653         (WebCore::BinaryPropertyListPlan::writeInteger):
654         (WebCore::BinaryPropertyListPlan::writeString):
655         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
656         * platform/graphics/blackberry/LayerTiler.cpp:
657         (WebCore::LayerTiler::addTileJob):
658         * platform/graphics/ca/GraphicsLayerCA.cpp:
659         (WebCore::GraphicsLayerCA::findOrMakeClone):
660         * platform/graphics/ca/mac/TileCache.mm:
661         (WebCore::TileCache::revalidateTiles):
662         * platform/graphics/ca/win/LayerChangesFlusher.cpp:
663         (WebCore::LayerChangesFlusher::flushPendingLayerChangesSoon):
664         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
665         (WebCore::getDerivedFontData):
666         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
667         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
668         * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
669         (WebCore::initializeATSUStyle):
670         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
671         (WebCore::SimpleFontData::getCFStringAttributes):
672         * platform/graphics/mac/SimpleFontDataMac.mm:
673         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
674         * platform/graphics/wince/FontPlatformData.cpp:
675         (WebCore::FixedSizeFontData::create):
676         * platform/gtk/RenderThemeGtk3.cpp:
677         (WebCore::getStyleContext):
678         * platform/mac/ThreadCheck.mm:
679         (WebCoreReportThreadViolation):
680         * platform/network/HTTPHeaderMap.cpp:
681         (WebCore::HTTPHeaderMap::add):
682         * platform/network/HTTPHeaderMap.h:
683         (HTTPHeaderMap):
684         * platform/network/ResourceRequestBase.cpp:
685         (WebCore::ResourceRequestBase::addHTTPHeaderField):
686         * plugins/PluginDatabase.cpp:
687         (WebCore::PluginDatabase::add):
688         (WebCore::PluginDatabase::loadPersistentMetadataCache):
689         * plugins/win/PluginDatabaseWin.cpp:
690         (WebCore::PluginDatabase::getPluginPathsInDirectories):
691         * rendering/RenderBlock.cpp:
692         (WebCore::RenderBlock::addPercentHeightDescendant):
693         * rendering/RenderBlockLineLayout.cpp:
694         (WebCore::setLogicalWidthForTextRun):
695         * rendering/RenderNamedFlowThread.cpp:
696         (WebCore::RenderNamedFlowThread::addDependencyOnFlowThread):
697         * rendering/RenderRegion.cpp:
698         (WebCore::RenderRegion::setRenderBoxRegionInfo):
699         * rendering/svg/RenderSVGResourceGradient.cpp:
700         (WebCore::RenderSVGResourceGradient::applyResource):
701         * rendering/svg/RenderSVGResourcePattern.cpp:
702         (WebCore::RenderSVGResourcePattern::applyResource):
703         * storage/StorageMap.cpp:
704         (WebCore::StorageMap::setItem):
705         (WebCore::StorageMap::importItem):
706         * svg/SVGDocumentExtensions.cpp:
707         (WebCore::SVGDocumentExtensions::addPendingResource):
708         * xml/XMLHttpRequest.cpp:
709         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
710         * xml/XPathFunctions.cpp:
711         (WebCore::XPath::FunId::evaluate):
712         * xml/XPathPath.cpp:
713         (WebCore::XPath::LocationPath::evaluate):
714         * xml/XPathPredicate.cpp:
715         (WebCore::XPath::Union::evaluate):
716
717 2012-03-29  Andrey Kosyakov  <caseq@chromium.org>
718
719         Web Inspector: improve window selection accuracy in vertical overview of timeline panel
720         https://bugs.webkit.org/show_bug.cgi?id=82625
721
722         Reviewed by Vsevolod Vlasov.
723
724         * inspector/front-end/TimelineOverviewPane.js:
725         (WebInspector.TimelineVerticalOverview):
726         (WebInspector.TimelineVerticalOverview.prototype._renderBars): preserve actual padding used while rendering bars.
727         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes): account for outer and inter-bars padding when calculating bar offsets.
728
729 2012-03-29  Mark Pilgrim  <pilgrim@chromium.org>
730
731         GEOLOCATION should be implemented as Page Supplement
732         https://bugs.webkit.org/show_bug.cgi?id=82228
733
734         Reviewed by Adam Barth.
735
736         Geolocation now uses the Supplement interface instead of
737         keeping an instance variable on Page. This allows us to
738         remove all geolocation-related functions, variables, and
739         ifdefs out of Page and into Modules/geolocation/.
740
741         * Modules/geolocation/Geolocation.cpp:
742         (WebCore::Geolocation::stop):
743         (WebCore::Geolocation::lastPosition):
744         (WebCore::Geolocation::requestPermission):
745         (WebCore::Geolocation::startUpdating):
746         (WebCore::Geolocation::stopUpdating):
747         * Modules/geolocation/Geolocation.h:
748         (WebCore):
749         * Modules/geolocation/GeolocationController.cpp:
750         (WebCore::GeolocationController::supplementName):
751         (WebCore):
752         (WebCore::provideGeolocationTo):
753         * Modules/geolocation/GeolocationController.h:
754         (GeolocationController):
755         (WebCore::GeolocationController::from):
756         * WebCore.exp.in:
757         * page/GeolocationClient.h:
758         (WebCore):
759         (GeolocationClient):
760         * page/Page.cpp:
761         (WebCore::Page::Page):
762         (WebCore::Page::PageClients::PageClients):
763         * page/Page.h:
764         (WebCore):
765         (PageClients):
766         (Page):
767
768 2012-03-29  John Bates  <jbates@google.com>
769
770         Sync up WebKit TraceEvent.h with chromium trace_event.h
771         https://bugs.webkit.org/show_bug.cgi?id=82527
772
773         Reviewed by James Robinson.
774
775         * platform/chromium/TraceEvent.h:
776
777 2012-03-29  Pavel Feldman  <pfeldman@chromium.org>
778
779         Web Inspector: subtree disapears from <iframe> after loading
780         https://bugs.webkit.org/show_bug.cgi?id=76552
781
782         Reviewed by Yury Semikhatsky.
783
784         The problem was that content document subtree was not unbound upon iframe re-push.
785         Upon owner element refresh content document was not sent to the frontend
786         since backend assumed that front-end has already had the up-to-date version.
787
788         Test: inspector/elements/iframe-load-event.html
789
790         * inspector/InspectorDOMAgent.cpp:
791         (WebCore::InspectorDOMAgent::loadEventFired):
792
793 2012-03-29  Dana Jansens  <danakj@chromium.org>
794
795         [chromium] Remove unneeded code+fixmes from CCOcclusionTracker
796         https://bugs.webkit.org/show_bug.cgi?id=82380
797
798         Reviewed by Adrienne Walker.
799
800         The current occlusion was exposed on the occlusion tracker for the
801         transition over to culling 2.0 which has landed, so we can remove
802         it now. It still had one use in unit tests which is moved to a
803         test subclass.
804
805         Above test subclass already existed in the occlusion tracker tests,
806         so pulled it out to a common file CCOcclusionTrackerTestCommon.h
807         so that other unit tests can use it to get at occlusion internals.
808
809         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
810         (WebCore):
811         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
812
813 2012-03-29  Joseph Pecoraro  <pecoraro@apple.com>
814
815         <http://webkit.org/b/82558> Toggling <input type="range"> readonly or disabled state while active breaks all click events
816
817         Test: fast/forms/range/range-drag-when-toggled-disabled.html
818
819         Reviewed by Kent Tamura.
820
821         * html/shadow/SliderThumbElement.cpp:
822         (WebCore::SliderThumbElement::defaultEventHandler):
823         A slider can toggle its readonly or disabled state while in the middle
824         of dragging, in those cases we should cancel the drag and perform cleanup.
825
826 2012-03-29  Adam Klein  <adamk@chromium.org>
827
828         Factor out common post-insertion logic in ContainerNode
829         https://bugs.webkit.org/show_bug.cgi?id=82544
830
831         Reviewed by Ryosuke Niwa.
832
833         appendChild, insertBefore, and replaceChild all share a great deal of logic.
834         This patch factors out the "post-insertion" logic that deals with
835         notifying parents that their children changed and notifying children
836         that they've been added to the tree.
837
838         Besides reducing code duplication, this is in preparation for moving
839         this post-insertion notification later in the insertion process.
840
841         No new tests, no change in behavior.
842
843         * dom/ContainerNode.cpp:
844         (WebCore):
845         (WebCore::ContainerNode::insertBefore): Factor out shared logic, remove unnecessary "prev" variable.
846         (WebCore::ContainerNode::replaceChild): ditto.
847         (WebCore::ContainerNode::appendChild): ditto.
848         (WebCore::updateTreeAfterInsertion): New helper method encapsulating shared logic.
849
850 2012-03-29  Tony Chang  <tony@chromium.org>
851
852         Need to implement flex-line-pack
853         https://bugs.webkit.org/show_bug.cgi?id=70794
854
855         Reviewed by Ojan Vafai.
856
857         Tests: css3/flexbox/multiline-line-pack-horizontal-column.html
858                css3/flexbox/multiline-line-pack.html
859
860         * rendering/RenderFlexibleBox.cpp:
861         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
862         (WebCore::initialLinePackingOffset): Similar to initialPackingOffset.
863         (WebCore):
864         (WebCore::linePackingSpaceBetweenChildren): Similar to packingSpaceBetweenChildren.
865         (WebCore::RenderFlexibleBox::packFlexLines): Move lines based on flex-line-pack.
866             Note that we don't need to relayout on stretch because
867             alignChildren will do that for us (only auto size needs stretching).
868         (WebCore::RenderFlexibleBox::flipForWrapReverse): Pull out the initial
869             cross axis offset before calling packFlexLines because we can
870             move the the line contexts.
871         * rendering/RenderFlexibleBox.h:
872
873 2012-03-29  Vsevolod Vlasov  <vsevik@chromium.org>
874
875         Web Inspector: SnippetsScriptMapping should process existing snippets on load.
876         https://bugs.webkit.org/show_bug.cgi?id=82619
877
878         Reviewed by Pavel Feldman.
879
880         SnippetsScriptMapping now loads existing snippets on creation.
881         Otherwise scripts panel shows snippets created during current session only.
882         Drive-by ScriptsNavigator closure compilation fix.
883
884         * inspector/front-end/SnippetsModel.js:
885         (WebInspector.SnippetsModel.prototype.set get snippets):
886         (WebInspector.SnippetsScriptMapping):
887         (WebInspector.SnippetsScriptMapping.prototype._handleSnippetAdded):
888         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
889
890 2012-03-29  Yury Semikhatsky  <yurys@chromium.org>
891
892         Web Inspector: check more likely condition first in HeapSnapshot._buildAggregates
893         https://bugs.webkit.org/show_bug.cgi?id=82621
894
895         Reviewed by Pavel Feldman.
896
897         * inspector/front-end/HeapSnapshot.js: selfSize === 0 is quite rare, moving this condition
898         to the first place saves 1 of 6 secs on the heap profiler perf test.
899         (WebInspector.HeapSnapshot.prototype._buildAggregates):
900         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes): root node is always the first
901         one and is the only one that doesn't have dominator, so we may start iterating nodes from
902         the second node and avoid additional check in the loop.
903
904 2012-03-29  Pavel Feldman  <pfeldman@chromium.org>
905
906         Web Inspector: "go to the previous panel" shortcut is painful to maintain
907         https://bugs.webkit.org/show_bug.cgi?id=82602
908
909         Reviewed by Vsevolod Vlasov.
910
911         Present go to previous panel shortcut "Cmd - Left" is painful to support since we have
912         more and more free flow editing capabilities (where Cmd - Left is handled by the editor).
913         Remaping it to Cmd - Option - [ (]) /  (Ctrl - Alt - [ (]) ).
914
915         Drive-by: de-capitalize captions from the settings panel.
916
917         * English.lproj/localizedStrings.js:
918         * inspector/front-end/ConsoleView.js:
919         (WebInspector.ConsoleView.prototype._registerShortcuts):
920         * inspector/front-end/InspectorView.js:
921         (WebInspector.InspectorView.prototype._keyDown):
922         * inspector/front-end/ScriptsPanel.js:
923         * inspector/front-end/TimelinePanel.js:
924         (WebInspector.TimelinePanel.prototype._registerShortcuts):
925         (WebInspector.TimelinePanel.prototype._contextMenu):
926         * inspector/front-end/inspector.js:
927         (WebInspector._registerShortcuts):
928
929 2012-03-29  Andrey Kosyakov  <caseq@chromium.org>
930
931         Unreviewed, rolling out r112531.
932         http://trac.webkit.org/changeset/112531
933         https://bugs.webkit.org/show_bug.cgi?id=82616
934
935         Broke timeline overview selection
936
937         * inspector/front-end/TimelineOverviewPane.js:
938         (WebInspector.TimelineOverviewWindow):
939
940 2012-03-28  Dirk Schulze  <krit@webkit.org>
941
942         Introduce CSSParserMode in all classes
943         https://bugs.webkit.org/show_bug.cgi?id=82335
944
945         Reviewed by Ryosuke Niwa.
946
947         Introduce the new CSSParserMode enum to more classes. SVG classes make use of SVGAttributeMode for CSS parsing already.
948         But SVGAttributeMode does not differ from CSSQuirksMode at the moment. This will change with a followup patch on bug 46112.
949
950         No new tests. No change of functionality. Everything gets covered by existing tests.
951
952         * css/CSSImportRule.cpp:
953         (WebCore::CSSImportRule::setCSSStyleSheet):
954         * css/CSSMediaRule.cpp:
955         (WebCore::CSSMediaRule::insertRule):
956         * css/CSSParser.cpp: Move private functions away from strict boolean and make use of CSSParserMode instead.
957         (WebCore):
958         (WebCore::parseColorValue):
959         (WebCore::parseSimpleLengthValue):
960         (WebCore::CSSParser::parseFontFaceValue):
961         (WebCore::CSSParser::parseValue):
962         (WebCore::CSSParser::parseColor):
963         (WebCore::CSSParser::createStyleRule):
964         (WebCore::CSSParser::createFontFaceRule):
965         (WebCore::CSSParser::createPageRule):
966         (WebCore::CSSParser::createKeyframeRule):
967         * css/CSSParser.h: Removed constructor with boolean argument. We just use the CSSParserMode enum now.
968         (CSSParser):
969         * css/CSSParserMode.h:
970         (strictToCSSParserMode): New helper function to convert boolean to CSSParserMode.
971         (isStrictParserMode): Helper function that returns true if argument is CSSStrictMode.
972         * css/CSSRule.h:
973         (WebCore::CSSRule::cssParserMode): Renamed useStrictParsing to cssParserMode since it returns CSSParserMode instead of a boolean now.
974         * css/CSSStyleSheet.cpp:
975         (WebCore::CSSStyleSheet::CSSStyleSheet):
976         (WebCore::CSSStyleSheet::insertRule):
977         (WebCore::CSSStyleSheet::parseString):
978         (WebCore::CSSStyleSheet::parseStringAtLine):
979         * css/CSSStyleSheet.h:
980         (CSSStyleSheet):
981         (WebCore::CSSStyleSheet::setCSSParserMode): Renamed setStrictParsing to setCSSParserMode since we set an enum now.
982         (WebCore::CSSStyleSheet::cssParserMode): Renamed useStrictParsing to cssParserMode since it returns CSSParserMode instead of a boolean now.
983         * css/MediaList.cpp:
984         (WebCore::MediaQuerySet::parse):
985         (WebCore::MediaQuerySet::add):
986         (WebCore::MediaQuerySet::remove):
987         * css/StylePropertySet.cpp:
988         (WebCore::StylePropertySet::StylePropertySet):
989         (WebCore::StylePropertySet::setProperty):
990         (WebCore::StylePropertySet::parseDeclaration):
991         * css/StylePropertySet.h: Use unsigned member variables to store the parser mode.  
992         (WebCore::StylePropertySet::create):
993         (WebCore::StylePropertySet::setCSSParserMode): Renamed setStrictParsing to setCSSParserMode since we get an enum now. This gets converted to unsigned internally.
994         (WebCore::StylePropertySet::cssParserMode): Renamed useStrictParsing to cssParserMode since it returns CSSParserMode instead of a boolean now.
995         (StylePropertySet):
996         * css/StyleSheet.h:
997         (StyleSheet):
998         * css/WebKitCSSKeyframesRule.cpp:
999         (WebCore::WebKitCSSKeyframesRule::insertRule):
1000         * css/WebKitCSSMatrix.cpp:
1001         (WebCore::WebKitCSSMatrix::setMatrixValue):
1002         * dom/Document.cpp:
1003         (WebCore::Document::webkitGetFlowByName):
1004         (WebCore::Document::pageUserSheet):
1005         (WebCore::Document::pageGroupUserSheets):
1006         * dom/Element.cpp:
1007         (WebCore::Element::webkitMatchesSelector):
1008         * dom/ElementAttributeData.cpp:
1009         (WebCore::ElementAttributeData::ensureInlineStyle):
1010         (WebCore::ElementAttributeData::ensureMutableInlineStyle):
1011         (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
1012         * dom/Node.cpp:
1013         (WebCore::Node::querySelector):
1014         (WebCore::Node::querySelectorAll):
1015         * dom/ProcessingInstruction.cpp:
1016         (WebCore::ProcessingInstruction::parseStyleSheet):
1017         * dom/StyleElement.cpp:
1018         (WebCore::StyleElement::createSheet):
1019         * html/HTMLElement.cpp:
1020         (WebCore::StyledElement::copyNonAttributeProperties):
1021         * html/HTMLLinkElement.cpp:
1022         (WebCore::HTMLLinkElement::setCSSStyleSheet):
1023         * html/canvas/CanvasRenderingContext2D.cpp:
1024         (WebCore::CanvasRenderingContext2D::setFont):
1025         * html/shadow/ContentSelectorQuery.cpp:
1026         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
1027         * inspector/InspectorStyleSheet.cpp:
1028         (WebCore::InspectorStyleSheet::reparseStyleSheet):
1029         * svg/SVGElementRareData.h:
1030         (WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
1031         * svg/SVGFontFaceElement.cpp:
1032         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
1033         * svg/SVGStyledElement.cpp:
1034         (WebCore::SVGStyledElement::getPresentationAttribute):
1035         * xml/XSLStyleSheet.h:
1036         (XSLStyleSheet):
1037         * xml/XSLStyleSheetLibxslt.cpp:
1038         (WebCore::XSLStyleSheet::parseString):
1039         * xml/XSLStyleSheetQt.cpp:
1040         (WebCore::XSLStyleSheet::parseString):
1041
1042 2012-03-29  Sanghyun Park  <sh919.park@samsung.com>
1043
1044         Fix the error type in JSAudioBufferSourceNodeCustom to pass layout test.
1045         https://bugs.webkit.org/show_bug.cgi?id=81639
1046
1047         Reviewed by Eric Carlson.
1048
1049         Test : LayoutTest/webaudio/audiobuffersource-channels.html
1050
1051         * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
1052
1053 2012-03-29  Vsevolod Vlasov  <vsevik@chromium.org>
1054
1055         Web Inspector: Existing UISourceCode should be loaded on scripts panel creation/reset.
1056         https://bugs.webkit.org/show_bug.cgi?id=82614
1057
1058         Reviewed by Pavel Feldman.
1059
1060         UISourceCode are now loaded from DebuggerPresentationModel on scripts panel creation/reset.
1061         This is needed to show snippets that are loaded before scripts panel creation and are not removed on navigation.
1062
1063         * inspector/front-end/ScriptsPanel.js:
1064         (WebInspector.ScriptsPanel.prototype._handleUISourceCodeAdded):
1065         (WebInspector.ScriptsPanel.prototype._loadUISourceCodes):
1066         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
1067         (WebInspector.ScriptsPanel.prototype._reset):
1068         * inspector/front-end/SnippetsModel.js:
1069         (WebInspector.SnippetsScriptMapping.prototype.uiSourceCodeList):
1070
1071 2012-03-29  Andrey Kosyakov  <caseq@chromium.org>
1072
1073         Web Inspector: on a single click in Timeline overview, make a minimal selection centered around cursor
1074         https://bugs.webkit.org/show_bug.cgi?id=82616
1075
1076         Reviewed by Pavel Feldman.
1077
1078         * inspector/front-end/TimelineOverviewPane.js:
1079         (WebInspector.TimelineOverviewWindow): Explicitly handle single click on overview by creating a minimal window around cursor.
1080         (WebInspector.TimelineOverviewWindow.prototype._resizeWindowMinimum):
1081
1082 2012-03-29  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
1083
1084         Unavailable pre-processor macro in non-Qt environments
1085         https://bugs.webkit.org/show_bug.cgi?id=82042
1086
1087         Reviewed by Simon Hausmann.
1088
1089         This patch removes the use of the macro QT_VERSION_CHECK() because, in
1090         non-Qt environments, the pre-processors raises an error. Instead of
1091         calling the macro to generate the version number, the version is
1092         expressed directly.
1093
1094         * platform/graphics/texmap/TextureMapperGL.cpp:
1095         (SharedGLData): remove pre-processor macro for Qt version check.
1096
1097 2012-03-29  Andrey Kosyakov  <caseq@chromium.org>
1098
1099         Web Inspector: event details popover in Timeline panel displays invalid time offset
1100         https://bugs.webkit.org/show_bug.cgi?id=82611
1101
1102         Reviewed by Pavel Feldman.
1103
1104         * inspector/front-end/TimelinePresentationModel.js:
1105         (WebInspector.TimelinePresentationModel.prototype.addRecord): use time in seconds, not raw model time for minimumRecordTime.
1106
1107 2012-03-29  Andrey Kosyakov  <caseq@chromium.org>
1108
1109         Web Inspector: use canvas to render bars in "vertical overview" mode
1110         https://bugs.webkit.org/show_bug.cgi?id=82606
1111
1112         Reviewed by Pavel Feldman.
1113
1114         * inspector/front-end/TimelineOverviewPane.js: Use canvas instead of DOM for rendering vertical overview bars.
1115         (WebInspector.TimelineVerticalOverview):
1116         (WebInspector.TimelineVerticalOverview.prototype.update):
1117         (WebInspector.TimelineVerticalOverview.prototype._renderBars):
1118         (WebInspector.TimelineVerticalOverview.prototype._renderBar):
1119         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes):
1120         * inspector/front-end/timelinePanel.css: Drop styles previously used for DOM-based vertical overview rendering.
1121         (.timeline-vertical-overview-bars):
1122
1123 2012-03-29  Andrey Kosyakov  <caseq@chromium.org>
1124
1125         Web Inspector: timeline overview window selection is not reset upon clear/record
1126         https://bugs.webkit.org/show_bug.cgi?id=82603
1127
1128         Reviewed by Pavel Feldman.
1129
1130         - TimelineOverviewPane.reset() -> _reset();
1131         - perform update() from reset();
1132         - perform reset() upon RecordsCleared event from the model.
1133
1134         * inspector/front-end/TimelineOverviewPane.js:
1135         (WebInspector.TimelineOverviewPane):
1136         (WebInspector.TimelineOverviewPane.prototype._reset):
1137         (WebInspector.TimelineVerticalOverview):
1138         (WebInspector.TimelineVerticalOverview.prototype.update):
1139         (WebInspector.TimelineVerticalOverview.prototype._renderBars):
1140         (WebInspector.TimelineVerticalOverview.prototype._renderBar):
1141         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes):
1142         * inspector/front-end/timelinePanel.css:
1143         (.timeline-vertical-overview-bars):
1144
1145 2012-03-29  Zalan Bujtas  <zbujtas@gmail.com>
1146
1147         Remove redundant updateViewportArguments() call when page is restored from page cache.
1148         https://bugs.webkit.org/show_bug.cgi?id=82500
1149
1150         Reviewed by Kenneth Rohde Christiansen.
1151
1152         Document::updateViewportArguments() is called twice, while restoring a page from page cache.
1153         First, it is called when the document is set on the mainframe and later, it is called
1154         when page cache finished the restoration. Since viewport arguments don't change between
1155         the 2 calls, it's safe to remove the second.
1156
1157         Manual test added. Viewport value updates heavily depend on UI process code.
1158
1159         * dom/Document.cpp:
1160         (WebCore::Document::documentDidResumeFromPageCache):
1161
1162 2012-03-29  Charles Wei  <charles.wei@torchmobile.com.cn>
1163
1164         [BlackBerry] Add Internal test support for blackberry porting.
1165         https://bugs.webkit.org/show_bug.cgi?id=82597
1166
1167         Reviewed by Rob Buis.
1168
1169         No new tests, just the build system enhancement for BlackBerry porting.
1170
1171         * UseJSC.cmake:
1172
1173 2012-03-28  Yury Semikhatsky  <yurys@chromium.org>
1174
1175         Web Inspector: switch heap profiler front-end to separate storage of nodes and edges
1176         https://bugs.webkit.org/show_bug.cgi?id=82453
1177
1178         When heap snapshot is completely loaded move nodes and containment edges
1179         into two separate arrays. This way we don't need _nodeIndex and _nodePosition
1180         maps to go from node offset inside the raw snapshot to its index and back, instead
1181         we may just divide node offset by the number of node fields to get node index. After
1182         the nodes and containment edges are separated original array (_nodes) is dropped.
1183         All front-end code was switched to the new representation.
1184
1185         Reviewed by Pavel Feldman.
1186
1187         * inspector/front-end/HeapSnapshot.js:
1188         (WebInspector.HeapSnapshotRetainerEdge):
1189         (WebInspector.HeapSnapshotRetainerEdge.prototype.clone):
1190         (WebInspector.HeapSnapshotRetainerEdge.prototype.set edgeIndex):
1191         (WebInspector.HeapSnapshotRetainerEdge.prototype.get _edge):
1192         (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.hasNext):
1193         (WebInspector.HeapSnapshotNode.prototype.get edgesCount):
1194         (WebInspector.HeapSnapshotNode.prototype.get rawEdges):
1195         (WebInspector.HeapSnapshotNode.prototype.get retainers):
1196         (WebInspector.HeapSnapshotNode.prototype.get _nodes):
1197         (WebInspector.HeapSnapshotNode.prototype._firstEdgeIndex):
1198         (WebInspector.HeapSnapshotNode.prototype._afterLastEdgeIndex):
1199         (WebInspector.HeapSnapshotNode.prototype.get _nextNodeIndex):
1200         (WebInspector.HeapSnapshot.prototype._init):
1201         (WebInspector.HeapSnapshot.prototype._splitNodesAndContainmentEdges):
1202         (WebInspector.HeapSnapshot.prototype._createOnlyNodesArray):
1203         (WebInspector.HeapSnapshot.prototype._createContainmentEdgesArray):
1204         (WebInspector.HeapSnapshot.prototype._buildRetainers):
1205         (WebInspector.HeapSnapshot.prototype.dispose):
1206         (WebInspector.HeapSnapshot.prototype.get maxNodeId):
1207         (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
1208         (WebInspector.HeapSnapshot.prototype._bfs):
1209         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
1210         (WebInspector.HeapSnapshot.prototype._getDominatedIndex):
1211         (WebInspector.HeapSnapshot.prototype._markInvisibleEdges):
1212         (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
1213
1214 2012-03-29  Leo Yang  <leo.yang@torchmobile.com.cn>
1215
1216         [BlackBerry] Add m_targetType to WorkerScriptLoader
1217         https://bugs.webkit.org/show_bug.cgi?id=82574
1218
1219         Reviewed by Rob Buis.
1220
1221         Just as Chromium porting blackberry porting is using m_targetType also.
1222
1223         * workers/WorkerScriptLoader.h:
1224         (WorkerScriptLoader):
1225
1226 2012-03-29  Robin Cao  <robin.cao@torchmobile.com.cn>
1227
1228         [BlackBerry] Add an empty implementation of GraphicsContext3D::setErrorMessageCallback
1229         https://bugs.webkit.org/show_bug.cgi?id=82570
1230
1231         Reviewed by Rob Buis.
1232
1233         No new tests, no change in functionality.
1234
1235         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
1236         (WebCore::GraphicsContext3D::setErrorMessageCallback): Add an empty implementation.
1237         (WebCore):
1238
1239 2012-03-29  Robin Cao  <robin.cao@torchmobile.com.cn>
1240
1241         [BlackBerry] Clean up ImageBufferData
1242         https://bugs.webkit.org/show_bug.cgi?id=82444
1243
1244         Reviewed by Rob Buis.
1245
1246         No behavior changes, no new tests.
1247
1248         * platform/graphics/blackberry/skia/ImageBufferDataSkia.h:
1249         (ImageBufferData): Remove unused member variable m_buffer and change the type
1250         of m_platformLayer from LayerWebKitThread to CanvasLayerWebKitThread.
1251
1252 2012-03-28  Antti Koivisto  <antti@apple.com>
1253
1254         Split WebKitCSSKeyframeRule into internal and CSSOM types 
1255         https://bugs.webkit.org/show_bug.cgi?id=82490 
1256
1257         Reviewed by Andreas Kling.
1258
1259         WebKitCSSKeyframeRule is a CSSOM type and should not be used internally.
1260         
1261         - Add StyleKeyframe as the internal data structure for keyframes.
1262         - WebKitCSSKeyframeRule becomes a wrapper for StyleKeyframe.
1263         - Use StyleKeyframe internally so WebKitCSSKeyframeRules are created on CSSOM access only.
1264
1265         * css/CSSGrammar.y:
1266         
1267             Use StyleKeyframes instead of WebKitCSSKeyframeRules.
1268         
1269         * css/CSSMediaRule.h:
1270         (CSSMediaRule):
1271         (WebCore::CSSMediaRule::length):
1272         (WebCore::CSSMediaRule::item):
1273         
1274             Adapt to LiveCSSRuleList changes.
1275         
1276         * css/CSSParser.cpp:
1277         (WebCore::CSSParser::parseKeyframeRule):
1278         (WebCore::CSSParser::createKeyframe):
1279         * css/CSSParser.h:        
1280         (WebCore):
1281         (CSSParser):
1282         
1283             Construct StyleKeyframes.
1284         
1285         * css/CSSRuleList.h:
1286         (WebCore::LiveCSSRuleList::length):
1287         (WebCore::LiveCSSRuleList::item):
1288
1289             Make LiveCSSRuleList call rule item()/length() to avoid accessor duplication.
1290     
1291         * css/CSSStyleSelector.cpp:
1292         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1293         * css/CSSStyleSelector.h:
1294         (CSSStyleSelector):
1295         * css/WebKitCSSKeyframeRule.cpp:
1296         
1297             Use StyleKeyframe.
1298             Make 0% and 100% keyframes static.
1299         
1300         (WebCore):
1301         (WebCore::StyleKeyframe::setProperties):
1302         (WebCore::StyleKeyframe::parseKeyString):
1303         (WebCore::StyleKeyframe::cssText):
1304         (WebCore::WebKitCSSKeyframeRule::WebKitCSSKeyframeRule):
1305         (WebCore::WebKitCSSKeyframeRule::~WebKitCSSKeyframeRule):
1306         (WebCore::WebKitCSSKeyframeRule::style):
1307         * css/WebKitCSSKeyframeRule.h:
1308         (WebCore):
1309         (WebCore::StyleKeyframe::create):
1310         (WebCore::StyleKeyframe::keyText):
1311         (WebCore::StyleKeyframe::setKeyText):
1312         (StyleKeyframe):
1313         (WebCore::StyleKeyframe::properties):
1314         (WebCore::StyleKeyframe::StyleKeyframe):
1315         (WebKitCSSKeyframeRule):
1316         (WebCore::WebKitCSSKeyframeRule::keyText):
1317         (WebCore::WebKitCSSKeyframeRule::setKeyText):
1318         (WebCore::WebKitCSSKeyframeRule::cssText):
1319         
1320             Split to internal and CSSOM wrapper type. The wrapper refs StyleKeyframe. 
1321         
1322         * css/WebKitCSSKeyframesRule.cpp:
1323         (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
1324         (WebCore::WebKitCSSKeyframesRule::parserAppendKeyframe):
1325         (WebCore::WebKitCSSKeyframesRule::insertRule):
1326         (WebCore::WebKitCSSKeyframesRule::deleteRule):
1327         (WebCore::WebKitCSSKeyframesRule::findRule):
1328         (WebCore::WebKitCSSKeyframesRule::findKeyframeIndex):
1329         (WebCore::WebKitCSSKeyframesRule::cssText):
1330         (WebCore):
1331         (WebCore::WebKitCSSKeyframesRule::item):
1332         * css/WebKitCSSKeyframesRule.h:
1333         (WebCore):
1334         (WebCore::WebKitCSSKeyframesRule::keyframes):
1335         (WebKitCSSKeyframesRule):
1336         (WebCore::WebKitCSSKeyframesRule::length):
1337         
1338             Keep StyleKeyframes and the wrappers (WebKitCSSKeyframeRules) in separate vectors.
1339             Construct the wrapper vector and wrappers themselves on demand.
1340             Keep the vectors in sync during mutations.
1341         
1342         * css/WebKitCSSRegionRule.h:
1343         
1344             Adapt to LiveCSSRuleList changes.
1345
1346 2012-03-29  Zeno Albisser  <zeno@webkit.org>
1347
1348         Fieldset disabled attribute does not work.
1349         https://bugs.webkit.org/show_bug.cgi?id=58837
1350
1351         Make HTMLFormControlElements inherit the disabled state
1352         from HTMLFieldSetElement ancestors. Subordinates of the
1353         first HTMLLegendElement in a fieldset will never be disabled.
1354
1355         Patch by Zeno Albisser <zeno@webkit.org>
1356
1357         Test: fast/forms/fieldset-disabled.html
1358
1359         Reviewed by Kent Tamura.
1360
1361         * html/HTMLFieldSetElement.cpp:
1362         (WebCore::HTMLFieldSetElement::disabledAttributeChanged):
1363         (WebCore):
1364         (WebCore::HTMLFieldSetElement::legend):
1365         * html/HTMLFieldSetElement.h:
1366         (HTMLFieldSetElement):
1367         * html/HTMLFieldSetElement.idl:
1368         * html/HTMLFormControlElement.cpp:
1369         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
1370         (WebCore::HTMLFormControlElement::updateFieldSetAndLegendAncestor):
1371         (WebCore):
1372         (WebCore::HTMLFormControlElement::parseAttribute):
1373         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
1374         (WebCore::HTMLFormControlElement::removedFromTree):
1375         (WebCore::HTMLFormControlElement::disabled):
1376         * html/HTMLFormControlElement.h:
1377         (WebCore):
1378         (HTMLFormControlElement):
1379
1380 2012-03-29  Tommy Widenflycht  <tommyw@google.com>
1381
1382         MediaStream API: Adding two missing release() calls to PeerConnection00.cpp
1383         https://bugs.webkit.org/show_bug.cgi?id=82584
1384
1385         Reviewed by Adam Barth.
1386
1387         No changes that affects functionality.
1388
1389         * Modules/mediastream/PeerConnection00.cpp:
1390         (WebCore::PeerConnection00::createOffer):
1391         (WebCore::PeerConnection00::createAnswer):
1392
1393 2012-03-29  Ryosuke Niwa  <rniwa@webkit.org>
1394
1395         Pack bitfields in InlineBox for Windows
1396         https://bugs.webkit.org/show_bug.cgi?id=82578
1397
1398         Reviewed by Kent Tamura.
1399
1400         Unlike gcc and clang, MSVC pads each consecutive member variables of the same type in bitfields. e.g. if you have:
1401         sturct AB {
1402         unsigned m_1 : 31;
1403         bool m_2 : 1;
1404         }
1405         then MSVC pads m_1 and allocates sizeof(unsigned) * 2 for AB whereas gcc and clang only allocate
1406         sizeof(unsigned) * 1 for AB.
1407
1408         Fixed the bug by packing all bitfields in InlineBox into InlineBoxBitfields and always using either unsigned or int.
1409
1410         * rendering/EllipsisBox.cpp:
1411         (WebCore::EllipsisBox::paint):
1412         (WebCore::EllipsisBox::selectionRect):
1413         (WebCore::EllipsisBox::nodeAtPoint):
1414         * rendering/InlineBox.cpp:
1415         (WebCore):
1416         (SameSizeAsInlineBox):
1417         (WebCore::InlineBox::logicalHeight):
1418         (WebCore::InlineBox::baselinePosition): Moved from the header file since it's a virtual function.
1419         (WebCore::InlineBox::lineHeight): Ditto.
1420         (WebCore::InlineBox::deleteLine):
1421         (WebCore::InlineBox::extractLine):
1422         (WebCore::InlineBox::attachLine):
1423         (WebCore::InlineBox::nextOnLineExists):
1424         (WebCore::InlineBox::clearKnownToHaveNoOverflow):
1425         * rendering/InlineBox.h:
1426         (WebCore::InlineBox::InlineBox):
1427         (WebCore::InlineBox::isText):
1428         (WebCore::InlineBox::setIsText):
1429         (WebCore::InlineBox::hasVirtualLogicalHeight):
1430         (WebCore::InlineBox::setHasVirtualLogicalHeight):
1431         (WebCore::InlineBox::isHorizontal):
1432         (WebCore::InlineBox::setIsHorizontal):
1433         (WebCore::InlineBox::isConstructed):
1434         (WebCore::InlineBox::setConstructed):
1435         (WebCore::InlineBox::setExtracted):
1436         (WebCore::InlineBox::setFirstLineStyleBit):
1437         (WebCore::InlineBox::isFirstLineStyle):
1438         (InlineBox):
1439         (WebCore::InlineBox::bidiLevel):
1440         (WebCore::InlineBox::setBidiLevel):
1441         (WebCore::InlineBox::direction):
1442         (WebCore::InlineBox::isDirty):
1443         (WebCore::InlineBox::markDirty):
1444         (WebCore::InlineBox::expansion):
1445         (WebCore::InlineBox::verticalAlign):
1446         (WebCore::InlineBox::knownToHaveNoOverflow):
1447         (WebCore::InlineBox::dirOverride):
1448         (WebCore::InlineBox::setDirOverride):
1449         (InlineBoxBitfields):
1450         (WebCore::InlineBox::InlineBoxBitfields::InlineBoxBitfields):
1451         (WebCore::InlineBox::InlineBoxBitfields::bidiEmbeddingLevel):
1452         (WebCore::InlineBox::InlineBoxBitfields::setBidiEmbeddingLevel):
1453         (WebCore::InlineBox::InlineBoxBitfields::determinedIfNextOnLineExists):
1454         (WebCore::InlineBox::InlineBoxBitfields::setDeterminedIfNextOnLineExists):
1455         (WebCore::InlineBox::InlineBoxBitfields::nextOnLineExists):
1456         (WebCore::InlineBox::InlineBoxBitfields::setNextOnLineExists):
1457         (WebCore::InlineBox::InlineBoxBitfields::expansion):
1458         (WebCore::InlineBox::InlineBoxBitfields::setExpansion):
1459         (WebCore::InlineBox::endsWithBreak):
1460         (WebCore::InlineBox::setEndsWithBreak):
1461         (WebCore::InlineBox::hasEllipsisBox):
1462         (WebCore::InlineBox::hasSelectedChildren):
1463         (WebCore::InlineBox::setHasSelectedChildren):
1464         (WebCore::InlineBox::setHasEllipsisBox):
1465         (WebCore::InlineBox::hasHyphen):
1466         (WebCore::InlineBox::setHasHyphen):
1467         (WebCore::InlineBox::canHaveLeadingExpansion):
1468         (WebCore::InlineBox::setCanHaveLeadingExpansion):
1469         (WebCore::InlineBox::setExpansion):
1470         (WebCore::InlineBox::extracted):
1471         * rendering/InlineFlowBox.cpp:
1472         (WebCore::InlineFlowBox::addToLine):
1473         (WebCore::InlineFlowBox::removeChild):
1474         (WebCore::InlineFlowBox::extractLine):
1475         (WebCore::InlineFlowBox::attachLine):
1476         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
1477         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
1478         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
1479         (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
1480         (WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
1481         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
1482         (WebCore::InlineFlowBox::paintBoxDecorations):
1483         (WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
1484         (WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):
1485         * rendering/InlineTextBox.cpp:
1486         (WebCore::InlineTextBox::destroy):
1487         (WebCore::InlineTextBox::logicalOverflowRect):
1488         (WebCore::InlineTextBox::setLogicalOverflowRect):
1489         (WebCore::InlineTextBox::baselinePosition):
1490         (WebCore::InlineTextBox::lineHeight):
1491         (WebCore::InlineTextBox::localSelectionRect):
1492         (WebCore::InlineTextBox::extractLine):
1493         (WebCore::InlineTextBox::attachLine):
1494         (WebCore::InlineTextBox::placeEllipsisBox):
1495         (WebCore::InlineTextBox::paint):
1496         (WebCore::InlineTextBox::paintDecoration):
1497         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
1498         (WebCore::InlineTextBox::paintCompositionUnderline):
1499         (WebCore::InlineTextBox::offsetForPosition):
1500         (WebCore::InlineTextBox::positionForOffset):
1501         (WebCore::InlineTextBox::constructTextRun):
1502         * rendering/InlineTextBox.h:
1503         (InlineTextBox):
1504         (WebCore::InlineTextBox::setExpansion):
1505         (WebCore::InlineTextBox::expansionBehavior):
1506         * rendering/RenderBlockLineLayout.cpp:
1507         (WebCore::RenderBlock::constructLine):
1508         * rendering/RenderTreeAsText.cpp:
1509         (WebCore::writeTextRun):
1510         * rendering/RootInlineBox.cpp:
1511         (WebCore::RootInlineBox::baselinePosition): Moved from the header file since it's a virtual function.
1512         (WebCore::RootInlineBox::lineHeight): Ditto.
1513         (WebCore::RootInlineBox::paint):
1514         (WebCore::RootInlineBox::ascentAndDescentForBox):
1515         (WebCore::RootInlineBox::verticalPositionForBox):
1516         * rendering/RootInlineBox.h:
1517         (RootInlineBox):
1518         * rendering/svg/SVGInlineTextBox.cpp:
1519         (WebCore::SVGInlineTextBox::constructTextRun):
1520         * rendering/svg/SVGRenderTreeAsText.cpp:
1521         (WebCore::writeSVGInlineTextBox):
1522
1523 2012-03-29  hayato@chromium.org  <hayato@chromium.org>
1524
1525         Let focus navigation be compliant with Shadow DOM spec.
1526         https://bugs.webkit.org/show_bug.cgi?id=78588
1527
1528         Reviewed by Dimitri Glazkov.
1529
1530         Re-landing r112500. Fixed an assertion failure on ReifiedTreeTraversal.
1531
1532         Sequential focus navigation now behaves exactly as specified in the Shadow DOM spec.
1533
1534         According to the Shadow DOM spec:
1535         The shadow DOM navigation order sequence is inserted into the document navigation order:
1536         1. immediately after the shadow host, if the shadow host is focusable; or
1537         2. in place of the shadow host as if the shadow host were assigned the value of auto for determining its position.
1538
1539         Prior to this patch, sequential focus navigation goes into Shadow DOM, but it is incomplete
1540         since insertion points, such as <content> elements or <shadow> elements, are not resolved at all.
1541         Now focus navigation can traverse shadow DOM subtrees in 'reified tree order', resolving lower boundaries transparently.
1542
1543         Implementation notes:
1544         Prior to this patch, sequential focus navigation does not go into Shadow DOM if a shadow host is non-focusable.
1545         Now focus navigation must go into Shadow DOM subtrees even if a show host is not focusable as described in 2).
1546         To support this behavior, this patch introduced adjustedTabIndex() locally in FocusController so that
1547         it does not skip a non-focusable shadow host in current focus scope.
1548         After finding a *pseudo* focusable element in current focus scope, it tries to resolve a focused element recursively,
1549         considering a nested focus scope inside of a shadow host or iframe.
1550         To traverse Shadow DOM subtrees, a FocusController makes use of ReifiedTreeTraversal APIs, which was introduced in r112055.
1551
1552         This change does not affect an existing behavior if a shadow dom is not involved.
1553
1554         Test: fast/dom/shadow/focus-navigation.html
1555
1556         * dom/Element.cpp:
1557         (WebCore::Element::focus):
1558         * dom/ReifiedTreeTraversal.cpp:
1559         (WebCore::ReifiedTreeTraversal::parentNodeWithoutCrossingUpperBoundary):
1560         * page/FocusController.cpp:
1561         (WebCore::isShadowHost):
1562         (WebCore):
1563         (WebCore::FocusScope::FocusScope):
1564         (WebCore::FocusScope::rootNode):
1565         (WebCore::FocusScope::owner):
1566         (WebCore::FocusScope::focusScopeOf):
1567         (WebCore::FocusScope::focusScopeOwnedByShadowHost):
1568         (WebCore::FocusScope::focusScopeOwnedByIFrame):
1569         (WebCore::hasCustomFocusLogic):
1570         (WebCore::isNonFocusableShadowHost):
1571         (WebCore::isFocusableShadowHost):
1572         (WebCore::adjustedTabIndex):
1573         (WebCore::shouldVisit):
1574         (WebCore::FocusController::findFocusableNodeDecendingDownIntoFrameDocument):
1575         (WebCore::FocusController::advanceFocusInDocumentOrder):
1576         (WebCore::FocusController::findFocusableNodeAcrossFocusScope):
1577         (WebCore::FocusController::findFocusableNodeRecursively):
1578         (WebCore::FocusController::findFocusableNode):
1579         (WebCore::FocusController::findNodeWithExactTabIndex):
1580         (WebCore::nextNodeWithGreaterTabIndex):
1581         (WebCore::previousNodeWithLowerTabIndex):
1582         (WebCore::FocusController::nextFocusableNode):
1583         (WebCore::FocusController::previousFocusableNode):
1584         * page/FocusController.h:
1585         (WebCore):
1586         (FocusScope):
1587         (FocusController):
1588
1589 2012-03-28  Kinuko Yasuda  <kinuko@chromium.org>
1590
1591         [chromium] Add isolated filesystem type and WebDragData::filesystem_id for drag-and-drop using File/DirectoryEntry.
1592         https://bugs.webkit.org/show_bug.cgi?id=76826
1593
1594         Add two helper methods for creating isolated filesystem to the
1595         PlatformSupport interface.
1596
1597         Reviewed by David Levin.
1598
1599         No new tests: tests will be added when app-facing code is added.
1600
1601         * platform/chromium/PlatformSupport.h:
1602         (PlatformSupport):
1603
1604 2012-03-29  Vineet Chaudhary  <rgf748@motorola.com>
1605
1606         Remove custom bindings form Internals.idl of attribute type Array.
1607         https://bugs.webkit.org/show_bug.cgi?id=82319
1608
1609         Reviewed by Kentaro Hara.
1610
1611         Remove custom bindings for Array type and replace Array type with sequence<String>.
1612
1613         No new tests. LayoutTests/fast/harness/user-preferred-language.html should pass
1614         even after these changes.
1615
1616         * Target.pri: Remove JSInternalsCustom.cpp and V8InternalsCustom.cpp.
1617         * UseJSC.cmake: Remove JSInternalsCustom.cpp.
1618         * UseV8.cmake: Remove V8InternalsCustom.cpp.
1619         * WebCore.gypi: Remove JSInternalsCustom.cpp and V8InternalsCustom.cpp.
1620         * WebCore.vcproj/WebCoreTestSupport.vcproj: Remove JSInternalsCustom.cpp and V8InternalsCustom.cpp.
1621         * WebCore.xcodeproj/project.pbxproj: Remove JSInternalsCustom.cpp and V8InternalsCustom.cpp.
1622         * bindings/js/JSDOMBinding.h:
1623         (WebCore):
1624         (WebCore::jsArray): Added new specialize function template for Strings.
1625         * bindings/scripts/CodeGeneratorJS.pm:
1626         (JSValueToNative): Add jsArray<String>() to deduce return type.
1627         (NativeToJSValue): Added check for type String.
1628         * bindings/scripts/CodeGeneratorV8.pm:
1629         (JSValueToNative): Add v8Array<String>() to deduce return type.
1630         (NativeToJSValue): Added check for type String.
1631         * bindings/scripts/test/JS/JSTestObj.cpp:
1632         (WebCore::setJSTestObjSequenceAttr): Modified results from run-binding-tests.
1633         * bindings/scripts/test/V8/V8TestObj.cpp: Modified results from run-binding-tests.
1634         (WebCore::TestObjInternal::sequenceAttrAttrSetter):
1635         * bindings/v8/V8Binding.h: Added new specialize function template for Strings.
1636         (WebCore):
1637         (WebCore::v8Array):
1638         (WebCore::toNativeArray):
1639         * testing/Internals.idl: Replace Array type with sequence<String>
1640         * testing/js/JSInternalsCustom.cpp: Removed.
1641         * testing/v8/V8InternalsCustom.cpp: Removed.
1642
1643 2012-03-29  Sheriff Bot  <webkit.review.bot@gmail.com>
1644
1645         Unreviewed, rolling out r112500.
1646         http://trac.webkit.org/changeset/112500
1647         https://bugs.webkit.org/show_bug.cgi?id=82576
1648
1649         assertion failed on fast/events/tab-test-not-visible-
1650         imagemap.html on gtk/qt (Requested by hayato on #webkit).
1651
1652         * dom/Element.cpp:
1653         (WebCore::Element::focus):
1654         * page/FocusController.cpp:
1655         (WebCore):
1656         (WebCore::shadowRoot):
1657         (WebCore::isTreeScopeOwner):
1658         (WebCore::FocusController::transferFocusToElementInShadowRoot):
1659         (WebCore::hasCustomFocusLogic):
1660         (WebCore::FocusController::findFocusableNodeDecendingDownIntoFrameDocumentOrShadowRoot):
1661         (WebCore::FocusController::advanceFocusInDocumentOrder):
1662         (WebCore::ownerOfTreeScope):
1663         (WebCore::FocusController::findFocusableNodeAcrossTreeScope):
1664         (WebCore::FocusController::findFocusableNode):
1665         (WebCore::nextNodeWithExactTabIndex):
1666         (WebCore::previousNodeWithExactTabIndex):
1667         (WebCore::nextNodeWithGreaterTabIndex):
1668         (WebCore::previousNodeWithLowerTabIndex):
1669         (WebCore::FocusController::nextFocusableNode):
1670         (WebCore::FocusController::previousFocusableNode):
1671         * page/FocusController.h:
1672         (WebCore):
1673         (FocusController):
1674
1675 2012-03-28  Kent Tamura  <tkent@chromium.org>
1676
1677         Add TextFieldDecorationElement::decorate()
1678         https://bugs.webkit.org/show_bug.cgi?id=82572
1679
1680         Reviewed by Hajime Morita.
1681
1682         This change will be needed for Bug 82143.
1683         No new tests because of no behavior changes yet. This code change
1684         doesn't affect non-Chromium ports for now.
1685
1686         * dom/ShadowRoot.cpp:
1687         (WebCore::ShadowRoot::create):
1688         Remove unnecessary assertion. We should allow multiple UA shadow roots.
1689         * html/shadow/TextFieldDecorationElement.cpp:
1690         (WebCore::TextFieldDecorationElement::decorate):
1691         Added.
1692         This function adds another ShadowRoot, and it contains one flexible box container.
1693         The container contains existin ShadowRoot content and the decoration element.
1694         * html/shadow/TextFieldDecorationElement.h:
1695         (TextFieldDecorationElement): Add the declaration of decorate().
1696
1697 2012-03-28  Vineet Chaudhary  <rgf748@motorola.com>
1698
1699         Consider removal of removes jsNull()/v8::Null() from JSInternalsCustom.cpp/V8InternalsCustom.cpp
1700         https://bugs.webkit.org/show_bug.cgi?id=82442
1701
1702         Reviewed by Kentaro Hara.
1703
1704         No new tests. LayoutTests/fast/harness/user-preferred-language.html should pass
1705         even after these changes.
1706
1707         * testing/js/JSInternalsCustom.cpp: Remove jsNull() if Vector is empty.
1708         (WebCore::JSInternals::userPreferredLanguages):
1709         * testing/v8/V8InternalsCustom.cpp: Remove v8::Null() if Vector is empty.
1710         (WebCore::V8Internals::userPreferredLanguagesAccessorGetter):
1711
1712 2012-03-28  Hayato Ito  <hayato@chromium.org>
1713
1714         Let focus navigation be compliant with Shadow DOM spec.
1715         https://bugs.webkit.org/show_bug.cgi?id=78588
1716
1717         Reviewed by Dimitri Glazkov.
1718
1719         Sequential focus navigation now behaves exactly as specified in the Shadow DOM spec.
1720
1721         According to the Shadow DOM spec:
1722         The shadow DOM navigation order sequence is inserted into the document navigation order:
1723         1. immediately after the shadow host, if the shadow host is focusable; or
1724         2. in place of the shadow host as if the shadow host were assigned the value of auto for determining its position.
1725
1726         Prior to this patch, sequential focus navigation goes into Shadow DOM, but it is incomplete
1727         since insertion points, such as <content> elements or <shadow> elements, are not resolved at all.
1728         Now focus navigation can traverse shadow DOM subtrees in 'reified tree order', resolving lower boundaries transparently.
1729
1730         Implementation notes:
1731         Prior to this patch, sequential focus navigation does not go into Shadow DOM if a shadow host is non-focusable.
1732         Now focus navigation must go into Shadow DOM subtrees even if a show host is not focusable as described in 2).
1733         To support this behavior, this patch introduced adjustedTabIndex() locally in FocusController so that
1734         it does not skip a non-focusable shadow host in current focus scope.
1735         After finding a *pseudo* focusable element in current focus scope, it tries to resolve a focused element recursively,
1736         considering a nested focus scope inside of a shadow host or iframe.
1737         To traverse Shadow DOM subtrees, a FocusController makes use of ReifiedTreeTraversal APIs, which was introduced in r112055.
1738
1739         This change does not affect an existing behavior if a shadow dom is not involved.
1740
1741         Test: fast/dom/shadow/focus-navigation.html
1742
1743         * dom/Element.cpp:
1744         (WebCore::Element::focus):
1745         * page/FocusController.cpp:
1746         (WebCore::isShadowHost):
1747         (WebCore):
1748         (WebCore::FocusScope::FocusScope):
1749         (WebCore::FocusScope::rootNode):
1750         (WebCore::FocusScope::owner):
1751         (WebCore::FocusScope::focusScopeOf):
1752         (WebCore::FocusScope::focusScopeOwnedByShadowHost):
1753         (WebCore::FocusScope::focusScopeOwnedByIFrame):
1754         (WebCore::hasCustomFocusLogic):
1755         (WebCore::isNonFocusableShadowHost):
1756         (WebCore::isFocusableShadowHost):
1757         (WebCore::adjustedTabIndex):
1758         (WebCore::shouldVisit):
1759         (WebCore::FocusController::findFocusableNodeDecendingDownIntoFrameDocument):
1760         (WebCore::FocusController::advanceFocusInDocumentOrder):
1761         (WebCore::FocusController::findFocusableNodeAcrossFocusScope):
1762         (WebCore::FocusController::findFocusableNodeRecursively):
1763         (WebCore::FocusController::findFocusableNode):
1764         (WebCore::FocusController::findNodeWithExactTabIndex):
1765         (WebCore::nextNodeWithGreaterTabIndex):
1766         (WebCore::previousNodeWithLowerTabIndex):
1767         (WebCore::FocusController::nextFocusableNode):
1768         (WebCore::FocusController::previousFocusableNode):
1769         * page/FocusController.h:
1770         (WebCore):
1771         (FocusScope):
1772         (FocusController):
1773
1774 2012-03-28  Li Yin  <li.yin@intel.com>
1775
1776         [WebSocket]Browser must fail connection if Sec-WebSocket-Protocol mismatched.
1777         https://bugs.webkit.org/show_bug.cgi?id=82307
1778
1779         Reviewed by Kent Tamura.
1780
1781         From RFC6455: http://tools.ietf.org/html/rfc6455#section-4.1
1782         If the WebSocket openhanding respond included the mismatched
1783         Sec-WebSocket-Protocol header field, the client must fail the WebSocket Connection.
1784
1785         Test: http/tests/websocket/tests/hybi/handshake-fail-by-mismatch-protocol-header.html
1786
1787         * Modules/websockets/WebSocketHandshake.cpp:
1788         (WebCore::WebSocketHandshake::checkResponseHeaders):
1789
1790 2012-03-28  Jessie Berlin  <jberlin@apple.com>
1791
1792         Fix Windows build after r112482.
1793
1794         * platform/network/cf/FormDataStreamCFNet.cpp:
1795         (WebCore::formOpen):
1796         Do not attempt to use an OS X error code on Windows. Use the POSIX errno instead.
1797
1798 2012-03-28  Alexandru Chiculita  <achicu@adobe.com>
1799
1800         [CSS Filters] Avoid rebuilding FEFilters when RenderLayer is destroyed
1801         https://bugs.webkit.org/show_bug.cgi?id=82524
1802
1803         Reviewed by Dean Jackson.
1804
1805         RenderLayer::~RenderLayer is calling clearBacking which updated the m_filter with new filters,
1806         even though they were to be deleted a couple of lines below. This change avoids updating the filters,
1807         if we are in the "destroyed" state.
1808
1809         No new tests. This change has no visible results to HTML or JavaScript, so it cannot be tested without a debugger.
1810
1811         * rendering/RenderLayer.cpp:
1812         (WebCore::RenderLayer::~RenderLayer):
1813         (WebCore::RenderLayer::clearBacking):
1814         * rendering/RenderLayer.h:
1815         (RenderLayer):
1816
1817 2012-03-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1818
1819         Remove ScriptExecutionContext from NavigatorBattery.idl
1820         https://bugs.webkit.org/show_bug.cgi?id=82556
1821
1822         Reviewed by Adam Barth.
1823
1824         As Bug 73528 comment #71, NavigatorBattery.idl doesn't need to have ScriptExecutionContext.
1825         Document can be used instead of ScriptExecutionContext.
1826
1827         Tests: batterystatus/add-listener-from-callback.html
1828                batterystatus/basic-all-types-of-events.html
1829                batterystatus/basic-operation.html
1830                batterystatus/event-after-navigation.html
1831                batterystatus/multiple-frames.html
1832                batterystatus/updates.html
1833                batterystatus/window-property.html
1834
1835         * Modules/battery/BatteryManager.cpp:
1836         (WebCore::BatteryManager::create):
1837         (WebCore::BatteryManager::BatteryManager):
1838         * Modules/battery/BatteryManager.h:
1839         (BatteryManager):
1840         * Modules/battery/NavigatorBattery.cpp:
1841         (WebCore::NavigatorBattery::webkitBattery):
1842         * Modules/battery/NavigatorBattery.h:
1843         (NavigatorBattery):
1844         * Modules/battery/NavigatorBattery.idl:
1845
1846 2012-03-28  Jason Liu  <jason.liu@torchmobile.com.cn>
1847
1848         [BlackBerry]Missing cookies from HTTP response header in Network tab of Web Inspector.
1849         https://bugs.webkit.org/show_bug.cgi?id=82041
1850
1851         We shouldn't overwrite cookies of response if there are more than one
1852         header of Set-Cookie.
1853
1854         Reviewed by Rob Buis.
1855
1856         Test: http/tests/cookies/resources/setArraycookies.php
1857
1858         * platform/network/blackberry/NetworkJob.cpp:
1859         (WebCore::NetworkJob::handleNotifyHeaderReceived):
1860
1861 2012-03-28  Noel Gordon  <noel.gordon@gmail.com>
1862
1863         JPEGImageDecoder: Set frame alpha state before marking a frame complete
1864         https://bugs.webkit.org/show_bug.cgi?id=82428
1865
1866         Reviewed by Kenneth Russell.
1867
1868         r109779 changed JPEG alpha channel handling by marking a JPEG image frame
1869         as having no alpha _after_ setting the image status frame-complete, which
1870         prevents the application of image color profiles in some WebGL cases.
1871
1872         No new tests. The application of the color profile is not guaranteed for
1873         images used as textures in WebGL. Refer to http://wkb.ug/76498.
1874
1875         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1876         (WebCore::JPEGImageDecoder::jpegComplete): Set the image frame alpha state
1877         before marking the image frame status as frame-complete.
1878
1879 2012-03-28  Emil A Eklund  <eae@chromium.org>
1880
1881         Fix rounding in RenderInline::paintOutlineForLine
1882         https://bugs.webkit.org/show_bug.cgi?id=82540
1883
1884         Reviewed by Eric Seidel.
1885
1886         No new tests, no change in functionality.
1887
1888         * rendering/RenderInline.cpp:
1889         (WebCore::RenderInline::paintOutlineForLine):
1890         Change paintOutlineForLine to pixel snap the left and right edges of the
1891         lines instead of adding the offset to an already rounded number.
1892
1893 2012-03-28  David Grogan  <dgrogan@chromium.org>
1894
1895         IndexedDB: don't expose IDBDatabaseError to script
1896         https://bugs.webkit.org/show_bug.cgi?id=82280
1897
1898         It's not used anywhere and firefox doesn't expose it.
1899
1900         Reviewed by Tony Chang.
1901
1902         Test: storage/indexeddb/removed.html
1903
1904         * CMakeLists.txt:
1905         * DerivedSources.cpp:
1906         * DerivedSources.make:
1907         * DerivedSources.pri:
1908         * GNUmakefile.list.am:
1909         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
1910         * Modules/indexeddb/IDBDatabaseError.idl: Removed.
1911         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
1912         * WebCore.gypi:
1913         * WebCore.vcproj/WebCore.vcproj:
1914         * WebCore.xcodeproj/project.pbxproj:
1915
1916 2012-03-28  Kenichi Ishibashi  <bashi@chromium.org>
1917
1918         Respects font fallback list during webfonts are loading
1919         https://bugs.webkit.org/show_bug.cgi?id=76684
1920
1921         Reviewed by Dimitri Glazkov.
1922
1923         For layout, use the rest of the fallback list while webfonts are loading.
1924         If the webfont is loading, it will be given an invalid Unicode Range so that
1925         font selection mechansim doesn't use the webfont for layout.
1926
1927         Test: http/tests/webfont/fallback-font-while-loading.html
1928
1929         * css/CSSSegmentedFontFace.cpp:
1930         (WebCore::appendFontDataWithInvalidUnicodeRangeIfLoading): Added.
1931         (WebCore):
1932         (WebCore::CSSSegmentedFontFace::getFontData):
1933
1934 2012-03-28  Mark Rowe  <mrowe@apple.com>
1935
1936         Update Localizable.strings.
1937
1938         * English.lproj/Localizable.strings:
1939
1940 2012-03-28  Victor Carbune  <vcarbune@adobe.com>
1941
1942         Removed particular rendering for the volume slider and used
1943         css positioning instead (simpler and less prone to errors when
1944         changes occur).
1945         https://bugs.webkit.org/show_bug.cgi?id=82150
1946
1947         Reviewed by Eric Carlson.
1948
1949         Test: media/video-controls-rendering-toggle-display-none.html
1950
1951         * css/mediaControls.css: Updated css to correctly render controls.
1952         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
1953         * css/mediaControlsChromium.css: Updated css to correctly render controls.
1954         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel): 
1955         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
1956         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
1957         * html/shadow/MediaControlElements.cpp: Removed particular renderer.
1958         (WebCore):
1959         * html/shadow/MediaControlElements.h: Removed particular renderer.
1960         (MediaControlVolumeSliderContainerElement):
1961         * html/shadow/MediaControlRootElementChromium.cpp:
1962         (WebCore::MediaControlRootElementChromium::create): Added an anonymous div container
1963         for the mute button and volume slider (to be displayed on top of each other)
1964
1965 2012-03-28  Sheriff Bot  <webkit.review.bot@gmail.com>
1966
1967         Unreviewed, rolling out r110064.
1968         http://trac.webkit.org/changeset/110064
1969         https://bugs.webkit.org/show_bug.cgi?id=82537
1970
1971         The patch leaks the DOM when audio elements are used
1972         (Requested by sundiamonde on #webkit).
1973
1974         * bindings/js/JSNodeCustom.cpp:
1975         (WebCore::isReachableFromDOM):
1976
1977 2012-03-28  Alexey Proskuryakov  <ap@apple.com>
1978
1979         [Win] Some Blob tests crash in CFNetwork in advanceCurrentStream(FormStreamFields*)
1980         https://bugs.webkit.org/show_bug.cgi?id=82386
1981         <rdar://problem/11121501>
1982
1983         Reviewed by Brady Eidson.
1984
1985         Covered by existing tests.
1986
1987         * platform/network/cf/FormDataStreamCFNet.cpp:
1988         * platform/network/cf/FormDataStreamCFNet.h:
1989         Moved low level implementation from FormDataStreamMac, and exposed an additional function
1990         to implement Foundation-based API on top of this.
1991
1992         * platform/network/mac/FormDataStreamMac.h:
1993         * platform/network/mac/FormDataStreamMac.mm:
1994         Rely on toll-free bridging and implementation details to make this work without duplicating
1995         code.
1996         Note that httpBodyFromStream is confusing - I don't see how it can work when sending serialized
1997         requests across process boundary. We probably only get away with this because we don't attempt
1998         to send requests to UI process once they already have streams associated with them.
1999
2000         * WebCore.vcproj/WebCore.vcproj: Added missing platform/cf files.
2001
2002         * platform/cf/FileSystemCF.cpp: Fixed include style.
2003
2004         * platform/win/FileSystemWin.cpp: (WebCore::fileSystemRepresentation): Ifdef out a broken
2005         implementation.
2006
2007 2012-03-28  Adrienne Walker  <enne@google.com>
2008
2009         [chromium] Fix tiled layer assert for huge layers
2010         https://bugs.webkit.org/show_bug.cgi?id=82486
2011
2012         Reviewed by James Robinson.
2013
2014         Test: TiledLayerChromiumTest.hugeLayerUpdateCrash
2015
2016         TilingData::numTiles() is calculated as the product of two ints and so
2017         can potentially overflow, causing numTiles() to be incorrect. To avoid
2018         calling code accidentally falling into this trap, remove this function
2019         and all code that uses tile index from TilingData.  This requires
2020         fixing up a bunch of callers of TilingData and CCLayerTilingData.
2021
2022         Additionally, TilingData::numTiles() has long been a confusing
2023         function name in some contexts, so rename to bool hasEmptyBounds().
2024
2025         Also, remove TilingData::intersectDrawQuad because there are no
2026         clients of that function.
2027
2028         * platform/graphics/chromium/TiledLayerChromium.cpp:
2029         (WebCore::TiledLayerChromium::drawsContent):
2030         (WebCore::TiledLayerChromium::reserveTextures):
2031         (WebCore::TiledLayerChromium::prepareToUpdate):
2032         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
2033         (WebCore::TiledLayerChromium::needsIdlePaint):
2034         (WebCore::TiledLayerChromium::idlePaintRect):
2035         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
2036         (WebCore::CCLayerTilingData::tileRect):
2037         * platform/graphics/chromium/cc/CCLayerTilingData.h:
2038         (WebCore::CCLayerTilingData::hasEmptyBounds):
2039         (WebCore::CCLayerTilingData::tileBounds):
2040         (WebCore::CCLayerTilingData::isEmpty):
2041         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2042         (WebCore::CCTiledLayerImpl::bindContentsTexture):
2043         (WebCore::CCTiledLayerImpl::appendQuads):
2044         * platform/graphics/gpu/Texture.cpp:
2045         (WebCore::Texture::create):
2046         (WebCore::Texture::updateSubRect):
2047         * platform/graphics/gpu/TilingData.cpp:
2048         (WebCore::TilingData::tileBounds):
2049         (WebCore::TilingData::tileBoundsWithBorder):
2050         (WebCore::TilingData::tileBoundsNormalized):
2051         * platform/graphics/gpu/TilingData.h:
2052         (WebCore::TilingData::hasEmptyBounds):
2053         (TilingData):
2054         (WebCore::TilingData::assertTile):
2055
2056 2012-03-28  Emil A Eklund  <eae@chromium.org>
2057
2058         Change FilterOperations::getOutsets to use integers
2059         https://bugs.webkit.org/show_bug.cgi?id=82535
2060
2061         Reviewed by Eric Seidel.
2062
2063         FilterOperations::getOutsets calculates the outsets using integers and
2064         the values are guranteed to be set to full-pixel values. By changing the
2065         function signature we communicate this fact better and avoid unnecessary
2066         type conversions in some cases.
2067
2068         No new tests.
2069
2070         * platform/graphics/filters/FilterOperations.cpp:
2071         (WebCore::FilterOperations::getOutsets):
2072         * platform/graphics/filters/FilterOperations.h:
2073         (FilterOperations):
2074         * rendering/RenderBox.cpp:
2075         (WebCore::RenderBox::computeRectForRepaint):
2076         (WebCore::RenderBox::addVisualEffectOverflow):
2077         * rendering/RenderInline.cpp:
2078         (WebCore::RenderInline::computeRectForRepaint):
2079         * rendering/style/RenderStyle.h:
2080
2081 2012-03-28  Nate Chapin  <japhet@chromium.org>
2082
2083         Remove dispatchDidLoadMainResource callback, since no
2084         port implements it.
2085         https://bugs.webkit.org/show_bug.cgi?id=82539
2086
2087         Reviewed by Alexey Proskuryakov.
2088
2089         No new tests, just deleting dead code.
2090
2091         * loader/EmptyClients.h:
2092         (EmptyFrameLoaderClient):
2093         * loader/FrameLoader.cpp:
2094         (WebCore::FrameLoader::finishedLoading):
2095         (WebCore::FrameLoader::mainReceivedCompleteError):
2096         * loader/FrameLoaderClient.h:
2097         (FrameLoaderClient):
2098         * loader/MainResourceLoader.cpp:
2099         (WebCore::MainResourceLoader::receivedError):
2100         (WebCore::MainResourceLoader::didCancel):
2101
2102 2012-03-28  Enrica Casucci  <enrica@apple.com>
2103
2104         REGRESSION: editing/pasteboard/dataTransfer-setData-getData.html fails on Mac platforms.
2105         https://bugs.webkit.org/show_bug.cgi?id=82497
2106         <rdar://problem/11140334>
2107
2108         Reviewed by Brady Eidson.
2109         
2110         The revision causing this regression fixed the way data is written to the pasteboard for NSURLPboardType.
2111         This change fixes the way data is read from the pasteboard for the same pasteboard type.
2112
2113         No new tests. Fixes the existing one that fails.
2114
2115         * platform/mac/ClipboardMac.mm:
2116         (WebCore::absoluteURLsFromPasteboard):
2117         * platform/mac/PlatformPasteboardMac.mm:
2118         (WebCore::PlatformPasteboard::stringForType):
2119
2120 2012-03-28  Joe Thomas  <joethomas@motorola.com>
2121
2122         SL bot is hitting SHOULD NEVER BE REACHED in WebCore::valueForLength() on many tests
2123         https://bugs.webkit.org/show_bug.cgi?id=82390
2124
2125         Reviewed by Simon Fraser.
2126
2127         This is an attempt to fix the MAC SL/Lion Bot issue as this issue is not reproducible locally.
2128         The assertion happened when length type is Undefined in valueForLength() function but the assertion for Undefined length type
2129         in RenderBox::computeLogicalWidthInRegionUsing which calls the above said function did not get hit.
2130
2131         This patch passes Length structure as const reference to Length calculation functions which avoids the call to the copy-constructor.
2132         And it ensures that the Length structure is not getting modified during copy-construction. 
2133
2134         * css/LengthFunctions.cpp:
2135         (WebCore::minimumValueForLength):
2136         (WebCore::valueForLength):
2137         (WebCore::floatValueForLength):
2138         * css/LengthFunctions.h:
2139         (WebCore):
2140
2141 2012-03-28  Gavin Barraclough  <barraclough@apple.com>
2142
2143         Yarr: if we're not using the output array, don't populate it!
2144         https://bugs.webkit.org/show_bug.cgi?id=82519
2145
2146         Reviewed by Sam Weinig.
2147
2148         * ForwardingHeaders/runtime/MatchResult.h: Added.
2149         * ForwardingHeaders/yarr/YarrJIT.h: Added.
2150             - Added forwarding headers.
2151
2152 2012-03-23  David Hyatt  <hyatt@apple.com>
2153
2154         https://bugs.webkit.org/show_bug.cgi?id=81685
2155         
2156         [New Multicolumn] Add RenderMultiColumnFlowThread to hold the flow thread contents of a multi-column block.
2157         It derives from RenderFlowThread.
2158         
2159         Refactor RenderFlowThread to split out the stuff related to explicit naming into a subclass, RenderNamedFlowThread.
2160         This allows RenderFlowThread to be a simple base class that involves maintaining the regions themselves.
2161     
2162         Reviewed by Julien Chaffraix.
2163
2164         * CMakeLists.txt:
2165         * GNUmakefile.list.am:
2166         * Target.pri:
2167         * WebCore.gypi:
2168         * WebCore.vcproj/WebCore.vcproj:
2169         * WebCore.xcodeproj/project.pbxproj:
2170         * dom/Document.cpp:
2171         * dom/NodeRenderingContext.cpp:
2172         * dom/NodeRenderingContext.h:
2173         (WebCore):
2174         (WebCore::NodeRenderingContext::parentFlowRenderer):
2175         * dom/WebKitNamedFlow.cpp:
2176         (WebCore::WebKitNamedFlow::WebKitNamedFlow):
2177         * dom/WebKitNamedFlow.h:
2178         (WebCore):
2179         (WebCore::WebKitNamedFlow::create):
2180         (WebKitNamedFlow):
2181         * rendering/RenderBlock.cpp:
2182         (WebCore::RenderBlock::collapseAnonymousBoxChild):
2183         * rendering/RenderFlowThread.cpp:
2184         (WebCore::RenderFlowThread::RenderFlowThread):
2185         (WebCore):
2186         (WebCore::RenderFlowThread::addRegionToThread):
2187         (WebCore::RenderFlowThread::removeRegionFromThread):
2188         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
2189         * rendering/RenderFlowThread.h:
2190         (WebCore):
2191         * rendering/RenderMultiColumnFlowThread.cpp: Added.
2192         (WebCore):
2193         (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
2194         (WebCore::RenderMultiColumnFlowThread::renderName):
2195         * rendering/RenderMultiColumnFlowThread.h: Added.
2196         (WebCore):
2197         (RenderMultiColumnFlowThread):
2198         * rendering/RenderNamedFlowThread.cpp: Added.
2199         (WebCore):
2200         (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
2201         (WebCore::RenderNamedFlowThread::renderName):
2202         (WebCore::RenderNamedFlowThread::nextRendererForNode):
2203         (WebCore::RenderNamedFlowThread::previousRendererForNode):
2204         (WebCore::RenderNamedFlowThread::addFlowChild):
2205         (WebCore::RenderNamedFlowThread::removeFlowChild):
2206         (WebCore::RenderNamedFlowThread::dependsOn):
2207         (WebCore::compareRenderRegions):
2208         (WebCore::RenderNamedFlowThread::addRegionToThread):
2209         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
2210         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
2211         (WebCore::RenderNamedFlowThread::addDependencyOnFlowThread):
2212         (WebCore::RenderNamedFlowThread::removeDependencyOnFlowThread):
2213         (WebCore::RenderNamedFlowThread::pushDependencies):
2214         (WebCore::RenderNamedFlowThread::ensureNamedFlow):
2215         * rendering/RenderNamedFlowThread.h: Added.
2216         (WebCore):
2217         (RenderNamedFlowThread):
2218         (WebCore::RenderNamedFlowThread::name):
2219         (WebCore::RenderNamedFlowThread::hasChildren):
2220         (WebCore::RenderNamedFlowThread::hasChild):
2221         (WebCore::RenderNamedFlowThread::isRenderNamedFlowThread):
2222         (WebCore::toRenderNamedFlowThread):
2223         * rendering/RenderObject.cpp:
2224         (WebCore::RenderObject::willBeDestroyed):
2225         * rendering/RenderObject.h:
2226         (WebCore::RenderObject::isRenderNamedFlowThread):
2227         * rendering/RenderObjectChildList.cpp:
2228         (WebCore::renderNamedFlowThreadContainer):
2229         (WebCore::RenderObjectChildList::removeChildNode):
2230         (WebCore::RenderObjectChildList::appendChildNode):
2231         (WebCore::RenderObjectChildList::insertChildNode):
2232         * rendering/RenderRegion.cpp:
2233         (WebCore::RenderRegion::RenderRegion):
2234         (WebCore::RenderRegion::attachRegion):
2235         * rendering/RenderRegion.h:
2236         (WebCore):
2237         (WebCore::RenderRegion::parentNamedFlowThread):
2238         (RenderRegion):
2239         * rendering/RenderTreeAsText.cpp:
2240         (WebCore::writeRenderNamedFlowThreads):
2241         (WebCore::writeLayers):
2242         * rendering/RenderView.cpp:
2243         (WebCore::RenderView::RenderView):
2244         (WebCore::RenderView::layout):
2245         (WebCore::RenderView::styleDidChange):
2246         (WebCore::RenderView::ensureRenderFlowThreadWithName):
2247         (WebCore::RenderView::layoutRenderNamedFlowThreads):
2248         * rendering/RenderView.h:
2249         (WebCore):
2250         (RenderView):
2251         (WebCore::RenderView::hasRenderNamedFlowThreads):
2252         (WebCore::RenderView::isRenderNamedFlowThreadOrderDirty):
2253         (WebCore::RenderView::setIsRenderNamedFlowThreadOrderDirty):
2254         (WebCore::RenderView::renderNamedFlowThreadList):
2255
2256 2012-03-28  Emil A Eklund  <eae@chromium.org>
2257
2258         Remove unnecessary rounding in RenderLayerBacking
2259         https://bugs.webkit.org/show_bug.cgi?id=82529
2260
2261         Reviewed by Eric Seidel.
2262
2263         Remove rounding that is no longer required now that borderBoxRect returns
2264         an IntRect.
2265         
2266         No new tests.
2267
2268         * rendering/RenderLayerBacking.cpp:
2269         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2270         (WebCore::RenderLayerBacking::startAnimation):
2271         (WebCore::RenderLayerBacking::startTransition):
2272
2273 2012-03-28  Sheriff Bot  <webkit.review.bot@gmail.com>
2274
2275         Unreviewed, rolling out r112432.
2276         http://trac.webkit.org/changeset/112432
2277         https://bugs.webkit.org/show_bug.cgi?id=82536
2278
2279         Causes ccs3 layout test asserts (Requested by enne on
2280         #webkit).
2281
2282         * platform/graphics/chromium/TiledLayerChromium.cpp:
2283         (WebCore::TiledLayerChromium::drawsContent):
2284         (WebCore::TiledLayerChromium::reserveTextures):
2285         (WebCore::TiledLayerChromium::prepareToUpdate):
2286         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
2287         (WebCore::TiledLayerChromium::needsIdlePaint):
2288         (WebCore::TiledLayerChromium::idlePaintRect):
2289         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
2290         (WebCore::CCLayerTilingData::tileRect):
2291         * platform/graphics/chromium/cc/CCLayerTilingData.h:
2292         (WebCore::CCLayerTilingData::numTiles):
2293         (WebCore::CCLayerTilingData::tileBounds):
2294         (WebCore::CCLayerTilingData::isEmpty):
2295         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2296         (WebCore::CCTiledLayerImpl::bindContentsTexture):
2297         (WebCore::CCTiledLayerImpl::appendQuads):
2298         * platform/graphics/filters/FECustomFilter.cpp:
2299         (WebCore::FECustomFilter::platformApplySoftware):
2300         * platform/graphics/gpu/Texture.cpp:
2301         (WebCore::Texture::create):
2302         (WebCore::Texture::updateSubRect):
2303         * platform/graphics/gpu/TilingData.cpp:
2304         (WebCore::TilingData::tileBounds):
2305         (WebCore::TilingData::tileBoundsWithBorder):
2306         (WebCore::TilingData::tileBoundsNormalized):
2307         (WebCore::TilingData::intersectDrawQuad):
2308         (WebCore):
2309         * platform/graphics/gpu/TilingData.h:
2310         (WebCore::TilingData::numTiles):
2311         (WebCore::TilingData::tileIndex):
2312         (WebCore::TilingData::tileXIndex):
2313         (WebCore::TilingData::tileYIndex):
2314         (TilingData):
2315         (WebCore::TilingData::assertTile):
2316
2317 2012-03-27  Daniel Cheng  <dcheng@chromium.org>
2318
2319         [chromium] Merge ChromiumDataObject and DataTransferItemListChromium.
2320         https://bugs.webkit.org/show_bug.cgi?id=82407
2321
2322         Reviewed by Tony Chang.
2323
2324         Since ChromiumDataObject is just a very thin wrapper for DataTransferItemListChromium now,
2325         combine the two and remove a layer of indirection.
2326
2327         No functionality change, should be covered by existing tests.
2328
2329         * WebCore.gypi:
2330         * platform/chromium/ChromiumDataObject.cpp: Replacing DataTransferItemListChromium.
2331         (WebCore::ChromiumDataObject::createFromPasteboard):
2332         (WebCore::ChromiumDataObject::create):
2333         (WebCore::ChromiumDataObject::length):
2334         (WebCore):
2335         (WebCore::ChromiumDataObject::item):
2336         (WebCore::ChromiumDataObject::deleteItem):
2337         (WebCore::ChromiumDataObject::clearAll):
2338         (WebCore::ChromiumDataObject::add):
2339         (WebCore::ChromiumDataObject::clearData):
2340         (WebCore::ChromiumDataObject::clearAllExceptFiles):
2341         (WebCore::ChromiumDataObject::types):
2342         (WebCore::ChromiumDataObject::getData):
2343         (WebCore::ChromiumDataObject::setData):
2344         (WebCore::ChromiumDataObject::urlAndTitle):
2345         (WebCore::ChromiumDataObject::setURLAndTitle):
2346         (WebCore::ChromiumDataObject::htmlAndBaseURL):
2347         (WebCore::ChromiumDataObject::setHTMLAndBaseURL):
2348         (WebCore::ChromiumDataObject::containsFilenames):
2349         (WebCore::ChromiumDataObject::filenames):
2350         (WebCore::ChromiumDataObject::addFilename):
2351         (WebCore::ChromiumDataObject::addSharedBuffer):
2352         (WebCore::ChromiumDataObject::ChromiumDataObject):
2353         (WebCore::ChromiumDataObject::findStringItem):
2354         (WebCore::ChromiumDataObject::internalAddStringItem):
2355         (WebCore::ChromiumDataObject::internalAddFileItem):
2356         * platform/chromium/ChromiumDataObject.h:
2357         (WebCore):
2358         (ChromiumDataObject):
2359         * platform/chromium/ChromiumDataObjectItem.cpp: Renamed from Source/WebCore/platform/chromium/DataTransferItemChromium.cpp.
2360         (WebCore):
2361         (WebCore::ChromiumDataObjectItem::createFromString):
2362         (WebCore::ChromiumDataObjectItem::createFromFile):
2363         (WebCore::ChromiumDataObjectItem::createFromURL):
2364         (WebCore::ChromiumDataObjectItem::createFromHTML):
2365         (WebCore::ChromiumDataObjectItem::createFromSharedBuffer):
2366         (WebCore::ChromiumDataObjectItem::createFromPasteboard):
2367         (WebCore::ChromiumDataObjectItem::ChromiumDataObjectItem):
2368         (WebCore::ChromiumDataObjectItem::getAsString):
2369         (WebCore::ChromiumDataObjectItem::getAsFile):
2370         (WebCore::ChromiumDataObjectItem::internalGetAsString):
2371         (WebCore::ChromiumDataObjectItem::isFilename):
2372         * platform/chromium/ChromiumDataObjectItem.h: Renamed from Source/WebCore/platform/chromium/DataTransferItemChromium.h.
2373         (WebCore):
2374         (ChromiumDataObjectItem):
2375         (WebCore::ChromiumDataObjectItem::kind):
2376         (WebCore::ChromiumDataObjectItem::type):
2377         (WebCore::ChromiumDataObjectItem::sharedBuffer):
2378         (WebCore::ChromiumDataObjectItem::title):
2379         (WebCore::ChromiumDataObjectItem::baseURL):
2380         * platform/chromium/ClipboardChromium.cpp:
2381         (WebCore::ClipboardChromium::files):
2382         (WebCore::ClipboardChromium::hasData):
2383         (WebCore::ClipboardChromium::items):
2384         * platform/chromium/DataTransferItemListChromium.cpp: Removed.
2385         * platform/chromium/DataTransferItemListChromium.h: Removed.
2386
2387 2012-03-28  Nat Duca  <nduca@chromium.org>
2388
2389         [chromium] Scheduler should not tell FrameRateController to begin a frame when we dont swap
2390         https://bugs.webkit.org/show_bug.cgi?id=82516
2391
2392         Reviewed by James Robinson.
2393
2394         * platform/graphics/chromium/LayerRendererChromium.cpp:
2395         (WebCore::LayerRendererChromium::swapBuffers):
2396         * platform/graphics/chromium/LayerRendererChromium.h:
2397         (LayerRendererChromium):
2398         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2399         (WebCore::CCLayerTreeHostImpl::swapBuffers):
2400         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2401         (CCLayerTreeHostImpl):
2402         * platform/graphics/chromium/cc/CCScheduler.cpp:
2403         (WebCore::CCScheduler::processScheduledActions):
2404         * platform/graphics/chromium/cc/CCScheduler.h:
2405         (WebCore::CCScheduledActionDrawAndSwapResult::CCScheduledActionDrawAndSwapResult):
2406         (CCScheduledActionDrawAndSwapResult):
2407         (WebCore):
2408         (CCSchedulerClient):
2409         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2410         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
2411         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapIfPossible):
2412         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced):
2413         * platform/graphics/chromium/cc/CCThreadProxy.h:
2414         (CCThreadProxy):
2415
2416 2012-03-26  Eric Uhrhane  <ericu@chromium.org>
2417
2418         FileWriter has two race conditions
2419         https://bugs.webkit.org/show_bug.cgi?id=81861
2420
2421         Reviewed by David Levin.
2422
2423         Should make current tests less flaky.
2424
2425         * Modules/filesystem/FileWriter.h:
2426         * Modules/filesystem/FileWriter.cpp:
2427         Track the in-flight operation, whether it be an abort/write/truncate.
2428         Whether an abort comes back as didWrite, didTruncate, or didFail, handle
2429         it appropriately.  Before this fix, the Chromium implementation would
2430         assert in two cases:
2431
2432         If the user calls abort, then write, then abort before the backend
2433         catches up, we'd send both aborts to the backend, even though it hadn't
2434         received the write yet.  Chromium's backend asserts if there's an abort
2435         with no write in progress.  We now record that we've sent an abort and
2436         are waiting for the response.
2437
2438         If the user calls abort while a write/truncate is just finishing, on the
2439         Chromium worker implementation, the completion message could be
2440         thread-hopping back to WebCore at the
2441         WorkerAsyncFileWriterCallbacksBridge while the abort is thread-hopping
2442         in the other direction.  Again, this leads to an abort call to the
2443         backend with no write in progress, and an assert.  We're now robust to
2444         completions coming back when we're expecting an abort, and
2445         https://chromiumcodereview.appspot.com/9764018/ will make the backend
2446         robust to extra abort calls.
2447
2448 2012-03-27  Ryosuke Niwa  <rniwa@webkit.org>
2449
2450         Deleting a paragraph of text should not add elements for typing style
2451         https://bugs.webkit.org/show_bug.cgi?id=82401
2452
2453         Reviewed by Enrica Casucci.
2454
2455         This behavior was explicitly supported by DeleteSelectionCommand but it doesn't match TextEdit or Firefox.
2456         We're changing our behavior to match TextEdit and Firefox in this patch.
2457
2458         The behavior is tested by an existing test, which was renamed to deleting-text-rests-typing-style.html in this patch.
2459
2460         Test: editing/execCommand/deleting-text-rests-typing-style.html
2461
2462         * editing/DeleteSelectionCommand.cpp:
2463         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
2464
2465 2012-03-28  Michal Mocny  <mmocny@google.com>
2466
2467         [chromium] Add tracing events around CCLayerTreeHostImpl visibility.
2468         https://bugs.webkit.org/show_bug.cgi?id=82501
2469
2470         Reviewed by James Robinson.
2471
2472         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2473         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2474         (WebCore::CCLayerTreeHostImpl::setVisible):
2475
2476 2012-03-28  Florin Malita  <fmalita@google.com>
2477
2478         Incorrect foreignObject hit test results when overlapping other SVG elements
2479         https://bugs.webkit.org/show_bug.cgi?id=82059
2480
2481         Reviewed by Nikolas Zimmermann.
2482
2483         Test: svg/hittest/foreign-object-background.svg
2484
2485         Foreign content needs to be hit-tested atomically due to the (pseudo)
2486         stacking context established by FOs.
2487
2488         * rendering/svg/RenderSVGForeignObject.cpp:
2489         (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
2490         Hit test all phases on FO HitTestForeground.
2491
2492 2012-03-26  Shawn Singh  <shawnsingh@chromium.org>
2493
2494         [chromium] layer->clipRect() is not initialized for layers that create a renderSurface.
2495         https://bugs.webkit.org/show_bug.cgi?id=74147
2496
2497         Reviewed by Adrienne Walker.
2498
2499         Added 3 additional unit tests; Modified existing unit tests and layout tests.
2500
2501         The layer's clipRect and usesLayerClipping information was not
2502         being initialized for layers that created a renderSurface. (It
2503         was, however, being initialized for the renderSurface itself.)
2504         This patch adds a unit test that reproduces that this is an error,
2505         other unit tests to tightly test the value of clipRect being
2506         initialized, and adds the logic to properly initialize the
2507         clipRect.
2508
2509         Before this patch, this bug was causing flashing on tab-switch on
2510         the apple iphone page. Even worse, with partial swap enabled, the
2511         layers would simply disappear, because the first frame the
2512         clipRect is uninitialized and the layer is not drawn, and the
2513         second frame onwards, the damage tracker correctly things nothing
2514         is damaged, so it doesn't draw that layer again until other damage
2515         causes it to be redrawn.
2516
2517         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2518         (WebCore::calculateDrawTransformsAndVisibilityInternal):
2519
2520 2012-03-28  Anders Carlsson  <andersca@apple.com>
2521
2522         "Sticky" or slow scrolling on some sites
2523         https://bugs.webkit.org/show_bug.cgi?id=82512
2524         <rdar://problem/11000372>
2525
2526         Reviewed by Andreas Kling.
2527
2528         When we're in the slow mode and have to update the scroll layer position on the main thread,
2529         get it from the scrolling thread so we'll be in sync with the scrolling tree when the main thread is busy.
2530
2531         * page/scrolling/ScrollingCoordinator.cpp:
2532         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
2533         * page/scrolling/ScrollingCoordinator.h:
2534         (ScrollingCoordinator):
2535         * page/scrolling/ScrollingTree.cpp:
2536         (WebCore::ScrollingTree::mainFrameScrollPosition):
2537         (WebCore):
2538         (WebCore::ScrollingTree::updateMainFrameScrollPositionAndScrollLayerPosition):
2539         * page/scrolling/ScrollingTree.h:
2540
2541 2012-03-28  Adrienne Walker  <enne@google.com>
2542
2543         [chromium] Fix tiled layer assert for huge layers
2544         https://bugs.webkit.org/show_bug.cgi?id=82486
2545
2546         Reviewed by James Robinson.
2547
2548         Test: TiledLayerChromiumTest.hugeLayerUpdateCrash
2549
2550         TilingData::numTiles() is calculated as the product of two ints and so
2551         can potentially overflow, causing numTiles() to be incorrect. To avoid
2552         calling code accidentally falling into this trap, remove this function
2553         and all code that uses tile index from TilingData.  This requires
2554         fixing up a bunch of callers of TilingData and CCLayerTilingData.
2555
2556         Additionally, TilingData::numTiles() has long been a confusing
2557         function name in some contexts, so rename to bool hasEmptyBounds().
2558
2559         Also, remove TilingData::intersectDrawQuad because there are no
2560         clients of that function.
2561
2562         * platform/graphics/chromium/TiledLayerChromium.cpp:
2563         (WebCore::TiledLayerChromium::drawsContent):
2564         (WebCore::TiledLayerChromium::reserveTextures):
2565         (WebCore::TiledLayerChromium::prepareToUpdate):
2566         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
2567         (WebCore::TiledLayerChromium::needsIdlePaint):
2568         (WebCore::TiledLayerChromium::idlePaintRect):
2569         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
2570         (WebCore::CCLayerTilingData::tileRect):
2571         * platform/graphics/chromium/cc/CCLayerTilingData.h:
2572         (WebCore::CCLayerTilingData::hasEmptyBounds):
2573         (WebCore::CCLayerTilingData::tileBounds):
2574         (WebCore::CCLayerTilingData::isEmpty):
2575         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2576         (WebCore::CCTiledLayerImpl::bindContentsTexture):
2577         (WebCore::CCTiledLayerImpl::appendQuads):
2578         * platform/graphics/gpu/Texture.cpp:
2579         (WebCore::Texture::create):
2580         (WebCore::Texture::updateSubRect):
2581         * platform/graphics/gpu/TilingData.cpp:
2582         (WebCore::TilingData::tileBounds):
2583         (WebCore::TilingData::tileBoundsWithBorder):
2584         (WebCore::TilingData::tileBoundsNormalized):
2585         * platform/graphics/gpu/TilingData.h:
2586         (WebCore::TilingData::hasEmptyBounds):
2587         (TilingData):
2588         (WebCore::TilingData::assertTile):
2589
2590 2012-03-28  Peter Rybin  <peter.rybin@gmail.com>
2591
2592         Web Inspector: CodeGeneratorInspector.py: switch Runtime, Network and DOM domains to typed API
2593         https://bugs.webkit.org/show_bug.cgi?id=81558
2594
2595         Reviewed by Pavel Feldman.
2596
2597         Client code is switched to typed API (all InspectorObject and InspectorArray types are
2598         replaced with generated types from TypeBuilder according to Inspector.json).
2599
2600         Missing array of int specialization is added. Code generator now has a check against
2601         misspelled (non-existing) domain names.
2602
2603         * inspector/CodeGeneratorInspector.py:
2604         (Generator.go): check against misspelled domain names added.
2605         * inspector/InjectedScript.cpp:
2606         (WebCore::InjectedScript::evaluate):
2607         (WebCore::InjectedScript::callFunctionOn):
2608         (WebCore::InjectedScript::evaluateOnCallFrame):
2609         (WebCore::InjectedScript::getProperties):
2610         (WebCore::InjectedScript::wrapObject):
2611         (WebCore::InjectedScript::wrapNode):
2612         (WebCore::InjectedScript::wrapSerializedObject):
2613         (WebCore::InjectedScript::makeEvalCall):
2614         * inspector/InjectedScript.h:
2615         (InjectedScript):
2616         * inspector/InspectorDOMAgent.cpp:
2617         (WebCore::InspectorDOMAgent::getDocument):
2618         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
2619         (WebCore::InspectorDOMAgent::querySelectorAll):
2620         (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
2621         (WebCore::InspectorDOMAgent::getEventListenersForNode):
2622         (WebCore::InspectorDOMAgent::getSearchResults):
2623         (WebCore::InspectorDOMAgent::resolveNode):
2624         (WebCore::InspectorDOMAgent::getAttributes):
2625         (WebCore::InspectorDOMAgent::buildObjectForNode):
2626         (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
2627         (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
2628         (WebCore::InspectorDOMAgent::loadEventFired):
2629         (WebCore::InspectorDOMAgent::didInsertDOMNode):
2630         (WebCore::InspectorDOMAgent::styleAttributeInvalidated):
2631         (WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
2632         * inspector/InspectorDOMAgent.h:
2633         (InspectorDOMAgent):
2634         * inspector/InspectorPageAgent.cpp:
2635         (WebCore::InspectorPageAgent::resourceTypeJson):
2636         (WebCore::InspectorPageAgent::cachedResourceTypeJson):
2637         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
2638         * inspector/InspectorPageAgent.h:
2639         * inspector/InspectorResourceAgent.cpp:
2640         (WebCore::buildObjectForResourceRequest):
2641         (WebCore::buildObjectForResourceResponse):
2642         (WebCore::buildObjectForCachedResource):
2643         (WebCore::InspectorResourceAgent::willSendRequest):
2644         (WebCore::InspectorResourceAgent::didReceiveResponse):
2645         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
2646         (WebCore::InspectorResourceAgent::buildInitiatorObject):
2647         (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
2648         (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
2649         * inspector/InspectorResourceAgent.h:
2650         (InspectorResourceAgent):
2651         * inspector/InspectorRuntimeAgent.cpp:
2652         (WebCore::InspectorRuntimeAgent::evaluate):
2653         (WebCore::InspectorRuntimeAgent::callFunctionOn):
2654         (WebCore::InspectorRuntimeAgent::getProperties):
2655         * inspector/InspectorRuntimeAgent.h:
2656         (InspectorRuntimeAgent):
2657         * inspector/InspectorValues.h:
2658         (InspectorArray):
2659         (WebCore::InspectorArray::pushInt):
2660         (WebCore):
2661         * inspector/ScriptCallFrame.cpp:
2662         (WebCore::ScriptCallFrame::buildInspectorObject):
2663         * inspector/ScriptCallFrame.h:
2664         (ScriptCallFrame):
2665         * inspector/ScriptCallStack.cpp:
2666         (WebCore::ScriptCallStack::buildInspectorArray):
2667         * inspector/ScriptCallStack.h:
2668         (ScriptCallStack):
2669
2670 2012-03-28  Eric Seidel  <eric@webkit.org>
2671
2672         setNeedsLayout(true, false) is super confusing to read and should use an enum instead
2673         https://bugs.webkit.org/show_bug.cgi?id=82369
2674
2675         Reviewed by Julien Chaffraix.
2676
2677         I replaced all uses of the markParents bool with a MarkingBehavior
2678         enum (which has two values: MarkContainingBlockChain and MarkOnlyThis).
2679         I'm not sure the naming is perfect (as it's not clear to me if markParents is
2680         used to mean the same thing in these 3 functions), but hopefully this code is more
2681         clear.  I welcome further suggested adjustment from layout experts.
2682
2683         * page/FrameView.cpp:
2684         (WebCore::FrameView::scheduleRelayout):
2685         * rendering/RenderBlock.cpp:
2686         (WebCore::RenderBlock::layoutBlock):
2687         (WebCore::RenderBlock::adjustPositionedBlock):
2688         (WebCore::RenderBlock::layoutBlockChildren):
2689         (WebCore::RenderBlock::layoutBlockChild):
2690         (WebCore::RenderBlock::layoutPositionedObjects):
2691         (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
2692         (WebCore::RenderBlock::removePositionedObjects):
2693         (WebCore::RenderBlock::insertFloatingObject):
2694         (WebCore::RenderBlock::positionNewFloats):
2695         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
2696         (WebCore::RenderBlock::adjustBlockChildForPagination):
2697         * rendering/RenderBlockLineLayout.cpp:
2698         (WebCore::RenderBlock::layoutRunsAndFloats):
2699         (WebCore::RenderBlock::layoutInlineChildren):
2700         (WebCore::RenderBlock::positionNewFloatOnLine):
2701         * rendering/RenderBox.cpp:
2702         (WebCore::RenderBox::positionLineBox):
2703         * rendering/RenderDeprecatedFlexibleBox.cpp:
2704         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
2705         (WebCore::gatherFlexChildrenInfo):
2706         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
2707         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
2708         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
2709         * rendering/RenderFlexibleBox.cpp:
2710         (WebCore::RenderFlexibleBox::prepareChildForPositionedLayout):
2711         * rendering/RenderLayer.cpp:
2712         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
2713         * rendering/RenderMedia.cpp:
2714         (WebCore::RenderMedia::layout):
2715         * rendering/RenderObject.cpp:
2716         (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
2717         * rendering/RenderObject.h:
2718         (RenderObject):
2719         (WebCore::RenderObject::setNeedsLayout):
2720         (WebCore::RenderObject::setChildNeedsLayout):
2721         * rendering/RenderRubyRun.cpp:
2722         (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
2723         * rendering/RenderTable.cpp:
2724         (WebCore::RenderTable::layout):
2725         * rendering/RenderTableRow.cpp:
2726         (WebCore::RenderTableRow::layout):
2727         * rendering/RenderTableSection.cpp:
2728         (WebCore::RenderTableSection::calcRowLogicalHeight):
2729         (WebCore::RenderTableSection::layoutRows):
2730         * rendering/RenderTextControl.cpp:
2731         (WebCore::RenderTextControl::layoutSpecialExcludedChild):
2732         * rendering/RenderTextControlSingleLine.cpp:
2733         (WebCore::RenderTextControlSingleLine::layout):
2734         * rendering/RenderView.cpp:
2735         (WebCore::RenderView::RenderView):
2736         (WebCore::RenderView::layout):
2737         * rendering/mathml/RenderMathMLRoot.cpp:
2738         (WebCore::RenderMathMLRoot::layout):
2739         * rendering/mathml/RenderMathMLRow.cpp:
2740         (WebCore::RenderMathMLRow::layout):
2741         * rendering/mathml/RenderMathMLSubSup.cpp:
2742         (WebCore::RenderMathMLSubSup::layout):
2743         * rendering/svg/SVGRenderSupport.cpp:
2744         (WebCore::SVGRenderSupport::layoutChildren):
2745
2746 2012-03-28  Joseph Pecoraro  <pecoraro@apple.com>
2747
2748         <http://webkit.org/b/82419> Web Inspector: Create -[DOMNode inspect] from IDL
2749
2750         Instead of manually creating the method in DOM.mm we can specify it in
2751         Node.idl and autogenerate part of the interface.
2752
2753         Reviewed by Timothy Hatcher.
2754
2755         * bindings/objc/DOM.mm:
2756         * bindings/objc/DOMPrivate.h:
2757         Move the call to InspectorController::inspect from here ...
2758
2759         * dom/Node.h:
2760         * dom/Node.idl: IDL only in an ObjC block.
2761         * dom/Node.cpp:
2762         (WebCore::Node::inspect):
2763         ... to here.
2764
2765         * WebCore.xcodeproj/project.pbxproj:
2766         Add the new generated file so we can Copy it in the build phase.
2767
2768 2012-03-28  Tommy Widenflycht  <tommyw@google.com>
2769
2770         [chromium] MediaStream API (JSEP): Introducing WebPeerConnection00Handler
2771         https://bugs.webkit.org/show_bug.cgi?id=82450
2772
2773         Reviewed by Adam Barth.
2774
2775         This change removes the default PeerConnection00Handler.cpp from the Chromium build.
2776
2777         A major overhaul of the existing layout tests is forthcoming.
2778
2779         * WebCore.gypi:
2780         * platform/mediastream/PeerConnection00Handler.h:
2781         (WebCore):
2782         (PeerConnection00Handler):
2783
2784 2012-03-28  Robert Hogan  <robert@webkit.org>
2785
2786         [REGRESSION] Web Inspector: column caption delimiters are misaligned in DataGrid
2787         https://bugs.webkit.org/show_bug.cgi?id=82193
2788
2789         Reviewed by Yury Semikhatsky.
2790
2791         Since r111742 column width in fixed layout tables is set to the width of the cell plus its left padding plus its right padding 
2792         plus half its left border plus half its right border in the collapsing border model. The layout of the panel
2793         headers in the inspector depended on pre-r111742 behaviour, so ended up misaligned with the content below. To cater for the 
2794         new method of calculating column width enforce a fixed width for the corner column by removing padding and borders (except collapsed
2795         borders from adjacent cells) and specify the expected width (15px) minus the expected width of the collapsed borders (1px).
2796
2797         * inspector/front-end/dataGrid.css:
2798         (.data-grid th.corner):
2799
2800 2012-03-28  Alexis Menard  <alexis.menard@openbossa.org>
2801
2802         Increase code sharing between CSSProperty and CSSPropertyLonghand.
2803         https://bugs.webkit.org/show_bug.cgi?id=82479
2804
2805         Reviewed by Antti Koivisto.
2806
2807         Use longhands declarations from CSSPropertyLonghand in CSSProperty to avoid
2808         code duplication.
2809
2810         No new tests : refactoring only, we shouldn't have any behavior difference.
2811
2812         * css/CSSProperty.cpp:
2813         (WebCore::resolveToPhysicalProperty):
2814         (WebCore::borderDirections):
2815         (WebCore):
2816         (WebCore::CSSProperty::resolveDirectionAwareProperty):
2817
2818 2012-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
2819
2820         Web Inspector: Implement snippets renaming in scripts navigator.
2821         https://bugs.webkit.org/show_bug.cgi?id=82477
2822
2823         Reviewed by Pavel Feldman.
2824
2825         Snippets renaming is implemented as editing of snippet name in scripts navigator.
2826
2827         * inspector/front-end/ScriptsNavigator.js:
2828         (WebInspector.ScriptsNavigator.prototype._handleRenameSnippet):
2829         (WebInspector.ScriptsNavigator.prototype._fileRenamed):
2830         (WebInspector.ScriptsNavigator.prototype.rename.commitHandler):
2831         (WebInspector.ScriptsNavigator.prototype.rename.cancelHandler):
2832         (WebInspector.ScriptsNavigator.prototype.rename.afterEditing):
2833         (WebInspector.BaseNavigatorTreeElement.prototype.set titleText):
2834         * inspector/front-end/scriptsPanel.css:
2835         (#scripts-navigator-tabbed-pane .navigator .base-navigator-tree-element-title.editing):
2836
2837 2012-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
2838
2839         Web Inspector: Add context menu for snippets control.
2840         https://bugs.webkit.org/show_bug.cgi?id=82475
2841
2842         Reviewed by Pavel Feldman.
2843
2844         This is a preliminary implementation of snippets control using context menu.
2845         We might want to add a more discoverable one before taking snippets out of experiments.
2846
2847         * English.lproj/localizedStrings.js:
2848         * inspector/front-end/ScriptsNavigator.js:
2849         (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
2850         (WebInspector.ScriptsNavigator.prototype._createSnippetsTree):
2851         (WebInspector.ScriptsNavigator.prototype._handleSnippetContextMenuEvent):
2852         (WebInspector.ScriptsNavigator.prototype._showSnippetContextMenu):
2853         (WebInspector.ScriptsNavigator.prototype._handleEvaluateSnippet):
2854         (WebInspector.ScriptsNavigator.prototype._handleRenameSnippet):
2855         (WebInspector.ScriptsNavigator.prototype._handleRemoveSnippet):
2856         (WebInspector.ScriptsNavigator.prototype._handleCreateSnippet):
2857         (WebInspector.NavigatorScriptTreeElement.prototype.get navigator):
2858         (WebInspector.NavigatorScriptTreeElement.prototype.onattach):
2859         (WebInspector.NavigatorScriptTreeElement.prototype.onenter):
2860         (WebInspector.NavigatorScriptTreeElement.prototype._handleContextMenuEvent):
2861
2862 2012-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
2863
2864         Web Inspector: ScriptsNavigator should save scroll position when switching tabs.
2865         https://bugs.webkit.org/show_bug.cgi?id=82472
2866
2867         Reviewed by Pavel Feldman.
2868
2869         WebInspector.View provides save/restore scroll position capabilities.
2870         This patch makes them used in ScriptsNavigator.
2871
2872         * inspector/front-end/ScriptsNavigator.js:
2873         (WebInspector.ScriptsNavigator):
2874         (WebInspector.ScriptsNavigator.prototype._createSnippetsTree):
2875         * inspector/front-end/scriptsPanel.css:
2876         (#scripts-navigator-tabbed-pane .tabbed-pane-content):
2877         (#scripts-navigator-tabbed-pane .navigator-container):
2878
2879 2012-03-28  Andrey Kosyakov  <caseq@chromium.org>
2880
2881         Web Inspector: only update Timeline overview when really needed
2882         https://bugs.webkit.org/show_bug.cgi?id=81909
2883
2884         Reviewed by Pavel Feldman.
2885
2886         Switch timeline overview to using raw records, thus removing dependency on instance members of
2887         TimelinePresentationModel. This requires moving record styles/categories to static getters.
2888
2889         * inspector/front-end/TimelineModel.js:
2890         (WebInspector.TimelineModel):
2891         (WebInspector.TimelineModel.startTime):
2892         (WebInspector.TimelineModel.endTime):
2893         (WebInspector.TimelineModel.duration):
2894         (WebInspector.TimelineModel.prototype._addRecord):
2895         (WebInspector.TimelineModel.prototype.reset):
2896         (WebInspector.TimelineModel.prototype.minimumRecordTime):
2897         (WebInspector.TimelineModel.prototype.maximumRecordTime):
2898         (WebInspector.TimelineModel.prototype._updateBoundaries):
2899         * inspector/front-end/TimelineOverviewPane.js:
2900         (WebInspector.TimelineOverviewPane):
2901         (WebInspector.TimelineOverviewPane.prototype._showTimelines):
2902         (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
2903         (WebInspector.TimelineOverviewPane.prototype._setVerticalOverview):
2904         (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
2905         (WebInspector.TimelineOverviewPane.prototype._update):
2906         (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips.markPercentagesForRecord):
2907         (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
2908         (WebInspector.TimelineOverviewPane.prototype.windowStartTime):
2909         (WebInspector.TimelineOverviewPane.prototype.windowEndTime):
2910         (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
2911         (WebInspector.TimelineOverviewPane.prototype.setShowShortEvents):
2912         (WebInspector.TimelineOverviewPane.prototype._scheduleRefresh):
2913         (WebInspector.TimelineOverviewCalculator.prototype.computeBarGraphPercentages):
2914         (WebInspector.TimelineOverviewCalculator.prototype.setWindow):
2915         (WebInspector.TimelineOverviewCalculator.prototype.reset):
2916         (WebInspector.HeapGraph):
2917         (WebInspector.HeapGraph.prototype.update):
2918         (WebInspector.TimelineVerticalOverview):
2919         (WebInspector.TimelineVerticalOverview.prototype.reset):
2920         (WebInspector.TimelineVerticalOverview.prototype.update):
2921         (WebInspector.TimelineVerticalOverview.prototype.wasShown):
2922         (WebInspector.TimelineVerticalOverview.prototype.willHide):
2923         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrameStatistics):
2924         (WebInspector.TimelineVerticalOverview.prototype._aggregateRecords):
2925         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes):
2926         (WebInspector.TimelineVerticalOverview.prototype._onRecordAdded):
2927         (WebInspector.TimelineAggregatedRecord):
2928         (WebInspector.TimelineAggregatedRecord.prototype._aggregateStatistics):
2929         * inspector/front-end/TimelinePanel.js:
2930         (WebInspector.TimelinePanel):
2931         (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
2932         (WebInspector.TimelinePanel.prototype._toggleFilterButtonClicked):
2933         (WebInspector.TimelinePanel.prototype._resetPanel):
2934         (WebInspector.TimelinePanel.prototype._refresh):
2935         (WebInspector.TimelineCalculator):
2936         (WebInspector.TimelineCalculator.prototype.formatTime):
2937         * inspector/front-end/TimelinePresentationModel.js:
2938         (WebInspector.TimelinePresentationModel):
2939         (WebInspector.TimelinePresentationModel.categories):
2940         (WebInspector.TimelinePresentationModel.recordStyle):
2941         (WebInspector.TimelinePresentationModel.categoryForRecord):
2942         (WebInspector.TimelinePresentationModel.prototype.reset):
2943         (WebInspector.TimelinePresentationModel.prototype.addRecord):
2944         (WebInspector.TimelinePresentationModel.Record):
2945         (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
2946
2947 2012-03-28  Arvid Nilsson  <anilsson@rim.com>
2948
2949         [BlackBerry] Plumb through GraphicsLayer::contentsOpaque() to LayerTiler
2950         https://bugs.webkit.org/show_bug.cgi?id=82457
2951
2952         Reviewed by Rob Buis.
2953
2954         The LayerTiler already knows not to turn on GL_BLEND for opaque layers.
2955         However, it only ever sets the opaque flag for image layers and color
2956         layers, never for content layers.
2957
2958         This was no big deal, because contentsOpaque() is currently false for
2959         all layers except the root layer, which we always drew using the
2960         BlackBerry::WebKit::BackingStore anyway.
2961
2962         When we start using RenderLayerBacking::m_usingTiledCacheLayer=true on
2963         the root layer in situations where the BackingStore is unavailable, we
2964         can speed up rendering of the root layer by honouring the opaque flag.
2965
2966         Fixed by plumbing through the GraphicsLayer::contentsOpaque() flag all
2967         the way to LayerTiler and on to Texture.
2968
2969         * platform/graphics/blackberry/LayerData.h:
2970         (WebCore::LayerData::LayerData):
2971         (WebCore::LayerData::isOpaque):
2972         (LayerData):
2973         * platform/graphics/blackberry/LayerTile.cpp:
2974         (WebCore::LayerTile::updateContents):
2975         * platform/graphics/blackberry/LayerTile.h:
2976         (LayerTile):
2977         * platform/graphics/blackberry/LayerTiler.cpp:
2978         (WebCore::LayerTiler::updateTextureContentsIfNeeded):
2979         (WebCore::LayerTiler::performTileJob):
2980         * platform/graphics/blackberry/LayerTiler.h:
2981         (WebCore::LayerTiler::TextureJob::TextureJob):
2982         (WebCore::LayerTiler::TextureJob::updateContents):
2983         * platform/graphics/blackberry/LayerWebKitThread.h:
2984         (WebCore::LayerWebKitThread::setOpaque):
2985         * platform/graphics/blackberry/Texture.h:
2986         (Texture):
2987         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
2988         (WebCore::TextureCacheCompositingThread::updateContents):
2989         * platform/graphics/blackberry/TextureCacheCompositingThread.h:
2990         (TextureCacheCompositingThread):
2991
2992 2012-03-28  Andrey Kosyakov  <caseq@chromium.org>
2993
2994         Web Inspector: nuke HeapGraph.setSize(), do it automagically on update
2995         https://bugs.webkit.org/show_bug.cgi?id=82471
2996
2997         Reviewed by Yury Semikhatsky.
2998
2999         * inspector/front-end/TimelineOverviewPane.js:
3000         (WebInspector.TimelineOverviewPane.prototype.update):
3001         (WebInspector.HeapGraph.prototype.update):
3002
3003 2012-03-28  Pavel Podivilov  <podivilov@chromium.org>
3004
3005         Web Inspector: dispatch console-message-added and console-messages-cleared events on UISourceCode.
3006         https://bugs.webkit.org/show_bug.cgi?id=82463
3007
3008         Reviewed by Vsevolod Vlasov.
3009
3010         Those events are related to specific UISourceCode. See bug 82224 for more details.
3011
3012         * inspector/front-end/DebuggerPresentationModel.js:
3013         (WebInspector.DebuggerPresentationModel):
3014         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessageToScript):
3015         (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
3016         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
3017         (WebInspector.UISourceCodeImpl):
3018         (WebInspector.UISourceCodeImpl.prototype.consoleMessages):
3019         (WebInspector.UISourceCodeImpl.prototype.consoleMessageAdded):
3020         (WebInspector.UISourceCodeImpl.prototype.consoleMessagesCleared):
3021         * inspector/front-end/JavaScriptSourceFrame.js:
3022         (WebInspector.JavaScriptSourceFrame):
3023         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
3024         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
3025         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessagesCleared):
3026         (WebInspector.JavaScriptSourceFrame.prototype._onTextViewerContentLoaded):
3027         * inspector/front-end/ScriptsPanel.js:
3028         (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded):
3029         * inspector/front-end/UISourceCode.js:
3030         (WebInspector.UISourceCode.prototype.breakpoints):
3031         (WebInspector.UISourceCode.prototype.consoleMessages):
3032
3033 2012-03-28  Carlos Garcia Campos  <cgarcia@igalia.com>
3034
3035         [GTK] Implement PlatformStrategies
3036         https://bugs.webkit.org/show_bug.cgi?id=82454
3037
3038         Reviewed by Xan Lopez.
3039
3040         * GNUmakefile.list.am: Remove PluginDataGtk.cpp. The same
3041         functionality is now implemented using platform strategies.
3042         * plugins/gtk/PluginDataGtk.cpp: Removed.
3043
3044 2012-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
3045
3046         Web Inspector: [Regression] TabIndex is not correctly restored after editing.
3047         https://bugs.webkit.org/show_bug.cgi?id=82464
3048
3049         Reviewed by Pavel Feldman.
3050
3051         This fixes incorrect usage of isNaN that returns false for null value.
3052         Drive-by javascript compilation fix.
3053
3054         * inspector/front-end/CompilerScriptMapping.js:
3055         (WebInspector.CompilerScriptMapping.prototype.addScript): compilation fix.
3056         * inspector/front-end/ResourceScriptMapping.js:
3057         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged): compilation fix.
3058         * inspector/front-end/SnippetsModel.js:
3059         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript): compilation fix.
3060         * inspector/front-end/UIUtils.js:
3061         (WebInspector.startEditing.cleanUpAfterEditing): incorrect usage of isNaN fix.
3062
3063 2012-03-28  Yi Shen  <yi.4.shen@nokia.com>
3064
3065         An extra line break is inserted when pasting into a font element.
3066         https://bugs.webkit.org/show_bug.cgi?id=71207
3067
3068         Reviewed by Ryosuke Niwa.
3069
3070         Fix an editing bug where inserting text into a font element would
3071         create an extra div element in the dom tree. The
3072         WebCore::positionAvoidingPrecedingNodes() tries to set the correct
3073         destination position by checking the next visible position, however,
3074         it causes the position moves into the child element in somecase.
3075         Instead, we should only check the position in parent after node.
3076
3077         Test: editing/inserting/insert-text-into-font.html
3078
3079         * editing/ReplaceSelectionCommand.cpp:
3080         (WebCore::positionAvoidingPrecedingNodes):
3081
3082 2012-03-28  Sergio Villar Senin  <svillar@igalia.com>
3083
3084         [Soup] DNS prefetching spams resolver, shoots self in the foot
3085         https://bugs.webkit.org/show_bug.cgi?id=41630
3086
3087         Reviewed by Martin Robinson.
3088
3089         Added generic DNSResolveQueue class to throttle DNS
3090         prefetches. It's an abstract refactoring of CFNET's
3091         DNSResolveQueue. Platform specific methods implemented for soup
3092         and CFNET backends.
3093
3094         No new tests required as we're just refactoring existing code to
3095         be used by two different ports.
3096
3097         * CMakeLists.txt: added new file.
3098         * GNUmakefile.list.am: ditto.
3099         * WebCore.vcproj/WebCore.vcproj: ditto.
3100         * WebCore.xcodeproj/project.pbxproj: ditto.
3101         * platform/network/DNSResolveQueue.cpp: Added.
3102         (WebCore):
3103         (WebCore::DNSResolveQueue::add): adds a new host to be prefetched.
3104         (WebCore::DNSResolveQueue::fired): by using a delay we coalesce
3105         several prefetch requests and try to resolve them all here.
3106         * platform/network/DNSResolveQueue.h: Added.
3107         (WebCore):
3108         (DNSResolveQueue): class that implements DNS prefetch
3109         throttling using a template pattern.
3110         (WebCore::DNSResolveQueue::shared):
3111         (WebCore::DNSResolveQueue::decrementRequestCount):
3112         * platform/network/cf/DNSCFNet.cpp:
3113         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
3114         (WebCore::DNSResolveQueue::platformResolve):
3115         * platform/network/soup/DNSSoup.cpp:
3116         (WebCore):
3117         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
3118         (WebCore::resolvedCallback):
3119         (WebCore::DNSResolveQueue::platformResolve):
3120         (WebCore::prefetchDNS):
3121
3122 2012-03-28  Eugene Girard  <girard@chromium.org>
3123
3124         window.scrollBy() scrolls incorrectly when zoomed in/out
3125         https://bugs.webkit.org/show_bug.cgi?id=45228
3126
3127         Reviewed by Simon Fraser.
3128
3129         scrollBy now uses layout (not CSS) units. (As scrollTo does.)
3130
3131         Test: fast/dom/zoom-scroll-page-test.html
3132
3133         * page/DOMWindow.cpp:
3134         (WebCore::DOMWindow::scrollBy):
3135
3136 2012-03-28  Stephen Chenney  <schenney@chromium.org>
3137
3138         Null dereference in SVGTextElement::animatedLocalTransform()
3139         https://bugs.webkit.org/show_bug.cgi?id=82375
3140
3141         Reviewed by Nikolas Zimmermann.
3142
3143         A poorly structured SVG file with a text element inside an
3144         animatedTransform element leaves the text element placed outside of
3145         the SVG root and it has no renderer(). Later attempts to use the
3146         renderer in animatedLocalTransform fail.
3147
3148         Test: svg/custom/get-text-element-transform-crash.html
3149
3150         * svg/SVGTextElement.cpp:
3151         (WebCore::SVGTextElement::animatedLocalTransform): Added a check for null renderer, and do not check
3152         for style transform if there is no renderer.
3153
3154 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
3155
3156         Enable animVal support for SVGAnimatedPreserveAspectRatio
3157         https://bugs.webkit.org/show_bug.cgi?id=82326
3158
3159         Reviewed by Zoltan Herczeg.
3160
3161         Enable animVal support for SVGAnimatedPreserveAspectRatio. Very simple now that everything is prepared.
3162         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedPreserveAspectRatioAnimator.
3163
3164         Modernize SVGPreserveAspectRatio, align parsing this object from String, with the other SVG DOM primitives,
3165         who supply a "void parse(const String&)" method, for this task.
3166
3167         Extended existing tests to cover this.
3168
3169         * svg/SVGAnimatedPreserveAspectRatio.cpp:
3170         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::constructFromString):
3171         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::startAnimValAnimation):
3172         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::stopAnimValAnimation):
3173         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
3174         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValWillChange):
3175         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValDidChange):
3176         * svg/SVGAnimatedPreserveAspectRatio.h:
3177         (SVGAnimatedPreserveAspectRatioAnimator):
3178         * svg/SVGAnimatedType.cpp:
3179         (WebCore::SVGAnimatedType::valueAsString):
3180         (WebCore::SVGAnimatedType::setValueAsString):
3181         (WebCore::SVGAnimatedType::supportsAnimVal):
3182         * svg/SVGFEImageElement.cpp:
3183         (WebCore::SVGFEImageElement::parseAttribute):
3184         * svg/SVGFitToViewBox.cpp:
3185         (WebCore::SVGFitToViewBox::parseAttribute):
3186         * svg/SVGImageElement.cpp:
3187         (WebCore::SVGImageElement::parseAttribute):
3188         * svg/SVGPreserveAspectRatio.cpp:
3189         (WebCore::SVGPreserveAspectRatio::parse):
3190         (WebCore):
3191         * svg/SVGPreserveAspectRatio.h:
3192         (SVGPreserveAspectRatio):
3193         * svg/SVGViewSpec.cpp:
3194         (WebCore::SVGViewSpec::setPreserveAspectRatioString):
3195         (WebCore::SVGViewSpec::parseViewSpec):
3196
3197 2012-03-28  Pavel Feldman  <pfeldman@chromium.org>
3198
3199         Web Inspector: [v8] inspection of CanvasPixelArray is slow.
3200         https://bugs.webkit.org/show_bug.cgi?id=82455
3201
3202         Reviewed by Vsevolod Vlasov.
3203
3204         Added CanvasPixelArray to the list of classes that we consider
3205         arrays.
3206
3207         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3208         (WebCore::V8InjectedScriptHost::typeCallback):
3209
3210 2012-03-28  Leandro Gracia Gil  <leandrogracia@chromium.org>
3211
3212         Selectively retrieve text content around a given position.
3213         https://bugs.webkit.org/show_bug.cgi?id=78361
3214
3215         Reviewed by Ryosuke Niwa.
3216
3217         Tests: a new layout test will be introduced once the required WebKit API code is ready.
3218
3219         Introduce the DOMTextContentWalker class to selectively retrieve content
3220         around a given VisiblePosition into a string in such a way that a text
3221         Range can be extracted later from a pair of the string's positions.
3222
3223         A new boolean called m_shouldStop is also introduced in the TextIterator to force
3224         it advancing under certain conditions. Although this is usually done by setting
3225         m_positionNode to zero, it can't be applied in this case since by doing so the
3226         iterator's range is lost.
3227
3228         * WebCore.gypi:
3229         * editing/SurroundingText.cpp: Added.
3230         (WebCore):
3231         (WebCore::SurroundingText::SurroundingText):
3232         (WebCore::SurroundingText::rangeFromContentOffsets):
3233         (WebCore::SurroundingText::content):
3234         (WebCore::SurroundingText::positionOffsetInContent):
3235         * editing/SurroundingText.h: Added.
3236         (WebCore):
3237         (SurroundingText):
3238         * editing/TextIterator.cpp:
3239         (WebCore::TextIterator::TextIterator):
3240         (WebCore::TextIterator::advance):
3241         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
3242         (WebCore::SimplifiedBackwardsTextIterator::advance):
3243         * editing/TextIterator.h:
3244         (WebCore::TextIterator::atEnd):
3245         (TextIterator):
3246         (WebCore::SimplifiedBackwardsTextIterator::atEnd):
3247         (SimplifiedBackwardsTextIterator):
3248         * html/HTMLFormControlElement.cpp:
3249         (WebCore::HTMLFormControlElement::enclosingFormControlElement):
3250         (WebCore):
3251         * html/HTMLFormControlElement.h:
3252         (HTMLFormControlElement):
3253
3254 2012-03-28  Alexis Menard  <alexis.menard@openbossa.org>
3255
3256         Speed up updates of existing CSS properties from JS.
3257         https://bugs.webkit.org/show_bug.cgi?id=82235
3258
3259         Reviewed by Andreas Kling.
3260
3261         Improve the way we handle updating an existing CSS property by replacing its value
3262         by the new one rather than removing the old value and then adding the new one. This
3263         speed up by 35% PerformanceTests/CSS/CSSPropertyUpdateValue.html.
3264
3265         No new tests : Updating existing tests that were relying on the order of the properties
3266         after modification. Each updated property is not appended to the list of properties of the
3267         style therefore the cssText value is slightly different. It matches Firefox behavior but not
3268         Opera.
3269
3270         * css/StylePropertySet.cpp:
3271         (WebCore::StylePropertySet::addParsedProperty):
3272
3273 2012-03-28  Leo Yang  <leo.yang@torchmobile.com.cn>
3274
3275         [BlackBerry] Remove PlatformMouseEvent::setClickCount for BlackBerry
3276         https://bugs.webkit.org/show_bug.cgi?id=82422
3277
3278         Reviewed by Rob Buis.
3279
3280         PlatformMouseEvent::setClickCount() is never used by BlackBerry.
3281         The declaration was added in PlatformMouseEvent.h internally for
3282         BlackBerry porting, but it has not been upstreamed yet.
3283
3284         * platform/blackberry/PlatformMouseEventBlackBerry.cpp:
3285
3286 2012-03-27  Antti Koivisto  <antti@apple.com>
3287
3288         Separate @import rules from other rules in CSSStyleSheet
3289         https://bugs.webkit.org/show_bug.cgi?id=82384 
3290
3291         Reviewed by Andreas Kling.
3292
3293         Import rules always come before all other rules (except @charset). They currently live 
3294         in the generic child rule vector. They can be moved to a vector of their own for stronger
3295         typing and more focused traversal. This will also make future refactoring easier.
3296         
3297         - @import rules go to m_importRules
3298         - the rest go to m_childRules
3299         
3300         * css/CSSStyleSelector.cpp:
3301         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3302         * css/CSSStyleSheet.cpp:
3303         (WebCore::CSSStyleSheet::parserAppendRule):
3304         (WebCore::CSSStyleSheet::length):
3305         (WebCore::CSSStyleSheet::item):
3306         (WebCore::CSSStyleSheet::clearRules):
3307         (WebCore::CSSStyleSheet::rules):
3308         (WebCore::CSSStyleSheet::insertRule):
3309         (WebCore::CSSStyleSheet::deleteRule):
3310         (WebCore::CSSStyleSheet::isLoading):
3311         (WebCore::CSSStyleSheet::addSubresourceStyleURLs):
3312         * css/CSSStyleSheet.h:
3313         (WebCore):
3314         (CSSStyleSheet):
3315         (WebCore::CSSStyleSheet::childRules):
3316         (WebCore::CSSStyleSheet::importRules):
3317
3318 2012-03-28  Pavel Feldman  <pfeldman@chromium.org>
3319
3320         Web Inspector: REGRESSION: Stack overflow on the page with > 100kloc
3321         https://bugs.webkit.org/show_bug.cgi?id=82436
3322
3323         Reviewed by Yury Semikhatsky.
3324
3325         This change migrates to manual splice implementation that uses additional
3326         information about the range being inserted to make it work faster / allocate
3327         less memory.
3328
3329         * inspector/front-end/TextEditorModel.js:
3330         (WebInspector.TextEditorModel.endsWithBracketRegex.):
3331
3332 2012-03-28  Pavel Podivilov  <podivilov@chromium.org>
3333
3334         Web Inspector: breakpoints are not shown in sidebar pane after reload.
3335         https://bugs.webkit.org/show_bug.cgi?id=82351
3336
3337         Reviewed by Pavel Feldman.
3338
3339         When UISourceCode is added to ScriptsPanel, it could already have breakpoints.
3340         We should iterate over existing breakpoints and add them to sidebar pane.
3341
3342         * inspector/front-end/ScriptsPanel.js:
3343         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
3344
3345 2012-03-28  Li Yin  <li.yin@intel.com>
3346
3347         [WebSocket]The Sec-WebSocket-Protocol must not appear more than once in an HTTP response
3348         https://bugs.webkit.org/show_bug.cgi?id=82432
3349
3350         Reviewed by Kent Tamura.
3351
3352         From RFC6455: http://tools.ietf.org/html/rfc6455#section-11.3.4
3353         The |Sec-WebSocket-Protocol| header field must not appear 
3354         more than once in an HTTP response.
3355
3356         Test: http/tests/websocket/tests/hybi/handshake-fail-by-more-protocol-header.html
3357
3358         * Modules/websockets/WebSocketHandshake.cpp:
3359         (WebCore::WebSocketHandshake::readHTTPHeaders):
3360
3361 2012-03-27  James Robinson  <jamesr@chromium.org>
3362
3363         [chromium] Transfer wheel fling via WebCompositorInputHandlerClient
3364         https://bugs.webkit.org/show_bug.cgi?id=81740
3365
3366         Reviewed by Adrienne Walker.
3367
3368         Adds the ability to construct an in-progress PlatformGestureAnimation.
3369
3370         * platform/ActivePlatformGestureAnimation.cpp:
3371         (WebCore::ActivePlatformGestureAnimation::create):
3372         (WebCore):
3373         (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
3374         * platform/ActivePlatformGestureAnimation.h:
3375         (ActivePlatformGestureAnimation):
3376         * platform/TouchpadFlingPlatformGestureCurve.cpp:
3377         (WebCore::TouchpadFlingPlatformGestureCurve::create):
3378         (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
3379         * platform/TouchpadFlingPlatformGestureCurve.h:
3380         (TouchpadFlingPlatformGestureCurve):
3381
3382 2012-03-27  Nat Duca  <nduca@chromium.org>
3383
3384         [chromium] Route monotonic clock up from compositor
3385         https://bugs.webkit.org/show_bug.cgi?id=82154
3386
3387         Reviewed by James Robinson.
3388
3389         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3390         (WebCore::CCLayerTreeHost::updateAnimations):
3391         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3392         (CCLayerTreeHost):
3393         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3394         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
3395         (WebCore::CCThreadProxy::beginFrame):
3396         * platform/graphics/chromium/cc/CCThreadProxy.h:
3397         (WebCore::CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState):
3398         (BeginFrameAndCommitState):
3399
3400 2012-03-27  Robin Cao  <robin.cao@torchmobile.com.cn>
3401
3402         [BlackBerry] Upstream LayerAnimation.{cpp, h}
3403         https://bugs.webkit.org/show_bug.cgi?id=80123
3404
3405         Reviewed by Rob Buis.
3406
3407         Initial upstream, no new tests.
3408
3409         * platform/graphics/blackberry/LayerAnimation.cpp: Added.
3410         (WebCore):
3411         (WebCore::solveEpsilon):
3412         (WebCore::solveCubicBezierFunction):
3413         (WebCore::solveStepsFunction):
3414         (WebCore::timingFunctionForAnimationValue):
3415         (WebCore::progress):
3416         (WebCore::fetchIntervalEndpoints):
3417         (WebCore::LayerAnimation::apply):
3418         (WebCore::LayerAnimation::blendTransform):
3419         (WebCore::LayerAnimation::blendOpacity):
3420         (WebCore::LayerAnimation::validateTransformLists):
3421         * platform/graphics/blackberry/LayerAnimation.h: Added.
3422         (WebCore):
3423         (LayerAnimation):
3424         (WebCore::LayerAnimation::create):
3425         (WebCore::LayerAnimation::clone):
3426         (WebCore::LayerAnimation::~LayerAnimation):
3427         (WebCore::LayerAnimation::name):
3428         (WebCore::LayerAnimation::setStartTime):
3429         (WebCore::LayerAnimation::idFromAnimation):
3430         (WebCore::LayerAnimation::isEqualToAnimation):
3431         (WebCore::LayerAnimation::id):
3432         (WebCore::LayerAnimation::property):
3433         (WebCore::LayerAnimation::boxSize):
3434         (WebCore::LayerAnimation::timeOffset):
3435         (WebCore::LayerAnimation::startTime):
3436         (WebCore::LayerAnimation::valueCount):
3437         (WebCore::LayerAnimation::timingFunction):
3438         (WebCore::LayerAnimation::duration):
3439         (WebCore::LayerAnimation::iterationCount):
3440         (WebCore::LayerAnimation::direction):
3441         (WebCore::LayerAnimation::valueAt):
3442         (WebCore::LayerAnimation::LayerAnimation):
3443
3444 2012-03-27  Kenichi Ishibashi  <bashi@chromium.org>
3445
3446         [Chromium] Uninitialized access in SimpleFontDataSkia::platformInit
3447         https://bugs.webkit.org/show_bug.cgi?id=82411
3448
3449         Reviewed by Kent Tamura.
3450
3451         SimpleFontDataSkia::platformInit() could call widthForGlyph(), which
3452         accesses m_zeroWidthSpaceGlyph. This causes a valgrind memcheck error
3453         because m_zeroWidthSpaceGlyph isn't initialized at this point.
3454         Initialize m_zeroWidthSpaceGlyph with zero so that widthForGlyph() can
3455         return appropriate value(The value zero here means "unknown glyph").
3456
3457         No new tests. I manually confirmed this change fixes the valgrind
3458         memcheck error.
3459
3460         * platform/graphics/skia/SimpleFontDataSkia.cpp:
3461         (WebCore::SimpleFontData::platformInit):
3462
3463 2012-03-27  YoungTaeck Song  <youngtaeck.song@samsung.com>