8dadf781ec9a12ec7ae9992963254aca434fef5e
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-12-13  Jarred Nicholls  <jarred@sencha.com>
2
3         XHR should use m_responseTypeCode internally to be consistent with WebKit coding style
4         https://bugs.webkit.org/show_bug.cgi?id=74330
5
6         Reviewed by Alexey Proskuryakov.
7
8         No new tests needed, no behavioral changes.
9
10         * xml/XMLHttpRequest.cpp:
11         (WebCore::XMLHttpRequest::responseText):
12         (WebCore::XMLHttpRequest::responseXML):
13         (WebCore::XMLHttpRequest::responseBlob):
14         (WebCore::XMLHttpRequest::didReceiveData):
15         * xml/XMLHttpRequest.h:
16         (WebCore::XMLHttpRequest::asBlob):
17
18 2011-12-13  Kentaro Hara  <haraken@chromium.org>
19
20         Use the [Supplemental] IDL for webaudio attributes in Chromium
21         https://bugs.webkit.org/show_bug.cgi?id=73394
22
23         Reviewed by Adam Barth.
24
25         - Overview: Using the [Supplemental] IDL, this patch moves the attribute
26         declarations of webaudio from DOMWindow.idl into a new IDL file
27         webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
28         feature (aka a module).
29
30         - This patch changes the build flow of WebCore.gyp as follows:
31
32             Previous build flow:
33                 foreach $idl (all IDL files) {
34                     generate-bindings.pl depends on $idl;
35                     generate-bindings.pl reads $idl;
36                     generate-bindings.pl generates .h and .cpp files for $idl;
37                 }
38
39             New build flow (See the discussions in bug 72138 for more details):
40                 resolve-supplemental.pl depends on all IDL files;
41                 resolve-supplemental.pl reads all IDL files;
42                 resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
43                 resolve-supplemental.pl outputs supplemental_dependency.tmp;
44                 foreach $idl (all IDL files) {
45                     generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
46                     generate-bindings.pl reads $idl;
47                     generate-bindings.pl reads supplemental_dependency.tmp;
48                     generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
49                 }
50
51         - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
52         will be removed after build scripts for all platforms support the [Supplemental] IDL.
53         The motivation for the [Supplemented] IDL is as follows:
54
55         In order to support the [Supplemental] IDL, we need to
56         (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
57         (2) and run generate-bindings.pl with the supplemental_dependency.tmp.
58
59         This build flow requires a change on the following build scripts,
60         but changing all the build scripts all at once without any regression is too difficult:
61
62             - DerivedSources.make
63             - DerivedSources.pri
64             - GNUmakefile.am
65             - PlatformBlackBerry.cmake
66             - UseJSC.cmake
67             - UseV8.cmake
68             - WebCore.vcproj/MigrateScripts
69             - WebCore.vcproj/WebCore.vcproj
70             - bindings/gobject/GNUmakefile.am
71             - WebCore.gyp/WebCore.gyp
72
73         Thus, we are planning to change the build scripts one by one, which implies that
74         we need to allow the temporary state in which some build scripts support [Supplemental] IDL
75         but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
76         The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
77         in another IDL file somewhere, like this:
78
79             DOMWindowWebAudio.idl:
80                 interface [
81                     Supplemental=DOMWindow
82                 ] DOMWindowWebAudio {
83                     attribute attr1;
84                     attribute attr2;
85                 };
86
87             DOMWindow.idl:
88                 interface [
89                 ] DOMWindow {
90                     attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
91                     attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
92                     attribute attr3;
93                     attribute attr4;
94                 };
95
96         Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:
97
98             - If a given build script supports the [Supplemental] IDL,
99             generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
100             - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
101             as normal attributes and instead ignores all attributes with the [Supplemental] IDL
102             (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).
103
104         Tests: webaudio/*
105
106         * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
107         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
108         (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp),
109         which are described at the first column of each line in the input file.
110         If the file name is a "/cygdrive/c/..."-style path, it is converted to a "C:\cygwin\..."-style
111         path by the cygpath command.
112         * WebCore.gypi: Added DOMWindowWebAudio.idl.
113         * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not
114         support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead
115         uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and
116         instead uses the [Supplemental] IDL.
117         Added the --additionalIdlFilesList option to specify the IDL files that are not listed in
118         supplemental-dependency.tmp but should generate .h and .cpp files.
119         * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes.
120         As I described above, the [Supplemented] IDL will be removed after all platforms support
121         the [Supplemental] IDL.
122         * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL.
123         The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.
124
125 2011-12-13  Yosifumi Inoue  <yosin@chromium.org>
126
127         RenderTheme should have a function for disabled text color adjustment
128         https://bugs.webkit.org/show_bug.cgi?id=74143
129
130         Change disabledTextColor to private method.
131
132         Reviewed by Kent Tamura.
133
134         No new tests / existing tests cover this change.
135
136         * rendering/RenderThemeChromiumMac.h: Change disabledTextColor to private.
137         * rendering/RenderThemeChromiumSkia.h: Change disabledTextColor to private.
138
139 2011-12-12  Daniel Bates  <dbates@webkit.org>
140
141         Unreviewed, rolling out r102656.
142         http://trac.webkit.org/changeset/102656
143         https://bugs.webkit.org/show_bug.cgi?id=74313
144
145         Broke the Mac, Windows and WinCairo builds. We need to look
146         into this patch some more.
147
148         * bindings/js/ScriptEventListener.cpp:
149         (WebCore::eventListenerHandlerLocation):
150
151 2011-12-12  Konrad Piascik  <kpiascik@rim.com>
152
153         2011-12-12  Konrad Piascik  <kpiascik@rim.com>
154
155         Implement the JavaScriptCore bindings for eventListenerHandlerLocation
156         https://bugs.webkit.org/show_bug.cgi?id=74313
157
158         Reviewed by Geoffrey Garen.
159
160         Open any page in Web Inspector and look at the event listeners. They should now
161         link to the script which created them.
162
163         * bindings/js/ScriptEventListener.cpp:
164         (WebCore::eventListenerHandlerLocation):
165
166 2011-12-12  Yosifumi Inoue  <yosin@chromium.org>
167
168         RenderTheme should have a function for disabled text color adjustment
169         https://bugs.webkit.org/show_bug.cgi?id=74143
170
171         Reviewed by Kent Tamura.
172
173         No new tests / existing tests cover this change.
174
175         * rendering/RenderTextControl.cpp:
176         (WebCore::RenderTextControl::adjustInnerTextStyle): Use RenderTheme::disabledTextColor instead of PLATFORM wraped static function. 
177         * rendering/RenderTheme.cpp:
178         (WebCore::RenderTheme::disabledTextColor): Moved from RenderTextControl.cpp. This method implements for non-Chromium color.
179         * rendering/RenderTheme.h: Add new virtual method disabledTextColor.
180         * rendering/RenderThemeChromiumMac.h: Implementation of RenderTheme::disabledTextColor for Chrimium Mac.
181         * rendering/RenderThemeChromiumSkia.h: Implementation of RenderTheme::disabledTextColor for Chrimium.
182
183 2011-12-12  Kenneth Russell  <kbr@google.com>
184
185         Unreviewed, rolling out r102648.
186         http://trac.webkit.org/changeset/102648
187         https://bugs.webkit.org/show_bug.cgi?id=74313
188
189         Broke the Snow Leopard and Windows builds
190
191         * bindings/js/ScriptEventListener.cpp:
192         (WebCore::eventListenerHandlerLocation):
193
194 2011-12-12  Andreas Kling  <kling@webkit.org>
195
196         Resizing Cappuccino is very laggy on WebKit since Safari 5.1
197         <http://webkit.org/b/71354> and <rdar://problem/10565998>
198
199         Reviewed by Anders Carlsson.
200
201         * WebCore.exp.in: Export FloatPoint(const NSPoint&)
202
203 2011-12-12  Jarred Nicholls  <jarred@sencha.com>
204
205         [Qt] QTKIT-based video support must target OS X 10.5 or higher
206         https://bugs.webkit.org/show_bug.cgi?id=74294
207
208         WebCore on OS X Lion fails to build when QTKIT video support is enabled, unless a
209         deployment target of 10.5+ is specified explicitly.
210
211         Reviewed by Noam Rosenthal.
212
213         No new tests as this is a build issue.
214
215         * Target.pri:
216
217 2011-12-12  Luke Macpherson   <macpherson@chromium.org>
218
219         Implement CSS text-decoration property in CSSStyleApplyProperty.
220         https://bugs.webkit.org/show_bug.cgi?id=74258
221
222         Reviewed by Andreas Kling.
223
224         No new tests / refactoring only.
225
226         * css/CSSStyleApplyProperty.cpp:
227         (WebCore::ApplyPropertyTextDecoration::applyValue):
228         (WebCore::ApplyPropertyTextDecoration::createHandler):
229         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
230         * css/CSSStyleSelector.cpp:
231         (WebCore::CSSStyleSelector::applyProperty):
232
233 2011-12-12  Adrienne Walker  <enne@google.com>
234
235         iframe fails to scroll in composited page
236         https://bugs.webkit.org/show_bug.cgi?id=72682
237
238         Reviewed by Simon Fraser.
239
240         FrameView::scrollContentsSlowPath only was catching the case where a
241         child iframe had a composited parent. Now detect if the child iframe
242         has any composited ancestor.
243
244         Test: compositing/iframes/scroll-grandchild-iframe.html
245
246         * page/FrameView.cpp:
247         (WebCore::FrameView::scrollContentsSlowPath):
248
249 2011-12-12  Konrad Piascik  <kpiascik@rim.com>
250
251         Implement the JavaScriptCore bindings for eventListenerHandlerLocation
252         https://bugs.webkit.org/show_bug.cgi?id=74313
253
254         Reviewed by Geoffrey Garen. 
255
256         Open any page in Web Inspector and look at the event listeners. They should now
257         link to the script which created them.
258
259         * bindings/js/ScriptEventListener.cpp:
260         (WebCore::eventListenerHandlerLocation):
261
262 2011-12-12  Erik Arvidsson  <arv@chromium.org>
263
264         [V8] CodeGeneratorV8.pm does not correctly work with inherited HasIndexGetter
265         https://bugs.webkit.org/show_bug.cgi?id=74027
266
267         Reviewed by Adam Barth.
268
269         Instead of having to write a custom indexer when the interface has an inherited indexer
270         we get the signature from the super interface.
271
272         Tested by existing tests.
273
274         * Target.pri: Remove V8DOMSettableTokenListCustom.cpp and V8WebKitCSSFilterValueCustom.cpp.
275         * UseV8.cmake: Ditto.
276         * WebCore.gypi: Ditto.
277         * bindings/scripts/CodeGenerator.pm:
278         (FindSuperMethod): Returns the first matching function in one of the ancestor interfaces.
279         * bindings/scripts/CodeGeneratorV8.pm:
280         (GenerateImplementationIndexer): If the current interface has no indexer try to find an
281                                          indexer in one of the super interfaces.
282         (GenerateImplementationNamedPropertyGetter): Ditto for named property getter.
283         * bindings/v8/custom/V8DOMSettableTokenListCustom.cpp: Removed.
284         * bindings/v8/custom/V8WebKitCSSFilterValueCustom.cpp: Removed.
285
286 2011-12-12  Simon Fraser  <simon.fraser@apple.com>
287
288         Make it possible to substitute a different CALayer implementation for the main root layer
289         https://bugs.webkit.org/show_bug.cgi?id=74369
290
291         Reviewed by Anders Carlsson.
292         
293         Some platforms may wish to have the main root layer (which corresponds with
294         the main frame's RenderView's layer) implemented by a custom platform layer,
295         for example to contain a cache of tiles.
296         
297         Make this possible on Mac by adding a new method to GraphicsLayerClient(),
298         and implementing it in RenderLayerBacking. This new behavior is not yet enabled.
299         
300         Also clean up some WebLayer/WebTiledLayer code.
301
302         * WebCore.xcodeproj/project.pbxproj:
303         * platform/graphics/GraphicsLayerClient.h:
304         (WebCore::GraphicsLayerClient::shouldUseTileCache): New client method that indicates that the GraphicsLayer
305         should host a tile cache layer instead of a normal layer.
306         * platform/graphics/ca/GraphicsLayerCA.cpp:
307         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Ask the client, if any, whether to create a tile cache layer.
308         * platform/graphics/ca/PlatformCALayer.h:
309         * platform/graphics/ca/mac/PlatformCALayerMac.mm: NSClassFromString(@"CATransformLayer") was for Leopard;
310         we can just use the classname now. Handle LayerTypeTileCacheLayer.
311         (PlatformCALayer::PlatformCALayer):
312         * platform/graphics/ca/mac/WebTileCacheLayer.h: Copied from Source/WebCore/platform/graphics/mac/WebLayer.h.
313         * platform/graphics/ca/mac/WebTileCacheLayer.mm: Copied from Source/WebCore/platform/graphics/mac/WebLayer.h.
314         * platform/graphics/mac/WebLayer.h: Remove the setLayerNeedsDisplayInRect() hackery.
315         * platform/graphics/mac/WebLayer.mm: setLayerNeedsDisplayInRect() tried to share code between WebLayer and WebTiledLayer
316         by using Obj-C runtime methods to find the superclass. This causes infinite recursion if Web[Tiled]Layer is subclassed,
317         so remove it.
318         (-[WebLayer setNeedsDisplayInRect:]): Code moved here from setLayerNeedsDisplayInRect.
319         * platform/graphics/mac/WebTiledLayer.mm:
320         (-[WebTiledLayer setNeedsDisplayInRect:]): Code copied here from setLayerNeedsDisplayInRect.
321         * rendering/RenderLayerBacking.cpp:
322         (WebCore::RenderLayerBacking::RenderLayerBacking): Find out, and cache if we're the main frame's layer.
323         (WebCore::RenderLayerBacking::shouldUseTileCache): Return m_usingTiledCacheLayer, which is always false for now.
324         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): Use m_isMainFrameRenderViewLayer.
325         (WebCore::RenderLayerBacking::paintingGoesToWindow): The tile cache layer needs to paint itself.
326         * rendering/RenderLayerBacking.h:
327         * rendering/RenderLayerCompositor.h: m_compositeForFixedPosition was unused.
328
329 2011-12-12  Ryosuke Niwa  <rniwa@webkit.org>
330
331         REGRESSION(r102357): respondToUnappliedEditing exits early for CreateLinkCommand
332         https://bugs.webkit.org/show_bug.cgi?id=74356
333
334         Reviewed by Enrica Casucci.
335
336         The problem was that isCreateLinkCommand was called on EditCommandComposition by respondToUnappliedEditing.
337         Fixed the bug by propagating the value of isCreteLinkCommand from CompositeEditCommand to
338         EditCommandComposition via wasCreateLinkCommand.
339
340         Also move isCreateLinkCommand from EditCommand to CompositeEditCommand to prevent this mistake in the future.
341
342         * editing/CompositeEditCommand.cpp:
343         (WebCore::EditCommandComposition::create):
344         (WebCore::EditCommandComposition::EditCommandComposition):
345         (WebCore::CompositeEditCommand::ensureComposition):
346         (WebCore::CompositeEditCommand::isCreateLinkCommand):
347         * editing/CompositeEditCommand.h:
348         (WebCore::EditCommandComposition::wasCreateLinkCommand):
349         * editing/SpellingCorrectionController.cpp:
350         (WebCore::SpellingCorrectionController::respondToUnappliedEditing):
351         * editing/SpellingCorrectionController.h:
352
353 2011-12-12  Mihnea Ovidenie  <mihnea@adobe.com>
354
355         [CSSRegions]Revert RenderObject::style() to its state before region styling
356         https://bugs.webkit.org/show_bug.cgi?id=74315
357
358         Reviewed by Tony Chang.
359
360         * rendering/RenderObject.h:
361         (WebCore::RenderObject::style):
362
363 2011-12-12  Adam Klein  <adamk@chromium.org>
364
365         Don't crash in StyleAttributeMutationScope if the style declaration's element has been GCed
366         https://bugs.webkit.org/show_bug.cgi?id=74321
367
368         Reviewed by Ryosuke Niwa.
369
370         In r101101, Rafael Weinstein added code to CSSMutableStyleDeclaration.cpp
371         which depended on isInlineStyleDeclaration returning true iff the
372         element it pointed to was non-null (it will be nulled-out if the
373         element is garbage collected).
374
375         Then, in r101172, Andreas Kling changed the semantics so that
376         isInlineStyleDeclaration only described the type of the declaration,
377         not the state of the related element.
378
379         This change updates Rafael's code with an explicit check that the
380         element is still alive.
381
382         Test: fast/dom/css-inline-style-declaration-crash.html
383
384         * css/CSSMutableStyleDeclaration.cpp:
385
386 2011-12-12  Chris Fleizach  <cfleizach@apple.com>
387
388         AX: aria-hidden inheritance broken when applying to some descendants
389         https://bugs.webkit.org/show_bug.cgi?id=73940
390
391         Reviewed by Darin Adler.
392
393         When adding children, we were not updating the children cache for direct AX descendants.
394         This meant that toggling aria-hidden could result in a stale cache where elements would not be reachable.
395
396         Making this fix also exposed a problem in AccessibilityTable where the AccessibilityHeaderObject was not
397         being managed correctly as a mock element.
398
399         Test: platform/mac/accessibility/aria-hidden-changes-for-non-ignored-elements.html
400
401         * accessibility/AccessibilityRenderObject.cpp:
402         (WebCore::AccessibilityRenderObject::addChildren):
403         * accessibility/AccessibilityTable.cpp:
404         (WebCore::AccessibilityTable::clearChildren):
405         (WebCore::AccessibilityTable::headerContainer):
406         * accessibility/AccessibilityTable.h:
407
408 2011-12-12  Jeremy Apthorp  <jeremya@chromium.org>
409
410         When the mouse is dragged out of an :active element, it should lose :hover.
411         https://bugs.webkit.org/show_bug.cgi?id=57206
412
413         Reviewed by Ryosuke Niwa.
414
415         Test: fast/css/hover-active-drag.html
416
417         * page/EventHandler.cpp:
418         (WebCore::EventHandler::handleMouseMoveEvent): Don't mark mouse-drag hit tests read-only, since they no longer are.
419         (WebCore::EventHandler::dragSourceEndedAt): Send a hit test request when the mouse goes up after a drag, so
420         RenderLayer has a chance to update the hover/active status.
421         * rendering/RenderLayer.cpp:
422         (WebCore::RenderLayer::updateHoverActiveState): Only allow the :active state to change on mouse down or mouse up.
423
424 2011-12-12  Kenneth Russell  <kbr@google.com>
425
426         Unreviewed Windows build fix after http://trac.webkit.org/changeset/102619 .
427         Remove OVERRIDE specifier from virtual destructor.
428
429         * html/HTMLPlugInImageElement.h:
430
431 2011-12-12  Ryosuke Niwa  <rniwa@webkit.org>
432
433         WebKit code shouldn't be calling applyCommand directly
434         https://bugs.webkit.org/show_bug.cgi?id=74337
435
436         Reviewed by Darin Adler.
437
438         Make WebKit-layer code call Editor::replaceSelectionWithFragment and Editor::replaceSelectionWithText
439         instead of manually creating and applying ReplaceSelectionCommand.
440
441         The only behavioral difference is that new code will end up checking for spell checks. However, this
442         difference appears to be unintentional since the code predates http://trac.webkit.org/changeset/73886,
443         which introduced an invocation of spellcheck code.
444
445         Unfortunately no tests since there doesn't seem to be anyway to test this change.
446
447         * WebCore.exp.in:
448         * editing/EditCommand.cpp:
449         (WebCore::applyCommand):
450         * editing/EditCommand.h:
451         * editing/Editor.h:
452
453 2011-11-26  Adam Barth  <abarth@webkit.org>
454
455         Remove platform/audio/fftw
456         https://bugs.webkit.org/show_bug.cgi?id=73163
457
458         Reviewed by Eric Seidel.
459
460         The FFTW library is GPL, not LGPL, like WebKit.  This patch removes the
461         integration with the library so folks who use WebAudio don't
462         accidentially violate the GPL by linking in FFTW.
463
464         * GNUmakefile.am:
465         * WebCore.gyp/WebCore.gyp:
466         * WebCore.gypi:
467         * platform/audio/FFTFrame.h:
468         * platform/audio/FFTFrameStub.cpp:
469         * platform/audio/fftw: Removed.
470         * platform/audio/fftw/FFTFrameFFTW.cpp: Removed.
471
472 2011-12-12  Kenneth Russell  <kbr@google.com>
473
474         COMPILE_ASSERT in CSSStyleSelector.cpp doesn't compile on Windows
475         https://bugs.webkit.org/show_bug.cgi?id=74327
476
477         Unreviewed build fix. True fix should follow under above bug.
478
479         * css/CSSStyleSelector.cpp:
480
481 2011-12-12  David Grogan  <dgrogan@chromium.org>
482
483         Fix compilation error when !ENABLE(WORKERS)
484         https://bugs.webkit.org/show_bug.cgi?id=74029
485
486         Reviewed by Yury Semikhatsky.
487
488         * storage/IDBFactory.cpp:
489         (WebCore::IDBFactory::open): add #if ENABLE(WORKERS) guard
490
491 2011-12-12  Brady Eidson  <beidson@apple.com>
492
493         Page cache should support pages with plugins.
494         <rdar://problem/5190122> and https://bugs.webkit.org/show_bug.cgi?id=13634
495
496         Reviewed by Anders Carlsson.
497
498         By making plugin elements renderers go display:none when entering the page cache,
499         we destroy the plug-in in a cross platform way as well as handle invalidating script
500         objects created by that plugin.
501
502         By restoring the original style when leaving the page cache and forcing a style recalc
503         on the plugin element, the plugin is gracefully reinstantiated when the user goes back.
504
505         Test: plugins/netscape-plugin-page-cache-works.html
506
507         * dom/Document.cpp:
508         (WebCore::Document::documentDidBecomeActive): Copy this collection before iterating over
509           it, as the callbacks might result in mutating the set.
510
511         * dom/Node.h:
512         (WebCore::Node::setHasCustomStyleForRenderer):
513         (WebCore::Node::clearHasCustomStyleForRenderer): Expose the ability to stop using a 
514           custom renderer and go back to the default renderer.
515
516         * history/CachedFrame.cpp:
517         (WebCore::CachedFrame::CachedFrame): Move the document inactivation call to the same place
518           we suspend active DOM objects. It is important this call be *after* the beforeunload event
519           is dispatched, and was coincidental non of the elements that using Document activation
520           had run in to this problem yet.
521
522         * history/PageCache.cpp:
523         (WebCore::logCanCacheFrameDecision):
524         (WebCore::PageCache::canCachePageContainingThisFrame): If the page contains plugins but
525           the PageCacheSupportsPlugins setting is true, allow this page.
526
527         Kill and recreate the plugin by listening for Document activation callbacks and setting a custom
528         display:none render style:
529         * html/HTMLPlugInImageElement.cpp:
530         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
531         (WebCore::HTMLPlugInImageElement::~HTMLPlugInImageElement): Unregister for document activation
532           callbacks.
533         (WebCore::HTMLPlugInImageElement::createRenderer): Once a renderer (ie. plugin instance) is
534           created, this element needs Document (in)activation callbacks.
535         (WebCore::HTMLPlugInImageElement::willMoveToNewOwnerDocument): Manage Document activation 
536           callback registration.
537         (WebCore::HTMLPlugInImageElement::didMoveToNewOwnerDocument): Ditto.
538         (WebCore::HTMLPlugInImageElement::documentWillBecomeInactive): Clone the element's current style
539           and set the clone's display value to None. Start using this custom style and force a style
540           recall. This destroys the renderer and therefore the plugin instance.
541         (WebCore::HTMLPlugInImageElement::documentDidBecomeActive): Stop using the custom style and
542           force a style recall to reinstantiate the plugin.
543         (WebCore::HTMLPlugInImageElement::customStyleForRenderer): Return the stand-in style that has
544           display:none set.
545         * html/HTMLPlugInImageElement.h:
546
547         Add a setting that allows runtime configuration of whether or not the page cache supports plugins:
548         * page/Settings.cpp:
549         (WebCore::Settings::Settings):
550         * page/Settings.h:
551         (WebCore::Settings::setPageCacheSupportsPlugins):
552         (WebCore::Settings::pageCacheSupportsPlugins):
553
554 2011-12-12  Ojan Vafai  <ojan@chromium.org>
555
556         r102234 caused RuleData to use 33 bits in its bitmask
557         https://bugs.webkit.org/show_bug.cgi?id=74314
558
559         Reviewed by Antti Koivisto.
560
561         Lower m_position to something more reasonable. A million
562         should be plenty. Current large sites (e.g. gmail) seem to use
563         tens of thousands.
564
565         Added a COMPILE_ASSERT to ensure this doesn't regress.
566
567         No new tests.
568
569         * css/CSSStyleSelector.cpp:
570
571 2011-12-12  James Robinson  <jamesr@chromium.org>
572
573         Rename webkitCancelRequestAnimationFrame to webkitCancelAnimationFrame to match spec change
574         https://bugs.webkit.org/show_bug.cgi?id=74231
575
576         Reviewed by Simon Fraser.
577
578         The RequestAnimationFrame spec has renamed cancelRequestAnimationFrame to cancelAnimationFrame in response to
579         feedback from Mozilla and Microsoft that the old name was too long and didn't parallel setTimeout/clearTimeout
580         and setInterval/clearInterval very well. This updates our IDL to match, while preserving the old name as an
581         alias to be compatible with current content.
582
583         * dom/Document.cpp:
584         (WebCore::Document::webkitCancelAnimationFrame):
585         * dom/Document.h:
586         * page/DOMWindow.cpp:
587         (WebCore::DOMWindow::webkitCancelAnimationFrame):
588         * page/DOMWindow.h:
589         (WebCore::DOMWindow::webkitCancelRequestAnimationFrame):
590         * page/DOMWindow.idl:
591
592 2011-12-12  Shawn Singh  <shawnsingh@chromium.org>
593
594         [chromium] Remove assumption that empty surface is always at end of list
595         https://bugs.webkit.org/show_bug.cgi?id=74037
596
597         Reviewed by James Robinson.
598
599         Test case added to CCLayerTreeHostCommonTest.cpp, which reproduces
600         a crash reported in http://code.google.com/p/chromium/issues/detail?id=106734
601
602         This patch fixes the crash in a less risky way to be merged into
603         m17, but the root of the issue needs to be addressed in a
604         follow-up patch.
605
606         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
607         (WebCore::calculateDrawTransformsAndVisibilityInternal):
608
609 2011-12-12  Simon Fraser  <simon.fraser@apple.com>
610
611         Share code that checks for matching sets of transform operations
612         https://bugs.webkit.org/show_bug.cgi?id=74265
613
614         Reviewed by Dan Bernstein.
615         
616         Add TransformOperations::operationsMatch() and call it from the
617         three places that used this same code.
618         
619         Tested by existing tests.
620
621         * page/animation/ImplicitAnimation.cpp:
622         (WebCore::ImplicitAnimation::validateTransformFunctionList):
623         * page/animation/KeyframeAnimation.cpp:
624         (WebCore::KeyframeAnimation::validateTransformFunctionList):
625         * platform/graphics/GraphicsLayer.cpp:
626         (WebCore::GraphicsLayer::fetchTransformOperationList):
627         * platform/graphics/transforms/TransformOperations.cpp:
628         (WebCore::TransformOperations::operationsMatch):
629         * platform/graphics/transforms/TransformOperations.h:
630
631 2011-12-12  Antti Koivisto  <antti@apple.com>
632
633         Cache visited link hash
634         https://bugs.webkit.org/show_bug.cgi?id=74095
635
636         Reviewed by Darin Adler.
637
638         Visited link hash is relatively expensive to compute. We can cache it for anchor elements
639         with minimal relative memory cost for faster style resolve.
640         
641         On my machine this speeds up style matching on full HTML spec by ~100ms or ~1% of the total
642         CPU usage. It makes link elements 8 bytes larger, a relatively minor increase to their overall size.
643         
644         Invalidate the hashes on base URL for completeness sake (lack of style invalidation means
645         that this scenario is not properly supported currently).
646
647         Covered by existing tests. No specific test for visited hash invalidation on dynamic base URL 
648         change as the effect is not testable due to lack of style invalidation.
649
650         * css/SelectorChecker.cpp:
651         (WebCore::SelectorChecker::determineLinkStateSlowCase):
652         (WebCore::SelectorChecker::visitedStateChanged):
653         * html/Document.cpp:
654         * html/HTMLAnchorElement.cpp:
655         (WebCore::HTMLAnchorElement::HTMLAnchorElement):
656         (WebCore::HTMLAnchorElement::parseMappedAttribute):
657         * html/HTMLAnchorElement.h:
658         (WebCore::HTMLAnchorElement::visitedLinkHash):
659
660 2011-12-12  Martin Robinson  <mrobinson@igalia.com>
661
662         [GTK] gtk_widget_size_allocate for plugin widgets should happen in the WebView size-allocate method
663         https://bugs.webkit.org/show_bug.cgi?id=72805
664
665         Reviewed by Gustavo Noronha Silva.
666
667         No new tests. This is only a performance tweak.
668
669         Instead of immediately calling gtk_widget_size during painting, defer
670         this until the size-allocate method of the WebView.
671
672         * plugins/gtk/PluginViewGtk.cpp:
673         (WebCore::PluginView::updateWidgetAllocationAndClip): Instead of immediately changing
674         the widget allocation, just record it in a GObject data attachment.
675
676 2011-12-12  Nate Chapin  <japhet@chromium.org>
677
678         A SubresourceLoader in the middle of revalidating
679         a resource should be treated as finishing (similar to
680         didFinishLoading and didFail) to ensure that willCancel()
681         doesn't declare the revalidation as having failed reentrantly.
682         https://bugs.webkit.org/show_bug.cgi?id=72762
683
684         Reviewed by Adam Barth.
685
686         Test: http/tests/cache/cancel-during-revalidation-succeeded.html
687
688         * loader/SubresourceLoader.cpp:
689         (WebCore::SubresourceLoader::didReceiveResponse):
690
691 2011-12-12  Mary Wu  <mary.wu@torchmobile.com.cn>
692
693         Upstream 3 files into WebCore/platform/blackberry
694         https://bugs.webkit.org/show_bug.cgi?id=74275
695
696         Reviewed by Rob Buis.
697
698         Initial upstream, no new tests.
699
700         * platform/blackberry/ContextMenuBlackBerry.cpp: Added.
701         * platform/blackberry/ContextMenuItemBlackBerry.cpp: Added.
702         * platform/blackberry/TemporaryLinkStubs.cpp: Added.
703
704 2011-12-12  Pierre Rossi  <pierre.rossi@gmail.com>
705
706         [Qt] Rendering issues with sliders and QStyle
707         https://bugs.webkit.org/show_bug.cgi?id=73921
708
709         With QStyle's origins being deeply rooted with widgets,
710         several styles make wrong assumptions, leading to sliders
711         not being painted properly in WebKit. We can solve a lot
712         of problems by systematically translating the painter to
713         the top left corner of the render object.
714
715         Reviewed by Simon Hausmann.
716
717         No new tests. The Qt tests are ran with the Windows
718         style, this fixes some quirks affecting other styles.
719
720         * platform/qt/RenderThemeQStyle.cpp:
721         (WebCore::RenderThemeQStyle::paintSliderTrack):
722         (WebCore::RenderThemeQStyle::paintSliderThumb):
723
724 2011-12-12  Mary Wu  <mary.wu@torchmobile.com.cn>
725
726         Upstream 5 files into WebCore/platform/blackberry
727         https://bugs.webkit.org/show_bug.cgi?id=73798
728
729         Reviewed by Rob Buis.
730
731         Main contributors:
732         Genevieve Mak <gmak@rim.com>
733         Mike Lattanzio  <mlattanzio@rim.com>
734         George Staikos <gstaikos@rim.com> 
735
736         Initial upstream, no new tests.
737
738         * platform/blackberry/PlatformTouchEventBlackBerry.cpp: Added.
739         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
740         * platform/blackberry/PlatformTouchPointBlackBerry.cpp: Added.
741         (WebCore::PlatformTouchPoint::PlatformTouchPoint):
742         * platform/blackberry/SharedBufferBlackBerry.cpp: Added.
743         (WebCore::SharedBuffer::createWithContentsOfFile):
744         * platform/blackberry/SharedTimerBlackBerry.cpp: Added.
745         (WebCore::SharedTimerBlackBerry::SharedTimerBlackBerry):
746         (WebCore::SharedTimerBlackBerry::~SharedTimerBlackBerry):
747         (WebCore::SharedTimerBlackBerry::instance):
748         (WebCore::SharedTimerBlackBerry::start):
749         (WebCore::SharedTimerBlackBerry::stop):
750         (WebCore::setSharedTimerFiredFunction):
751         (WebCore::setSharedTimerFireInterval):
752         (WebCore::stopSharedTimer):
753         * platform/blackberry/SystemTimeBlackBerry.cpp: Added.
754         (WebCore::userIdleTime):
755
756 2011-12-12  Alexander Pavlov  <apavlov@chromium.org>
757
758         Implement a cache for CSSStyleRule::selectorText()
759         https://bugs.webkit.org/show_bug.cgi?id=74269
760
761         This change is geared towards speeding up the CSS selector profiler,
762         its implementation tracked at https://bugs.webkit.org/show_bug.cgi?id=74004.
763         Using a proof-of-concept implementation of the profiler, this change reduces
764         the profiler temporal overhead on PerformanceTests/Parser/html5-full-render.html
765         roughly by 86% (from ~72 seconds down to ~10 seconds). This change also does not
766         considerably increase average memory usage, as reading selectorText is a relatively
767         rare case during normal web browsing.
768
769         Reviewed by Andreas Kling.
770
771         No new tests, as this functionality is covered by existing tests.
772
773         * css/CSSRule.h:
774         * css/CSSStyleRule.cpp:
775         (WebCore::CSSStyleRule::~CSSStyleRule):
776         (WebCore::selectorTextCache):
777         (WebCore::CSSStyleRule::cleanup):
778         (WebCore::CSSStyleRule::generateSelectorText):
779         (WebCore::CSSStyleRule::selectorText):
780         (WebCore::CSSStyleRule::setSelectorText):
781         * css/CSSStyleRule.h:
782
783 2011-12-12  Alexander Pavlov  <apavlov@chromium.org>
784
785         Web Inspector: [Styles] Modified selector text needs sanitization
786         https://bugs.webkit.org/show_bug.cgi?id=74291
787
788         Reviewed by Yury Semikhatsky.
789
790         * inspector/front-end/StylesSidebarPane.js:
791
792 2011-12-12  Renata Hodovan  <reni@webkit.org>
793
794         Fulfill FIXME in  HTMLLinkElement.h.
795         https://bugs.webkit.org/show_bug.cgi?id=74278
796
797         Rename HTMLLinkElement::isLoading() to isStyleSheetLoading().
798
799         Reviewed by Andreas Kling.
800
801         No new tests because the functionality remains the same.
802
803         * dom/Document.cpp:
804         (WebCore::Document::recalcStyleSelector):
805         * html/HTMLLinkElement.cpp:
806         (WebCore::HTMLLinkElement::setDisabledState):
807         (WebCore::HTMLLinkElement::isStyleSheetLoading):
808         (WebCore::HTMLLinkElement::sheetLoaded):
809         * html/HTMLLinkElement.h:
810
811 2011-11-25  Alexander Pavlov  <apavlov@chromium.org>
812
813         WebKit does not enumerate over CSS properties in HTMLElement.style
814         https://bugs.webkit.org/show_bug.cgi?id=23946
815
816         Reviewed by Darin Adler.
817
818         This change generates a list of JavaScript mirrors of the CSS properties and allows to enumerate them
819         using the "in" operator on the CSSStyleDeclaration object.
820
821         Test: fast/css/style-enumerate-properties.html
822
823         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
824         (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Added.
825         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
826         (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator): Added.
827         (WebCore::V8CSSStyleDeclaration::namedPropertyQuery): Added.
828         (WebCore::V8CSSStyleDeclaration::namedPropertyGetter): A small drive-by optimization (local initialization moved down).
829         * css/CSSStyleDeclaration.idl: Use a custom property enumerator.
830         * css/makeprop.pl: Add a function to convert CSS property names into JS ones.
831
832 2011-12-12  Alexander Pavlov  <apavlov@chromium.org>
833
834         Unreviewed, build fix.
835
836         Revert r102570 which broke SnowLeopard builders.
837
838         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
839         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
840         (WebCore::V8CSSStyleDeclaration::namedPropertyGetter):
841         * css/CSSStyleDeclaration.idl:
842         * css/makeprop.pl:
843
844 2011-12-12  Ilya Tikhonovsky  <loislo@chromium.org>
845
846         Web Inspector: chromium: UI: Detailed Heap snapshot shows too many objects' hidden properties.
847         https://bugs.webkit.org/show_bug.cgi?id=74289
848
849         WebCore objects have many hidden properties.
850         The Detailed Heap shapshot view shows all these props for a selected object.
851         The result view looks too heavy and users usually failed to find a useful information about the object.
852         Looks like such ability is unnecessary in the most cases.
853         I'd like to introduce a configurable property that will show/hide these props from the view.
854
855         Reviewed by Yury Semikhatsky.
856
857         * English.lproj/localizedStrings.js:
858         * inspector/front-end/DetailedHeapshotGridNodes.js:
859         * inspector/front-end/DetailedHeapshotView.js:
860         * inspector/front-end/HeapSnapshotProxy.js:
861         (WebInspector.HeapSnapshotProxy.prototype.createPathFinder):
862         * inspector/front-end/SettingsScreen.js:
863         (WebInspector.SettingsScreen):
864
865 2011-12-12  Kentaro Hara  <haraken@chromium.org>
866
867         Unreviewed, rolling out r102556.
868         http://trac.webkit.org/changeset/102556
869         https://bugs.webkit.org/show_bug.cgi?id=73394
870
871         clobber build failure
872
873         * WebCore.gyp/WebCore.gyp:
874         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
875         (main):
876         * WebCore.gypi:
877         * bindings/scripts/generate-bindings.pl:
878         * page/DOMWindow.idl:
879         * webaudio/DOMWindowWebAudio.idl: Removed.
880
881 2011-12-12  Kentaro Hara  <haraken@chromium.org>
882
883         Unreviewed, rolling out r102558.
884         http://trac.webkit.org/changeset/102558
885         https://bugs.webkit.org/show_bug.cgi?id=74160
886
887         clobber build failure
888
889         * WebCore.gypi:
890         * page/DOMWindow.idl:
891         * websockets/DOMWindowWebSocket.idl: Removed.
892
893 2011-11-25  Alexander Pavlov  <apavlov@chromium.org>
894
895         WebKit does not enumerate over CSS properties in HTMLElement.style
896         https://bugs.webkit.org/show_bug.cgi?id=23946
897
898         Reviewed by Darin Adler.
899
900         This change generates a list of JavaScript mirrors of the CSS properties and allows to enumerate them
901         using the "in" operator on the CSSStyleDeclaration object.
902
903         Test: fast/css/style-enumerate-properties.html
904
905         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
906         (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Added.
907         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
908         (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator): Added.
909         (WebCore::V8CSSStyleDeclaration::namedPropertyQuery): Added.
910         (WebCore::V8CSSStyleDeclaration::namedPropertyGetter): A small drive-by optimization (local initialization moved down).
911         * css/CSSStyleDeclaration.idl: Use a custom property enumerator.
912         * css/makeprop.pl: Add a function to convert CSS property names into JS ones, and a string comparator.
913
914 2011-12-09  Yury Semikhatsky  <yurys@chromium.org>
915
916         Web Inspector: provide per Document Node count statistics
917         https://bugs.webkit.org/show_bug.cgi?id=74100
918
919         Memory agent now returns counters for nodes with given names. For each
920         object group root user will see total number of its descendtants and per
921         tag name counts.
922
923         This patch also moves generic CounterVisitor code out of V8 bindings. It
924         may well be used with both JS engines.
925
926         Reviewed by Pavel Feldman.
927
928         * GNUmakefile.list.am:
929         * Target.pri:
930         * WebCore.gypi:
931         * WebCore.vcproj/WebCore.vcproj:
932         * WebCore.xcodeproj/project.pbxproj:
933         * bindings/js/ScriptProfiler.h:
934         (WebCore::ScriptProfiler::visitJSDOMWrappers):
935         * bindings/v8/ScriptProfiler.cpp:
936         (WebCore::ScriptProfiler::visitJSDOMWrappers):
937         * bindings/v8/ScriptProfiler.h:
938         * inspector/DOMWrapperVisitor.h: Added.
939         (WebCore::DOMWrapperVisitor::~DOMWrapperVisitor):
940         * inspector/Inspector.json:
941         * inspector/InspectorMemoryAgent.cpp:
942         (WebCore::InspectorMemoryAgent::getDOMNodeCount):
943         * inspector/InspectorMemoryAgent.h:
944
945 2011-12-12  Noel Gordon  <noel.gordon@gmail.com>
946
947         WebPImageDecoder: Increase image/webp decoding performance 10-20%
948         https://bugs.webkit.org/show_bug.cgi?id=74263
949
950         Reviewed by Adam Barth.
951
952         Avoid copying data from the RGB buffer of decoded image output to the
953         backing pixel store. That is slow - costs 10% of the overall decoding
954         time at libwebp 0.1.2, and 20% at libwebp 0.1.3.
955
956         Instead, instruct the decoder to write the decoded pixels directly to
957         the backing pixel store.
958
959         No new tests. Covered by existing tests. No progressive decoding test
960         exists in DRT, see https://bugs.webkit.org/show_bug.cgi?id=74062
961
962         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
963         (outputMode):  Define output pixel format. On little-endian machines,
964         output BGRA pixels to the backing store, for example.
965         (WebCore::WEBPImageDecoder::WEBPImageDecoder):
966         (WebCore::WEBPImageDecoder::decode):
967         * platform/image-decoders/webp/WEBPImageDecoder.h:
968
969 2011-12-11  Zoltan Herczeg  <zherczeg@webkit.org>
970
971         Add new CSS nth-children parsing tests
972         https://bugs.webkit.org/show_bug.cgi?id=74178
973
974         Reviewed by Darin Adler.
975
976         Test: fast/css/parsing-css-nth-child.html
977
978         * css/CSSParser.cpp:
979         (WebCore::isValidNthToken): Add "-n" to the possible identifiers.
980
981 2011-12-11  Kentaro Hara  <haraken@chromium.org>
982
983         Use [Supplemental] IDL in WebSocket
984         https://bugs.webkit.org/show_bug.cgi?id=74160
985
986         Reviewed by Adam Barth.
987
988         By using the [Supplemental] IDL, this patch moves declarations of WebSocket
989         attributes from DOMWindow.idl to websocket/DOMWindowWebSocket.idl,
990         which helps make WebSocket a self-contained module.
991
992         No new tests, no change in behavior.
993         Confirm that http/tests/websocket/* pass.
994
995         * WebCore.gypi: Added DOMWindowWebSocket.idl.
996         * page/DOMWindow.idl: Added the [Supplemented] IDL to WebSocket-related attributes. This [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL (See bug 73394 for more details).
997         * websockets/DOMWindowWebSocket.idl: Added. Used the [Supplemental=DOMWindow] IDL. The attributes in this IDL file are treated as if they are described in DOMWindow.idl.
998
999 2011-12-11  Luke Macpherson   <macpherson@chromium.org>
1000
1001         Implement webkit-line-grid and webkit-line-grid-snap CSS properties in CSSStyleApplyProperty.
1002         https://bugs.webkit.org/show_bug.cgi?id=74262
1003
1004         Reviewed by Andreas Kling.
1005
1006         No new tests / refactoring only.
1007
1008         * css/CSSStyleApplyProperty.cpp:
1009         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1010         * css/CSSStyleSelector.cpp:
1011         (WebCore::CSSStyleSelector::applyProperty):
1012
1013 2011-12-11  Kentaro Hara  <haraken@chromium.org>
1014
1015         Use the [Supplemental] IDL for webaudio attributes in Chromium
1016         https://bugs.webkit.org/show_bug.cgi?id=73394
1017
1018         Reviewed by Adam Barth.
1019
1020         - Overview: Using the [Supplemental] IDL, this patch moves the attribute
1021         declarations of webaudio from DOMWindow.idl into a new IDL file
1022         webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
1023         feature (aka a module).
1024
1025         - This patch changes the build flow of WebCore.gyp as follows:
1026
1027             Previous build flow:
1028                 foreach $idl (all IDL files) {
1029                     generate-bindings.pl depends on $idl;
1030                     generate-bindings.pl reads $idl;
1031                     generate-bindings.pl generates .h and .cpp files for $idl;
1032                 }
1033
1034             New build flow (See the discussions in bug 72138 for more details):
1035                 resolve-supplemental.pl depends on all IDL files;
1036                 resolve-supplemental.pl reads all IDL files;
1037                 resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
1038                 resolve-supplemental.pl outputs supplemental_dependency.tmp;
1039                 foreach $idl (all IDL files) {
1040                     generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
1041                     generate-bindings.pl reads $idl;
1042                     generate-bindings.pl reads supplemental_dependency.tmp;
1043                     generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
1044                 }
1045
1046         - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
1047         will be removed after build scripts for all platforms support the [Supplemental] IDL.
1048         The motivation for the [Supplemented] IDL is as follows:
1049
1050         In order to support the [Supplemental] IDL, we need to
1051         (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
1052         (2) and run generate-bindings.pl with the supplemental_dependency.tmp.
1053
1054         This build flow requires a change on the following build scripts,
1055         but changing all the build scripts all at once without any regression is too difficult:
1056
1057             - DerivedSources.make
1058             - DerivedSources.pri
1059             - GNUmakefile.am
1060             - PlatformBlackBerry.cmake
1061             - UseJSC.cmake
1062             - UseV8.cmake
1063             - WebCore.vcproj/MigrateScripts
1064             - WebCore.vcproj/WebCore.vcproj
1065             - bindings/gobject/GNUmakefile.am
1066             - WebCore.gyp/WebCore.gyp
1067
1068         Thus, we are planning to change the build scripts one by one, which implies that
1069         we need to allow the temporary state in which some build scripts support [Supplemental] IDL
1070         but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
1071         The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
1072         in another IDL file somewhere, like this:
1073
1074             DOMWindowWebAudio.idl:
1075                 interface [
1076                     Supplemental=DOMWindow
1077                 ] DOMWindowWebAudio {
1078                     attribute attr1;
1079                     attribute attr2;
1080                 };
1081
1082             DOMWindow.idl:
1083                 interface [
1084                 ] DOMWindow {
1085                     attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
1086                     attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
1087                     attribute attr3;
1088                     attribute attr4;
1089                 };
1090
1091         Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:
1092
1093             - If a given build script supports the [Supplemental] IDL,
1094             generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
1095             - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
1096             as normal attributes and instead ignores all attributes with the [Supplemental] IDL
1097             (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).
1098
1099         Tests: webaudio/*
1100
1101         * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
1102         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
1103         (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file. If the file name is a "/cygdrive/c/..."-style path, it is converted to a "C:\cygwin\..."-style path by the cygpath command.
1104         * WebCore.gypi: Added DOMWindowWebAudio.idl.
1105         * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
1106         * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
1107         * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.
1108
1109 2011-12-11  Andreas Kling  <kling@webkit.org>
1110
1111         Micro-optimize CSSStyleSelector::findSiblingForStyleSharing().
1112         <http://webkit.org/b/74261>
1113
1114         Reviewed by Antti Koivisto.
1115
1116         Move the isStyledElement() check from canShareStyleWithElement() into the
1117         loop in findSiblingForStyleSharing(), and tighten up the argument/return
1118         types to StyledElement* as appropriate.
1119
1120         * css/CSSStyleSelector.cpp:
1121         (WebCore::CSSStyleSelector::canShareStyleWithElement):
1122         (WebCore::CSSStyleSelector::findSiblingForStyleSharing):
1123         (WebCore::CSSStyleSelector::locateSharedStyle):
1124         * css/CSSStyleSelector.h:
1125
1126 2011-12-11  Shinya Kawanaka  <shinyak@google.com>
1127
1128         Asynchronous path synchronous path of SpellChecker should share the code to mark misspellings.
1129         https://bugs.webkit.org/show_bug.cgi?id=73616
1130
1131         Reviewed by Hajime Morita.
1132
1133         Asynchronous spellchecking path should call the same method for the synchronous spellchecking path
1134         to mark misspellings.
1135
1136         No new tests. Covered by existing tests.
1137
1138         * editing/Editor.cpp:
1139         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
1140         (WebCore::Editor::markAndReplaceFor):
1141           Takes SpellCheckRequest object.
1142         * editing/Editor.h:
1143         * editing/SpellChecker.cpp:
1144         (WebCore::SpellChecker::didCheck):
1145           Calls the same method of synchronous spellchecking path.
1146
1147 2011-12-11  Luke Macpherson   <macpherson@chromium.org>
1148
1149         Implement CSS display property in CSSStyleApplyProperty.
1150         https://bugs.webkit.org/show_bug.cgi?id=73500
1151
1152         Reviewed by Andreas Kling.
1153
1154         Refactoring only / no functionality changed.
1155
1156         * css/CSSStyleApplyProperty.cpp:
1157         (WebCore::ApplyPropertyDisplay::isValidDisplayValue):
1158         (WebCore::ApplyPropertyDisplay::applyInheritValue):
1159         (WebCore::ApplyPropertyDisplay::applyInitialValue):
1160         (WebCore::ApplyPropertyDisplay::applyValue):
1161         (WebCore::ApplyPropertyDisplay::createHandler):
1162         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1163         * css/CSSStyleSelector.cpp:
1164         (WebCore::CSSStyleSelector::applyProperty):
1165
1166 2011-12-11  Geoffrey Garen  <ggaren@apple.com>
1167
1168         Try to fix the Qt build.
1169
1170         Unreviewed.
1171
1172         * css/CSSStyleDeclaration.cpp: Maybe an #include will solve our problem?
1173         Someday, compiler error messages will not suck. Today is not that day.
1174
1175 2011-12-11  Luke Macpherson   <macpherson@chromium.org>
1176
1177         Implement CSS resize property in CSSStyleApplyProperty.
1178         https://bugs.webkit.org/show_bug.cgi?id=74162
1179
1180         Reviewed by Julien Chaffraix.
1181
1182         No new tests / refactoring only.
1183
1184         * css/CSSStyleApplyProperty.cpp:
1185         (WebCore::ApplyPropertyResize::applyValue):
1186         (WebCore::ApplyPropertyResize::createHandler):
1187         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1188         * css/CSSStyleSelector.cpp:
1189         (WebCore::CSSStyleSelector::applyProperty):
1190
1191 2011-12-11  Andreas Kling  <kling@webkit.org>
1192
1193         Move CSSElementStyleDeclaration to its own cpp/h files.
1194         <http://webkit.org/b/74256>
1195
1196         Reviewed by Sam Weinig.
1197
1198         CSSElementStyleDeclaration is old enough to move out of CSSMutableStyleDeclaration's
1199         attic and into her own apartment. 
1200
1201         * CMakeLists.txt:
1202         * GNUmakefile.list.am:
1203         * Target.pri:
1204         * WebCore.gypi:
1205         * WebCore.vcproj/WebCore.vcproj:
1206         * WebCore.xcodeproj/project.pbxproj:
1207         * bindings/js/JSDOMBinding.h:
1208         * css/CSSElementStyleDeclaration.cpp: Added.
1209         (WebCore::CSSElementStyleDeclaration::styleSheet):
1210         * css/CSSElementStyleDeclaration.h: Added.
1211         (WebCore::CSSElementStyleDeclaration::element):
1212         (WebCore::CSSElementStyleDeclaration::setElement):
1213         (WebCore::CSSElementStyleDeclaration::CSSElementStyleDeclaration):
1214         (WebCore::CSSElementStyleDeclaration::~CSSElementStyleDeclaration):
1215         * css/CSSInlineStyleDeclaration.h:
1216         * css/CSSMutableStyleDeclaration.cpp:
1217         * css/CSSMutableStyleDeclaration.h:
1218         * dom/CSSMappedAttributeDeclaration.h:
1219
1220 2011-12-11  Benjamin Poulain  <bpoulain@apple.com>
1221
1222         Add KillRingNone.cpp to Mac build system
1223         https://bugs.webkit.org/show_bug.cgi?id=74168
1224
1225         Reviewed by David Kilzer.
1226
1227         Add KillRingNone.cpp so it can be used on iOS, but
1228         blacklist the file from the build in order to avoid
1229         conflicts with KillRingMac.
1230
1231         * Configurations/WebCore.xcconfig:
1232         * WebCore.xcodeproj/project.pbxproj:
1233
1234 2011-12-11  Peter Rybin  <peter.rybin@gmail.com>
1235
1236         Web Inspector: [protocol] alter some type names generated from Inspector.json
1237         https://bugs.webkit.org/show_bug.cgi?id=74247
1238
1239         Reviewed by Pavel Feldman.
1240
1241         Manually-filled map added that contains problem type names and its replacement.
1242
1243         * inspector/CodeGeneratorInspector.py:
1244         (fix_type_name.Result):
1245         (fix_type_name.Result.output_comment):
1246         (fix_type_name):
1247         (TypeBindings.create_for_named_type_declaration.write_doc):
1248         (TypeBindings.create_for_named_type_declaration.EnumBinding.generate_type_builder):
1249         (TypeBindings.create_for_named_type_declaration.PlainString.generate_type_builder):
1250         (TypeBindings):
1251         (TypeBindings.create_for_named_type_declaration.ClassBinding.generate_type_builder):
1252         (Generator.process_types):
1253
1254 2011-12-11  Andreas Kling  <kling@webkit.org>
1255
1256         WK2/NetscapePlugin: Incorrect mouse event coordinates when frameScaleFactor != 1.
1257         <http://webkit.org/b/74209> and <rdar://problem/10438197>
1258
1259         Reviewed by Anders Carlsson.
1260
1261         * WebCore.exp.in: Export AffineTransform::scale(double).
1262
1263 2011-12-10  Andreas Kling  <kling@webkit.org>
1264
1265         Remove OS(SYMBIAN) block from Settings constructor.
1266         <http://webkit.org/b/74248>
1267
1268         Reviewed by Benjamin Poulain.
1269
1270         Kill the last OS(SYMBIAN) block in WebKit!
1271
1272         * page/Settings.cpp:
1273         (WebCore::Settings::Settings):
1274
1275 2011-12-11  Dan Bernstein  <mitz@apple.com>
1276
1277         <rdar://problem/10561285> REGRESSION (r80438): First word on a line or after collapsed space may not be hyphenated even though it should
1278         https://bugs.webkit.org/show_bug.cgi?id=74239
1279
1280         Reviewed by Anders Carlsson.
1281
1282         Tests: fast/text/hyphenate-first-word-after-skipped-space-expected.html
1283                fast/text/hyphenate-first-word-after-skipped-space.html
1284
1285         * rendering/RenderBlockLineLayout.cpp:
1286         (WebCore::tryHyphenating): Replaced the assumption that the character at lastSpace is a space
1287         iff lastSpace is non-zero with a test of whether it is a space, in the sense that it should
1288         not be counted as part of the prefix when comparing it to the value of hyphenate-limit-before.
1289
1290 2011-12-10  Benjamin Poulain  <bpoulain@apple.com>
1291
1292         #ifdef the parts of the Mac platform which should not be used on iOS
1293         https://bugs.webkit.org/show_bug.cgi?id=74246
1294
1295         Reviewed by David Kilzer.
1296
1297         * Configurations/WebCore.xcconfig:
1298         * platform/FileSystem.cpp:
1299         * platform/mac/FileSystemMac.mm:
1300         * platform/mac/Language.mm:
1301         (+[WebLanguageChangeObserver _webkit_languagePreferencesDidChange]):
1302         (WebCore::createHTTPStyleLanguageCode):
1303         (WebCore::platformDefaultLanguage):
1304         * platform/mac/LocalizedStringsMac.mm:
1305         (WebCore::localizedString):
1306         (+[WebCoreSharedBufferData initialize]):
1307         * platform/mac/WebCoreNSStringExtras.h:
1308         * platform/mac/WebCoreNSStringExtras.mm:
1309         * platform/mac/WebFontCache.mm:
1310         * platform/mac/WebNSAttributedStringExtras.mm: The value NSAttachmentCharacter is
1311         not defined in the iOS SDK so we add it here.
1312
1313 2011-12-10  Ryosuke Niwa  <rniwa@webkit.org>
1314
1315         The previous fix broke Lion release build. Fix that.
1316
1317         * editing/SpellingCorrectionCommand.cpp:
1318
1319 2011-12-10  Ryosuke Niwa  <rniwa@webkit.org>
1320
1321         Lion build fix attempt after r102527.
1322
1323         * editing/SpellingCorrectionCommand.cpp:
1324
1325 2011-12-10  Kevin Ollivier  <kevino@theolliviers.com>
1326
1327         [wx] Unreviewed build fixes. Add missing header for CPP
1328         DOM bindings and add stubs for new DPI methods.
1329         
1330         * bindings/scripts/CodeGeneratorCPP.pm:
1331         (AddIncludesForType):
1332         * platform/wx/ScreenWx.cpp:
1333         (WebCore::screenHorizontalDPI):
1334         (WebCore::screenVerticalDPI):
1335
1336 2011-12-10  Ryosuke Niwa  <rniwa@webkit.org>
1337
1338         Mac build fix. Remove an erroneous OVERRIDE.
1339
1340         * editing/CompositeEditCommand.h:
1341
1342 2011-12-09  Robert Hogan  <robert@webkit.org>
1343
1344         CSS 2.1 failure: numerous counter-increment-* tests fail
1345         https://bugs.webkit.org/show_bug.cgi?id=73360
1346
1347         Reviewed by Julien Chaffraix.
1348
1349         Allow counter-increment to handle integer underflow and overflow.
1350         Also allow 'counter' to inherit.
1351
1352         * css/CSSStyleApplyProperty.cpp:
1353         (WebCore::ApplyPropertyCounter::applyInheritValue):
1354         (WebCore::ApplyPropertyCounter::applyValue):
1355         (WebCore::ApplyPropertyCounter::createHandler):
1356
1357 2011-12-09  Ryosuke Niwa  <rniwa@webkit.org>
1358
1359         There should be a way to count the number of nodes held by undo stack
1360         https://bugs.webkit.org/show_bug.cgi?id=74099
1361
1362         Reviewed by Enrica Casucci.
1363
1364         Add getNodesInCommand to all SimpleEditCommands and EditCommandComposition in debug builds.
1365         We can easily aggregate the number of nodes held by the undo stack by calling
1366         this function on each item in the undo stack.
1367
1368         * editing/AppendNodeCommand.cpp:
1369         (WebCore::AppendNodeCommand::getNodesInCommand):
1370         * editing/AppendNodeCommand.h:
1371         * editing/CompositeEditCommand.cpp:
1372         (WebCore::EditCommandComposition::getNodesInCommand):
1373         * editing/CompositeEditCommand.h:
1374         * editing/DeleteFromTextNodeCommand.cpp:
1375         (WebCore::DeleteFromTextNodeCommand::getNodesInCommand):
1376         * editing/DeleteFromTextNodeCommand.h:
1377         * editing/EditCommand.cpp:
1378         (WebCore::SimpleEditCommand::addNodeAndDescedents):
1379         * editing/EditCommand.h:
1380         * editing/Editor.cpp:
1381         (WebCore::Editor::appliedEditing):
1382         * editing/InsertIntoTextNodeCommand.cpp:
1383         (WebCore::InsertIntoTextNodeCommand::getNodesInCommand):
1384         * editing/InsertIntoTextNodeCommand.h:
1385         * editing/InsertNodeBeforeCommand.cpp:
1386         (WebCore::InsertNodeBeforeCommand::getNodesInCommand):
1387         * editing/InsertNodeBeforeCommand.h:
1388         * editing/MergeIdenticalElementsCommand.cpp:
1389         (WebCore::MergeIdenticalElementsCommand::getNodesInCommand):
1390         * editing/MergeIdenticalElementsCommand.h:
1391         * editing/RemoveCSSPropertyCommand.cpp:
1392         (WebCore::RemoveCSSPropertyCommand::getNodesInCommand):
1393         * editing/RemoveCSSPropertyCommand.h:
1394         * editing/RemoveNodeCommand.cpp:
1395         (WebCore::RemoveNodeCommand::getNodesInCommand):
1396         * editing/RemoveNodeCommand.h:
1397         * editing/ReplaceNodeWithSpanCommand.cpp:
1398         (WebCore::ReplaceNodeWithSpanCommand::getNodesInCommand):
1399         * editing/ReplaceNodeWithSpanCommand.h:
1400         * editing/SetNodeAttributeCommand.cpp:
1401         (WebCore::SetNodeAttributeCommand::getNodesInCommand):
1402         * editing/SetNodeAttributeCommand.h:
1403         * editing/SetSelectionCommand.h:
1404         * editing/SplitElementCommand.cpp:
1405         (WebCore::SplitElementCommand::getNodesInCommand):
1406         * editing/SplitElementCommand.h:
1407         * editing/SplitTextNodeCommand.cpp:
1408         (WebCore::SplitTextNodeCommand::getNodesInCommand):
1409         * editing/SplitTextNodeCommand.h:
1410         * editing/WrapContentsInDummySpanCommand.cpp:
1411         (WebCore::WrapContentsInDummySpanCommand::getNodesInCommand):
1412         * editing/WrapContentsInDummySpanCommand.h:
1413
1414 2011-11-09  Robert Hogan  <robert@webkit.org>
1415
1416         CSS 2.1 failure: outline-color-* tests fail
1417         https://bugs.webkit.org/show_bug.cgi?id=71931
1418
1419         Reviewed by Julien Chaffraix.
1420
1421         Test: css2.1/20110323/outline-color-001.html
1422
1423         WebKit didn't paint the top block in this series of tests because it ignored the outline
1424         of objects with a zero size. Fix this by taking account of both offset and width of the
1425         outline when deciding whether to paint it. 
1426
1427         * rendering/RenderObject.cpp:
1428         (WebCore::RenderObject::paintOutline): paint the outline even when the block has zero size
1429
1430 2011-12-10   Arko Saha  <arko@motorola.com>
1431
1432         Microdata: Fix compilation error in MICRODATA enabled build.
1433         https://bugs.webkit.org/show_bug.cgi?id=74235
1434
1435         Reviewed by Andreas Kling.
1436
1437         * dom/Document.cpp:
1438         (WebCore::Document::getItems):
1439
1440 2011-12-10  Jarred Nicholls  <jarred@sencha.com>
1441
1442         [V8] Remove old ArrayBuffer guards from V8XMLHttpRequestCustom.cpp
1443         https://bugs.webkit.org/show_bug.cgi?id=74234
1444
1445         Reviewed by Adam Barth.
1446
1447         No new tests are necessary.
1448
1449         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1450         (WebCore::V8XMLHttpRequest::responseAccessorGetter):
1451
1452 2011-12-10  Noel Gordon  <noel.gordon@gmail.com>
1453
1454         WebPImageDecoder progressive decodes fail to decode valid images
1455         https://bugs.webkit.org/show_bug.cgi?id=74062
1456
1457         Reviewed by Adam Barth.
1458
1459         The WEBP header is followed by a so-called P0 header, then some data to
1460         decode.  If a partial P0 header is received during progressive decodes,
1461         WebPIDecGetRGB() returns false; that makes the decoder enter the failed
1462         state, no image appears on the page.
1463
1464         James Zern (webp) recommended the following via e-mail:
1465
1466         WebPIUpdate() validates input data, and will return an error status for
1467         malformed data (bit-stream error, invalid data).  Otherwise, it returns
1468         OK or SUSPENDED.  OK means that decoding is done/complete/no-error, and
1469         SUSPENDED means more input data is needed to complete decoding.  A NULL
1470         return from WebPIDecGetRGB() is valid at this time due to a partial P0,
1471         and should not be interpreted as a decoding failure.
1472
1473         No new tests. Not something DumpRenderTree can easily test.
1474
1475         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
1476         (WebCore::WEBPImageDecoder::decode):  A NULL WebPIDecGetRGB() return is
1477         acceptable here.  Return false instead of failing the decoder.
1478
1479 2011-12-09  Benjamin Poulain  <bpoulain@apple.com>
1480
1481         Add the FileSystem functions of iOS
1482         https://bugs.webkit.org/show_bug.cgi?id=74164
1483
1484         Reviewed by David Kilzer.
1485
1486         Two functions are needed on iOS for temporary files and directories.
1487
1488         * WebCore.exp.in:
1489         * WebCore.xcodeproj/project.pbxproj:
1490         * platform/ios/FileSystemIOS.h: Added.
1491         * platform/ios/FileSystemIOS.mm: Added.
1492         (WebCore::createTemporaryDirectory):
1493         (WebCore::createTemporaryFile):
1494
1495 2011-12-09  Jacky Jiang  <zhajiang@rim.com>
1496
1497         Remove ResourceHandle::bufferedData() from ResourceHandleBlackBerry.cpp
1498         https://bugs.webkit.org/show_bug.cgi?id=74197
1499
1500         The bufferedData() was removed in r95120.
1501
1502         Reviewed by Rob Buis.
1503
1504         Trivial fix, so no new tests.
1505
1506         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
1507
1508 2011-12-09  Eric Penner  <epenner@google.com>
1509
1510         [chromium] Prevent ASSERT in legitimate out-of-memory case.
1511         https://bugs.webkit.org/show_bug.cgi?id=74215
1512
1513         Reviewed by James Robinson.
1514
1515         * platform/graphics/chromium/TiledLayerChromium.cpp:
1516         (WebCore::TiledLayerChromium::updateCompositorResources):
1517
1518 2011-12-09   Arko Saha  <arko@motorola.com>
1519
1520         NameNodeListCache should be invalidated when name attribute changes/modified.
1521         https://bugs.webkit.org/show_bug.cgi?id=70810
1522
1523         Reviewed by Ryosuke Niwa.
1524
1525         Test: fast/dom/getelementsbyname-invalidation-cache.html
1526
1527         * html/HTMLAnchorElement.cpp:
1528         (WebCore::HTMLAnchorElement::parseMappedAttribute):
1529         * html/HTMLAppletElement.cpp:
1530         (WebCore::HTMLAppletElement::parseMappedAttribute):
1531         * html/HTMLElement.cpp:
1532         (WebCore::HTMLElement::parseMappedAttribute):
1533         * html/HTMLEmbedElement.cpp:
1534         (WebCore::HTMLEmbedElement::parseMappedAttribute):
1535         * html/HTMLFormElement.cpp:
1536         (WebCore::HTMLFormElement::parseMappedAttribute):
1537         * html/HTMLFrameElementBase.cpp:
1538         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
1539         * html/HTMLIFrameElement.cpp:
1540         (WebCore::HTMLIFrameElement::parseMappedAttribute):
1541         * html/HTMLImageElement.cpp:
1542         (WebCore::HTMLImageElement::parseMappedAttribute):
1543         * html/HTMLMapElement.cpp:
1544         (WebCore::HTMLMapElement::parseMappedAttribute):
1545         * html/HTMLMetaElement.cpp:
1546         (WebCore::HTMLMetaElement::parseMappedAttribute):
1547         * html/HTMLObjectElement.cpp:
1548         (WebCore::HTMLObjectElement::parseMappedAttribute):
1549         * html/HTMLParamElement.cpp:
1550         (WebCore::HTMLParamElement::parseMappedAttribute):
1551
1552 2011-12-09  Anders Carlsson  <andersca@apple.com>
1553
1554         Fix Lion release build.
1555
1556         * platform/mac/ScrollAnimatorMac.mm:
1557         (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
1558
1559 2011-12-09  Mark Pilgrim  <pilgrim@chromium.org>
1560
1561         [FileSystem API] Entry.remove successCallback is required
1562         https://bugs.webkit.org/show_bug.cgi?id=69639
1563
1564         Reviewed by Adam Barth.
1565
1566         Test: fast/filesystem/simple-required-arguments-remove.html
1567
1568         * fileapi/Entry.idl: remove [Optional] flag from Entry.remove.successCallback parameter
1569
1570 2011-12-09  Tim Horton  <timothy_horton@apple.com>
1571
1572         background-image transitions trigger between equivalent images
1573         https://bugs.webkit.org/show_bug.cgi?id=74229
1574         <rdar://problem/10558627>
1575
1576         Reviewed by Darin Adler.
1577         Patch by Simon Fraser.
1578
1579         For animation property wrappers around StyleImage properties,
1580         test the equivalence of the image itself, instead of equality of
1581         the StyleImage pointer.
1582
1583         Test: transitions/equivalent-background-image-no-transition.html
1584
1585         * page/animation/AnimationBase.cpp:
1586         (WebCore::StyleImagePropertyWrapper::StyleImagePropertyWrapper):
1587         (WebCore::StyleImagePropertyWrapper::equals):
1588         (WebCore::FillLayerStyleImagePropertyWrapper::FillLayerStyleImagePropertyWrapper):
1589         (WebCore::FillLayerStyleImagePropertyWrapper::equals):
1590         (WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
1591         (WebCore::AnimationBase::ensurePropertyMap):
1592
1593 2011-12-09  Mary Wu  <mary.wu@torchmobile.com.cn>
1594
1595         Small style fix on DragDataBlackBerry.cpp
1596         https://bugs.webkit.org/show_bug.cgi?id=74171
1597
1598         Reviewed by Rob Buis.
1599
1600         Style fix, no function impact, no new tests.
1601
1602         * platform/blackberry/DragDataBlackBerry.cpp:
1603         (WebCore::DragData::containsURL):
1604         (WebCore::DragData::asFilenames):
1605         (WebCore::DragData::asURL):
1606         (WebCore::DragData::asFragment):
1607
1608 2011-12-09  Tony Chang  <tony@chromium.org>
1609
1610         add css parsing for flex-flow: wrap and wrap-reverse
1611         https://bugs.webkit.org/show_bug.cgi?id=74008
1612
1613         Reviewed by Ojan Vafai.
1614
1615         Also save 2 bits in StyleFlexibleBoxData by changing the size of m_flexFlow (there are only 4 enum values).
1616
1617         * css/CSSComputedStyleDeclaration.cpp:
1618         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Print the wrap value if it exists.
1619         * css/CSSParser.cpp:
1620         (WebCore::CSSParser::parseValue): Parse a second token and put the values into a CSSValueList.
1621         * css/CSSPrimitiveValueMappings.h:
1622         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1623         (WebCore::CSSPrimitiveValue::operator EFlexWrap):
1624         * css/CSSStyleApplyProperty.cpp:
1625         (WebCore::ApplyPropertyFlexFlow::applyInheritValue): Does not inherit.
1626         (WebCore::ApplyPropertyFlexFlow::applyInitialValue):
1627         (WebCore::ApplyPropertyFlexFlow::applyValue): Special handler for setting two render style values from one
1628         CSS property.
1629         (WebCore::ApplyPropertyFlexFlow::createHandler):
1630         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1631         * css/CSSValueKeywords.in:
1632         * rendering/style/RenderStyle.h:
1633         (WebCore::InheritedFlags::flexWrap):
1634         (WebCore::InheritedFlags::setFlexWrap):
1635         (WebCore::InheritedFlags::initialFlexWrap):
1636         * rendering/style/RenderStyleConstants.h: EFlexWrap to hold flex wrap values.
1637         * rendering/style/StyleFlexibleBoxData.cpp:
1638         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
1639         (WebCore::StyleFlexibleBoxData::operator==):
1640         * rendering/style/StyleFlexibleBoxData.h: 2 bits is enough to hold the 4 flexFlow values.
1641
1642 2011-12-09  KwangHyuk Kim  <hyuki.kim@samsung.com>
1643
1644         [EFL] Add RefPtrEfl specialization for evas_object.
1645         https://bugs.webkit.org/show_bug.cgi?id=73790
1646
1647         Reviewed by Ryosuke Niwa.
1648
1649         As evas_object is also based on reference count, RefPtr is applied for evas_object.
1650
1651         * PlatformEfl.cmake:
1652         * platform/efl/RefPtrEfl.cpp: Added.
1653         (WTF::refIfNotNull):
1654         (WTF::derefIfNotNull):
1655         * platform/efl/RefPtrEfl.h: Added.
1656
1657 2011-12-09  Tony Chang  <tony@chromium.org>
1658
1659         REGRESSION(102234): 2-3% layout regression
1660         https://bugs.webkit.org/show_bug.cgi?id=74141
1661
1662         Reviewed by David Hyatt.
1663
1664         Don't allocate a RuleSet when there are no regions.
1665
1666         * css/CSSStyleSelector.cpp:
1667         (WebCore::CSSStyleSelector::initForRegionStyling):
1668
1669 2011-12-09  Anders Carlsson  <andersca@apple.com>
1670
1671         Fix assertion failure in ScrollAnimatorMac
1672         https://bugs.webkit.org/show_bug.cgi?id=74222
1673
1674         Reviewed by Andreas Kling.
1675
1676         * platform/mac/ScrollAnimatorMac.mm:
1677         (-[WebScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
1678         This can be called with a nil scrollerImp, just return NSZeroPoint when that happens.
1679
1680 2011-12-09  Anders Carlsson  <andersca@apple.com>
1681
1682         Move the "is currently drawing into layer" flag out into ScrollbarThemeMac
1683         https://bugs.webkit.org/show_bug.cgi?id=74217
1684
1685         Reviewed by Beth Dakin.
1686
1687         There's no need to store this flag inside ScrollAnimatorMac, just make it a global and put it in ScrollbarThemeMac instead.
1688
1689         * platform/mac/ScrollAnimatorMac.h:
1690         * platform/mac/ScrollAnimatorMac.mm:
1691         (-[WebScrollbarPainterDelegate layer]):
1692         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
1693         * platform/mac/ScrollbarThemeMac.h:
1694         * platform/mac/ScrollbarThemeMac.mm:
1695         (WebCore::ScrollbarThemeMac::isCurrentlyDrawingIntoLayer):
1696         (WebCore::ScrollbarThemeMac::paint):
1697
1698 2011-12-09  Anders Carlsson  <andersca@apple.com>
1699
1700         Minor cleanup in ScrollAnimatorMac.mm
1701         https://bugs.webkit.org/show_bug.cgi?id=74211
1702
1703         Reviewed by Andreas Kling.
1704
1705         * platform/mac/ScrollAnimatorMac.mm:
1706         (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
1707         No need to get the scrollbar from the scroll animator anymore.
1708
1709         (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
1710         (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
1711         Try to get data from the scrollbar and/or the scrollable area instead of the scrollbar painter.
1712
1713 2011-12-09  David Levin  <levin@chromium.org>
1714
1715         Regression(r53595): Sync xhr requests in workers aren't terminated on worker close.
1716         https://bugs.webkit.org/show_bug.cgi?id=71695
1717
1718         Reviewed by Zoltan Herczeg.
1719
1720         Overview: Message loops rely on the message queue being killed in order
1721         to exit. r53595 stopped this from happening because killing a message loop
1722         would also stop it from doing database clean up tasks. The database clean up
1723         tasks needed to be tasks due to ordering issues. (They wanted to run after
1724         certain order tasks were run.) This was solved by once again terminating
1725         the message queue but then still runnning clean-up tasks from the killed
1726         message queue.
1727
1728         * workers/WorkerRunLoop.cpp:
1729         (WebCore::WorkerRunLoop::run): Added the call to run clean-up tasks.
1730         (WebCore::WorkerRunLoop::runInMode):
1731         (WebCore::WorkerRunLoop::runCleanupTasks): Loop to simply clear out all clean up tasks.
1732         (WebCore::WorkerRunLoop::Task::performTask): Stop non-clean up tasks
1733         from running after the loop has been terminated.
1734         * workers/WorkerRunLoop.h:
1735         (WebCore::WorkerRunLoop::terminated): Just made it const.
1736         * workers/WorkerThread.cpp:
1737         (WebCore::WorkerThreadShutdownFinishTask::performTask): Removed
1738         the terminate clause since it was put back in stop.
1739         (WebCore::WorkerThread::stop): Terminate the run loop so
1740         that all loops will exit and clean up tasks will run. Also removed a comment
1741         about nested workers because nested workers are no longer imminent and the
1742         issue mentioned is one of many that should logically be investigated -- behavior correctness
1743         in the face of different orderings of shutdown between the document and each worker --
1744         when implementing them.
1745
1746 2011-12-09  Tony Chang  <tony@chromium.org>
1747
1748         Unreviewed, rolling out r102416.
1749         http://trac.webkit.org/changeset/102416
1750         https://bugs.webkit.org/show_bug.cgi?id=73394
1751
1752         Chromium Win clobber builds are failing.
1753
1754         * WebCore.gyp/WebCore.gyp:
1755         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
1756         (main):
1757         * WebCore.gypi:
1758         * bindings/scripts/generate-bindings.pl:
1759         * page/DOMWindow.idl:
1760         * webaudio/DOMWindowWebAudio.idl: Removed.
1761
1762 2011-12-09  Eric Carlson  <eric.carlson@apple.com>
1763
1764         JSC wrappers for TextTrack and TextTrackCue should not be collected during event dispatch or when owner is reachable
1765         https://bugs.webkit.org/show_bug.cgi?id=72179
1766
1767         Reviewed by Geoff Garen.
1768
1769         Tests: media/track/text-track-cue-is-reachable.html
1770                media/track/text-track-is-reachable.html
1771
1772         * GNUmakefile.list.am: Add JSTextTrackCueCustom.cpp and JSTextTrackCustom.cpp.
1773         * Target.pri: Ditto.
1774         * WebCore.gypi: Ditto.
1775         * WebCore.xcodeproj/project.pbxproj: Ditto
1776         * bindings/js/JSBindingsAllInOne.cpp: Ditto.
1777
1778         * bindings/js/JSTextTrackCueCustom.cpp: Added.
1779         (WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots): New.
1780         (WebCore::JSTextTrackCueOwner::visitChildren): New.
1781
1782         * bindings/js/JSTextTrackCustom.cpp: Added.
1783         (WebCore::JSTextTrackOwner::isReachableFromOpaqueRoots): New.
1784         (WebCore::JSTextTrack::visitChildren): New, mark all cues.
1785         * bindings/js/JSTextTrackCustom.h: Added.
1786         (WebCore::root): New.
1787
1788         * bindings/js/JSTextTrackListCustom.cpp:
1789         (WebCore::JSTextTrackList::visitChildren): New, mark all tracks.
1790
1791         * html/HTMLMediaElement.cpp:
1792         (WebCore::HTMLMediaElement::trackWillBeRemoved): TextTracks::remove now takes a TextTrack*.
1793
1794         * html/LoadableTextTrack.h:
1795         (WebCore::LoadableTextTrack::trackElement): New, return the <track>.
1796
1797         * html/TextTrack.cpp:
1798         (WebCore::TextTrack::TextTrack): Initialize m_mediaElement.
1799         * html/TextTrack.h:
1800         (WebCore::TextTrack::setMediaElement): New.
1801         (WebCore::TextTrack::mediaElement): Ditto.
1802
1803         * html/TextTrack.idl: Add CustomIsReachable and CustomMarkFunction.
1804
1805         * html/TextTrackCue.idl: Add CustomIsReachable.
1806
1807         * html/track/TextTrackList.cpp:
1808         (TextTrackList::append): Set track's media element.
1809         (TextTrackList::remove): Clear track's media element. Take a raw ptr, not a PassRefPtr.
1810         * html/track/TextTrackList.h:
1811         * html/track/TextTrackList.idl: Add CustomMarkFunction
1812
1813 2011-12-09  Chris Fleizach  <cfleizach@apple.com>
1814
1815         WebKit should ignore images with @alt matching only whitespace
1816         https://bugs.webkit.org/show_bug.cgi?id=74189
1817
1818         Reviewed by Darin Adler.
1819
1820         Test: accessibility/img-alt-tag-only-whitespace.html
1821
1822         * accessibility/AccessibilityRenderObject.cpp:
1823         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1824
1825 2011-12-09  Anders Carlsson  <andersca@apple.com>
1826
1827         Remove NSAnimationContext calls
1828         https://bugs.webkit.org/show_bug.cgi?id=74207
1829
1830         Reviewed by Sam Weinig.
1831
1832         NSAnimationContext is not used for NSAnimation subclasses, so the calls to beginGrouping/endGrouping and setDuration:
1833         are essentially no-ops. Remove them.
1834
1835         * platform/mac/ScrollAnimatorMac.mm:
1836         (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
1837         (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
1838
1839 2011-12-09  Anders Carlsson  <andersca@apple.com>
1840
1841         Rename scrollAnimatorDestroyed to invalidate
1842         https://bugs.webkit.org/show_bug.cgi?id=74206
1843
1844         Reviewed by Sam Weinig.
1845
1846         Since these methods can be called when both scrollbars are destroyed and the scroll animator itself is
1847         destroyed, rename it to something more neutral.
1848
1849         * platform/mac/ScrollAnimatorMac.mm:
1850         (-[WebScrollAnimationHelperDelegate invalidate]):
1851         (-[WebScrollbarPartAnimation invalidate]):
1852         (-[WebScrollbarPainterDelegate invalidate]):
1853         (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
1854         (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
1855         (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
1856
1857 2011-12-09  Anders Carlsson  <andersca@apple.com>
1858
1859         WebScrollbarPainterControllerDelegate should know about the ScrollableArea, not the ScrollAnimatorMac
1860         https://bugs.webkit.org/show_bug.cgi?id=74204
1861
1862         Reviewed by Sam Weinig.
1863
1864         It makes more logical sense to associate the WebScrollbarPainterControllerDelegate object with its ScrollableArea, since
1865         painting has nothing to do with animation.
1866
1867         * platform/mac/ScrollAnimatorMac.mm:
1868         (-[WebScrollbarPainterControllerDelegate initWithScrollableArea:]):
1869         (-[WebScrollbarPainterControllerDelegate invalidate]):
1870         (-[WebScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]):
1871         (-[WebScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]):
1872         (-[WebScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]):
1873         (-[WebScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
1874         (-[WebScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]):
1875         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
1876         (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
1877
1878 2011-12-09  Jarred Nicholls  <jarred@sencha.com>
1879
1880         [JSC] Allow cached attributes in bindings that declare a custom mark function
1881         https://bugs.webkit.org/show_bug.cgi?id=74187
1882
1883         Reviewed by Oliver Hunt.
1884
1885         No new tests, current binding tests are sufficient.
1886
1887         * bindings/scripts/CodeGeneratorJS.pm:
1888         (GenerateImplementation):
1889
1890 2011-12-09  Anders Carlsson  <andersca@apple.com>
1891
1892         Remove duplicate animation ivars
1893         https://bugs.webkit.org/show_bug.cgi?id=74194
1894
1895         Reviewed by Sam Weinig.
1896
1897         Since we now have one WebScrollbarPainterDelegate for each scrollbar, we no longer need separate
1898         vertical/horizontal animation objects, so get rid of them.
1899
1900         * platform/mac/ScrollAnimatorMac.mm:
1901         (-[WebScrollbarPainterDelegate cancelAnimations]):
1902         (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
1903         (-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
1904         (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
1905         (-[WebScrollbarPainterDelegate scrollAnimatorDestroyed]):
1906
1907 2011-12-09  Anders Carlsson  <andersca@apple.com>
1908
1909         WebScrollbarPartAnimation should only know about the scrollbar it's animating
1910         https://bugs.webkit.org/show_bug.cgi?id=74192
1911
1912         Reviewed by Sam Weinig.
1913
1914         * platform/mac/ScrollAnimatorMac.mm:
1915         (-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
1916         Change the designated initializer to just take the scrollbar. Also, make the animation non-blocking here
1917         so we don't have to do it in all the call sites.
1918
1919         (-[WebScrollbarPartAnimation startAnimation]):
1920         Update the scrollbar painter.
1921
1922         (-[WebScrollbarPartAnimation setCurrentProgress:]):
1923         Just invalidate the scrollbar we're animating.
1924
1925         (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
1926         (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
1927         Update call sites to use the new designated initializer.
1928
1929 2011-12-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1930
1931         Inspector: Don't translate the context when rendering the highlights on a tiled layer.
1932         https://bugs.webkit.org/show_bug.cgi?id=74085
1933
1934         Reviewed by Kenneth Rohde Christiansen.
1935
1936         When the frame view is using fixed layouting, the page overlay is the size of the whole
1937         page and the context shouldn't be translated. The visible rect is still used in that
1938         case to display element titles within the visible rect.
1939
1940         Also:
1941         - Rename overlayRect to visibleRect to reduce confusion in this case.
1942         - Remove the superfluous boundingBox check.
1943
1944         * inspector/DOMNodeHighlighter.cpp:
1945
1946 2011-12-09  Vsevolod Vlasov  <vsevik@chromium.org>
1947
1948         Unreviewed inspector utilities syntax fix.
1949
1950         * inspector/front-end/utilities.js:
1951         ():
1952
1953 2011-12-09  Joone Hur  <joone.hur@collabora.co.uk>, Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> 
1954
1955         [GTK] Initial implementation of Accelerated Compositing using Clutter
1956         https://bugs.webkit.org/show_bug.cgi?id=73319
1957
1958         Reviewed by Gustavo Noronha Silva.
1959
1960         No new tests added as this feature will be able to reuse the existing 
1961         CSS3 transforms layout tests.
1962
1963         * GNUmakefile.am: Include WebCore/platform/graphics/clutter path.
1964         * GNUmakefile.list.am: Add GraphicsLayerClutter.
1965         * platform/clutter/GRefPtrClutter.cpp: Added.
1966         (WTF::adoptGRef):
1967         (WTF::ClutterActor):
1968         * platform/clutter/GRefPtrClutter.h: Added.
1969         * platform/graphics/GraphicsLayer.h: Define PlatformLayer type, which represents ClutterActor.
1970         * platform/graphics/clutter/GraphicsLayerClutter.cpp: Boilerplate implementation.
1971         (WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
1972         (WebCore::GraphicsLayerClutter::platformLayer):
1973         * platform/graphics/clutter/GraphicsLayerClutter.h: Boilerplate implementation.
1974
1975 2011-12-08  Vsevolod Vlasov  <vsevik@chromium.org>
1976
1977         Web Inspector: Introduce a Map class allowing to store values indexed by arbitrary objects.
1978         https://bugs.webkit.org/show_bug.cgi?id=74084
1979
1980         Reviewed by Pavel Feldman.
1981
1982         Test: inspector/map.html
1983
1984         * inspector/front-end/treeoutline.js:
1985         (TreeOutline):
1986         ():
1987         (TreeElement.prototype.collapse):
1988         (TreeElement.prototype.expand):
1989         * inspector/front-end/utilities.js:
1990         ():
1991
1992 2011-12-09  Peter Rybin  <peter.rybin@gmail.com>
1993
1994         Web Inspector: [protocol] generate C++ classes for protocol JSON named types
1995         https://bugs.webkit.org/show_bug.cgi?id=72835
1996
1997         Reviewed by Yury Semikhatsky.
1998
1999         Extends python generator functionality.
2000         Makes constructor in InspectorObject public.
2001
2002         * inspector/CodeGeneratorInspector.py:
2003         * inspector/InspectorValues.h:
2004
2005 2011-12-08  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
2006
2007         [Qt] [WK2] Webkit should release TextureMapper GL objects if page paint node is deallocated.
2008         https://bugs.webkit.org/show_bug.cgi?id=73591
2009
2010         Reviewed by Noam Rosenthal.
2011
2012         Implementation of helper function to remove all GL allocated tiles
2013         when QQuickWebView gets removed from canvas.
2014
2015         Tested by new API test in WK2 (tst_QQuickWebView::removeFromCanvas).
2016
2017         * platform/graphics/texmap/TextureMapperNode.cpp:
2018         (WebCore::TextureMapperNode::purgeNodeTexturesRecursive):
2019         * platform/graphics/texmap/TextureMapperNode.h:
2020
2021 2011-12-08  Leo Yang  <leo.yang@torchmobile.com.cn>
2022
2023         Upstream platform/network/blackberry/DeferredData.{h, cpp}, NetworkJob.{h, cpp} and NetworkManager.{h, cpp}
2024         https://bugs.webkit.org/show_bug.cgi?id=73791
2025
2026         Reviewed by Rob Buis.
2027
2028         Other main contributors:
2029         Joe Mason <jmason@rim.com>
2030         Lianghui Chen <liachen@rim.com>
2031         Charles Wei <charles.wei@torchmobile.com.cn>
2032
2033         Initial upstream, can't be built yet, no new tests.
2034
2035         * platform/network/blackberry/DeferredData.cpp: Added.
2036         * platform/network/blackberry/DeferredData.h: Added.
2037         * platform/network/blackberry/NetworkJob.cpp: Added.
2038         * platform/network/blackberry/NetworkJob.h: Added.
2039         * platform/network/blackberry/NetworkManager.cpp: Added.
2040         * platform/network/blackberry/NetworkManager.h: Added.
2041
2042 2011-12-08  Ryosuke Niwa  <rniwa@webkit.org>
2043
2044         It's semantically incorrect to call notifyNodeListsAttributeChanged in dispatchSubtreeModifiedEvent
2045         https://bugs.webkit.org/show_bug.cgi?id=74028
2046
2047         Reviewed by Darin Adler.
2048
2049         Remove a call to notifyNodeListsAttributeChanged in dispatchSubtreeModified and add explicit calls
2050         to notifyNodeListsAttributeChanged at appropriate places.
2051
2052         Also merge notifyNodeListsChildrenChanged with notifyLocalNodeListsChildrenChanged, and
2053         notifyNodeListsAttributeChanged with notifyLocalNodeListsAttributeChanged, and rename them to
2054         invalidateNodeListsCacheAfterAttributeChanges and invalidateNodeListsCacheAfterNodeChanges respectively.
2055
2056         * dom/Attr.cpp:
2057         (WebCore::Attr::childrenChanged):
2058         * dom/ContainerNode.cpp:
2059         (WebCore::ContainerNode::childrenChanged):
2060         * dom/Document.cpp:
2061         (WebCore::Document::updateRangesAfterNodeChanges):
2062         * dom/Document.h:
2063         * dom/NamedNodeMap.cpp:
2064         (WebCore::NamedNodeMap::addAttribute):
2065         (WebCore::NamedNodeMap::removeAttribute):
2066         * dom/Node.cpp:
2067         (WebCore::removeNodeListCacheIfPossible):
2068         (WebCore::Node::unregisterDynamicNodeList):
2069         (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanges):
2070         (WebCore::Node::invalidateNodeListsCacheAfterNodeChanges):
2071         (WebCore::Node::dispatchSubtreeModifiedEvent):
2072         * dom/Node.h:
2073         * dom/NodeRareData.h:
2074         * dom/StyledElement.cpp:
2075         (WebCore::StyledElement::classAttributeChanged):
2076
2077 2011-12-08  Kenichi Ishibashi  <bashi@chromium.org>
2078
2079         Unreviewed, rolling out r102418.
2080         http://trac.webkit.org/changeset/102418
2081         https://bugs.webkit.org/show_bug.cgi?id=71870
2082
2083         Caused Chromium build failure.
2084
2085         * CMakeLists.txt:
2086         * DerivedSources.make:
2087         * DerivedSources.pri:
2088         * GNUmakefile.list.am:
2089         * Target.pri:
2090         * WebCore.gypi:
2091         * WebCore.xcodeproj/project.pbxproj:
2092         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2093         (WebCore::toJS):
2094         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2095         (WebCore::toV8Object):
2096         * html/canvas/WebGLExtension.h:
2097         * html/canvas/WebGLRenderingContext.cpp:
2098         (WebCore::WebGLRenderingContext::getExtension):
2099         (WebCore::WebGLRenderingContext::getSupportedExtensions):
2100         (WebCore::WebGLRenderingContext::maybeRestoreContext):
2101         * html/canvas/WebGLRenderingContext.h:
2102         * html/canvas/WebKitLoseContext.cpp: Renamed from Source/WebCore/html/canvas/WebGLLoseContext.cpp.
2103         (WebCore::WebKitLoseContext::WebKitLoseContext):
2104         (WebCore::WebKitLoseContext::~WebKitLoseContext):
2105         (WebCore::WebKitLoseContext::getName):
2106         (WebCore::WebKitLoseContext::create):
2107         (WebCore::WebKitLoseContext::loseContext):
2108         (WebCore::WebKitLoseContext::restoreContext):
2109         * html/canvas/WebKitLoseContext.h: Renamed from Source/WebCore/html/canvas/WebGLLoseContext.h.
2110         * html/canvas/WebKitLoseContext.idl: Renamed from Source/WebCore/html/canvas/WebGLLoseContext.idl.
2111
2112 2011-12-08  Fady Samuel  <fsamuel@chromium.org>
2113
2114         [Chromium] Enable viewport metatag
2115         https://bugs.webkit.org/show_bug.cgi?id=73495
2116
2117         Reviewed by Darin Fisher.
2118
2119         Recompute viewpot parameters on frame rect resize.
2120
2121         * page/FrameView.cpp:
2122         (WebCore::FrameView::setFrameRect):
2123
2124 2011-12-08  Kent Tamura  <tkent@chromium.org>
2125
2126         Build fix for r102419.
2127         https://bugs.webkit.org/show_bug.cgi?id=73916
2128
2129         * platform/PopupMenuClient.h:
2130         (WebCore::PopupMenuClient::listBoxSelectItem):
2131         Remove unused argument names.
2132
2133 2011-12-08  Kentaro Hara  <haraken@chromium.org>
2134
2135         Unreviewed. Rebaselined run-bindings-tests results.
2136
2137         * bindings/scripts/test/JS/JSFloat64Array.cpp:
2138         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2139         * bindings/scripts/test/JS/JSTestInterface.cpp:
2140         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2141         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2142         * bindings/scripts/test/JS/JSTestObj.cpp:
2143         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2144
2145 2011-12-08  Mary Wu  <mary.wu@torchmobile.com.cn>
2146
2147         Upstream BlackBerry porting of MIMETypeRegistry/KeyboardEvent
2148         https://bugs.webkit.org/show_bug.cgi?id=73534
2149
2150         Reviewed by Rob Buis.
2151
2152         Other main contributors:
2153         Mike Fenton <mifenton@rim.com>
2154         Joe Mason <jmason@rim.com>
2155         Max Feil <mfeil@qnx.com>
2156         Lukas Sydorowski <lsydorowski@rim.com>
2157         Crystal Zhang <haizhang@rim.com> 
2158
2159         Initial upstream, no new tests.
2160
2161         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp: Added.
2162         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
2163         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
2164         (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
2165         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp: Added.
2166         (WebCore::keyIdentifierForBlackBerryCharacter):
2167         (WebCore::windowsKeyCodeForBlackBerryCharacter):
2168         (WebCore::adjustCharacterFromOS):
2169         (WebCore::toWebCorePlatformKeyboardEventType):
2170         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2171         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
2172         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
2173         (WebCore::PlatformKeyboardEvent::getCurrentModifierState):
2174
2175 2011-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2176
2177         Unreviewed, rolling out r101619.
2178         http://trac.webkit.org/changeset/101619
2179         https://bugs.webkit.org/show_bug.cgi?id=74158
2180
2181         this patch produces bad behaviour on mac (Requested by
2182         jeremya_ on #webkit).
2183
2184         * page/EventHandler.cpp:
2185         (WebCore::EventHandler::handleMouseMoveEvent):
2186         (WebCore::EventHandler::dragSourceEndedAt):
2187         * rendering/RenderLayer.cpp:
2188         (WebCore::RenderLayer::updateHoverActiveState):
2189
2190 2011-12-08  Adam Klein  <adamk@chromium.org>
2191
2192         [MutationObservers] V8LazyEventHandler breaks microtask delivery semantics
2193         https://bugs.webkit.org/show_bug.cgi?id=73492
2194
2195         Reviewed by Adam Barth.
2196
2197         Test: fast/mutation/inline-event-listener.html
2198
2199         * bindings/v8/V8LazyEventListener.cpp:
2200         (WebCore::V8LazyEventListener::prepareListenerObject): Call v8::Script::Run directly instead of going through V8Proxy.
2201
2202 2011-12-08  Hayato Ito  <hayato@chromium.org>
2203
2204         Suppress rendering of light children when ShadowRoot is dynamically created.
2205         https://bugs.webkit.org/show_bug.cgi?id=72441
2206
2207         Reviewed by Ryosuke Niwa.
2208
2209         Tests: fast/dom/shadow/dynamically-created-shadow-root-expected.html
2210                fast/dom/shadow/dynamically-created-shadow-root.html
2211
2212         * dom/Element.cpp:
2213         (WebCore::Element::setShadowRoot):
2214
2215 2011-12-08  Pierre Rossi  <pierre.rossi@gmail.com>
2216
2217         Drop ENABLE_NO_LISTBOX_RENDERING, and make it a runtime decision.
2218         https://bugs.webkit.org/show_bug.cgi?id=73916
2219
2220         This was needed for Qt since the mobile theme, which can be picked
2221         up at runtime, delegates the rendering of list boxes.
2222
2223         Reviewed by Kent Tamura.
2224
2225         No new tests, there's no functional change.
2226
2227         * html/HTMLSelectElement.cpp:
2228         (WebCore::HTMLSelectElement::usesMenuList):
2229         * html/HTMLSelectElement.h:
2230         * platform/PopupMenuClient.h:
2231         (WebCore::PopupMenuClient::listBoxSelectItem):
2232         (WebCore::PopupMenuClient::multiple):
2233         * platform/qt/RenderThemeQtMobile.h:
2234         (WebCore::RenderThemeQtMobile::delegatesMenuListRendering):
2235         * rendering/RenderMenuList.cpp:
2236         (WebCore::RenderMenuList::multiple):
2237         * rendering/RenderMenuList.h:
2238         * rendering/RenderTheme.h:
2239         (WebCore::RenderTheme::delegatesMenuListRendering):
2240
2241 2011-12-08  Kenneth Russell  <kbr@google.com>
2242
2243         Rename WEBKIT_lose_context to WEBKIT_WEBGL_lose_context
2244         https://bugs.webkit.org/show_bug.cgi?id=71870
2245
2246         Reviewed by James Robinson.
2247
2248         Rename largely done with do-webcore-rename with a couple of
2249         necessary manual fixups. Ran WebGL layout tests.
2250
2251         * CMakeLists.txt:
2252         * DerivedSources.make:
2253         * DerivedSources.pri:
2254         * GNUmakefile.list.am:
2255         * Target.pri:
2256         * WebCore.gypi:
2257         * WebCore.xcodeproj/project.pbxproj:
2258         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2259         (WebCore::toJS):
2260         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2261         (WebCore::toV8Object):
2262         * html/canvas/WebGLExtension.h:
2263         * html/canvas/WebGLLoseContext.cpp: Copied from Source/WebCore/html/canvas/WebKitLoseContext.cpp.
2264         (WebCore::WebGLLoseContext::WebGLLoseContext):
2265         (WebCore::WebGLLoseContext::~WebGLLoseContext):
2266         (WebCore::WebGLLoseContext::getName):
2267         (WebCore::WebGLLoseContext::create):
2268         (WebCore::WebGLLoseContext::loseContext):
2269         (WebCore::WebGLLoseContext::restoreContext):
2270         * html/canvas/WebGLLoseContext.h: Copied from Source/WebCore/html/canvas/WebKitLoseContext.h.
2271         * html/canvas/WebGLLoseContext.idl: Copied from Source/WebCore/html/canvas/WebKitLoseContext.idl.
2272         * html/canvas/WebGLRenderingContext.cpp:
2273         (WebCore::WebGLRenderingContext::getExtension):
2274         (WebCore::WebGLRenderingContext::getSupportedExtensions):
2275         (WebCore::WebGLRenderingContext::maybeRestoreContext):
2276         * html/canvas/WebGLRenderingContext.h:
2277         * html/canvas/WebKitLoseContext.cpp: Removed.
2278         * html/canvas/WebKitLoseContext.h: Removed.
2279         * html/canvas/WebKitLoseContext.idl: Removed.
2280
2281 2011-12-08  Kentaro Hara  <haraken@chromium.org>
2282
2283         Use the [Supplemental] IDL for webaudio attributes in Chromium
2284         https://bugs.webkit.org/show_bug.cgi?id=73394
2285
2286         Reviewed by Adam Barth.
2287
2288         - Overview: Using the [Supplemental] IDL, this patch moves the attribute
2289         declarations of webaudio from DOMWindow.idl into a new IDL file
2290         webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
2291         feature (aka a module).
2292
2293         - This patch changes the build flow of WebCore.gyp as follows:
2294
2295             Previous build flow:
2296                 foreach $idl (all IDL files) {
2297                     generate-bindings.pl depends on $idl;
2298                     generate-bindings.pl reads $idl;
2299                     generate-bindings.pl generates .h and .cpp files for $idl;
2300                 }
2301
2302             New build flow (See the discussions in bug 72138 for more details):
2303                 resolve-supplemental.pl depends on all IDL files;
2304                 resolve-supplemental.pl reads all IDL files;
2305                 resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
2306                 resolve-supplemental.pl outputs supplemental_dependency.tmp;
2307                 foreach $idl (all IDL files) {
2308                     generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
2309                     generate-bindings.pl reads $idl;
2310                     generate-bindings.pl reads supplemental_dependency.tmp;
2311                     generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
2312                 }
2313
2314         - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
2315         will be removed after build scripts for all platforms support the [Supplemental] IDL.
2316         The motivation for the [Supplemented] IDL is as follows:
2317
2318         In order to support the [Supplemental] IDL, we need to
2319         (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
2320         (2) and run generate-bindings.pl with the supplemental_dependency.tmp.
2321
2322         This build flow requires a change on the following build scripts,
2323         but changing all the build scripts all at once without any regression is too difficult:
2324
2325             - DerivedSources.make
2326             - DerivedSources.pri
2327             - GNUmakefile.am
2328             - PlatformBlackBerry.cmake
2329             - UseJSC.cmake
2330             - UseV8.cmake
2331             - WebCore.vcproj/MigrateScripts
2332             - WebCore.vcproj/WebCore.vcproj
2333             - bindings/gobject/GNUmakefile.am
2334             - WebCore.gyp/WebCore.gyp
2335
2336         Thus, we are planning to change the build scripts one by one, which implies that
2337         we need to allow the temporary state in which some build scripts support [Supplemental] IDL
2338         but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
2339         The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
2340         in another IDL file somewhere, like this:
2341
2342             DOMWindowWebAudio.idl:
2343                 interface [
2344                     Supplemental=DOMWindow
2345                 ] DOMWindowWebAudio {
2346                     attribute attr1;
2347                     attribute attr2;
2348                 };
2349
2350             DOMWindow.idl:
2351                 interface [
2352                 ] DOMWindow {
2353                     attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
2354                     attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
2355                     attribute attr3;
2356                     attribute attr4;
2357                 };
2358
2359         Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:
2360
2361             - If a given build script supports the [Supplemental] IDL,
2362             generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
2363             - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
2364             as normal attributes and instead ignores all attributes with the [Supplemental] IDL
2365             (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).
2366
2367         Tests: webaudio/*
2368
2369         * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
2370         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
2371         (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file. If the file name is a "/cygdrive/c/..."-style path, it is converted to a "C:\cygwin\..."-style path by the cygpath command.
2372         * WebCore.gypi: Added DOMWindowWebAudio.idl.
2373         * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
2374         * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
2375         * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.
2376
2377 2011-12-08  Van Lam  <vanlam@google.com>
2378
2379         Caret keeps blinking during forward-delete
2380         https://bugs.webkit.org/show_bug.cgi?id=38564
2381
2382         Reviewed by Darin Adler.
2383
2384         Currently updateAppearance determines if the caret should stop blinking
2385         based on whether or not the editing operation changed the position of
2386         the caret; so the caret stops blinking in case of typing text and
2387         backwards delete (which always displace the caret) but does not stop
2388         blinking in the case of forward delete (which does not displace the
2389         caret).
2390
2391         Added a boolean member function shouldStopCaretBlinking in EditCommand
2392         which will return true if the object is a TypingCommand (my
2393         understanding here is that all TypingCommands should stop the caret
2394         from blinking for a cycle, currently 0.5 seconds). Then used this
2395         function to stop the caret from blinking if the last editing command
2396         is a TypingCommand.
2397
2398         * editing/EditCommand.h:
2399         (WebCore::EditCommand::shouldStopCaretBlinking):
2400         * editing/FrameSelection.cpp:
2401         (WebCore::FrameSelection::updateAppearance):
2402         * editing/TypingCommand.h:
2403         (WebCore::TypingCommand::shouldStopCaretBlinking):
2404
2405 2011-12-08  Adam Klein  <adamk@chromium.org>
2406
2407         Use HashMap<Node*, OwnPtr<...>> in ChildListMutationScope
2408         https://bugs.webkit.org/show_bug.cgi?id=73964
2409
2410         Reviewed by Darin Adler.
2411
2412         Re-landing r102267 with a fix for the clang build.
2413
2414         No new tests, refactoring only.
2415
2416         * dom/ChildListMutationScope.cpp:
2417         (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::childAdded):
2418         (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::willRemoveChild):
2419         (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::incrementScopingLevel):
2420         (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::decrementScopingLevel):
2421
2422 2011-12-08  Anders Carlsson  <andersca@apple.com>
2423
2424         WebScrollbarPainterDelegate should have a pointer to its Scrollbar
2425         https://bugs.webkit.org/show_bug.cgi?id=74149
2426
2427         Reviewed by Darin Adler.
2428
2429         This is another step towards making the scroll animation code more robust.
2430
2431         * platform/mac/ScrollAnimatorMac.mm:
2432         (-[WebScrollbarPainterDelegate initWithScrollbar:WebCore::]):
2433         (-[WebScrollbarPainterDelegate scrollAnimator]):
2434         (-[WebScrollbarPainterDelegate layer]):
2435         (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
2436         (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
2437         (-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
2438         (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
2439         (-[WebScrollbarPainterDelegate scrollAnimatorDestroyed]):
2440         (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
2441         (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
2442
2443 2011-12-08  Rakesh KN  <rakesh.kn@motorola.com>
2444
2445         keyboard event doesn't fire while moving mouse with button pressed
2446         https://bugs.webkit.org/show_bug.cgi?id=73821
2447
2448         Reviewed by Alexey Proskuryakov.
2449
2450         Autoscroll should not stop on key press.
2451
2452         Test: fast/events/autoscroll-should-not-stop-on-keypress.html
2453
2454         * page/EventHandler.cpp:
2455         (WebCore::EventHandler::keyEvent):
2456         Removed the check for autoscroll so that autoscroll is not stopped on
2457         key press and key event is processed. 
2458
2459 2011-12-08  Anders Carlsson  <andersca@apple.com>
2460
2461         Add scrollAnimator getter method to WebScrollbarPainterDelegate
2462         https://bugs.webkit.org/show_bug.cgi?id=74146
2463
2464         Reviewed by Beth Dakin.
2465
2466         * platform/mac/ScrollAnimatorMac.mm:
2467         (-[WebScrollbarPainterDelegate scrollAnimator]):
2468         (-[WebScrollbarPainterDelegate layer]):
2469         (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
2470         (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
2471         (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
2472         (-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
2473         (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
2474
2475 2011-12-08  James Robinson  <jamesr@chromium.org>
2476
2477         Improve handling of frame removal during requestAnimationFrame callback invocation
2478         https://bugs.webkit.org/show_bug.cgi?id=74036
2479
2480         Reviewed by Adam Barth.
2481
2482         See bug for details.
2483
2484         Test: fast/animation/request-animation-frame-detach-element.html
2485
2486         * dom/Document.cpp:
2487         (WebCore::Document::removedLastRef):
2488         (WebCore::Document::detach):
2489         * dom/Document.h:
2490         * dom/ScriptedAnimationController.cpp:
2491         (WebCore::ScriptedAnimationController::~ScriptedAnimationController):
2492         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
2493         (WebCore::ScriptedAnimationController::scheduleAnimation):
2494         * dom/ScriptedAnimationController.h:
2495         (WebCore::ScriptedAnimationController::create):
2496         (WebCore::ScriptedAnimationController::clearDocumentPointer):
2497         * page/FrameView.cpp:
2498         (WebCore::FrameView::serviceScriptedAnimations):
2499
2500 2011-12-08  Yongjun Zhang  <yongjun_zhang@apple.com>
2501
2502         Use bitfield for bool data members in BitmapImage.
2503         https://bugs.webkit.org/show_bug.cgi?id=74102
2504
2505         Reviewed by Darin Adler.
2506
2507         Class BitmapImage and FrameData has bool data members, we can use bitfield for those data
2508         members to reduce the BitmapImage's memory footprint.
2509
2510         * platform/graphics/BitmapImage.cpp:
2511         (WebCore::BitmapImage::BitmapImage):
2512         * platform/graphics/BitmapImage.h:
2513         (WebCore::FrameData::FrameData):
2514         * platform/graphics/cairo/ImageCairo.cpp:
2515         (WebCore::BitmapImage::BitmapImage):
2516         * platform/graphics/cg/ImageCG.cpp:
2517         (WebCore::BitmapImage::BitmapImage):
2518         * platform/graphics/openvg/ImageOpenVG.cpp:
2519         (WebCore::BitmapImage::BitmapImage):
2520         * platform/graphics/qt/ImageQt.cpp:
2521         (WebCore::BitmapImage::BitmapImage):
2522
2523 2011-12-08  Anders Carlsson  <andersca@apple.com>
2524
2525         Fix a paste-o in ScrollAnimatorMac::updateScrollerStyle
2526         https://bugs.webkit.org/show_bug.cgi?id=74145
2527
2528         Reviewed by Sam Weinig.
2529
2530         Call setHorizontalScrollerImp to set the horizontal scrollbar painter.
2531
2532         * platform/mac/ScrollAnimatorMac.mm:
2533         (WebCore::ScrollAnimatorMac::updateScrollerStyle):
2534
2535 2011-12-08  Anders Carlsson  <andersca@apple.com>
2536
2537         Create one WebScrollbarPainterDelegate for each scrollbar
2538         https://bugs.webkit.org/show_bug.cgi?id=74142
2539
2540         Reviewed by Sam Weinig.
2541
2542         Create and destroy WebScrollbarPainterDelegate objects as scrollbars come and go.
2543         This is a step towards simplifying the WebScrollbarPainterDelegate object.
2544
2545         * platform/mac/ScrollAnimatorMac.h:
2546         * platform/mac/ScrollAnimatorMac.mm:
2547         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
2548         (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
2549         (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
2550         (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
2551         (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
2552         (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
2553         (WebCore::ScrollAnimatorMac::cancelAnimations):
2554
2555 2011-12-08  David Reveman  <reveman@chromium.org>
2556
2557         [Chromium] Add per-tile painting flag to DumpRenderTree and rename AcceleratedDrawing to AcceleratedPainting in chromium specific code.
2558         https://bugs.webkit.org/show_bug.cgi?id=74017
2559
2560         Reviewed by James Robinson.
2561
2562         Add per-tile drawing to page settings.
2563
2564         No new tests.
2565
2566         * page/Settings.h:
2567         (WebCore::Settings::setPerTileDrawingEnabled):
2568         (WebCore::Settings::perTileDrawingEnabled):
2569         * testing/Internals.cpp:
2570         (WebCore::Internals::setPerTileDrawingEnabled):
2571         * testing/Internals.h:
2572
2573 2011-12-08  Anders Carlsson  <andersca@apple.com>
2574
2575         Add a scrollbarPainterForScrollbar helper function
2576         https://bugs.webkit.org/show_bug.cgi?id=74139
2577
2578         Reviewed by Sam Weinig.
2579
2580         * platform/mac/ScrollAnimatorMac.mm:
2581         (macScrollbarTheme):
2582         (scrollbarPainterForScrollbar):
2583         (WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
2584         (WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
2585         (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
2586         (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
2587         (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
2588         (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
2589
2590 2011-12-08  James Robinson  <jamesr@chromium.org>
2591
2592         [chromium] Move NonCompositedContentHost to WebKit
2593         https://bugs.webkit.org/show_bug.cgi?id=74047
2594
2595         Reviewed by Kenneth Russell.
2596
2597         Updates WebCore.gypi to remove files no longer within WebCore and removes unused forward declaration and include
2598         from LayerRendererChromium.
2599
2600         * WebCore.gypi:
2601         * platform/graphics/chromium/LayerRendererChromium.cpp:
2602         * platform/graphics/chromium/LayerRendererChromium.h:
2603
2604 2011-12-08  Sami Kyostila  <skyostil@google.com>
2605
2606         [chromium] Layer contents scale change should trigger invalidation
2607
2608         https://bugs.webkit.org/show_bug.cgi?id=74086
2609
2610         When the contents scale of a layer is changed, the entire contents of
2611         the layer should be marked dirty.
2612
2613         Reviewed by James Robinson.
2614
2615         * platform/graphics/chromium/LayerChromium.cpp:
2616         (WebCore::LayerChromium::setContentsScale):
2617
2618 2011-12-08  Stephen White  <senorblanco@chromium.org>
2619
2620         [chromium] Add CSS_FILTERS custom binding file to WebCore.gypi.
2621         https://bugs.webkit.org/show_bug.cgi?id=74091
2622
2623         Reviewed by Adam Barth.
2624
2625         If it builds, you're happy.
2626
2627         * WebCore.gypi:
2628
2629 2011-12-08  Ryosuke Niwa  <rniwa@webkit.org>
2630
2631         Line breaks are lost when pasted into textarea text starting with a blank line set while textarea is hidden
2632         https://bugs.webkit.org/show_bug.cgi?id=74126
2633
2634         Reviewed by Tony Chang.
2635
2636         The bug was caused by the code that generated text out of pre-rendered text was generating div's inside the fragment
2637         pasted into textarea even though serialization algorithm in textarea doesn't handle block elements.
2638
2639         Fixed the bug by special-casing this in createFragmentFromText. In the long run, we should really get rid of this
2640         whole pre-rendering trick.
2641
2642         * editing/markup.cpp:
2643         (WebCore::createFragmentFromText):
2644
2645 2011-12-08  Florin Malita  <fmalita@google.com>
2646
2647         Moving SVG elements on the page doesn't always erase element at the old position
2648         https://bugs.webkit.org/show_bug.cgi?id=74002
2649
2650         Reviewed by Darin Adler.
2651
2652         Test: svg/repaint/container-repaint.svg
2653
2654         * rendering/svg/RenderSVGContainer.cpp:
2655         (WebCore::RenderSVGContainer::layout):
2656         Save the old repaint bounds before updating the viewport.
2657
2658 2011-12-08  Tim Horton  <timothy_horton@apple.com>
2659
2660         Enable animations of CSS images using -webkit-cross-fade
2661         https://bugs.webkit.org/show_bug.cgi?id=74049
2662         <rdar://problem/10209303>
2663
2664         Reviewed by Simon Fraser.
2665
2666         Add support for animating CSS images in the following properties:
2667             - background(-image)
2668             - border-image(-source)
2669             - list-style(-image)
2670             - -webkit-mask-box-image(-source)
2671             - -webkit-mask-image(-source)
2672         
2673         This patch only adds support for transitioning between NinePieceImages
2674         where all of the properties except the image itself are equal, and the
2675         size of the images are equal. Other cases will not animate.
2676         
2677         Add animation blend functions for StyleImage and NinePieceImage.
2678         
2679         Apply the proper compositing operation to -webkit-cross-fade, and
2680         fix handling of the destination and source areas to support scaling.
2681
2682         Tests: animations/cross-fade-background-image.html
2683                animations/cross-fade-border-image-source.html
2684                animations/cross-fade-list-style-image.html
2685                animations/cross-fade-webkit-mask-box-image.html
2686                animations/cross-fade-webkit-mask-image.html
2687
2688         * css/CSSCrossfadeValue.cpp:
2689         (WebCore::cachedImageForCSSValue):
2690         (WebCore::CSSCrossfadeValue::fixedSize):
2691         (WebCore::CSSCrossfadeValue::image):
2692         * css/CSSImageValue.cpp:
2693         (WebCore::CSSImageValue::CSSImageValue):
2694         * css/CSSImageValue.h:
2695         (WebCore::CSSImageValue::create):
2696         * page/animation/AnimationBase.cpp:
2697         (WebCore::crossfadeBlend):
2698         (WebCore::blendFunc):
2699         (WebCore::RefCountedPropertyWrapper::RefCountedPropertyWrapper):
2700         (WebCore::RefCountedPropertyWrapper::blend):
2701         (WebCore::FillLayerRefCountedPropertyWrapper::FillLayerRefCountedPropertyWrapper):
2702         (WebCore::FillLayerRefCountedPropertyWrapper::blend):
2703         (WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
2704         (WebCore::AnimationBase::ensurePropertyMap):
2705         (WebCore::addShorthandProperties):
2706         * platform/graphics/CrossfadeGeneratedImage.cpp:
2707         (WebCore::CrossfadeGeneratedImage::drawCrossfade):
2708         (WebCore::CrossfadeGeneratedImage::draw):
2709         (WebCore::CrossfadeGeneratedImage::drawPattern):
2710         * platform/graphics/CrossfadeGeneratedImage.h:
2711         * rendering/style/RenderStyle.h:
2712         (WebCore::InheritedFlags::setMaskImage):
2713
2714 2011-12-08  Stephen White  <senorblanco@chromium.org>
2715
2716         Use Skia's implementation of Gaussian blur when accelerated filters
2717         are enabled.
2718         https://bugs.webkit.org/show_bug.cgi?id=73949
2719
2720         Reviewed by Zoltan Herczeg.
2721
2722         In the future, this will be covered by the SVG tests run in GPU mode.
2723
2724         * WebCore.gypi:
2725         Add FEGaussianBlurSkia.cpp to the build.
2726         * platform/graphics/filters/FEGaussianBlur.cpp:
2727         (WebCore::FEGaussianBlur::platformApplySoftware):
2728         Call out to platformApplySkia() when USE_SKIA is enabled.
2729         * platform/graphics/filters/FEGaussianBlur.h:
2730         platformApplySkia() declaration.
2731         * platform/graphics/filters/skia: Added.
2732         * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp: Added.
2733         (WebCore::FEGaussianBlur::platformApplySkia):
2734         On the Skia port, use SkBlurImageFilter for drawing
2735         Gaussian blurs in accelerated mode.
2736         * platform/graphics/skia/ImageBufferSkia.cpp:
2737         (WebCore::ImageBuffer::copyImage):
2738         Implement ImageBuffer::copyImage() with DontCopyBackingStore semantics.
2739
2740 2011-12-08  Erik Arvidsson  <arv@chromium.org>
2741
2742         CodeGeneratorV8: Fix issue with overloaded static conditional methods
2743         https://bugs.webkit.org/show_bug.cgi?id=74114
2744
2745         Reviewed by Adam Barth.
2746
2747         The code generator was missing checks for Conditional for overloaded methods.
2748
2749         * bindings/scripts/CodeGeneratorV8.pm:
2750         (GenerateOverloadedFunctionCallback): Generate needed #ifdefs.
2751         (GenerateFunctionCallback): Ditto.
2752         * bindings/scripts/test/V8/V8TestObj.cpp: Wrap conditional methods with #ifdefs.
2753         (WebCore::ConfigureV8TestObjTemplate):
2754
2755 2011-12-08  Dominic Mazzoni  <dmazzoni@google.com>
2756
2757         AccessibilityController should support listening to notifications on all elements.
2758         https://bugs.webkit.org/show_bug.cgi?id=72866
2759
2760         Changes accessibilitySetShouldRepostNotifications from an instance method
2761         into a class method so that it can be used for global notification listeners,
2762         not just for listeners on a particular object.
2763
2764         Reviewed by Chris Fleizach.
2765
2766         Test: accessibility/notification-listeners.html
2767
2768         * accessibility/mac/WebAccessibilityObjectWrapper.h:
2769         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
2770         (+[WebAccessibilityObjectWrapper accessibilitySetShouldRepostNotifications:]):
2771         (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):
2772
2773 2011-12-08  Vsevolod Vlasov  <vsevik@chromium.org>
2774
2775         Web Inspector: Rename createScriptCallStack() without parameters to createScriptCallStackForInspector().
2776         https://bugs.webkit.org/show_bug.cgi?id=74120
2777
2778         Reviewed by Pavel Feldman.
2779
2780         * bindings/js/ScriptCallStackFactory.cpp:
2781         (WebCore::createScriptCallStackForInspector):
2782         * bindings/js/ScriptCallStackFactory.h:
2783         * bindings/scripts/CodeGeneratorJS.pm:
2784         (GenerateParametersCheck):
2785         * bindings/scripts/CodeGeneratorV8.pm:
2786         (GenerateFunctionCallback):
2787         * bindings/scripts/test/JS/JSTestObj.cpp:
2788         (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
2789         * bindings/scripts/test/V8/V8TestObj.cpp:
2790         (WebCore::TestObjInternal::customArgsAndExceptionCallback):
2791         * bindings/v8/ScriptCallStackFactory.cpp:
2792         (WebCore::createScriptCallStackForInspector):
2793         * bindings/v8/ScriptCallStackFactory.h:
2794
2795 2011-12-08  Adrienne Walker  <enne@google.com>
2796
2797         [chromium] Remove dead code in compositor
2798         https://bugs.webkit.org/show_bug.cgi?id=74103
2799
2800         Reviewed by James Robinson.
2801
2802         Tested via the compiler.
2803
2804         * platform/graphics/chromium/LayerChromium.h:
2805         * platform/graphics/chromium/LayerRendererChromium.cpp:
2806         * platform/graphics/chromium/LayerRendererChromium.h:
2807
2808 2011-12-08  Eric Penner  <epenner@google.com>
2809
2810         [chromium] Need to adjust memory limit and viewport multipliers.
2811         https://bugs.webkit.org/show_bug.cgi?id=74022
2812
2813         Reviewed by James Robinson.
2814
2815         * platform/graphics/chromium/TextureManager.cpp:
2816         (WebCore::TextureManager::highLimitBytes): Changing constants
2817         (WebCore::TextureManager::reclaimLimitBytes): ditto
2818
2819 2011-12-08  Benjamin Poulain  <bpoulain@apple.com>
2820
2821         Add a platform EventLoop for iOS
2822         https://bugs.webkit.org/show_bug.cgi?id=74043
2823
2824         Reviewed by David Kilzer.
2825
2826         * WebCore.xcodeproj/project.pbxproj:
2827         * platform/ios/EventLoopIOS.mm: Added.
2828         (WebCore::EventLoop::cycle):
2829
2830 2011-12-08  Pavel Feldman  <pfeldman@google.com>
2831
2832         Web Inspector: return node counts on the document / detached root basis
2833         https://bugs.webkit.org/show_bug.cgi?id=74104
2834
2835         Reviewed by Yury Semikhatsky.
2836
2837         * bindings/js/ScriptProfiler.h:
2838         * bindings/v8/ScriptProfiler.cpp:
2839         (WebCore::ScriptProfiler::domNodeCount):
2840         * bindings/v8/ScriptProfiler.h:
2841         * inspector/Inspector.json:
2842         * inspector/InspectorController.cpp:
2843         (WebCore::InspectorController::InspectorController):
2844         * inspector/InspectorMemoryAgent.cpp:
2845         (WebCore::InspectorMemoryAgent::getDOMNodeCount):
2846         (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
2847         * inspector/InspectorMemoryAgent.h:
2848         (WebCore::InspectorMemoryAgent::create):
2849
2850 2011-12-08  Andreas Kling  <kling@webkit.org>
2851
2852         RenderObject: Rename styleSlowCase() to styleInRegion().
2853
2854         Rubber-stamped by David Hyatt.
2855
2856         * WebCore.exp.in:
2857         * rendering/RenderObject.cpp:
2858         (WebCore::RenderObject::styleInRegion):
2859         * rendering/RenderObject.h:
2860         (WebCore::RenderObject::style):
2861
2862 2011-12-08  Andreas Kling  <kling@webkit.org>
2863
2864         Optimize RenderObject::containingBlock().
2865         <http://webkit.org/b/74109>
2866
2867         Reviewed by David Hyatt.
2868
2869         When climbing the parent chain to locate the containing block-level element,
2870         use !isRenderBlock() to reject renderers rather than checking against an arbitrary
2871         list of non-block renderers and then rejecting anything that isn't a block anyway.
2872
2873         RenderObject::containingBlock() was very hot (2.0%) when scrolling on youtube.com.
2874         This change takes it down to 1.0% (60% of which is RenderObject::isRenderBlock().)
2875
2876         * rendering/RenderObject.cpp:
2877         (WebCore::RenderObject::containingBlock):
2878
2879 2011-12-08  Nayan Kumar K  <nayankk@motorola.com>
2880
2881         Define DEBUG_GL_COMMANDS only in debug builds.
2882         https://bugs.webkit.org/show_bug.cgi?id=74083
2883
2884         Reviewed by Noam Rosenthal.
2885
2886         No tests added as this change does not affect functionality.
2887
2888         * platform/graphics/opengl/TextureMapperGL.cpp:
2889
2890 2011-12-08  Ryosuke Niwa  <rniwa@webkit.org>
2891
2892         CompositeEditCommand should not be kept alive for undo and redo
2893         https://bugs.webkit.org/show_bug.cgi?id=64414
2894
2895         Reviewed by Enrica Casucci.
2896
2897         This patch introduces EditCommandComposition that replaces CompositeEditCommand for
2898         undo and redo purposes. Furthermore, we now keep a list of commands instead of a tree of commands
2899         to unapply and reapply edit commands that composes an undoable action.
2900
2901         Each top-level CompositeEditCommand holds a ref-pointer to EditCommandComposition,
2902         and applyCommandToComposite adds new SimpleEditCommands to the list.
2903
2904         * editing/CompositeEditCommand.cpp:
2905         (WebCore::EditCommandComposition::create):
2906         (WebCore::EditCommandComposition::doApply): Never used.
2907         (WebCore::EditCommandComposition::doUnapply):
2908         (WebCore::EditCommandComposition::doReapply):
2909         (WebCore::EditCommandComposition::append):
2910         (WebCore::CompositeEditCommand::~CompositeEditCommand): Add an assertion to ensure we didn't create
2911         a composition for CompositeEditCommands that have parents.
2912         (WebCore::CompositeEditCommand::doUnapply): Never used.
2913         (WebCore::CompositeEditCommand::doReapply): Never used.
2914         (WebCore::CompositeEditCommand::ensureComposition): Creates and attaches a EditCommandComposition.
2915         (WebCore::CompositeEditCommand::applyCommandToComposite): Append a SimpleEditCommand to the composition.
2916
2917         * editing/CompositeEditCommand.h:
2918         (WebCore::EditCommandComposition::EditCommandComposition):
2919         (WebCore::CompositeEditCommand::composition):
2920         (WebCore::toEditCommandComposition):
2921         (WebCore::toCompositeEditCommand):
2922
2923         * editing/DeleteButtonController.cpp: Wrap RemoveNodeCommand in RemoveTargetCommand since top level
2924         commands are now required to be a CompositeEditCommand.
2925         (WebCore::RemoveTargetCommand::create):
2926         (WebCore::RemoveTargetCommand::RemoveTargetCommand):
2927         (WebCore::RemoveTargetCommand::doApply):
2928         (WebCore::DeleteButtonController::deleteTarget):
2929
2930         * editing/EditCommand.cpp:
2931         (WebCore::EditCommand::EditCommand): New constructor; used by EditCommandComposition.
2932         (WebCore::EditCommand::apply): Create a composition for a top-level command.
2933         (WebCore::EditCommand::unapply): Since we clear m_parent of SimpleEditCommand as soon as they are
2934         added to EditCommandComposition, we can't use isTopLevelCommand() to differentiate EditCommandComposition
2935         from SimpleEditCommand. Use isEditCommandComposition() instead.
2936         (WebCore::EditCommand::reapply): Ditto.
2937         (WebCore::compositionIfPossible):
2938         (WebCore::EditCommand::setStartingSelection): Update the starting selection of EditCommandComposition. 
2939         (WebCore::EditCommand::setEndingSelection): Ditto.
2940         (WebCore::EditCommand::setParent): Accepts a null pointer in order to avoid keeping a stale pointer in
2941         m_parent inside SimpleEditCommand when CompositeEditCommand goes away.
2942
2943         * editing/EditCommand.h:
2944         (WebCore::EditCommand::isSimpleEditCommand):
2945         (WebCore::EditCommand::isCompositeEditCommand):
2946         (WebCore::EditCommand::isEditCommandComposition):
2947         (WebCore::EditCommand::parent):
2948         (WebCore::toSimpleEditCommand):
2949
2950         * editing/Editor.cpp:
2951         (WebCore::Editor::appliedEditing): Register a EditCommandComposition, instead of a CompositeEditCommand
2952         to the undo stack.
2953         (WebCore::Editor::unappliedEditing): Unapplied or reapplied commands are now always EditCommandComposition.
2954         (WebCore::Editor::reappliedEditing):
2955         * editing/Editor.h:
2956
2957 2011-12-08  Stephen White  <senorblanco@chromium.org>
2958
2959         Add missing V8 bindings to get CSS_FILTERS to compile in Chromium.
2960         https://bugs.webkit.org/show_bug.cgi?id=74091
2961
2962         Reviewed by Kenneth Russell.
2963
2964         Will be covered by tests in css3/filters (when enabled).
2965
2966         * bindings/v8/custom/V8WebKitCSSFilterValueCustom.cpp: Added.
2967         (WebCore::V8WebKitCSSFilterValue::indexedPropertyGetter):
2968
2969 2011-12-08  Beth Dakin  <bdakin@apple.com>
2970
2971         https://bugs.webkit.org/show_bug.cgi?id=73348
2972         REGRESSION: Assertion when loading a page with a scrollable RenderLayer 
2973         -and corresponding-
2974         <rdar://problem/10518918>
2975
2976         Reviewed by Darin Adler.
2977
2978         The main problem here is that certain delegate calls into AppKit for overlay 
2979         scrollbars can cause AppKit to call back into WebKit looking for more information. 
2980         The assertion happens when WebKit tells AppKit that the scroll position has 
2981         changed during a layout, and AppKit immediately asks WebKit to convert some 
2982         coordinates, and WebKit asserts that you shouldn't do that while a layout is still 
2983         happening. It's still possible for AppKit to call this delegate method while a 
2984         layout is happening, and we should guard against that. This patch, however, does 
2985         not do that.
2986
2987         This change instead addresses the reason this assertion started happening much 
2988         more frequently recently, which is that it recently became true that 
2989         notifyPositionChanged() can be called when the position has not changed. To fix 
2990         the assertion AND the bug that that change was intended to fix, we can just make 
2991         sure that either the position OR the scroll origin has changed before calling 
2992         notifyPositionChanged(). 
2993
2994         * platform/mac/ScrollAnimatorMac.mm:
2995         (WebCore::ScrollAnimatorMac::immediateScrollToPoint):
2996
2997         Call resetScrollOriginChanged() after the scroll instead of before so that we know 
2998         whether or not to call notifyPositionChanged().
2999         * platform/ScrollView.cpp:
3000         (WebCore::ScrollView::updateScrollbars):
3001
3002 2011-12-08  Kaustubh Atrawalkar  <kaustubh@motorola.com>
3003
3004         Fixing support for static conditional overloaded functions.
3005         https://bugs.webkit.org/show_bug.cgi?id=74068
3006
3007         Reviewed by Adam Barth.
3008
3009         * bindings/scripts/CodeGeneratorJS.pm:
3010         (GenerateImplementation): Pushing "static" keyword after condition "#if".
3011         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
3012         (WebDOMTestObj::overloadedMethod1): Added newly generated bindings.
3013         * bindings/scripts/test/CPP/WebDOMTestObj.h: Ditto.
3014         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
3015         (webkit_dom_test_obj_overloaded_method1):
3016         * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
3017         * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
3018         (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
3019         (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
3020         (WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
3021         * bindings/scripts/test/JS/JSTestObj.h: Ditto.
3022         * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
3023         * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
3024         (-[DOMTestObj overloadedMethod1:]):
3025         * bindings/scripts/test/TestObj.idl: Ditto.
3026         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
3027         (WebCore::TestObjInternal::overloadedMethod11Callback):
3028         (WebCore::TestObjInternal::overloadedMethod12Callback):
3029         (WebCore::TestObjInternal::overloadedMethod1Callback):
3030         (WebCore::ConfigureV8TestObjTemplate):
3031
3032 2011-12-08  Andreas Kling  <kling@webkit.org>
3033
3034         Remove EventListenerMap destructor.
3035         <http://webkit.org/b/74096>
3036
3037         Reviewed by Darin Adler.
3038
3039         Let the compiler generate ~EventListenerMap(). We only needed it when the hash map
3040         was managing raw pointers.
3041
3042         We're losing the no-iterators assertion from clear() by doing this, but that was
3043         superfluous to begin with - we were just using it to avoid duplicating code.
3044
3045         * dom/EventListenerMap.cpp:
3046         * dom/EventListenerMap.h:
3047
3048 2011-12-08  Takashi Toyoshima  <toyoshim@chromium.org>
3049
3050         Provide more specific error description for SocketStreamError.
3051         https://bugs.webkit.org/show_bug.cgi?id=74066
3052
3053         Reviewed by Martin Robinson.
3054
3055         No new tests because this change just improve error messages for unexpected failures.
3056
3057         * platform/network/soup/SocketStreamError.h: Add an argument for passing error description.
3058         (WebCore::SocketStreamError::SocketStreamError):
3059         * platform/network/soup/SocketStreamHandleSoup.cpp: Add error description for SocketStreamError.
3060         (WebCore::SocketStreamHandle::connected):
3061         (WebCore::SocketStreamHandle::readBytes):
3062         (WebCore::SocketStreamHandle::platformSend):
3063         (WebCore::SocketStreamHandle::platformClose):
3064
3065 2011-12-08  Mihnea Ovidenie  <mihnea@adobe.com>
3066
3067         [CSSRegions][CSSOM] Implement NamedFlow interface
3068         https://bugs.webkit.org/show_bug.cgi?id=66642
3069
3070         Reviewed by David Hyatt.
3071
3072         Add WebKitNamedFlow to support the NamedFlow interface. No methods are
3073         yet implemented on this interface. The NamedFlow object is a live object.
3074         The first time user asks for it, it gets a valid JS object whose properties
3075         will reflect the changes to the flow thread.
3076
3077         Tests: fast/regions/webkit-named-flow-existing-flow.html
3078                fast/regions/webkit-named-flow-flow-added.html
3079                fast/regions/webkit-named-flow-modified-flow.html
3080                fast/regions/webkit-named-flow-non-existing-flow.html
3081                fast/regions/webkit-named-flow-removed-flow.html
3082                fast/regions/webkit-named-flow-same-object.html
3083
3084         * CMakeLists.txt:
3085         * DerivedSources.cpp:
3086         * DerivedSources.make:
3087         * DerivedSources.pri:
3088         * GNUmakefile.list.am:
3089         * Target.pri:
3090         * WebCore.gypi:
3091         * WebCore.vcproj/WebCore.vcproj:
3092         * WebCore.xcodeproj/project.pbxproj:
3093         * bindings/gobject/GNUmakefile.am:
3094         * dom/DOMAllInOne.cpp:
3095         * dom/Document.cpp:
3096         (WebCore::Document::webkitGetFlowByName):
3097         * dom/Document.h:
3098         * dom/Document.idl:
3099         * dom/NodeRenderingContext.cpp:
3100         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
3101         * dom/WebKitNamedFlow.cpp: Added.
3102         (WebCore::WebKitNamedFlow::WebKitNamedFlow):
3103         (WebCore::WebKitNamedFlow::~WebKitNamedFlow):
3104         * dom/WebKitNamedFlow.h: Added.
3105         (WebCore::WebKitNamedFlow::create):
3106         * dom/WebKitNamedFlow.idl: Added.
3107         * rendering/RenderFlowThread.cpp:
3108         (WebCore::RenderFlowThread::ensureNamedFlow):
3109         * rendering/RenderFlowThread.h:
3110         * rendering/RenderObject.cpp:
3111         (WebCore::RenderObject::createObject):
3112         * rendering/RenderView.cpp:
3113         (WebCore::RenderView::ensureRenderFlowThreadWithName):
3114         * rendering/RenderView.h:
3115
3116 2011-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3117
3118         Unreviewed, rolling out r102321.
3119         http://trac.webkit.org/changeset/102321
3120         https://bugs.webkit.org/show_bug.cgi?id=74072
3121
3122         "Breaks all Chromium clobbered builds" (Requested by apavlov_
3123         on #webkit).
3124
3125         * WebCore.gyp/WebCore.gyp:
3126         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
3127         (main):
3128         * WebCore.gypi:
3129         * bindings/scripts/generate-bindings.pl:
3130         * page/DOMWindow.idl:
3131         * webaudio/DOMWindowWebAudio.idl: Removed.
3132
3133 2011-12-08  Shinya Kawanaka  <shinyak@google.com>
3134
3135         Refactoring: Editor::requestCheckingFor should take SpellCheckRequest object.
3136         https://bugs.webkit.org/show_bug.cgi?id=74033
3137
3138         Reviewed by Hajime Morita.
3139
3140         SpellChecker::requestCheckingFor takes SpellCheckRequest object in order to make it easy to
3141         pass necessary information to requestCheckingFor.
3142
3143         No new tests. Covered by existing tests.
3144
3145         * editing/Editor.cpp:
3146         (WebCore::Editor::replaceSelectionWithFragment):
3147           Uses the new interface.
3148         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): ditto.
3149         * editing/SpellChecker.cpp:
3150         (WebCore::SpellCheckRequest::SpellCheckRequest):
3151         (WebCore::SpellCheckRequest::~SpellCheckRequest):
3152         (WebCore::SpellCheckRequest::create):
3153           Creates a new SpellCheckRequest object.
3154         (WebCore::SpellChecker::requestCheckingFor):
3155           Uses the new interface.
3156         (WebCore::SpellChecker::didCheck):
3157         * editing/SpellChecker.h:
3158         (WebCore::SpellCheckRequest::setSequence):
3159         (WebCore::SpellCheckRequest::sequence):
3160         (WebCore::SpellCheckRequest::checkingRange):
3161         (WebCore::SpellCheckRequest::paragraphRange):
3162         (WebCore::SpellCheckRequest::text):
3163         (WebCore::SpellCheckRequest::mask):
3164         (WebCore::SpellCheckRequest::rootEditableElement):
3165
3166 2011-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3167
3168         Unreviewed, rolling out r102323.
3169         http://trac.webkit.org/changeset/102323
3170         https://bugs.webkit.org/show_bug.cgi?id=74069
3171
3172         Caused Chromium and GTK build failure (Requested by bashi on
3173         #webkit).
3174
3175         * testing/Internals.cpp:
3176         (WebCore::Internals::getPageScaleFactor):
3177         * testing/Internals.h:
3178         * testing/Internals.idl:
3179
3180 2011-12-08  Fady Samuel  <fsamuel@chromium.org>
3181
3182         Move scalePageBy from eventSender to window.internals
3183         https://bugs.webkit.org/show_bug.cgi?id=64512
3184
3185         Reviewed by Simon Fraser.
3186
3187         Added setPageScaleFactor to window.internals.
3188         Renamed window.internals.getPageScaleFactor to window.internals.pageScaleFactor
3189         to match the webkit style.
3190
3191         * testing/Internals.cpp:
3192         (WebCore::Internals::pageScaleFactor):
3193         (WebCore::Internals::setPageScaleFactor):
3194         * testing/Internals.h:
3195         * testing/Internals.idl:
3196
3197 2011-12-08  Kentaro Hara  <haraken@chromium.org>
3198
3199         Use the [Supplemental] IDL for webaudio attributes in Chromium
3200         https://bugs.webkit.org/show_bug.cgi?id=73394
3201
3202         Reviewed by Adam Barth.
3203
3204         - Overview: Using the [Supplemental] IDL, this patch moves the attribute
3205         declarations of webaudio from DOMWindow.idl into a new IDL file
3206         webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
3207         feature (aka a module).
3208
3209         - This patch changes the build flow of WebCore.gyp as follows:
3210
3211             Previous build flow:
3212                 foreach $idl (all IDL files) {
3213                     generate-bindings.pl depends on $idl;
3214                     generate-bindings.pl reads $idl;
3215                     generate-bindings.pl generates .h and .cpp files for $idl;
3216                 }
3217
3218             New build flow (See the discussions in bug 72138 for more details):
3219                 resolve-supplemental.pl depends on all IDL files;
3220                 resolve-supplemental.pl reads all IDL files;
3221                 resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
3222                 resolve-supplemental.pl outputs supplemental_dependency.tmp;
3223                 foreach $idl (all IDL files) {
3224                     generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
3225                     generate-bindings.pl reads $idl;
3226                     generate-bindings.pl reads supplemental_dependency.tmp;
3227                     generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
3228                 }
3229
3230         - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
3231         will be removed after build scripts for all platforms support the [Supplemental] IDL.
3232         The motivation for the [Supplemented] IDL is as follows:
3233
3234         In order to support the [Supplemental] IDL, we need to
3235         (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
3236         (2) and run generate-bindings.pl with the supplemental_dependency.tmp.
3237
3238         This build flow requires a change on the following build scripts,
3239         but changing all the build scripts all at once without any regression is too difficult:
3240
3241             - DerivedSources.make
3242             - DerivedSources.pri
3243             - GNUmakefile.am
3244             - PlatformBlackBerry.cmake
3245             - UseJSC.cmake
3246             - UseV8.cmake
3247             - WebCore.vcproj/MigrateScripts
3248             - WebCore.vcproj/WebCore.vcproj
3249             - bindings/gobject/GNUmakefile.am
3250             - WebCore.gyp/WebCore.gyp
3251
3252         Thus, we are planning to change the build scripts one by one, which implies that
3253         we need to allow the temporary state in which some build scripts support [Supplemental] IDL
3254         but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
3255         The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
3256         in another IDL file somewhere, like this:
3257
3258             DOMWindowWebAudio.idl:
3259                 interface [
3260                     Supplemental=DOMWindow
3261                 ] DOMWindowWebAudio {
3262                     attribute attr1;
3263                     attribute attr2;
3264                 };
3265
3266             DOMWindow.idl:
3267                 interface [
3268                 ] DOMWindow {
3269                     attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
3270                     attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
3271                     attribute attr3;
3272                     attribute attr4;
3273                 };
3274
3275         Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:
3276
3277             - If a given build script supports the [Supplemental] IDL,
3278             generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
3279             - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
3280             as normal attributes and instead ignores all attributes with the [Supplemental] IDL
3281             (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).
3282
3283         Tests: webaudio/*
3284
3285         * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
3286         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
3287         (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file. If the file name is a "/cygdrive/c/..."-style path, it is converted to a "C:\cygwin\..."-style path by the cygpath command.
3288         * WebCore.gypi: Added DOMWindowWebAudio.idl.
3289         * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
3290         * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
3291         * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.
3292
3293 2011-12-07  Yosifumi Inoue  <yosin@chromium.org>
3294
3295         CSS color gets adjusted for disabled input elements
3296         https://bugs.webkit.org/show_bug.cgi?id=54643
3297
3298         Reviewed by Kent Tamura.
3299
3300         No new tests. covered by existing tests. Need rebasing some existing tests for Chromimum.
3301
3302         Remove automatic color adjustment for disabled text control for Chromimum.
3303
3304         * css/themeChromium.css: Add CSS entries for default style for disabled input and textarea elements.
3305         * WebCore/rendering/RenderTextControl.cpp:
3306         (disabledTextColor): Removed for PLATFORM(CHROMIUM)
3307         (RenderTextControl::adjustInnerTextStyle): Don't call disabledTextColor for Chromium.
3308
3309 2011-12-07  Dmitry Lomov  <dslomov@google.com>
3310
3311         https://bugs.webkit.org/show_bug.cgi?id=74038
3312         [V8][Chromium] Support legacy argument order in window.postMessage/window.webkitPostMessage.
3313
3314         Reviewed by David Levin.
3315
3316         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3317         (WebCore::isLegacyTargetOriginDesignation):
3318         (WebCore::handlePostMessageCallback):
3319
3320 2011-12-07  Mary Wu  <mary.wu@torchmobile.com.cn>
3321
3322         Upstream 4 files into WebCore/platform/blackberry
3323         https://bugs.webkit.org/show_bug.cgi?id=73541
3324
3325         Reviewed by Antonio Gomes.
3326
3327         Initial upstream of BlackBerry porting of PlatformScreen/
3328         SSLKeyGenerator/Sound/Widget, no new tests.
3329
3330         * PlatformBlackBerry.cmake: Modified to remove empty file "WheelEventBlackBerry.cpp"
3331         * platform/blackberry/PlatformScreenBlackBerry.cpp: Added.
3332         (WebCore::screenIsMonochrome):
3333         (WebCore::screenDepthPerComponent):
3334         (WebCore::screenDepth):
3335         (WebCore::screenAvailableRect):
3336         (WebCore::screenRect):
3337         * platform/blackberry/SSLKeyGeneratorBlackBerry.cpp: Added.
3338         (WebCore::getSupportedKeySizes):
3339         (WebCore::signedPublicKeyAndChallengeString):
3340         * platform/blackberry/SoundBlackBerry.cpp: Added.
3341         (WebCore::systemBeep):
3342         * platform/blackberry/WidgetBlackBerry.cpp: Added.
3343         (WebCore::Widget::Widget):
3344         (WebCore::Widget::~Widget):
3345         (WebCore::Widget::hide):
3346         (WebCore::Widget::paint):
3347         (WebCore::Widget::setCursor):
3348         (WebCore::Widget::setFocus):
3349         (WebCore::Widget::setFrameRect):
3350         (WebCore::Widget::setIsSelected):
3351         (WebCore::Widget::show):
3352         (WebCore::Widget::frameRect):
3353
3354 2011-12-07  Kenichi Ishibashi  <bashi@chromium.org>
3355
3356         Refactor CSSParser::parseFontFaceSrc()
3357         https://bugs.webkit.org/show_bug.cgi?id=73989
3358
3359         Reviewed by Darin Adler.
3360
3361         Test: fast/css/font-face-src-parsing.html
3362
3363         * css/CSSParser.cpp:
3364         (WebCore::CSSParser::parseFontFaceSrcURI): Added.
3365         (WebCore::CSSParser::parseFontFaceSrcLocal): Added.
3366         (WebCore::CSSParser::parseFontFaceSrc): Rewrote.
3367         * css/CSSParser.h:
3368
3369 2011-12-07  Xingnan Wang  <xingnan.wang@intel.com>
3370
3371         Implement the SSE optimization in SincResampler::process()
3372         https://bugs.webkit.org/show_bug.cgi?id=73789
3373
3374         Reviewed by Benjamin Poulain.
3375
3376         Here is about 70% performance improvement on the hot spot of sample convolving.
3377
3378         * platform/audio/SincResampler.cpp:
3379
3380 2011-12-07  Luke Macpherson   <macpherson@chromium.org>
3381
3382         Implement border image source properties in CSSStyleApplyProperty.
3383         https://bugs.webkit.org/show_bug.cgi?id=73981
3384
3385         Reviewed by Andreas Kling.
3386
3387         No new tests / refactoring only.
3388
3389         * css/CSSStyleApplyProperty.cpp:
3390         (WebCore::ApplyPropertyBorderImageSource::applyValue):
3391         (WebCore::ApplyPropertyBorderImageSource::createHandler):
3392         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
3393         * css/CSSStyleSelector.cpp:
3394         (WebCore::CSSStyleSelector::applyProperty):
3395
3396 2011-12-07  Noel Gordon  <noel.gordon@gmail.com>
3397
3398         WebPImageDecoder should not do a full image decode if progressive decoding is active
3399         https://bugs.webkit.org/show_bug.cgi?id=74041
3400
3401         Reviewed by Adam Barth.
3402
3403         If the decoder input data state reaches allDataReceived during a progressive image
3404         decode, the decoder performs a full image decode.
3405
3406         On allDataReceived, check if we already have a decoder, and if so, continue to run
3407         the progressive decoder.
3408
3409         No new tests. No change in behavior.
3410
3411         * platform/image-decoders/webp/WEBPImageDecoder.cpp:
3412         (WebCore::WEBPImageDecoder::decode):
3413
3414 2011-12-07  Alexandre Elias  <aelias@google.com>
3415
3416         [chromium] Add page-scale animation support to Impl thread
3417         https://bugs.webkit.org/show_bug.cgi?id=72996
3418
3419         Reviewed by James Robinson.
3420
3421         This adds a new math helper class to compute the progress of the
3422         animation, and code in the CCLayerTreeHostImpl to apply the animation
3423         frame by frame.
3424
3425         No new tests. (https://bugs.webkit.org/show_bug.cgi?id=71529 filed.)
3426
3427         * WebCore.gypi:
3428         * platform/graphics/chromium/cc/CCInputHandler.h:
3429         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3430         (WebCore::CCLayerTreeHostImpl::animate):
3431         (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
3432         (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
3433         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3434         * platform/graphics/chromium/cc/CCPageScaleAnimation.cpp: Added.
3435         (WebCore::CCPageScaleAnimation::CCPageScaleAnimation):
3436         (WebCore::CCPageScaleAnimation::initialize):
3437         (WebCore::CCPageScaleAnimation::zoomTo):
3438         (WebCore::CCPageScaleAnimation::zoomWithAnchor):
3439         (WebCore::CCPageScaleAnimation::zoomElsewhere):
3440         (WebCore::CCPageScaleAnimation::scrollOffsetAtTime):
3441         (WebCore::CCPageScaleAnimation::pageScaleAtTime):
3442         (WebCore::CCPageScaleAnimation::isAnimationCompleteAtTime):
3443         (WebCore::CCPageScaleAnimation::progressRatioForTime):
3444         (WebCore::CCPageScaleAnimation::scrollOffsetAtRatio):
3445         (WebCore::CCPageScaleAnimation::pageScaleAtRatio):
3446         * platform/graphics/chromium/cc/CCPageScaleAnimation.h: Added.
3447         (WebCore::CCPageScaleAnimation::startTime):
3448         (WebCore::CCPageScaleAnimation::duration):
3449         (WebCore::CCPageScaleAnimation::endTime):
3450         (WebCore::CCPageScaleAnimation::finalScrollOffset):
3451         (WebCore::CCPageScaleAnimation::finalPageScale):
3452
3453 2011-12-07  Shinya Kawanaka  <shinyak@google.com>
3454
3455         Editor::markAndReplaceFor should take Range instead of TextCheckingParagraph.
3456         https://bugs.webkit.org/show_bug.cgi?id=74035
3457