Add per-context setting for html notifications
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-07-24  Jian Li  <jianli@chromium.org>
2
3         Add per-context setting for html notifications
4         https://bugs.webkit.org/show_bug.cgi?id=91295
5
6         Reviewed by Adam Barth.
7
8         Added a new per-context setting to control the enabling of html notifications.
9         For chromium port, we're going to disable html notifications for web
10         pages, but still keep it enabled for extensions.
11
12         Also enhance V8 code generator to support V8EnabledPerContext attribute
13         for methods.
14
15         Updated the binding tests.
16
17         * Modules/notifications/NotificationCenter.cpp:
18         (WebCore::NotificationCenter::document): Expose document for being used by installPerContextProperties.
19         (WebCore):
20         * Modules/notifications/NotificationCenter.h:
21         (NotificationCenter):
22         * Modules/notifications/NotificationCenter.idl: Add V8EnabledPerContext attribute.
23         * bindings/scripts/CodeGeneratorV8.pm: V8EnabledPerContext now supports methods.
24         (GenerateHeader):
25         (IsStandardFunction):
26         (GenerateNonStandardFunction):
27         (GenerateImplementation):
28         (GenerateToV8Converters):
29         (GetContextEnableFunction):
30         * bindings/scripts/test/TestObj.idl: Add test case for V8EnabledPerContext methods.
31         * bindings/scripts/test/V8/V8TestObj.cpp: Update test result.
32         (WebCore::TestObjV8Internal::enabledAtContextMethod1Callback):
33         (TestObjV8Internal):
34         (WebCore::TestObjV8Internal::enabledAtContextMethod2Callback):
35         (WebCore::V8TestObj::installPerContextProperties):
36         (WebCore::V8TestObj::wrapSlow):
37         * dom/ContextFeatures.cpp: Add a new per-context feature.
38         (WebCore::ContextFeatures::htmlNotificationsEnabled):
39         (WebCore):
40         * dom/ContextFeatures.h: Add a new per-context feature.
41
42 2012-07-24  Sheriff Bot  <webkit.review.bot@gmail.com>
43
44         Unreviewed, rolling out r123499.
45         http://trac.webkit.org/changeset/123499
46         https://bugs.webkit.org/show_bug.cgi?id=92161
47
48         Android fails to compile (Requested by zhenyao on #webkit).
49
50         * GNUmakefile.list.am:
51         * Modules/mediastream/MediaStream.cpp:
52         (WebCore::MediaStream::MediaStream):
53         (WebCore::MediaStream::addTrack):
54         * Modules/mediastream/MediaStreamTrack.cpp:
55         (WebCore::MediaStreamTrack::create):
56         (WebCore::MediaStreamTrack::MediaStreamTrack):
57         (WebCore::MediaStreamTrack::~MediaStreamTrack):
58         (WebCore::MediaStreamTrack::setEnabled):
59         * Modules/mediastream/MediaStreamTrack.h:
60         (MediaStreamTrack):
61         * Modules/mediastream/MediaStreamTrack.idl:
62         * WebCore.gypi:
63         * dom/EventNames.h:
64         (WebCore):
65         * dom/EventTargetFactory.in:
66         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
67         (WebKit):
68         (WebKit::WebMediaStreamDescriptor::sources):
69         * platform/chromium/support/WebMediaStreamSource.cpp:
70         * platform/mediastream/MediaStreamSource.cpp: Removed.
71         * platform/mediastream/MediaStreamSource.h:
72         (WebCore::MediaStreamSource::create):
73         (WebCore::MediaStreamSource::muted):
74         (WebCore::MediaStreamSource::setMuted):
75         (WebCore::MediaStreamSource::MediaStreamSource):
76         (MediaStreamSource):
77         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
78         (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
79         (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
80
81 2012-07-24  Julien Chaffraix  <jchaffraix@webkit.org>
82
83         Crash in RenderTableSection::layoutRows
84         https://bugs.webkit.org/show_bug.cgi?id=92145
85
86         Reviewed by Abhishek Arya.
87
88         The crash came from the insertChildNode logic being confused and choosing the wrong
89         renderer for insertion. This is because after r123159, table anonymous wrappers can
90         be created as 'inline-table' and wouldn't pass the isAnonymousBlock() check.
91
92         This change also aligns the ancestor iteration with RenderBlock::addChildToAnonymousColumnBlocks.
93
94         Test: fast/table/crash-table-section-layoutRows.html
95
96         * rendering/RenderObjectChildList.cpp:
97         (WebCore::RenderObjectChildList::insertChildNode):
98         Changed the code to always get the right child. There is no justification to not
99         walking up to the |owner|'s direct child in all cases.
100
101 2012-07-24  Tony Chang  <tony@chromium.org>
102
103         Make RenderBlock::paintChildren virtual so sub classes can change the paint order
104         https://bugs.webkit.org/show_bug.cgi?id=92042
105
106         Reviewed by Ojan Vafai.
107
108         The flexbox spec says that the order property should change the paint order of flex children.
109         To make that possible, make paintChildren virtual so RenderFlexibleBox can override it.
110
111         No new tests, this is just a refactoring.
112
113         * rendering/RenderBlock.cpp:
114         (WebCore::RenderBlock::paintContents): Move some code out of paintChildren into paintContents.
115         (WebCore::RenderBlock::paintChildren): Make virtual and just have it be a simple for loop.
116         (WebCore::RenderBlock::paintChild): Move code out of paintChildren so subclasses can reuse.
117         * rendering/RenderBlock.h:
118         (RenderBlock): Make paintChildren virtual and protected so sub classes can call paintChild.
119
120 2012-07-24  Anna Cavender  <annacc@chromium.org>
121
122         Create SourceBuffer and SourceBufferList objects
123         https://bugs.webkit.org/show_bug.cgi?id=91771
124
125         Reviewed by Eric Carlson.
126
127         SourceBuffer and SourceBufferList objects are needed in order to
128         implement the new object-oriented MediaSource API:
129         http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
130
131         No new tests - will be able to test after landing BUGWK91775
132
133         Adding new files to build files:
134         * CMakeLists.txt:
135         * DerivedSources.cpp:
136         * DerivedSources.make:
137         * DerivedSources.pri:
138         * GNUmakefile.am:
139         * GNUmakefile.list.am:
140         * Target.pri:
141         * WebCore.gyp/WebCore.gyp:
142         * WebCore.gypi:
143         * WebCore.vcproj/WebCore.vcproj:
144         * WebCore.vcproj/WebCoreCommon.vsprops:
145         * WebCore.vcproj/copyForwardingHeaders.cmd:
146         * WebCore.xcodeproj/project.pbxproj:
147
148         New objects:
149         * Modules/mediasource/SourceBuffer.cpp: Added.
150         * Modules/mediasource/SourceBuffer.h: Added.
151         * Modules/mediasource/SourceBuffer.idl: Added.
152         * Modules/mediasource/SourceBufferList.cpp: Added.
153         * Modules/mediasource/SourceBufferList.h: Added.
154         * Modules/mediasource/SourceBufferList.idl: Added.
155
156         New events:
157         * dom/EventNames.h:
158         (WebCore):
159         * dom/EventTarget.h:
160         (WebCore):
161         * dom/EventTargetFactory.in:
162
163         Object constructors:
164         * page/DOMWindow.idl:
165
166 2012-07-24  Patrick Gansterer  <paroga@webkit.org>
167
168         Store the full year in GregorianDateTime
169         https://bugs.webkit.org/show_bug.cgi?id=92067
170
171         Reviewed by Geoffrey Garen.
172
173         Use the full year instead of the offset from year 1900 
174         for the year member variable of GregorianDateTime.
175
176         * bridge/qt/qt_runtime.cpp:
177         (JSC::Bindings::convertValueToQVariant):
178         (JSC::Bindings::convertQVariantToValue):
179         * bridge/qt/qt_runtime_qt4.cpp:
180         (JSC::Bindings::convertValueToQVariant):
181         (JSC::Bindings::convertQVariantToValue):
182
183 2012-07-24  Benjamin Poulain  <bpoulain@apple.com>
184
185         Do not perform 8 to 16bits characters conversion when converting a WTFString to NSString/CFString
186         https://bugs.webkit.org/show_bug.cgi?id=90720
187
188         Reviewed by Geoffrey Garen.
189
190         In most String to CFString conversion, we should be able to use the "NoCopy" constructor and have
191         a relatively cheap conversion from WTF::String to CFString.
192
193         When the String is 8 bits, it was converted to 16 bits by getData16SlowCase() because of the call
194         to String::characters().
195
196         This patch adds a path for creating a CFString from a 8bits string using CFStringCreateWithBytes.
197
198         This is covered by existing tests.
199
200         * platform/text/cf/StringCF.cpp:
201         (WTF::String::createCFString): CFSTR() create static CFString, it is unecessary to retain it.
202         * platform/text/cf/StringImplCF.cpp:
203         (WTF::StringImpl::createCFString): The logic to avoid the StringWrapperCFAllocator has also been simplified.
204         The allocator creation is now closer to where it is useful.
205
206 2012-07-24  Kentaro Hara  <haraken@chromium.org>
207
208         [V8] String wrappers should be marked Independent
209         https://bugs.webkit.org/show_bug.cgi?id=91251
210
211         Reviewed by Adam Barth.
212
213         Currently V8 String wrappers are not marked Independent.
214         By marking them Independent, they can be reclaimed by the scavenger GC.
215         Although I couldn't find a case where this change reduces memory usage,
216         this change would be important for upcoming changes in string conversion
217         between V8 and WebKit (https://bugs.webkit.org/show_bug.cgi?id=91850).
218
219         'm_lastStringImpl = 0' in StringCache::remove() is important.
220         Look at the following code:
221
222             static void cachedStringCallback(v8::Persistent<v8::Value> wrapper, void* parameter)
223             {
224                 ...;
225                 stringCache()->remove(stringImpl);
226                 wrapper.Dispose();
227             }
228
229             void StringCache::remove(StringImpl* stringImpl)
230             {
231                 ...
232                 if (m_lastStringImpl.get() == stringImpl)
233                     m_lastStringImpl = 0;
234             }
235
236             v8::Local<v8::String> v8ExternalString(StringImpl* stringImpl, v8::Isolate* isolate)
237             {
238                 if (m_lastStringImpl.get() == stringImpl) {
239                     return v8::Local<v8::String>::New(m_lastV8String); // m_lastV8String points to a wrapper object that was accessed most recently.
240                 }
241                 return v8ExternalStringSlow(stringImpl, isolate);
242             }
243
244         Without 'm_lastStringImpl = 0', already disposed m_lastV8String can be used
245         in v8ExternalString(). This was a cause of the crashes of r122614.
246
247         Tests: At the initial commit of this patch (r122614),
248                the following tests had been broken due to missing 'm_lastStringImpl = 0'.
249                fast/workers/worker-location.html
250                Dromaeo/cssquery-jquery.html
251                Dromaeo/jslib-event-jquery.html
252                Dromaeo/jslib-style-jquery.html
253                Dromaeo/jslib-style-prototype.html
254
255         * bindings/v8/V8Binding.cpp:
256         (WebCore::StringCache::remove):
257         (WebCore::StringCache::v8ExternalStringSlow):
258
259 2012-07-24  Tommy Widenflycht  <tommyw@google.com>
260
261         MediaStream API: Update MediaStreamTrack to match the specification
262         https://bugs.webkit.org/show_bug.cgi?id=90180
263
264         Reviewed by Adam Barth.
265
266         MediaStreamTracks are now required to show the status of the underlying source,
267         and trigger events when that status changes.
268
269         Test: fast/mediastream/MediaStreamTrack.html
270
271         * GNUmakefile.list.am:
272         * Modules/mediastream/MediaStream.cpp:
273         (WebCore::MediaStream::MediaStream):
274         (WebCore::MediaStream::addTrack):
275         * Modules/mediastream/MediaStreamTrack.cpp:
276         (WebCore::MediaStreamTrack::create):
277         (WebCore::MediaStreamTrack::MediaStreamTrack):
278         (WebCore::MediaStreamTrack::~MediaStreamTrack):
279         (WebCore::MediaStreamTrack::setEnabled):
280         (WebCore::MediaStreamTrack::readyState):
281         (WebCore):
282         (WebCore::MediaStreamTrack::sourceChangedState):
283         (WebCore::MediaStreamTrack::stop):
284         (WebCore::MediaStreamTrack::interfaceName):
285         (WebCore::MediaStreamTrack::scriptExecutionContext):
286         (WebCore::MediaStreamTrack::eventTargetData):
287         (WebCore::MediaStreamTrack::ensureEventTargetData):
288         * Modules/mediastream/MediaStreamTrack.h:
289         * Modules/mediastream/MediaStreamTrack.idl:
290         * WebCore.gypi:
291         * dom/EventNames.h:
292         (WebCore):
293         * dom/EventTargetFactory.in:
294         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
295         * platform/chromium/support/WebMediaStreamSource.cpp:
296         (WebKit::WebMediaStreamSource::setReadyState):
297         (WebKit):
298         (WebKit::WebMediaStreamSource::readyState):
299         * platform/mediastream/MediaStreamSource.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.h.
300         (WebCore):
301         (WebCore::MediaStreamSource::create):
302         (WebCore::MediaStreamSource::MediaStreamSource):
303         (WebCore::MediaStreamSource::setReadyState):
304         (WebCore::MediaStreamSource::addObserver):
305         (WebCore::MediaStreamSource::removeObserver):
306         * platform/mediastream/MediaStreamSource.h:
307         (Observer):
308         (WebCore::MediaStreamSource::Observer::~Observer):
309         (MediaStreamSource):
310         (WebCore::MediaStreamSource::readyState):
311         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
312         (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
313         (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
314
315 2012-07-24  Scott Graham  <scottmg@chromium.org>
316
317         Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
318         https://bugs.webkit.org/show_bug.cgi?id=91667
319
320         Reviewed by Tony Chang.
321
322         Using native tools instead of cygwin version improves build time
323         performance by roughly 50% (on top of previous cl-instead-of-gcc
324         change).
325
326         Also, use - instead of / for cl flags, otherwise preprocessing fails
327         very slowly (due to retry loop). And, replace \ with / in gperf
328         command line. Without this, gperf emits the filename literally in
329         #line directives which causes VS to error with "unescaped \ in
330         string". Bizarrely, building ColorData.cpp with those \ in place
331         causes the IDE to exit with no error message, which was the cause of
332         the previous canary failures.
333
334         No new tests.
335
336         * WebCore.gyp/WebCore.gyp:
337         * WebCore.gyp/scripts/rule_bison.py:
338         * bindings/scripts/preprocessor.pm:
339         (applyPreprocessor):
340         * make-hash-tools.pl:
341
342 2012-07-24  Daniel Cheng  <dcheng@chromium.org>
343
344         Files from drag and file <input> should use getMIMETypeForExtension to determine content type.
345         https://bugs.webkit.org/show_bug.cgi?id=91702
346
347         Reviewed by Jian Li.
348
349         Awhile back, we changed File to only use getWellKnownMIMETypeForExtension to prevent web
350         pages from being able to detect what applications a user has installed indirectly through
351         the MIME types. However, some sites like YouTube's drag and drop uploader use MIME types
352         that aren't in WebKit's internal list, so we relax the restriction for Files that originate
353         from an user action.
354
355         * fileapi/File.cpp:
356         (WebCore::getContentTypeFromFileName):
357         (WebCore::createBlobDataForFile):
358         (WebCore::createBlobDataForFileWithName):
359         (WebCore::createBlobDataForFileWithMetadata):
360         (WebCore::File::createWithRelativePath):
361         (WebCore::File::File):
362         * fileapi/File.h:
363         (File):
364         (WebCore::File::create):
365         (WebCore::File::createWithName):
366         * html/FileInputType.cpp:
367         (WebCore::FileInputType::createFileList):
368         * platform/chromium/ChromiumDataObject.cpp:
369         (WebCore::ChromiumDataObject::addFilename):
370         * platform/gtk/ClipboardGtk.cpp:
371         (WebCore::ClipboardGtk::files):
372         * platform/mac/ClipboardMac.mm:
373         (WebCore::ClipboardMac::files):
374         * platform/qt/ClipboardQt.cpp:
375         (WebCore::ClipboardQt::files):
376         * platform/win/ClipboardWin.cpp:
377         (WebCore::ClipboardWin::files):
378
379 2012-07-24  Vsevolod Vlasov  <vsevik@chromium.org>
380
381         Web Inspector: Snippets UI polish
382         https://bugs.webkit.org/show_bug.cgi?id=92142
383
384         Reviewed by Pavel Feldman.
385
386         Changed snippets context menu items.
387         Added run snippet status bar button.
388         Removed unused edit source button.
389
390         * English.lproj/localizedStrings.js:
391         * inspector/front-end/Images/statusbarButtonGlyphs.png:
392         * inspector/front-end/ScriptSnippetModel.js:
393         (WebInspector.SnippetJavaScriptSourceFrame):
394         (WebInspector.SnippetJavaScriptSourceFrame.prototype.statusBarItems):
395         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
396         * inspector/front-end/ScriptsNavigator.js:
397         (WebInspector.SnippetsNavigatorView.prototype.getOrCreateFolderTreeElement):
398         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
399         * inspector/front-end/ScriptsPanel.js:
400         (WebInspector.ScriptsPanel.prototype._updateScriptViewStatusBarItems):
401         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
402         * inspector/front-end/SourceFrame.js:
403         (WebInspector.SourceFrame.prototype.statusBarItems):
404         * inspector/front-end/inspector.css:
405         * inspector/front-end/scriptsPanel.css:
406         (.evaluate-snippet-status-bar-item .glyph):
407         (.evaluate-snippet-status-bar-item.toggled .glyph):
408
409 2012-07-24  Nico Weber  <thakis@chromium.org>
410
411         [chromium/mac] Remove webcore_resource_files from WebCore.gypi
412         https://bugs.webkit.org/show_bug.cgi?id=92129
413
414         Reviewed by Adam Barth.
415
416         It was added in http://trac.webkit.org/changeset/81706/trunk/Source/WebCore/WebCore.gypi .
417         The changes in that revision were mostly reverted in http://trac.webkit.org/changeset/119921 ,
418         but this block was forgotten. Since it just confused me for a bit, remove it.
419
420         * WebCore.gyp/WebCore.gyp:
421
422 2012-07-24  Julien Chaffraix  <jchaffraix@webkit.org>
423
424         inline-table wrapper should be generated for display: inline element only
425         https://bugs.webkit.org/show_bug.cgi?id=92054
426
427         Reviewed by Abhishek Arya.
428
429         CSS 2.1 only takes into account the display when determining if we should generate
430         an inline-table. My misreading of the spec would make us generate an inline-table
431         wrapper for any inline formatting context.
432
433         Test: fast/table/inline-block-generates-table-wrapper.html
434
435         * rendering/RenderTable.cpp:
436         (WebCore::RenderTable::createAnonymousWithParentRenderer):
437         Changed to use display instead of isInline to properly match the spec.
438
439 2012-07-24  Alec Flett  <alecflett@chromium.org>
440
441         IndexedDB: Temporarily continue generating backend keys for empty key lists
442         https://bugs.webkit.org/show_bug.cgi?id=92012
443
444         Reviewed by Tony Chang.
445
446         Temporarily change key behavior to allow chromium in_process_webkit
447         to call putWithIndexKeys without inadvertently preventing index
448         key generation. Note this is temporary until frontend key generation
449         patch lands.
450
451         No new tests, this is part of a refactor that doesn't change behavior.
452
453         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
454         (WebCore::IDBObjectStoreBackendImpl::putInternal):
455
456 2012-07-24  Pavel Feldman  <pfeldman@chromium.org>
457
458         Web Inspector: introduce UISourceCodeFrame.
459         https://bugs.webkit.org/show_bug.cgi?id=92124
460
461         Reviewed by Vsevolod Vlasov.
462
463         Generic implementation of SourceFrame over UISourceCode added.
464
465         * WebCore.gypi:
466         * WebCore.vcproj/WebCore.vcproj:
467         * inspector/compile-front-end.py:
468         * inspector/front-end/ScriptsPanel.js:
469         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
470         * inspector/front-end/StylesPanel.js:
471         * inspector/front-end/UISourceCodeFrame.js: Added.
472         (WebInspector.UISourceCodeFrame):
473         (WebInspector.UISourceCodeFrame.prototype.canEditSource):
474         (WebInspector.UISourceCodeFrame.prototype.commitEditing):
475         (WebInspector.UISourceCodeFrame.prototype.afterTextChanged):
476         (WebInspector.UISourceCodeFrame.prototype._didEditContent):
477         (WebInspector.UISourceCodeFrame.prototype._onContentChanged):
478         (WebInspector.UISourceCodeFrame.prototype.populateTextAreaContextMenu):
479         * inspector/front-end/WebKit.qrc:
480         * inspector/front-end/inspector.html:
481
482 2012-07-24  Dan Bernstein  <mitz@apple.com>
483
484         <rdar://problem/11945102> REGRESSION (r109451): Overlay scrollbars always use the default style, regardless of background color
485         https://bugs.webkit.org/show_bug.cgi?id=92115
486
487         Reviewed by Mark Rowe.
488
489         * platform/Scrollbar.cpp:
490         (WebCore::Scrollbar::scrollbarOverlayStyle): Reversed an incorrect null check.
491
492 2012-07-24  Andrew Wilson  <atwilson@chromium.org>
493
494         Another prospective build fix for Chromium. Unreviewed.
495
496         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
497
498 2012-07-24  Andrew Wilson  <atwilson@chromium.org>
499
500         Unreviewed prospective build fix for Chromium. Changed include of hb.h in HarfBuzzNGFace.h
501
502         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
503
504 2012-07-24  Dominik Röttsches  <dominik.rottsches@intel.com>
505
506         HarfBuzzFaceNG.h forward declarations conflict with newer versions of Harfbuzz
507         https://bugs.webkit.org/show_bug.cgi?id=92103
508
509         Reviewed by Philippe Normand.
510
511         As preparation for enabling harfbuzz-ng for EFL, I would like to include the header
512         here since the forward declarations are conflicting with the harfbuzz version
513         we will use for EFL.
514
515         No new tests, no change in behavior.
516
517         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
518
519 2012-07-24  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
520
521         Fix blend filter for autovectorizing
522         https://bugs.webkit.org/show_bug.cgi?id=91398
523
524         Reviewed by Nikolas Zimmermann.
525
526         To support auto-vectorizing, the loop had to be unswitched, and regular arrays used that 
527         did not do boundary-checks in the inner loop. Finally the integer division by 255
528         was optimized not use integer division intrinsics.
529
530         On a X86-64 architechture using GCC -O3 on the file, this gives a speed-up of 2.9x.
531
532         * platform/graphics/filters/FEBlend.cpp:
533         (WebCore::fastDivideBy255):
534         (BlendNormal):
535         (WebCore::BlendNormal::apply):
536         (BlendMultiply):
537         (WebCore::BlendMultiply::apply):
538         (BlendScreen):
539         (WebCore::BlendScreen::apply):
540         (BlendDarken):
541         (WebCore::BlendDarken::apply):
542         (BlendLighten):
543         (WebCore::BlendLighten::apply):
544         (BlendUnknown):
545         (WebCore::BlendUnknown::apply):
546         (WebCore::platformApply):
547         (WebCore::FEBlend::platformApplyGeneric):
548         (WebCore::FEBlend::platformApplySoftware):
549         * platform/graphics/filters/FEBlend.h:
550         (FEBlend):
551
552 2012-07-23  Hans Wennborg  <hans@chromium.org>
553
554         Speech JavaScript API: Add the SpeechRecognitionResult.emma attribute
555         https://bugs.webkit.org/show_bug.cgi?id=91743
556
557         Reviewed by Adam Barth.
558
559         Implement the 'emma' attribute as described in the spec draft at
560         http://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html
561
562         Test: fast/speech/scripted/emma.html
563
564         * Modules/speech/SpeechRecognitionResult.cpp:
565         (WebCore::SpeechRecognitionResult::~SpeechRecognitionResult):
566         (WebCore):
567         (WebCore::SpeechRecognitionResult::emma):
568         * Modules/speech/SpeechRecognitionResult.h:
569         (WebCore):
570         (SpeechRecognitionResult):
571         * Modules/speech/SpeechRecognitionResult.idl:
572         * WebCore.gypi:
573         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
574         (WebCore):
575         (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
576           We need to add an implicit reference from the result object to the
577           emma object to keep the latters DOM tree alive across
578           garbage-collection.
579
580 2012-07-24  Andrei Poenaru  <poenaru@adobe.com>
581
582         Web Inspector: Protocol Extension: add getFlowByName command
583         https://bugs.webkit.org/show_bug.cgi?id=91855
584
585         Reviewed by Pavel Feldman.
586
587         The "getFlowByName" command should return a NamedFlow for a given document and name.
588
589         Test: inspector/styles/protocol-css-regions-commands.html
590
591         * inspector/Inspector.json:
592         * inspector/InspectorCSSAgent.cpp:
593         (WebCore::InspectorCSSAgent::getFlowByName):
594         (WebCore):
595         * inspector/InspectorCSSAgent.h:
596         (InspectorCSSAgent):
597         * inspector/front-end/CSSStyleModel.js:
598         (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
599         (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
600         (WebInspector.NamedFlow):
601         (WebInspector.NamedFlow.parsePayload):
602
603 2012-07-23  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
604
605         [Qt] Fix compilation against namespaced Qt
606
607         Reviewed by Simon Hausmann.
608
609         * platform/graphics/Font.h:
610         * platform/network/ResourceHandleInternal.h:
611         * platform/qt/ThirdPartyCookiesQt.h:
612
613 2012-07-24  Anthony Scian  <ascian@rim.com>
614
615         Web Inspector [JSC]: Enable initiator column in network panel.
616         https://bugs.webkit.org/show_bug.cgi?id=65533
617
618         Reviewed by Vsevolod Vlasov.
619
620         With 40118 fixed for webkit, Preferences.displayInitiator should be set to true.
621         Removed references to it since the optionality is no longer required.
622
623         Test: http/tests/inspector/network/network-initiator.html
624
625         * inspector/front-end/NetworkPanel.js:
626         (WebInspector.NetworkLogView.prototype._createTable):
627         (WebInspector.NetworkLogView.prototype.switchToDetailedView):
628         (WebInspector.NetworkLogView.prototype.switchToBriefView):
629         (WebInspector.NetworkDataGridNode.prototype.createCells):
630         (WebInspector.NetworkDataGridNode.prototype.refreshRequest):
631         * inspector/front-end/Settings.js:
632
633 2012-07-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
634
635         Missing *explicit* keyword in dom and page.
636         https://bugs.webkit.org/show_bug.cgi?id=92074
637
638         Reviewed by Kentaro Hara.
639
640         Some constructors missed to use *explicit* keyword. They need to be added
641         *explicit* keyword to contructor which has a parameter in order to avoid
642         implicit type conversion.
643
644         Some files in dom directory can't use explicit keyword because of build breaks.
645
646         No new tests. Covered by existing tests.
647
648         * dom/BeforeLoadEvent.h:
649         (WebCore::BeforeLoadEvent::BeforeLoadEvent):
650         * dom/BeforeTextInsertedEvent.h:
651         (BeforeTextInsertedEvent):
652         * dom/ChildListMutationScope.h:
653         (WebCore::ChildListMutationScope::ChildListMutationScope):
654         * dom/ChildNodeList.h:
655         (ChildNodeList):
656         * dom/ClientRect.h:
657         (ClientRect):
658         * dom/ClientRectList.h:
659         (ClientRectList):
660         * dom/ComposedShadowTreeWalker.h:
661         (ComposedShadowTreeParentWalker):
662         * dom/DOMCoreException.h:
663         (WebCore::DOMCoreException::DOMCoreException):
664         * dom/DOMImplementation.h:
665         (DOMImplementation):
666         * dom/DatasetDOMStringMap.h:
667         (WebCore::DatasetDOMStringMap::DatasetDOMStringMap):
668         * dom/DeviceMotionController.h:
669         (DeviceMotionController):
670         * dom/DeviceOrientationController.h:
671         (DeviceOrientationController):
672         * dom/DocumentParser.h:
673         (DocumentParser):
674         * dom/EventException.h:
675         (WebCore::EventException::EventException):
676         * dom/EventListener.h:
677         (WebCore::EventListener::EventListener):
678         * dom/ExceptionBase.h:
679         (ExceptionBase):
680         * dom/GenericEventQueue.h:
681         (GenericEventQueue):
682         * dom/KeyboardEvent.h:
683         (WebCore::KeypressCommand::KeypressCommand):
684         * dom/MemoryInstrumentation.h:
685         (WebCore::MemoryObjectInfo::MemoryObjectInfo):
686         * dom/MessageChannel.h:
687         (MessageChannel):
688         * dom/MessagePort.h:
689         (MessagePort):
690         * dom/MessagePortChannel.h:
691         (MessagePortChannel):
692         * dom/MutationObserver.h:
693         * dom/NamedNodeMap.h:
694         (WebCore::NamedNodeMap::NamedNodeMap):
695         * dom/NodeFilter.h:
696         (WebCore::NodeFilter::NodeFilter):
697         * dom/NodeWithIndex.h:
698         (WebCore::NodeWithIndex::NodeWithIndex):
699         * dom/Range.h:
700         * dom/RangeException.h:
701         (WebCore::RangeException::RangeException):
702         * dom/RawDataDocumentParser.h:
703         (WebCore::RawDataDocumentParser::RawDataDocumentParser):
704         * dom/ScriptRunner.h:
705         (ScriptRunner):
706         * dom/SelectorQuery.h:
707         (SelectorQuery):
708         * dom/ShadowRoot.h:
709         (ShadowRoot):
710         * dom/SpaceSplitString.h:
711         (SpaceSplitStringData):
712         * dom/StaticHashSetNodeList.h:
713         (StaticHashSetNodeList):
714         * dom/StaticNodeList.h:
715         (WebCore::StaticNodeList::StaticNodeList):
716         * dom/TransformSource.h:
717         (TransformSource):
718         * dom/TreeScope.h:
719         (TreeScope):
720         * dom/WebKitNamedFlowCollection.h:
721         (WebKitNamedFlowCollection):
722         * page/EventHandler.h:
723         (EventHandler):
724         * page/FocusController.h:
725         (FocusController):
726         * page/FrameView.h:
727         (FrameView):
728         * page/MemoryInfo.h:
729         (MemoryInfo):
730         * page/Page.h:
731         (Page):
732         * page/PageGroup.h:
733         (PageGroup):
734         * page/PrintContext.h:
735         (PrintContext):
736         * page/Settings.h:
737         (Settings):
738         * page/SpeechInput.h:
739         (SpeechInput):
740         * page/SpeechInputResultList.h:
741         (SpeechInputResultList):
742         * page/WebKitAnimation.h:
743         * page/WindowFeatures.h:
744         (WindowFeatures):
745         * page/WorkerNavigator.h:
746         (WorkerNavigator):
747
748 2012-07-24  Kent Tamura  <tkent@chromium.org>
749
750         Replace some callsites of shadowAncestorNode() with shadowHost()
751         https://bugs.webkit.org/show_bug.cgi?id=92060
752
753         Reviewed by Hajime Morita.
754
755         shadowAncestorNode() is deprecated.
756
757         No new tests. This shouldn't change behaviors.
758
759         * html/shadow/MediaControlElements.cpp:
760         (WebCore::toParentMediaElement):
761         * html/shadow/TextControlInnerElements.h:
762         (WebCore::SpinButtonElement::isEnabledFormControl):
763         (WebCore::SpinButtonElement::isReadOnlyFormControl):
764         * platform/efl/RenderThemeEfl.cpp:
765         (WebCore::RenderThemeEfl::paintMediaFullscreenButton):
766         (WebCore::RenderThemeEfl::paintMediaMuteButton):
767         * platform/gtk/RenderThemeGtk.cpp:
768         (WebCore::getMediaElementFromRenderObject):
769         (WebCore::centerRectVerticallyInParentInputElement):
770         * platform/qt/RenderThemeQt.cpp:
771         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
772         (WebCore::RenderThemeQt::paintMediaSliderThumb):
773         Removed an ASSERT() because nullness of o->node() is already asserted.
774         * rendering/RenderInputSpeech.cpp:
775         (WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
776         * rendering/RenderMediaControlsChromium.cpp:
777         (WebCore::paintMediaSliderThumb):
778         Passing shadowHost() to toParentMediaElement(), which accepts 0 and will return 0.
779         (WebCore::paintMediaVolumeSliderThumb): ditto.
780         * rendering/RenderThemeChromiumSkia.cpp:
781         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
782         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
783         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
784         * rendering/RenderThemeMac.mm:
785         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
786         Remove an ASSERT(input) because input never be null unless o->node() is
787         null. If o->node() is null, this function crashes.
788         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
789         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
790         (WebCore::RenderThemeMac::paintMediaMuteButton):
791         It's ok to ignore "node is a media element" case because this function
792         works only if node->isMediaControlElement().
793         (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
794         (WebCore::RenderThemeMac::paintMediaSliderTrack): ditto.
795         * rendering/RenderThemeSafari.cpp:
796         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
797         Remove an ASSERT(input) because input never be null unless o->node() is
798         null. If o->node() is null, this function crashes.
799         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): ditto.
800         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): ditto.
801         * rendering/RenderThemeWinCE.cpp:
802         (WebCore::mediaElementParent):
803
804 2012-07-24  Peter Beverloo  <peter@chromium.org>
805
806         [Chromium] Build fix for Android after r123424
807         https://bugs.webkit.org/show_bug.cgi?id=92082
808
809         Unreviewed build fix.
810
811         Mark removed the PlatformSupport.h header from ScrollbarThemeChromiumAndroid.cpp
812         in r123424, while there still are two references left to another method and a
813         constant. Re-add the include directive.
814
815         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
816
817 2012-07-24  Kentaro Hara  <haraken@chromium.org>
818
819         [JSC] REGRESSION(r122912): CodeGeneratorJS.pm generates wrong code
820         for static attributes in supplemental IDL files
821         https://bugs.webkit.org/show_bug.cgi?id=91925
822
823         Reviewed by Adam Barth.
824
825         r122912 implemented static attributes in CodeGeneratorJS.pm.
826         However, it generates wrong code for static attributes in supplemental
827         IDL files. This patch fixes it as shown in JSTestInterface.cpp.
828         This fix aligns with the fix in CodeGeneratorV8.pm (r123308).
829
830         Test: bindings/scripts/test/TestSupplemental.idl
831
832         * bindings/scripts/CodeGeneratorJS.pm:
833         (GenerateImplementation):
834         * bindings/scripts/test/JS/JSTestInterface.cpp:
835         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
836         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
837         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
838
839 2012-07-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
840
841         Add *explicit* keyword to constructor which has a parameter in bridge, history, loader and plugins.
842         https://bugs.webkit.org/show_bug.cgi?id=92064
843
844         Reviewed by Kentaro Hara.
845
846         Some constructors missed to use *explicit* keyword. They need to be added
847         *explicit* keyword to contructor which has a parameter in order to avoid
848         implicit type conversion.
849
850         No new tests. Covered by existing tests.
851
852         * bridge/IdentifierRep.h:
853         (WebCore::IdentifierRep::IdentifierRep):
854         * history/BackForwardListImpl.h:
855         (BackForwardListImpl):
856         * history/CachedFrame.h:
857         (CachedFrame):
858         * history/HistoryItem.h:
859         (HistoryItem):
860         * loader/DocumentWriter.h:
861         (DocumentWriter):
862         * loader/FrameNetworkingContext.h:
863         (WebCore::FrameNetworkingContext::FrameNetworkingContext):
864         * loader/HistoryController.h:
865         * loader/ImageLoader.h:
866         (ImageLoader):
867         * loader/LinkLoader.h:
868         (LinkLoader):
869         * loader/MainResourceLoader.h:
870         (MainResourceLoader):
871         * loader/NavigationAction.h:
872         (NavigationAction):
873         * loader/NavigationScheduler.h:
874         (NavigationScheduler):
875         * loader/PolicyChecker.h:
876         (PolicyChecker):
877         * loader/SubframeLoader.h:
878         (SubframeLoader):
879         * loader/ThreadableLoaderClientWrapper.h:
880         (WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper):
881         * plugins/PluginData.h:
882         (PluginData):
883         * plugins/PluginViewBase.h:
884         (WebCore::PluginViewBase::PluginViewBase):
885
886 2012-07-24  Patrick Gansterer  <paroga@webkit.org>
887
888         [Qt] Fix conversion from GregorianDateTime to QTime
889         https://bugs.webkit.org/show_bug.cgi?id=92068
890
891         Reviewed by Simon Hausmann.
892
893         * bridge/qt/qt_runtime.cpp:
894         (JSC::Bindings::convertValueToQVariant):
895         * bridge/qt/qt_runtime_qt4.cpp:
896         (JSC::Bindings::convertValueToQVariant):
897
898 2012-07-24  Arko Saha  <arko@motorola.com>
899
900         Microdata: Implement PropertyNodeList interface.
901         https://bugs.webkit.org/show_bug.cgi?id=80269
902
903         Reviewed by Ryosuke Niwa.
904
905         Added support for PropertyNodeList interface. Currently HTMLPropertiesCollection.namedItem(name)
906         returns NodeList object. Made changes so that it will return PropertyNodeList object.
907
908         Implemented propertyNodeList.getValues() method. It returns an array of various values. Its
909         values are obtained from the "itemValue" DOM property of each of the elements represented by
910         the object, in tree order.
911
912         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#propertynodelist
913
914         Tests: fast/dom/MicroData/nameditem-returns-propertynodelist.html
915                fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html
916                fast/dom/MicroData/propertynodelist-getvalues-test.html
917                fast/dom/MicroData/propertynodelist-test-add-remove-element.html
918
919         * CMakeLists.txt:
920         * DerivedSources.cpp:
921         * DerivedSources.make:
922         * DerivedSources.pri:
923         * GNUmakefile.list.am:
924         * Target.pri:
925         * UseJSC.cmake:
926         * UseV8.cmake:
927         * WebCore.gypi:
928         * WebCore.vcproj/WebCore.vcproj:
929         * WebCore.xcodeproj/project.pbxproj:
930         * bindings/gobject/GNUmakefile.am:
931         * bindings/js/JSBindingsAllInOne.cpp:
932         * bindings/js/JSMicroDataItemValueCustom.cpp: Added.
933         (WebCore):
934         (WebCore::toJS): Added toJS() custom method. Returns Node if itemValue is node else returns String.
935         * bindings/v8/custom/V8MicroDataItemValueCustom.cpp: Added.
936         (WebCore):
937         (WebCore::toV8): Added toV8 custom code.
938         * dom/DynamicNodeList.cpp:
939         (WebCore::DynamicNodeListCacheBase::rootNode): Return document if owner node has itemref attribute specified.
940         (WebCore):
941         (WebCore::DynamicNodeListCacheBase::ownerNodeHasItemRefAttribute): Returns true if owner node has itemref attribute
942         specified with root type NodeListRootedAtDocumentIfOwnerHasItemrefAttr.
943         (WebCore::DynamicNodeListCacheBase::invalidateCache):
944         (WebCore::DynamicNodeList::itemWithName): Update itemrefElements cache if root type is
945         NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
946         * dom/DynamicNodeList.h: Added m_hasItemRefElements in DynamicNodeListCacheBase to check if itemRefElmenets cache
947         is valid.
948         (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase):
949         (WebCore::DynamicNodeListCacheBase::isRootedAtDocument):
950         (DynamicNodeListCacheBase):
951         (WebCore::DynamicNodeListCacheBase::isItemRefElementsCacheValid):
952         (WebCore::DynamicNodeListCacheBase::setItemRefElementsCacheValid):
953         (WebCore::DynamicNodeListCacheBase::rootType): Returns cached root type.
954         (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange): Invalidate NodeListCache on itemref
955         attribute change.
956         * dom/Node.cpp:
957         (WebCore::Node::propertyNodeList):
958         * dom/Node.h:
959         (WebCore):
960         (Node):
961         * dom/PropertyNodeList.cpp: Added.
962         (WebCore):
963         (WebCore::PropertyNodeList::PropertyNodeList):
964         (WebCore::PropertyNodeList::~PropertyNodeList):
965         (WebCore::PropertyNodeList::elementIsPropertyOfRefElement): Checks if the testElement is a property of Microdata
966         item.
967         (WebCore::PropertyNodeList::updateRefElements):
968         (WebCore::PropertyNodeList::nodeMatches):
969         (WebCore::PropertyNodeList::getValues): Returns PropertyValueArray whose values are obtained from the
970         itemValue DOM property of each of the elements represented by the object, in tree order.
971         * dom/PropertyNodeList.h: Added.
972         (WebCore):
973         (PropertyNodeList):
974         (WebCore::PropertyNodeList::create):
975         * dom/PropertyNodeList.idl: Added.
976         * html/HTMLCollection.cpp:
977         (WebCore::DynamicNodeListCacheBase::itemCommon): Update itemrefElements cache if its a NodeListCollectionType with
978         root type NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
979         * html/HTMLElement.cpp:
980         (WebCore::HTMLElement::properties):
981         (WebCore):
982         (WebCore::HTMLElement::getItemRefElements): Returns the ItemRefElements list of given element. Added this
983         method to share the code between HTMLPropertiesCollection and PropertyNodeList to update itemRefElements.
984         * html/HTMLElement.h:
985         (HTMLElement):
986         * html/HTMLPropertiesCollection.cpp:
987         (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
988         (WebCore::HTMLPropertiesCollection::updateRefElements):
989         (WebCore::HTMLPropertiesCollection::updateNameCache):
990         (WebCore::HTMLPropertiesCollection::namedItem): Return PropertyNodeList object instead of NodeList.
991         (WebCore::HTMLPropertiesCollection::hasNamedItem): Return true if it finds an item with given
992         name in the properties collection.
993         * html/HTMLPropertiesCollection.h: Removed m_hasItemRefElements member variable, now DynamicNodeListCacheBase
994         has isItemRefElementsCacheValid. Also removed m_hasPropertyNameCache, as DynamicNodeListCacheBase already has
995         hasNameCache() and setHasNameCache().
996         (WebCore):
997         (HTMLPropertiesCollection):
998         (WebCore::HTMLPropertiesCollection::invalidateCache):
999         (WebCore::HTMLPropertiesCollection::updatePropertyCache):
1000         * html/HTMLPropertiesCollection.idl:
1001         * html/MicroDataItemValue.idl: Added.
1002         * page/DOMWindow.idl:
1003
1004 2012-07-24  Kentaro Hara  <haraken@chromium.org>
1005
1006         [JSC] REGRESSION(r122912): CodeGeneratorJS.pm should not
1007         implicitly assume ScriptExecutionContext for static attributes
1008         https://bugs.webkit.org/show_bug.cgi?id=91924
1009
1010         Reviewed by Adam Barth.
1011
1012         r122912 implemented static attributes in CodeGeneratorJS.pm.
1013         However, the generated code assumes that static attributes
1014         always require ScriptExecutionContext, which is wrong.
1015         If we need a ScriptExecutionContext, we should specify
1016         [CallWith=ScriptExecutionContext].
1017
1018         This patch fixes CodeGeneratorJS.pm so that static attributes
1019         do not assume ScriptExecutionContext. This fix aligns with
1020         the fix in CodeGeneratorV8.pm in r123308.
1021
1022         Test: bindings/scripts/test/TestObj.idl
1023
1024         * bindings/scripts/CodeGeneratorJS.pm:
1025         (GenerateImplementation):
1026         * bindings/scripts/test/JS/JSTestInterface.cpp:
1027         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
1028         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
1029         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
1030         * bindings/scripts/test/JS/JSTestObj.cpp:
1031         (WebCore::jsTestObjConstructorStaticReadOnlyIntAttr):
1032         (WebCore::jsTestObjConstructorStaticStringAttr):
1033         (WebCore::setJSTestObjConstructorStaticStringAttr):
1034
1035 2012-07-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1036
1037         Missing *explicit* keyword in editing.
1038         https://bugs.webkit.org/show_bug.cgi?id=92055
1039
1040         Reviewed by Ryosuke Niwa.
1041
1042         Some constructors missed to use *explicit* keyword. They need to be added
1043         *explicit* keyword to contructor which has a parameter in order to avoid
1044         implicit type conversion.
1045
1046         No new tests. Covered by existing tests.
1047
1048         * editing/AlternativeTextController.h:
1049         (WebCore::AlternativeTextController::UNLESS_ENABLED):
1050         * editing/BreakBlockquoteCommand.h:
1051         (BreakBlockquoteCommand):
1052         * editing/DeleteButton.h:
1053         (DeleteButton):
1054         * editing/DeleteButtonController.h:
1055         (DeleteButtonController):
1056         * editing/EditCommand.h:
1057         (EditCommand):
1058         (WebCore::SimpleEditCommand::SimpleEditCommand):
1059         * editing/EditingBehavior.h:
1060         (WebCore::EditingBehavior::EditingBehavior):
1061         * editing/EditingStyle.h:
1062         (EditingStyle):
1063         * editing/Editor.h:
1064         (Editor):
1065         * editing/FrameSelection.h:
1066         (FrameSelection):
1067         * editing/InsertLineBreakCommand.h:
1068         (InsertLineBreakCommand):
1069         * editing/ModifySelectionListLevel.h:
1070         (ModifySelectionListLevelCommand):
1071         (DecreaseSelectionListLevelCommand):
1072         * editing/RemoveFormatCommand.h:
1073         (RemoveFormatCommand):
1074         * editing/RemoveNodeCommand.h:
1075         (RemoveNodeCommand):
1076         * editing/RemoveNodePreservingChildrenCommand.h:
1077         (RemoveNodePreservingChildrenCommand):
1078         * editing/ReplaceNodeWithSpanCommand.h:
1079         (ReplaceNodeWithSpanCommand):
1080         * editing/TextInsertionBaseCommand.h:
1081         (TextInsertionBaseCommand):
1082         * editing/UndoManager.h:
1083         (UndoManager):
1084         * editing/UnlinkCommand.h:
1085         (UnlinkCommand):
1086         * editing/WrapContentsInDummySpanCommand.h:
1087         (WrapContentsInDummySpanCommand):
1088
1089 2012-07-23  Dominic Mazzoni  <dmazzoni@google.com>
1090
1091         AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
1092         https://bugs.webkit.org/show_bug.cgi?id=87899
1093
1094         Reviewed by Chris Fleizach.
1095
1096         Refactors AccessibilityRenderObject so that it inherits from a new class,
1097         AccessibilityNodeObject, that can be constructed from a Node without a
1098         renderer. Modifies AXObjectCache so that it automatically creates an
1099         AccessibilityNodeObject for elements in a canvas subtree but not otherwise.
1100         A new layout test verifies that this correctly exposes an accessibility
1101         tree with appropriate roles for elements in a canvas subtree.
1102
1103         This patch does not try to complete the implementation of
1104         AccessibilityNodeObject. Most AX methods are still unimplemented and need
1105         to be migrated from AccessibilityRenderObject to AccessibilityNodeObject
1106         in a future patch.
1107         
1108         This patch also doesn't change anything outside of WebCore/accessibility, so
1109         the rest of WebCore only calls AXObjectCache when there are changes to a
1110         RenderObject, not to a Node. Accessible notifications on nodes without
1111         renderers need to be implemented in a future patch.
1112
1113         Test: accessibility/canvas-accessibilitynodeobject.html
1114
1115         * CMakeLists.txt:
1116         * GNUmakefile.list.am:
1117         * Target.pri:
1118         * WebCore.gypi:
1119         * accessibility/AXObjectCache.cpp:
1120         (WebCore::AXObjectCache::get):
1121         (WebCore):
1122         (WebCore::createFromNode):
1123         (WebCore::AXObjectCache::getOrCreate):
1124         (WebCore::AXObjectCache::remove):
1125         * accessibility/AXObjectCache.h:
1126         (AXObjectCache):
1127         (WebCore::AXObjectCache::get):
1128         (WebCore::AXObjectCache::getOrCreate):
1129         (WebCore::AXObjectCache::remove):
1130         * accessibility/AccessibilityARIAGrid.cpp:
1131         (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
1132         (WebCore):
1133         (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
1134         (WebCore::AccessibilityARIAGrid::init):
1135         (WebCore::AccessibilityARIAGrid::create):
1136         * accessibility/AccessibilityARIAGrid.h:
1137         (AccessibilityARIAGrid):
1138         * accessibility/AccessibilityARIAGridCell.cpp:
1139         (WebCore::AccessibilityARIAGridCell::create):
1140         * accessibility/AccessibilityARIAGridRow.cpp:
1141         (WebCore::AccessibilityARIAGridRow::create):
1142         * accessibility/AccessibilityAllInOne.cpp:
1143         * accessibility/AccessibilityList.cpp:
1144         (WebCore::AccessibilityList::create):
1145         * accessibility/AccessibilityListBox.cpp:
1146         (WebCore::AccessibilityListBox::create):
1147         * accessibility/AccessibilityMediaControls.cpp:
1148         (WebCore::AccessibilityMediaControl::create):
1149         (WebCore::AccessibilityMediaControlsContainer::create):
1150         (WebCore::AccessibilityMediaTimeline::create):
1151         (WebCore::AccessibilityMediaTimeDisplay::create):
1152         * accessibility/AccessibilityMenuList.cpp:
1153         (WebCore::AccessibilityMenuList::create):
1154         (WebCore):
1155         * accessibility/AccessibilityMenuList.h:
1156         (AccessibilityMenuList):
1157         * accessibility/AccessibilityNodeObject.cpp: Added.
1158         (WebCore):
1159         (WebCore::AccessibilityNodeObject::AccessibilityNodeObject):
1160         (WebCore::AccessibilityNodeObject::~AccessibilityNodeObject):
1161         (WebCore::AccessibilityNodeObject::init):
1162         (WebCore::AccessibilityNodeObject::create):
1163         (WebCore::AccessibilityNodeObject::detach):
1164         (WebCore::AccessibilityNodeObject::childrenChanged):
1165         (WebCore::AccessibilityNodeObject::updateAccessibilityRole):
1166         (WebCore::AccessibilityNodeObject::firstChild):
1167         (WebCore::AccessibilityNodeObject::lastChild):
1168         (WebCore::AccessibilityNodeObject::previousSibling):
1169         (WebCore::AccessibilityNodeObject::nextSibling):
1170         (WebCore::AccessibilityNodeObject::parentObjectIfExists):
1171         (WebCore::AccessibilityNodeObject::parentObject):
1172         (WebCore::AccessibilityNodeObject::elementRect):
1173         (WebCore::AccessibilityNodeObject::setNode):
1174         (WebCore::AccessibilityNodeObject::document):
1175         (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
1176         (WebCore::AccessibilityNodeObject::addChildren):
1177         (WebCore::AccessibilityNodeObject::accessibilityIsIgnored):
1178         (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
1179         (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute):
1180         (WebCore::AccessibilityNodeObject::ariaRoleAttribute):
1181         (WebCore::AccessibilityNodeObject::remapAriaRoleDueToParent):
1182         * accessibility/AccessibilityNodeObject.h: Added.
1183         (WebCore):
1184         (AccessibilityNodeObject):
1185         (WebCore::AccessibilityNodeObject::isAccessibilityNodeObject):
1186         (WebCore::AccessibilityNodeObject::node):
1187         (WebCore::AccessibilityNodeObject::isDetached):
1188         (WebCore::toAccessibilityNodeObject):
1189         * accessibility/AccessibilityObject.h:
1190         (WebCore::AccessibilityObject::isAccessibilityNodeObject):
1191         * accessibility/AccessibilityProgressIndicator.cpp:
1192         (WebCore::AccessibilityProgressIndicator::create):
1193         * accessibility/AccessibilityRenderObject.cpp:
1194         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
1195         (WebCore::AccessibilityRenderObject::init):
1196         (WebCore):
1197         (WebCore::AccessibilityRenderObject::create):
1198         (WebCore::AccessibilityRenderObject::detach):
1199         (WebCore::AccessibilityRenderObject::setRenderer):
1200         (WebCore::AccessibilityRenderObject::canHaveChildren):
1201         (WebCore::AccessibilityRenderObject::addCanvasChildren):
1202         (WebCore::AccessibilityRenderObject::addChildren):
1203         * accessibility/AccessibilityRenderObject.h:
1204         (AccessibilityRenderObject):
1205         * accessibility/AccessibilitySlider.cpp:
1206         (WebCore::AccessibilitySlider::create):
1207         * accessibility/AccessibilityTable.cpp:
1208         (WebCore::AccessibilityTable::AccessibilityTable):
1209         (WebCore):
1210         (WebCore::AccessibilityTable::~AccessibilityTable):
1211         (WebCore::AccessibilityTable::init):
1212         (WebCore::AccessibilityTable::create):
1213         * accessibility/AccessibilityTable.h:
1214         (AccessibilityTable):
1215         * accessibility/AccessibilityTableCell.cpp:
1216         (WebCore::AccessibilityTableCell::create):
1217         * accessibility/AccessibilityTableRow.cpp:
1218         (WebCore::AccessibilityTableRow::create):
1219
1220 2012-07-23  David Barr  <davidbarr@chromium.org>
1221
1222         Fix ENABLE_CSS_IMAGE_ORIENTATION compile flag
1223         https://bugs.webkit.org/show_bug.cgi?id=91961
1224
1225         Reviewed by Tony Chang.
1226
1227         https://bugs.webkit.org/show_bug.cgi?id=89055
1228         A rule was missed implementing the ENABLE_CSS_IMAGE_ORIENTATION compile flag.
1229
1230         https://bugs.webkit.org/show_bug.cgi?id=90046
1231         Half of the missing rule was inadvertently added together with ENABLE_CSS_STICKY_POSITION.
1232
1233         No new tests; build configuration fix.
1234
1235         * Configurations/FeatureDefines.xcconfig:
1236
1237 2012-07-23  Douglas Stockwell  <dstockwell@chromium.org>
1238
1239         Null-pointer crash when a derived color like -webkit-activelink is set in a gradient stop
1240         https://bugs.webkit.org/show_bug.cgi?id=89148
1241
1242         Reviewed by Simon Fraser.
1243
1244         CSSGradientValue attempted to resolve colors during paint, this crashed
1245         when a derived color like -webkit-activelink was encountered because the
1246         corresponding element was no longer available in the StyleResolver.
1247         Instead, by adding a field to CSSGradientColorStop we can resolve and
1248         then cache the resolved colors at the correct time. To avoid sharing
1249         cached derived colors between elements we clone the gradient values when
1250         needed.
1251
1252         Test: fast/css/crash-on-gradient-with-derived-color.html
1253
1254         * css/CSSGradientValue.cpp:
1255         (WebCore::CSSGradientValue::gradientWithStylesResolved): Added. Resolve and cache
1256         resolved colors, clone if colors are derived from the element.
1257         (WebCore):
1258         (WebCore::CSSGradientValue::addStops):
1259         (WebCore::CSSGradientValue::isCacheable): Defer to new logic in
1260         StyleResolver.
1261         * css/CSSGradientValue.h:
1262         (CSSGradientColorStop): Added cache of resolved color.
1263         (CSSGradientValue):
1264         (CSSLinearGradientValue):
1265         (CSSRadialGradientValue):
1266         * css/CSSImageGeneratorValue.h:
1267         (WebCore):
1268         * css/CSSValue.h:
1269         (WebCore::CSSValue::isGradientValue):
1270         * css/StyleResolver.cpp:
1271         (WebCore::StyleResolver::collectMatchingRulesForList):
1272         * css/StyleResolver.h:
1273         (StyleResolver):
1274         * rendering/style/StyleGeneratedImage.cpp:
1275         (WebCore::StyleGeneratedImage::image): Revert change from r96449. This
1276         is no longer necessary as the gradient colors are now resolved at a
1277         time when the style is set on StyleResolver.
1278
1279 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
1280
1281         Move GregorianDateTime from JSC to WTF namespace
1282         https://bugs.webkit.org/show_bug.cgi?id=91948
1283
1284         Reviewed by Geoffrey Garen.
1285
1286         Moving GregorianDateTime into the WTF namespace allows us to us to
1287         use it in WebCore too. The new class has the same behaviour as the
1288         old struct. Only the unused timeZone member has been removed.
1289
1290         * bridge/qt/qt_runtime.cpp:
1291         (JSC::Bindings::convertValueToQVariant):
1292         (JSC::Bindings::convertQVariantToValue):
1293         * bridge/qt/qt_runtime_qt4.cpp:
1294         (JSC::Bindings::convertValueToQVariant):
1295         (JSC::Bindings::convertQVariantToValue):
1296
1297 2012-07-23  Mark Pilgrim  <pilgrim@chromium.org>
1298
1299         [Chromium] Move layoutTestMode to WebCore
1300         https://bugs.webkit.org/show_bug.cgi?id=92010
1301
1302         Reviewed by Adam Barth.
1303
1304         Part of a refactoring series. See tracking bug 82948.
1305
1306         * CMakeLists.txt:
1307         * GNUmakefile.list.am:
1308         * Target.pri:
1309         * WebCore.gypi:
1310         * WebCore.vcproj/WebCore.vcproj:
1311         * WebCore.xcodeproj/project.pbxproj:
1312         * bindings/generic/RuntimeEnabledFeatures.h:
1313         (RuntimeEnabledFeatures):
1314         * platform/LayoutTestSupport.cpp: Added.
1315         (WebCore):
1316         (WebCore::isRunningLayoutTest):
1317         (WebCore::setIsRunningLayoutTest):
1318         * platform/LayoutTestSupport.h: Added.
1319         (WebCore):
1320         * platform/chromium/PlatformSupport.h:
1321         (PlatformSupport):
1322         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
1323         (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
1324         (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
1325         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
1326         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
1327         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
1328         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
1329         (WebCore):
1330         (WebCore::LookupAltName):
1331         (WebCore::fontContainsCharacter):
1332         (WebCore::FillLogFont):
1333         (WebCore::FontCache::getFontDataForCharacters):
1334         (WebCore::FontCache::createFontPlatformData):
1335         * platform/graphics/skia/FontCustomPlatformData.cpp:
1336         (WebCore::FontCustomPlatformData::fontPlatformData):
1337         * platform/graphics/skia/FontSkia.cpp:
1338         (WebCore::Font::drawGlyphs):
1339         * rendering/RenderThemeChromiumAndroid.cpp:
1340         (WebCore::RenderThemeChromiumAndroid::systemColor):
1341         (WebCore::RenderThemeChromiumAndroid::adjustInnerSpinButtonStyle):
1342         * rendering/RenderThemeChromiumMac.mm:
1343         (WebCore::RenderThemeChromiumMac::usesTestModeFocusRingColor):
1344         * rendering/RenderThemeChromiumSkia.cpp:
1345         (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
1346         * rendering/RenderThemeChromiumWin.cpp:
1347         (WebCore):
1348         (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
1349         (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
1350         (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
1351         (WebCore::RenderThemeChromiumWin::systemColor):
1352         (WebCore::menuListButtonWidth):
1353         (WebCore::RenderThemeChromiumWin::determineClassicState):
1354
1355 2012-07-23  Dave Tu  <dtu@chromium.org>
1356
1357         [chromium] Add droppedFrameCount to renderingStats.
1358         https://bugs.webkit.org/show_bug.cgi?id=91694
1359
1360         Reviewed by Adrienne Walker.
1361
1362         * platform/graphics/chromium/cc/CCFrameRateCounter.cpp:
1363         (WebCore):
1364         (WebCore::CCFrameRateCounter::frameInterval):
1365         (WebCore::CCFrameRateCounter::frameIndex):
1366         (WebCore::CCFrameRateCounter::CCFrameRateCounter):
1367         (WebCore::CCFrameRateCounter::markBeginningOfFrame):
1368         (WebCore::CCFrameRateCounter::isBadFrame):
1369         * platform/graphics/chromium/cc/CCFrameRateCounter.h:
1370         (WebCore::CCFrameRateCounter::droppedFrameCount):
1371         (CCFrameRateCounter):
1372         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1373         (WebCore::CCLayerTreeHost::renderingStats):
1374         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1375         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
1376         (WebCore::CCLayerTreeHostImpl::drawLayers):
1377         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1378         (CCLayerTreeHostImpl):
1379         * platform/graphics/chromium/cc/CCRenderingStats.h:
1380         (CCRenderingStats):
1381         (WebCore::CCRenderingStats::CCRenderingStats):
1382         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1383         (WebCore::CCSingleThreadProxy::implSideRenderingStats):
1384         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1385         (WebCore::CCThreadProxy::implSideRenderingStatsOnImplThread):
1386
1387 2012-07-23  Dan Bernstein  <mitz@apple.com>
1388
1389         Fixed the build after r123418.
1390
1391         * WebCore.exp.in: Added DocumentMarkerController::addTextMatchMarker.
1392
1393 2012-07-23  Mike Lawther  <mikelawther@chromium.org>
1394
1395         CSS3 calc: optimise blending expression
1396         https://bugs.webkit.org/show_bug.cgi?id=90037
1397
1398         Reviewed by Tony Chang.
1399
1400         Introduce a new calc expression node - a BlendLength node. Given two Lengths and a progress
1401         this blends them together when evaluated.
1402
1403         An alternative and more general approach of being able to blend two CalcExpressionNodes was
1404         tested, but involves more memory allocations, was measurably slower, and nothing currently
1405         would make use of the generality. 
1406
1407         No functional change. Covered by existing tests.
1408
1409         * platform/CalculationValue.h:
1410         (CalcExpressionBlendLength):
1411         (WebCore::CalcExpressionBlendLength::CalcExpressionBlendLength):
1412         (WebCore::CalcExpressionBlendLength::operator==):
1413         (WebCore::CalcExpressionBlendLength::evaluate):
1414         (WebCore):
1415         * platform/Length.cpp:
1416         (WebCore::Length::blendCalculation):
1417
1418 2012-07-23  Nico Weber  <thakis@chromium.org>
1419
1420         [chromium] Show search tickmarks on css-styled scrollbars
1421         https://bugs.webkit.org/show_bug.cgi?id=91949
1422
1423         Reviewed by Adrienne Walker.
1424
1425         This is done by letting RenderScrollbarTheme::paintTickmarks()
1426         delegate to the native ScrollbarTheme. To make this possible,
1427         move paintTickmarks() from ScrollbarThemeComposite to the
1428         superclass ScrollbarTheme.
1429
1430         For testing, add internals.addTextMatchMarker() and add a pixel test.
1431
1432         * platform/ScrollbarTheme.h:
1433         (WebCore::ScrollbarTheme::paintTickmarks):
1434         Moved paintTickmarks() from ScrollbarThemeComposite to here.
1435         * platform/ScrollbarThemeComposite.h:
1436         Remove paintTickmarks().
1437         * platform/chromium/ScrollbarThemeChromium.cpp:
1438         (WebCore::ScrollbarThemeChromium::paintTickmarks):
1439         Switch to drawing tickmarks as vectors, so they can be arbitrarily wide.
1440         * platform/chromium/ScrollbarThemeChromiumMac.h:
1441         (ScrollbarThemeChromiumMac):
1442         Implement paintTickmarks(), so that css-styled scrollbars get tickmarks on mac.
1443         * platform/chromium/ScrollbarThemeChromiumMac.mm:
1444         (WebCore::ScrollbarThemeChromiumMac::paint):
1445         (WebCore::ScrollbarThemeChromiumMac::paintTickmarks):
1446         Implement paintTickmarks(), so that css-styled scrollbars get tickmarks on mac.
1447         * rendering/RenderScrollbarTheme.cpp:
1448         (WebCore::RenderScrollbarTheme::paintTickmarks):
1449         Delegate to the native ScrollbarTheme for tickmark drawing.
1450         (WebCore):
1451         * rendering/RenderScrollbarTheme.h:
1452         (RenderScrollbarTheme):
1453         Override paintTickmarks().
1454
1455 2012-07-23  Brian Anderson  <brianderson@chromium.org>
1456
1457         [chromium] Use shallow flushes that don't glFlush
1458         https://bugs.webkit.org/show_bug.cgi?id=90325
1459
1460         Reviewed by Kenneth Russell.
1461
1462         Adds plumbing for the shallowFlushCHROMIUM extension and uses
1463         shallow flushes instead of normal flushes when uploading textures.
1464         Shallow flushes allow us to initiate command buffer flushes to
1465         the GPU thread/process without the overhead of a true glFlush.
1466
1467         CCTextureUpdaterTest updated to recognize shallow flushes.
1468
1469         * platform/chromium/support/Extensions3DChromium.cpp:
1470         (WebCore::Extensions3DChromium::shallowFlushCHROMIUM):
1471         (WebCore):
1472         * platform/graphics/chromium/Extensions3DChromium.h:
1473         (Extensions3DChromium):
1474         * platform/graphics/chromium/cc/CCGraphicsContext.h:
1475         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
1476         (WebCore::CCResourceProvider::shallowFlushIfSupported):
1477         (WebCore):
1478         (WebCore::CCResourceProvider::CCResourceProvider):
1479         (WebCore::CCResourceProvider::initialize):
1480         * platform/graphics/chromium/cc/CCResourceProvider.h:
1481         (CCResourceProvider):
1482         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
1483         (WebCore::CCTextureUpdater::update):
1484
1485 2012-07-23  Hanyee Kim  <choco@company100.net>
1486
1487         When using TextureMapper, WebKit does not retain final value of opacity in animations, unless it is specified on the last key frame.
1488         https://bugs.webkit.org/show_bug.cgi?id=91322
1489
1490         Reviewed by Noam Rosenthal.
1491
1492         When -webkit-fill-mode is forwards, GraphicsLayerAnimation::apply does not apply
1493         the property values defined in the last executing keyframe after the final iteration of animation.
1494
1495         This patch does not return right after the end of animation, but it keeps applying
1496         the property values defined in the last executing keyframe.
1497         Add normalizedAnimationValueForFillsForwards function that returns a normalized value of the
1498         last executing keyframe.
1499
1500         Link to CSS Animations spec: http://www.w3.org/TR/css3-animations/#animation-fill-mode-property
1501
1502         Test: animations/fill-mode-forwards2.html
1503
1504         * platform/graphics/GraphicsLayerAnimation.cpp:
1505         (WebCore::normalizedAnimationValueForFillsForwards):
1506         (WebCore):
1507         (WebCore::GraphicsLayerAnimation::apply):
1508
1509 2012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
1510
1511         Unreviewed, rolling out r123184, r123195, and r123197.
1512         http://trac.webkit.org/changeset/123184
1513         http://trac.webkit.org/changeset/123195
1514         http://trac.webkit.org/changeset/123197
1515         https://bugs.webkit.org/show_bug.cgi?id=92049
1516
1517         pagecycler regression (Requested by morrita on #webkit).
1518
1519         * WebCore.exp.in:
1520         * dom/Document.cpp:
1521         (WebCore::Document::Document):
1522         (WebCore::Document::~Document):
1523         (WebCore::Document::suggestedMIMEType):
1524         * dom/Document.h:
1525         (WebCore):
1526         (WebCore::Node::isDocumentNode):
1527         (WebCore::Node::Node):
1528         * dom/Node.cpp:
1529         (WebCore::Node::~Node):
1530         (WebCore::Node::setDocument):
1531         (WebCore):
1532         (WebCore::Node::setTreeScope):
1533         (WebCore::Node::treeScope):
1534         (WebCore::Node::isInShadowTree):
1535         (WebCore::Node::reportMemoryUsage):
1536         * dom/Node.h:
1537         (Node):
1538         (WebCore::Node::document):
1539         (WebCore::Node::inDocument):
1540         * dom/NodeRareData.h:
1541         (WebCore::NodeRareData::NodeRareData):
1542         (WebCore::NodeRareData::treeScope):
1543         (WebCore::NodeRareData::setTreeScope):
1544         (NodeRareData):
1545         * dom/ShadowRoot.cpp:
1546         (WebCore::ShadowRoot::ShadowRoot):
1547         * dom/TreeScope.cpp:
1548         (WebCore::TreeScope::TreeScope):
1549         (WebCore::TreeScope::setParentTreeScope):
1550         * dom/TreeScope.h:
1551         (WebCore):
1552         (WebCore::TreeScope::idTargetObserverRegistry):
1553         (TreeScope):
1554         * dom/TreeScopeAdopter.cpp:
1555         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
1556         (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
1557         * editing/MoveSelectionCommand.cpp:
1558         * editing/RemoveNodeCommand.cpp:
1559         * editing/RemoveNodePreservingChildrenCommand.cpp:
1560         * inspector/PageConsoleAgent.cpp:
1561
1562 2012-07-23  Roger Fong  <roger_fong@apple.com>
1563
1564         On Windows, if select element is off screen horizontally, 
1565         menu is either inappropriately resized or positioned offscreen.
1566         https://bugs.webkit.org/show_bug.cgi?id=91913
1567         <rdar://problem/7611229>
1568
1569         Reviewed by Tim Horton.
1570
1571         If the select element is positioned off the edge of the screen to the left, 
1572         the menu is resized. It should not be resized, just shifted to remain on the screen.
1573         If the select element is positioned off the edge of the screen to the right, 
1574         the menu goes off screen instead of being shifted over to appear on screen.
1575         This problem only occurs on Windows.
1576         
1577         Test: ManualTests/win/select-menu-off-screen.html
1578
1579         * platform/win/PopupMenuWin.cpp:
1580         (WebCore::PopupMenuWin::calculatePositionAndSize):
1581         Modified final horizontal position calculation code to position
1582         popup menu on screen if it would otherwise go off.
1583         
1584 2012-07-23  David Dorwin  <ddorwin@chromium.org>
1585
1586         Fixed crash in webkitAddKey() when key parameter is null.
1587         https://bugs.webkit.org/show_bug.cgi?id=85444
1588
1589         Reviewed by Kentaro Hara.
1590
1591         Reference: Step 1 of http://dvcs.w3.org/hg/html-media/raw-file/5f76a0b43836/encrypted-media/encrypted-media.html#dom-addkey
1592
1593         Tests: media/encrypted-media/encrypted-media-syntax.html 
1594
1595         * html/HTMLMediaElement.cpp:
1596         (WebCore::HTMLMediaElement::webkitAddKey):
1597
1598 2012-07-23  Hayato Ito  <hayato@chromium.org>
1599
1600         A FocusScope for a distributed node should not be its TreeScope.
1601         https://bugs.webkit.org/show_bug.cgi?id=91829
1602
1603         Reviewed by Dimitri Glazkov.
1604
1605         Current implementation of FocusScope::focusScopeOf(Node*) returns
1606         the given node's treeScope().  That does not apply if the node is
1607         a distributed node.  We should calculate a FocusScope for a
1608         distributed node by traversing ancestor nodes in Composed Shadow
1609         Tree.
1610
1611         Test: fast/dom/shadow/focus-navigation-with-distributed-nodes.html
1612
1613         * page/FocusController.cpp:
1614         (WebCore::FocusScope::focusScopeOf):
1615
1616 2012-07-23  Douglas Stockwell  <dstockwell@google.com>
1617
1618         Null-pointer crash when parsing border-image
1619         https://bugs.webkit.org/show_bug.cgi?id=91963
1620
1621         Reviewed by Darin Adler.
1622
1623         Test: fast/css/border-image-fill-crash.html
1624
1625         * css/CSSParser.cpp:
1626         (WebCore::CSSParser::parseBorderImageRepeat): Handle the case where
1627         parseBorderImageRepeat is called when the value list is empty.
1628
1629 2012-07-23  Bem Jones-Bey  <bjonesbe@adobe.com>
1630
1631         [CSS Exclusions] SVG shape errors should invalidate exclusion shapes
1632         https://bugs.webkit.org/show_bug.cgi?id=91761
1633
1634         Reviewed by Andreas Kling.
1635
1636         CSS exclusion shapes that are specified with negative radiuses or
1637         height/width are now considered invalid and ignored.
1638
1639         Tests added to
1640         LayoutTests/fast/exclusions/parsing-wrap-shape-lengths.html
1641
1642         * css/CSSParser.cpp:
1643         (WebCore::CSSParser::parseExclusionShapeRectangle):
1644         (WebCore::CSSParser::parseExclusionShapeCircle):
1645         (WebCore::CSSParser::parseExclusionShapeEllipse):
1646
1647 2012-07-23  Tien-Ren Chen  <trchen@chromium.org>
1648
1649         [chromium] Implement scrollbar theme for Android
1650         https://bugs.webkit.org/show_bug.cgi?id=91674
1651
1652         Reviewed by Adam Barth.
1653
1654         Previously the scrollbar for Android was implemented as an extra
1655         drawing pass in the compositor. Now we switch to use the standard
1656         ScrollbarTheme mechanism.
1657
1658         No new tests. We use mock scrollbars during layout test to share
1659         pixel results with Linux.
1660
1661         * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
1662         (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
1663         (WebCore::ScrollbarThemeChromiumAndroid::thumbPosition):
1664         (WebCore::ScrollbarThemeChromiumAndroid::thumbLength):
1665         (WebCore::ScrollbarThemeChromiumAndroid::backButtonRect):
1666         (WebCore::ScrollbarThemeChromiumAndroid::forwardButtonRect):
1667         (WebCore::ScrollbarThemeChromiumAndroid::trackRect):
1668         (WebCore):
1669         (WebCore::ScrollbarThemeChromiumAndroid::paintThumb):
1670         (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
1671         * platform/chromium/ScrollbarThemeChromiumAndroid.h:
1672         (WebCore::ScrollbarThemeChromiumAndroid::usesOverlayScrollbars):
1673         (ScrollbarThemeChromiumAndroid):
1674         (WebCore::ScrollbarThemeChromiumAndroid::hasButtons):
1675         (WebCore::ScrollbarThemeChromiumAndroid::hasThumb):
1676
1677 2012-07-23  Kwang Yul Seo  <skyul@company100.net>
1678
1679         Use the original token to create an element in "reconstruct the active formatting elements" and "call the adoption agency"
1680         https://bugs.webkit.org/show_bug.cgi?id=91703
1681
1682         Reviewed by Adam Barth.
1683
1684         The current WebKit HTML5 parser implementation does not hold the original token
1685         in the stack of open elements and the active formatting elements. This is
1686         problematic because the original token is used to create an element in
1687         "reconstruct the active formatting elements" and "call the adoption agency".
1688
1689         As a workaround, WebKit uses the saved element instead of the original token
1690         to create an element. But this causes us to fail examples like this:
1691         <b id="1"><p><script>document.getElementById("1").id = "2"</script></p>TEXT</b>
1692         reconstructTheActiveFormattingElements calls this method to open a second <b>
1693         tag to wrap TEXT, it will have id "2", even though the HTML5 spec implies it
1694         should be "1".
1695
1696         Created a ref-counted container class, HTMLStackItem to hold the original token
1697         and the namespace URI as well as the element. Changed HTMLElementStack and
1698         HTMLFormattingElementList to use HTMLStackItem.
1699         Changed HTMLConstructionSite::reconstructTheActiveFormattingElements and
1700         HTMLTreeBuilder::callTheAdoptionAgency to create an element from the saved token
1701         instead of the saved element.
1702
1703         Updated test expectation for html5lib/runner-expected.txt
1704         because now resources/scripted/adoption01.dat passes.
1705
1706         * html/parser/HTMLConstructionSite.cpp:
1707         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
1708         (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
1709         (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
1710         (WebCore::HTMLConstructionSite::insertHTMLFormElement):
1711         (WebCore::HTMLConstructionSite::insertHTMLElement):
1712         (WebCore::HTMLConstructionSite::insertFormattingElement):
1713         (WebCore::HTMLConstructionSite::insertScriptElement):
1714         (WebCore::HTMLConstructionSite::insertForeignElement):
1715         (WebCore::HTMLConstructionSite::createElementFromSavedToken):
1716         (WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
1717         * html/parser/HTMLConstructionSite.h:
1718         (HTMLConstructionSite):
1719         (WebCore::HTMLConstructionSite::currentElementRecord):
1720         * html/parser/HTMLElementStack.cpp:
1721         (WebCore::HTMLElementStack::ElementRecord::ElementRecord):
1722         (WebCore::HTMLElementStack::ElementRecord::replaceElement):
1723         (WebCore::HTMLElementStack::pushRootNode):
1724         (WebCore::HTMLElementStack::pushHTMLHtmlElement):
1725         (WebCore::HTMLElementStack::pushRootNodeCommon):
1726         (WebCore::HTMLElementStack::pushHTMLHeadElement):
1727         (WebCore::HTMLElementStack::pushHTMLBodyElement):
1728         (WebCore::HTMLElementStack::push):
1729         (WebCore::HTMLElementStack::insertAbove):
1730         (WebCore::HTMLElementStack::pushCommon):
1731         * html/parser/HTMLElementStack.h:
1732         (WebCore::HTMLElementStack::ElementRecord::element):
1733         (WebCore::HTMLElementStack::ElementRecord::node):
1734         (WebCore::HTMLElementStack::ElementRecord::stackItem):
1735         (ElementRecord):
1736         (HTMLElementStack):
1737         * html/parser/HTMLFormattingElementList.cpp:
1738         (WebCore::HTMLFormattingElementList::swapTo):
1739         (WebCore::HTMLFormattingElementList::append):
1740         * html/parser/HTMLFormattingElementList.h:
1741         (WebCore::HTMLFormattingElementList::Entry::Entry):
1742         (WebCore::HTMLFormattingElementList::Entry::isMarker):
1743         (WebCore::HTMLFormattingElementList::Entry::stackItem):
1744         (WebCore::HTMLFormattingElementList::Entry::element):
1745         (WebCore::HTMLFormattingElementList::Entry::replaceElement):
1746         (WebCore::HTMLFormattingElementList::Entry::operator==):
1747         (WebCore::HTMLFormattingElementList::Entry::operator!=):
1748         (Entry):
1749         (HTMLFormattingElementList):
1750         * html/parser/HTMLStackItem.h: Added.
1751         (WebCore):
1752         (HTMLStackItem):
1753         (WebCore::HTMLStackItem::create):
1754         (WebCore::HTMLStackItem::element):
1755         (WebCore::HTMLStackItem::node):
1756         (WebCore::HTMLStackItem::token):
1757         (WebCore::HTMLStackItem::namespaceURI):
1758         (WebCore::HTMLStackItem::HTMLStackItem):
1759         * html/parser/HTMLTreeBuilder.cpp:
1760         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
1761         (WebCore::HTMLTreeBuilder::processStartTag):
1762         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
1763
1764 2012-07-23  Andreas Kling  <kling@webkit.org>
1765
1766         Report the extra memory used by immutable StylePropertySet objects.
1767         <http://webkit.org/b/92032>
1768
1769         Reviewed by Anders Carlsson.
1770
1771         Add an optional parameter to the MemoryClassInfo constructor for passing in additional base object
1772         size on top of sizeof(T).
1773
1774         Use this in StylePropertySet::reportMemoryUsage() to properly account for the CSSProperty array
1775         tacked onto the end of the object when m_isMutable == false.
1776
1777         * css/StylePropertySet.h:
1778         (WebCore::StylePropertySet::reportMemoryUsage):
1779         * dom/MemoryInstrumentation.h:
1780         (WebCore::MemoryObjectInfo::reportObjectInfo):
1781         (WebCore::MemoryClassInfo::MemoryClassInfo):
1782
1783 2012-07-23  Gregg Tavares  <gman@google.com>
1784
1785         Fix WebGL texSubImage2D for cube maps
1786         https://bugs.webkit.org/show_bug.cgi?id=91927
1787
1788         Reviewed by Kenneth Russell.
1789
1790         Fixes texSubImage2D so any size rectangle can be passed in
1791         for cube maps.
1792
1793         Test: fast/canvas/webgl/tex-sub-image-cube-maps.html
1794
1795         * html/canvas/WebGLRenderingContext.cpp:
1796         (WebCore):
1797         (WebCore::WebGLRenderingContext::copyTexImage2D):
1798         (WebCore::WebGLRenderingContext::texImage2DBase):
1799         (WebCore::WebGLRenderingContext::texSubImage2DBase):
1800         (WebCore::WebGLRenderingContext::validateTexFuncParameters):
1801         * html/canvas/WebGLRenderingContext.h:
1802         (WebGLRenderingContext):
1803
1804 2012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
1805
1806         Unreviewed, rolling out r123387.
1807         http://trac.webkit.org/changeset/123387
1808         https://bugs.webkit.org/show_bug.cgi?id=92036
1809
1810         Broke chromium win build (Requested by tony^work on #webkit).
1811
1812         * WebCore.gyp/WebCore.gyp:
1813         * WebCore.gyp/scripts/rule_bison.py:
1814         * bindings/scripts/preprocessor.pm:
1815         (applyPreprocessor):
1816         * make-hash-tools.pl:
1817
1818 2012-07-23  Kwang Yul Seo  <skyul@company100.net>
1819
1820         Ref-count AtomicHTMLToken
1821         https://bugs.webkit.org/show_bug.cgi?id=91981
1822
1823         Reviewed by Adam Barth.
1824
1825         Ref-count AtomicHTMLToken to avoid copying AtomicHTMLToken in Bug 91703.
1826
1827         No new tests - no functional changes.
1828
1829         * html/parser/HTMLConstructionSite.cpp:
1830         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
1831         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
1832         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
1833         (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
1834         (WebCore::HTMLConstructionSite::insertDoctype):
1835         (WebCore::HTMLConstructionSite::insertComment):
1836         (WebCore::HTMLConstructionSite::insertCommentOnDocument):
1837         (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
1838         (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
1839         (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
1840         (WebCore::HTMLConstructionSite::insertHTMLFormElement):
1841         (WebCore::HTMLConstructionSite::insertHTMLElement):
1842         (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
1843         (WebCore::HTMLConstructionSite::insertFormattingElement):
1844         (WebCore::HTMLConstructionSite::insertScriptElement):
1845         (WebCore::HTMLConstructionSite::insertForeignElement):
1846         (WebCore::HTMLConstructionSite::createElement):
1847         (WebCore::HTMLConstructionSite::createHTMLElement):
1848         (WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
1849         * html/parser/HTMLConstructionSite.h:
1850         (HTMLConstructionSite):
1851         * html/parser/HTMLToken.h:
1852         (WebCore::AtomicHTMLToken::create):
1853         (AtomicHTMLToken):
1854         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
1855         * html/parser/HTMLTreeBuilder.cpp:
1856         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
1857         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
1858         (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
1859         (WebCore::HTMLTreeBuilder::processToken):
1860         (WebCore::HTMLTreeBuilder::processDoctypeToken):
1861         (WebCore::HTMLTreeBuilder::processFakeStartTag):
1862         (WebCore::HTMLTreeBuilder::processFakeEndTag):
1863         (WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
1864         (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
1865         (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
1866         (WebCore):
1867         (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
1868         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
1869         (WebCore::HTMLTreeBuilder::processStartTagForInTable):
1870         (WebCore::HTMLTreeBuilder::processStartTag):
1871         (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
1872         (WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
1873         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
1874         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
1875         (WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
1876         (WebCore::HTMLTreeBuilder::processEndTagForInRow):
1877         (WebCore::HTMLTreeBuilder::processEndTagForInCell):
1878         (WebCore::HTMLTreeBuilder::processEndTagForInBody):
1879         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
1880         (WebCore::HTMLTreeBuilder::processEndTag):
1881         (WebCore::HTMLTreeBuilder::processComment):
1882         (WebCore::HTMLTreeBuilder::processCharacter):
1883         (WebCore::HTMLTreeBuilder::processEndOfFile):
1884         (WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
1885         (WebCore::HTMLTreeBuilder::defaultForBeforeHead):
1886         (WebCore::HTMLTreeBuilder::defaultForInHead):
1887         (WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
1888         (WebCore::HTMLTreeBuilder::defaultForAfterHead):
1889         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
1890         (WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
1891         (WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
1892         (WebCore::HTMLTreeBuilder::processScriptStartTag):
1893         (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
1894         (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
1895         (WebCore::HTMLTreeBuilder::parseError):
1896         * html/parser/HTMLTreeBuilder.h:
1897         (HTMLTreeBuilder):
1898         * html/parser/TextDocumentParser.cpp:
1899         (WebCore::TextDocumentParser::insertFakePreElement):
1900
1901 2012-07-23  Scott Graham  <scottmg@google.com>
1902
1903         Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
1904         https://bugs.webkit.org/show_bug.cgi?id=91667
1905
1906         Reviewed by Tony Chang.
1907
1908         Using native tools instead of cygwin version improves build time
1909         performance by roughly 50% (on top of previous cl-instead-of-gcc
1910         change).
1911
1912         Also, use - instead of / for cl flags because a layer of project
1913         generator converts them to \ otherwise, which causes the preprocessing
1914         to fail (very slowly because of the cygwin-loop with a sleep 1).
1915
1916         No new tests.
1917
1918         * WebCore.gyp/WebCore.gyp:
1919         * WebCore.gyp/scripts/rule_bison.py:
1920         * bindings/scripts/preprocessor.pm:
1921         (applyPreprocessor):
1922         * make-hash-tools.pl:
1923
1924 2012-06-12  Jer Noble  <jer.noble@apple.com>
1925
1926         MediaController.currentTime should be kept stable during script execution.
1927         https://bugs.webkit.org/show_bug.cgi?id=88555
1928
1929         Reviewed by Eric Carlson.
1930
1931         Test: media/media-controller-time-constant.html
1932
1933         To keep MediaController.currentTime stable, add a new m_position variable and 
1934         a new m_clearPositionTimer timer.  Both must be mutable variables as they will
1935         be updated from within const functions.  Calls to currentTime() will result in
1936         stable values until the next runloop iteration.
1937
1938         * html/MediaController.cpp:
1939         (MediaController::MediaController):
1940         (MediaController::currentTime):
1941         (MediaController::setCurrentTime):
1942         (MediaController::clearPositionTimerFired):
1943         * html/MediaController.h:
1944
1945 2012-07-23  Huang Dongsung  <luxtella@company100.net>
1946
1947         Destroy CSS decoded data more eagerly once they become dead caches.
1948         https://bugs.webkit.org/show_bug.cgi?id=91733
1949
1950         Reviewed by Geoffrey Garen.
1951
1952         Internal review by Kwang Yul Seo.
1953
1954         There are three CachedResources with decoded data: CachedImage, CachedScript
1955         and CachedCSSStyleSheet. In the cases of CachedImage and CachedScript, we
1956         eagerly destroy the decoded data using Timer in CacehdResource::allClientsRemoved().
1957         We must apply the same policy here in CachedCSSStyleSheet because priority
1958         inversion can occur. For example, we can't destroy the decoded data of CachedImages
1959         when they are referenced by CachedCSSStyleSheet as background, mask or border
1960         images.
1961
1962         No new tests - no new testable functionality.
1963
1964         * loader/cache/CachedCSSStyleSheet.cpp:
1965         (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
1966         (WebCore::CachedCSSStyleSheet::didAddClient):
1967         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
1968         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
1969         (WebCore):
1970         (WebCore::CachedCSSStyleSheet::decodedDataDeletionTimerFired):
1971         * loader/cache/CachedCSSStyleSheet.h:
1972         (CachedCSSStyleSheet):
1973
1974 2012-07-23  Simon Fraser  <simon.fraser@apple.com>
1975
1976         Part 2 of: Implement sticky positioning
1977         https://bugs.webkit.org/show_bug.cgi?id=90046
1978
1979         Reviewed by Ojan Vafai.
1980
1981         Turn on ENABLE_CSS_STICKY_POSITION. Add support for parsing the new '-webkit-sticky'
1982         value for position, returning it from getComputedStyle(), and storing it in RenderStyle.
1983
1984         Test: fast/css/sticky/parsing-position-sticky.html
1985
1986         * Configurations/FeatureDefines.xcconfig:
1987         * css/CSSComputedStyleDeclaration.cpp:
1988         (WebCore::getPositionOffsetValue):
1989         * css/CSSParser.cpp:
1990         (WebCore::isValidKeywordPropertyAndValue):
1991         * css/CSSPrimitiveValueMappings.h:
1992         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1993         (WebCore::CSSPrimitiveValue::operator EPosition):
1994         * css/CSSValueKeywords.in:
1995         * rendering/style/RenderStyle.h:
1996         * rendering/style/RenderStyleConstants.h:
1997
1998 2012-07-23  Stephen Chenney  <schenney@chromium.org>
1999
2000         Crash when setting empty class name on a new element
2001         https://bugs.webkit.org/show_bug.cgi?id=92024
2002
2003         Reviewed by Andreas Kling.
2004
2005         Add a check for null attributeData() when setting the className to an
2006         empty string on a newly created element. New SVG elements have null
2007         attributeData() on baseVal upon creation.
2008
2009         Test: svg/custom/empty-className-baseVal-crash.html
2010
2011         * dom/StyledElement.cpp:
2012         (WebCore::StyledElement::classAttributeChanged): Add check for null attributeData()
2013
2014 2012-07-23  Shawn Singh  <shawnsingh@chromium.org>
2015
2016         [chromium] Refactor CCLayerTreeHostCommon: clean up clipRect and drawableContentRect design
2017         https://bugs.webkit.org/show_bug.cgi?id=80622
2018
2019         Reviewed by Adrienne Walker.
2020
2021         clipRect(), usesLayerClipping(), and drawableContentRect() have been
2022         very confusing in CCLayerTreeHostCommon for a while. This patch
2023         refactors it so that (1) clipping is only done locally in
2024         calcDrawTransforms, and (2) the layer's drawableContentRect value
2025         is now meaningful value outside of calcDrawTransforms.
2026         Additionally, the layer is now always clipped to the root
2027         surface's contentBounds (which are set to the viewport bounds).
2028         This refactor not only makes calcDrawTransforms far more readable and intuitive, but
2029         this patch enables more upcoming beneficial refactors, including
2030         the pending refactor in https://bugs.webkit.org/show_bug.cgi?id=88953.
2031
2032         Tests are also significantly updated to keep up with this refactoring change.
2033
2034         * platform/graphics/chromium/LayerChromium.cpp:
2035         (WebCore::LayerChromium::LayerChromium):
2036         * platform/graphics/chromium/LayerChromium.h:
2037         (LayerChromium):
2038         Removed m_usesLayerClipping and m_clipRect and associated accessors.
2039
2040         * platform/graphics/chromium/RenderSurfaceChromium.h:
2041         (RenderSurfaceChromium):
2042         Updated comment
2043
2044         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2045         (WebCore::CCLayerImpl::CCLayerImpl):
2046         * platform/graphics/chromium/cc/CCLayerImpl.h:
2047         (CCLayerImpl):
2048         Removed m_usesLayerClipping and m_clipRect and associated accessors.
2049
2050         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2051         (WebCore::CCLayerTreeHost::updateLayers):
2052         removed setClipRect code that no longer applies
2053
2054         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2055         (WebCore::calculateLayerScissorRect):
2056         scissor rect is now a little bit tighter, the intersection between damage and layer's new drawableContentRect.
2057
2058         (WebCore::calculateSurfaceScissorRect):
2059         scissor rect is now a little bit tighter, except when filters are involved.
2060
2061         (WebCore::layerClipsSubtree):
2062         new helper function
2063
2064         (WebCore):
2065         (WebCore::calculateVisibleContentRect):
2066         (WebCore::subtreeShouldRenderToSeparateSurface):
2067         (WebCore::calculateDrawTransformsInternal):
2068            - added drawableContentRectOfSubtree to the function args, it is valid only after recursion returns,
2069            - added clipRectFromAncestor and bool ancestorClipsSubtree to function args, this replaces the layer's clipRect and usesLayerClipping.
2070            - removed the boolean return value, which was redundant with drawableContentRectOfSubtree.
2071            - replaced all the "setDrawableContentRect" logic with more intuitive, clear logic.
2072            - now, layer's drawableContentRect represents the clipped bounds of the layer expressed in the target surface space.
2073
2074         (WebCore::CCLayerTreeHostCommon::calculateDrawTransforms):
2075         (WebCore::pointIsClippedBySurfaceOrClipRect):
2076         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2077         (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
2078         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2079         (WebCore::::layerScissorRectInTargetSurface):
2080         Updated this accessor.  It could be removed in the future, but not appropriate for this patch.
2081
2082         * platform/graphics/chromium/cc/CCRenderSurface.h:
2083
2084 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2085
2086         [CMAKE] Added missing RenderLayerFilterInfo.cpp to build system.
2087
2088         * CMakeLists.txt:
2089
2090 2012-07-23  Ryosuke Niwa  <rniwa@webkit.org>
2091
2092         REGRESSION(r123281): childNodes sometimes returns wrong nodes
2093         https://bugs.webkit.org/show_bug.cgi?id=92014
2094
2095         Reviewed by Anders Carlsson.
2096
2097         The bug was caused by a typo in itemBeforeOrAfter. Namely, it should have been calling firstNode as
2098         firstNode(forward, rootNode(), shouldOnlyIncludeDirectChildren()),
2099         NOT firstNode(forward, rootNode(), previous)
2100         as evident from the argument list of the function.
2101
2102         Test: fast/dom/NodeList/childNodes-reverse-iteration.html
2103
2104         * html/HTMLCollection.cpp:
2105         (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
2106
2107 2012-07-23  Steve VanDeBogart  <vandebo@chromium.org>
2108
2109         Chrome/Skia: PDF print output does not have clickable links.
2110         https://bugs.webkit.org/show_bug.cgi?id=91171
2111
2112         Reviewed by Stephen White.
2113
2114         Connect GraphicsContext::setURLForRect to Skia's new API for annotations.
2115
2116         Printing is not generally testable.
2117
2118         * platform/graphics/skia/GraphicsContextSkia.cpp:
2119         (WebCore::GraphicsContext::setURLForRect):
2120
2121 2012-07-23  Pierre Rossi  <pierre.rossi@gmail.com>
2122
2123         Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
2124         https://bugs.webkit.org/show_bug.cgi?id=91006
2125
2126         Reviewed by Ryosuke Niwa.
2127
2128         The rationale here is that the client doesn't need to know about the touch
2129         event handler count. needTouchEvents was already used for that purpose.
2130
2131         Test: fast/events/touch/touch-handler-count.html
2132
2133         * dom/Document.cpp:
2134         (WebCore::Document::Document):
2135         (WebCore::Document::didAddTouchEventHandler): Only notify the client if needed.
2136         (WebCore::Document::didRemoveTouchEventHandler): Ditto. Also unset the TOUCH_LISTENER
2137         flag for the document if we reach a count of zero. The rationale being that
2138         hasListenerType() is relied upon in other places in combination with TOUCH_LISTENER for
2139         the same purpose.
2140         * dom/Document.h:
2141         (Document):
2142         (WebCore::Document::touchEventHandlerCount):
2143         * loader/EmptyClients.h:
2144         * page/ChromeClient.h:
2145         (ChromeClient):
2146         * page/Frame.cpp: Removed notifyChromeClientTouchEventHandlerCountChanged.
2147         (WebCore::Frame::setDocument): call needsTouchEvents directly.
2148         * page/Frame.h: Ditto.
2149         (Frame):
2150         * testing/Internals.cpp:
2151         (WebCore::Internals::hasTouchEventListener): expose Document::hasListenerType indirectly
2152         for additional testing.
2153         (WebCore):
2154         * testing/Internals.h:
2155         (Internals):
2156         * testing/Internals.idl:
2157
2158 2012-07-23  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2159
2160         [Qt] RenderThemeQtMobile highlight colors are not being used
2161         https://bugs.webkit.org/show_bug.cgi?id=92004
2162
2163         Reviewed by Noam Rosenthal.
2164
2165         The issue here is that setPaletteFromPageClientIfExists() is being used as a
2166         virtual function, but it isn't, so when platformActiveSelectionBackgroundColor()
2167         runs, it doesn't pick the right palette.
2168
2169         Besides fixing this virtual behavior, the patch changes the structure a bit,
2170         because setPaletteFromPageClientIfExists() was being "overriden" in mobile theme
2171         to set the palette, which isn't exactly what the function name says.
2172
2173         * platform/qt/RenderThemeQt.cpp:
2174         (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
2175         (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
2176         (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
2177         (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
2178         (WebCore::RenderThemeQt::platformFocusRingColor):
2179         (WebCore::RenderThemeQt::systemColor):
2180         (WebCore::RenderThemeQt::getMediaControlForegroundColor):
2181         (WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
2182         Use the virtual colorPalette() to get the palette.
2183
2184         (WebCore::RenderThemeQt::colorPalette):
2185         (WebCore): Removed the code for getting the page client from here since it is
2186         used only by the QStyle variant.
2187
2188         * platform/qt/RenderThemeQt.h:
2189         (RenderThemeQt):
2190         * platform/qt/RenderThemeQtMobile.cpp:
2191         (WebCore::RenderThemeQtMobile::colorPalette):
2192         (WebCore):
2193         * platform/qt/RenderThemeQtMobile.h:
2194         (RenderThemeQtMobile):
2195
2196 2012-07-23  Simon Fraser  <simon.fraser@apple.com>
2197
2198         Part 1 of: Implement sticky positioning
2199         https://bugs.webkit.org/show_bug.cgi?id=90046
2200
2201         Reviewed by Ojan Vafai.
2202
2203         Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
2204         
2205         Sort the ENABLE_CSS lines in the file. Make sure all the flags
2206         are in FEATURE_DEFINES.
2207
2208         * Configurations/FeatureDefines.xcconfig:
2209
2210 2012-07-23  Sheriff Bot  <webkit.review.bot@gmail.com>
2211
2212         Unreviewed, rolling out r123339.
2213         http://trac.webkit.org/changeset/123339
2214         https://bugs.webkit.org/show_bug.cgi?id=92006
2215
2216         massive media tests failure (Requested by philn on #webkit).
2217
2218         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
2219         (WTF::adoptGRef):
2220         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
2221         (setGstElementClassMetadata):
2222         * platform/graphics/gstreamer/GStreamerVersioning.h:
2223
2224 2012-07-21  Vincent Scheib  <scheib@chromium.org>
2225
2226         webkitFullscreenElement, webkitCurrentFullScreenElement, webkitPointerLockElement block cross origin access.
2227         https://bugs.webkit.org/show_bug.cgi?id=91892
2228
2229         Reviewed by Adam Barth.
2230
2231         PointerLockElement only returned when requested from the document that owns it.
2232
2233         Tests: http/tests/fullscreen/fullscreenelement-different-origin.html
2234                http/tests/fullscreen/fullscreenelement-same-origin.html
2235                http/tests/pointer-lock/pointerlockelement-different-origin.html
2236                http/tests/pointer-lock/pointerlockelement-same-origin.html
2237
2238         * dom/Document.cpp:
2239         (WebCore::Document::webkitPointerLockElement):
2240
2241 2012-07-23  Philippe Normand  <pnormand@igalia.com>
2242
2243         [GTK][jhbuild] Switch to GStreamer 0.11 build
2244         https://bugs.webkit.org/show_bug.cgi?id=91727
2245
2246         Reviewed by Gustavo Noronha Silva.
2247
2248         Add a new function to encapsulate the GStreamer API removal of
2249         GST_OBJECT_IS_FLOATING in the upcoming 1.0 release. Use of this
2250         macro can now be replaced by calling the g_object_is_floating
2251         function.
2252
2253         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
2254         (WTF::adoptGRef):
2255         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
2256         (gstObjectIsFloating):
2257         * platform/graphics/gstreamer/GStreamerVersioning.h:
2258
2259 2012-07-23  Christophe Dumez  <christophe.dumez@intel.com>
2260
2261         [EFL] media/controls-styling.html is failing
2262         https://bugs.webkit.org/show_bug.cgi?id=91984
2263
2264         Reviewed by Eric Carlson.
2265
2266         Make sure that the CSS properties letter-spacing, word-spacing,
2267         line-height, text-transform, text-indent, text-shadow,
2268         text-decoration and color do not affect the media element controls,
2269         that display text.
2270
2271         No new tests. Already tested by media/controls-styling.html and
2272         media/controls-styling-strict.html
2273
2274         * css/mediaControlsEfl.css:
2275         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
2276
2277 2012-07-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2278
2279         Unreviewed. Fix make distcheck.
2280
2281         * GNUmakefile.list.am: Add missing header files.
2282
2283 2012-07-23  Kent Tamura  <tkent@chromium.org>
2284
2285         Replace some instances of shadowAncestorNode() with shadowHost()
2286         https://bugs.webkit.org/show_bug.cgi?id=91966
2287
2288         Reviewed by Hajime Morita.
2289
2290         shadowAncestorNode() is deprecated. We should use shadowHost().
2291         No new tests. This doesn't change any behavior.
2292
2293         * css/SelectorChecker.cpp:
2294         (WebCore::SelectorChecker::checkSelector):
2295         * dom/TreeScope.cpp:
2296         (WebCore::listTreeScopes):
2297         * html/HTMLSummaryElement.cpp:
2298         (WebCore::isClickableControl):
2299         * html/shadow/DetailsMarkerControl.cpp:
2300         (WebCore::DetailsMarkerControl::summaryElement):
2301         * html/shadow/MeterShadowElement.cpp:
2302         (WebCore::MeterShadowElement::meterElement):
2303         * html/shadow/ProgressShadowElement.cpp:
2304         (WebCore::ProgressShadowElement::progressElement):
2305         * html/shadow/SliderThumbElement.cpp:
2306         (WebCore::RenderSliderThumb::layout):
2307         (WebCore::RenderSliderContainer::layout):
2308         (WebCore::SliderThumbElement::hostInput):
2309         (WebCore::TrackLimiterElement::shadowPseudoId):
2310         (WebCore::SliderContainerElement::shadowPseudoId):
2311         * html/shadow/TextControlInnerElements.cpp:
2312         (WebCore::TextControlInnerElement::customStyleForRenderer):
2313         (WebCore::TextControlInnerTextElement::defaultEventHandler):
2314         (WebCore::TextControlInnerTextElement::createRenderer):
2315         (WebCore::TextControlInnerTextElement::customStyleForRenderer):
2316         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
2317         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
2318         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
2319         (WebCore::SpinButtonElement::defaultEventHandler):
2320         (WebCore::SpinButtonElement::step):
2321         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
2322         (WebCore::InputFieldSpeechButtonElement::setState):
2323         (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
2324         (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
2325         * rendering/RenderTextControlSingleLine.cpp:
2326         (WebCore::RenderTextControlInnerBlock::positionForPoint):
2327
2328 2012-07-23  Pavel Feldman  <pfeldman@chromium.org>
2329
2330         [WK2] REGRESSION r122966: Crash when closing tab with Web Inspector open in WebKit::PageOverlay
2331         https://bugs.webkit.org/show_bug.cgi?id=91782
2332
2333         Reviewed by Yury Semikhatsky.
2334
2335         hideHighlight was never called once user hovered over a node.
2336
2337         * inspector/DOMNodeHighlighter.cpp:
2338         (WebCore::InspectorOverlay::update):
2339
2340 2012-07-23  Peter Beverloo  <peter@chromium.org>
2341
2342         [Chromium] Build fix for the Windows builder following r123311
2343         https://bugs.webkit.org/show_bug.cgi?id=91979
2344
2345         Unreviewed build fix.
2346
2347         Changeset r123311 moved the TextCodecWinCE.{cpp,h} files to the Windows
2348         directory. Update Chromium's references to these files to fix the build.
2349
2350         * WebCore.gypi:
2351
2352 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2353
2354         [WIN] Remove ICU dependencies from UniscribeController
2355         https://bugs.webkit.org/show_bug.cgi?id=91921
2356
2357         Reviewed by Ryosuke Niwa.
2358
2359         Replace ICU specific functions and macros with the corresponding code from WTF::Unicode.
2360         This allows us to use UniscribeController with an other Unicode implementation too.
2361
2362         * platform/graphics/win/UniscribeController.cpp:
2363         (WebCore::UniscribeController::advance):
2364
2365 2012-07-23  Christophe Dumez  <christophe.dumez@intel.com>
2366
2367         [EFL] media/controls-styling-strict.html is failing
2368         https://bugs.webkit.org/show_bug.cgi?id=91960
2369
2370         Reviewed by Kenneth Rohde Christiansen.
2371
2372         Use "display: -webkit-box;" instead of inline-block
2373         for current-time control. This is needed because
2374         inline-block behaves differently in strict mode.
2375
2376         No new test, already tested by media/controls-styling-strict.html
2377
2378         * css/mediaControlsEfl.css:
2379         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
2380
2381 2012-07-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2382
2383         Unreviewed. Fix GTK+ build with ENABLE_DATALIST_ELEMENT.
2384
2385         Add an implementation for virtual pure methods sliderTickSize()
2386         and sliderTickOffsetFromTrackCenter() when HTML5 datalist element
2387         is enabled.
2388
2389         * platform/gtk/RenderThemeGtk.cpp:
2390         (WebCore):
2391         (WebCore::RenderThemeGtk::sliderTickSize):
2392         (WebCore::RenderThemeGtk::sliderTickOffsetFromTrackCenter):
2393         * platform/gtk/RenderThemeGtk.h:
2394
2395 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2396
2397         Replace getCurrentLocalTime() with GetLocalTime() in LocaleWin.cpp
2398         https://bugs.webkit.org/show_bug.cgi?id=91937
2399
2400         Reviewed by Ryosuke Niwa.
2401
2402         The windows function returns the required year directly and
2403         removes one additonal dependecy on getCurrentLocalTime().
2404
2405         * platform/text/LocaleWin.cpp:
2406         (WebCore::LocaleWin::LocaleWin):
2407
2408 2012-07-23  Vsevolod Vlasov  <vsevik@chromium.org>
2409
2410         Web Inspector: Drag and drop should not be started on right mouse click.
2411         https://bugs.webkit.org/show_bug.cgi?id=91728
2412
2413         Reviewed by Pavel Feldman.
2414
2415         Introduced WebInspector.installDragHandle method to control drag and drop support, checking whichg mouse button is pressed.
2416         Simplified WebInspector._elementDragStart, removed "element" parameter.
2417         Simplified tab moving support in TabbedPane, removed "mousemove" handler.
2418         Removed while loop determining which element was dragged in TimelineOverviewPane, each drag support is now installed independently.
2419         Drive-by: fixed TimelineOverviewPane window moving on resources-dividers-label-bar drang-and-drop.
2420         Drive-by: fixed CSSStyleModel compilation.
2421
2422         * inspector/front-end/CSSStyleModel.js:
2423         (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
2424         * inspector/front-end/DataGrid.js:
2425         (WebInspector.DataGrid.prototype._positionResizers):
2426         (WebInspector.DataGrid.prototype._startResizerDragging):
2427         (WebInspector.DataGrid.prototype._endResizerDragging):
2428         * inspector/front-end/Drawer.js:
2429         (WebInspector.Drawer):
2430         (WebInspector.Drawer.prototype._animationDuration):
2431         (WebInspector.Drawer.prototype._startStatusBarDragging):
2432         (WebInspector.Drawer.prototype._endStatusBarDragging):
2433         * inspector/front-end/HeapSnapshotView.js:
2434         (WebInspector.HeapSnapshotView.prototype._startRetainersHeaderDragging):
2435         (WebInspector.HeapSnapshotView.prototype._endRetainersHeaderDragging):
2436         * inspector/front-end/SidebarOverlay.js:
2437         (WebInspector.SidebarOverlay.prototype.set _startResizerDragging):
2438         (WebInspector.SidebarOverlay.prototype._endResizerDragging):
2439         (WebInspector.SidebarOverlay.prototype._installResizer):
2440         * inspector/front-end/Spectrum.js:
2441         * inspector/front-end/SplitView.js:
2442         (WebInspector.SplitView.prototype._startResizerDragging):
2443         (WebInspector.SplitView.prototype._endResizerDragging):
2444         (WebInspector.SplitView.prototype.installResizer):
2445         * inspector/front-end/TabbedPane.js:
2446         (WebInspector.TabbedPaneTab.prototype._createTabElement):
2447         (WebInspector.TabbedPaneTab.prototype._tabMouseDown):
2448         (WebInspector.TabbedPaneTab.prototype._startTabDragging):
2449         (WebInspector.TabbedPaneTab.prototype._endTabDragging):
2450         * inspector/front-end/TimelineOverviewPane.js:
2451         (WebInspector.TimelineOverviewPane):
2452         (WebInspector.TimelineOverviewWindow):
2453         (WebInspector.TimelineOverviewWindow.prototype._leftResizeElementDragging):
2454         (WebInspector.TimelineOverviewWindow.prototype._rightResizeElementDragging):
2455         (WebInspector.TimelineOverviewWindow.prototype._startWindowSelectorDragging):
2456         (WebInspector.TimelineOverviewWindow.prototype._endWindowSelectorDragging):
2457         (WebInspector.TimelineOverviewWindow.prototype._startWindowDragging):
2458         (WebInspector.TimelineOverviewWindow.prototype._windowDragging):
2459         (WebInspector.TimelineOverviewWindow.prototype._endWindowDragging):
2460         (WebInspector.TimelineOverviewWindow.prototype._moveWindow):
2461         (WebInspector.TimelineOverviewWindow.prototype._onMouseWheel):
2462         * inspector/front-end/TimelinePanel.js:
2463         (WebInspector.TimelinePanel):
2464         (WebInspector.TimelinePanel.prototype._startSplitterDragging):
2465         (WebInspector.TimelinePanel.prototype._endSplitterDragging):
2466         * inspector/front-end/Toolbar.js:
2467         (WebInspector.Toolbar):
2468         (WebInspector.Toolbar.prototype._toolbarDragStart):
2469         (WebInspector.Toolbar.prototype._toolbarDragEnd):
2470         * inspector/front-end/UIUtils.js:
2471         (WebInspector.installDragHandle):
2472         (WebInspector._elementDragStart):
2473         (WebInspector._elementDragEnd):
2474         * inspector/front-end/timelinePanel.css:
2475         (#timeline-overview-grid .resources-dividers-label-bar):
2476
2477 2012-07-23  Hayato Ito  <hayato@chromium.org>
2478
2479         ComposedShadowTreeWalker should skip an empty insertion points.
2480         https://bugs.webkit.org/show_bug.cgi?id=91826
2481
2482         Reviewed by Hajime Morita.
2483
2484         ComposedShadowTreeWalker wrongly returns 'null' if it encounters
2485         an insertion point into where no nodes are distributed.  We should
2486         skip such an insertion point and continue walking using the next
2487         possible node, which might be a next sibling or a next distributed
2488         node, and resolve the next node recursively.
2489
2490         Test: fast/dom/shadow/composed-shadow-tree-walker.html
2491
2492         * dom/ComposedShadowTreeWalker.cpp:
2493         (WebCore::ComposedShadowTreeWalker::traverseLightChildren):
2494         (WebCore):
2495         (WebCore::ComposedShadowTreeWalker::traverseSiblings):
2496         (WebCore::ComposedShadowTreeWalker::traverseNode):
2497         (WebCore::ComposedShadowTreeWalker::traverseDistributedeNodes):
2498         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
2499         (WebCore::ComposedShadowTreeWalker::traverseSiblingInCurrentTree):
2500         (WebCore::ComposedShadowTreeWalker::traverseBackToYoungerShadowRoot):
2501         * dom/ComposedShadowTreeWalker.h:
2502         (ComposedShadowTreeWalker):
2503
2504 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2505
2506         Rename TextCodecWinCE to TextCodecWin
2507         https://bugs.webkit.org/show_bug.cgi?id=91947
2508
2509         Reviewed by Ryosuke Niwa.
2510
2511         Since TextCodecWinCE is used by other (non-upstreamed) windows ports too,
2512         TextCodecWin is a better name for the implementation.
2513         Also remove the dependency on WinCE FontCache to make it more usable.
2514
2515         * PlatformWinCE.cmake:
2516         * platform/text/TextEncodingRegistry.cpp:
2517         (WebCore::extendTextCodecMaps):
2518         * platform/text/win/TextCodecWin.cpp: Renamed from Source/WebCore/platform/text/wince/TextCodecWinCE.cpp.
2519         * platform/text/win/TextCodecWin.h: Renamed from Source/WebCore/platform/text/wince/TextCodecWinCE.h.
2520
2521 2012-07-22  Kentaro Hara  <haraken@chromium.org>
2522
2523         [V8] CodeGeneratorV8.pm should support static attributes
2524         https://bugs.webkit.org/show_bug.cgi?id=91764
2525
2526         Reviewed by Adam Barth.
2527
2528         CodeGeneratorJS.pm already supports static attributes.
2529         CodeGeneratorV8.pm should also support them.
2530
2531         Tests: bindings/scripts/test/TestObj.idl
2532                bindings/scripts/test/TestSupplemental.idl
2533
2534         * bindings/scripts/CodeGeneratorV8.pm:
2535         (GenerateNormalAttrGetter):
2536         (GenerateNormalAttrSetter):
2537
2538         * bindings/scripts/test/TestObj.idl: Added defined(TESTING_V8).
2539         * bindings/scripts/test/TestSupplemental.idl: Added test cases for static attributes in supplemental IDL files.
2540
2541         * bindings/scripts/test/JS/JSTestInterface.cpp: Updated run-bindings-tests results.
2542         (WebCore):
2543         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
2544         The generated code is wrong since CodeGeneratorJS.pm does not support static attributes for
2545         supplemental IDL files. I will fix it in a follow-up patch.
2546         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
2547         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
2548         * bindings/scripts/test/JS/JSTestInterface.h:
2549         (WebCore):
2550         * bindings/scripts/test/V8/V8TestInterface.cpp: Updated run-bindings-tests results.
2551         (WebCore::TestInterfaceV8Internal::supplementalStaticReadOnlyAttrAttrGetter):
2552         (TestInterfaceV8Internal):
2553         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrGetter):
2554         (WebCore::TestInterfaceV8Internal::supplementalStaticAttrAttrSetter):
2555         (WebCore):
2556         * bindings/scripts/test/V8/V8TestObj.cpp:
2557         (WebCore::TestObjV8Internal::staticReadOnlyIntAttrAttrGetter):
2558         (TestObjV8Internal):
2559         (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
2560         (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
2561         (WebCore):
2562
2563 2012-07-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2564
2565         Missing *explicit* keyword in storage and workers.
2566         https://bugs.webkit.org/show_bug.cgi?id=91934
2567
2568         Reviewed by Kentaro Hara.
2569
2570         Some constructors missed to use *explicit* keyword. They need to be added
2571         *explicit* keyword to contructor which has a parameter in order to avoid
2572         implicit type conversion.
2573
2574         No new tests. Convered by existing tests.
2575
2576         * storage/StorageAreaImpl.h:
2577         (StorageAreaImpl):
2578         * storage/StorageMap.h:
2579         (StorageMap):
2580         * storage/StorageSyncManager.h:
2581         (StorageSyncManager):
2582         * storage/StorageTask.h:
2583         (StorageTask):
2584         * storage/StorageTracker.h:
2585         (StorageTracker):
2586         * workers/SharedWorker.h:
2587         (SharedWorker):
2588         * workers/Worker.h:
2589         (Worker):
2590         * workers/WorkerLocation.h:
2591         (WebCore::WorkerLocation::WorkerLocation):
2592         * workers/WorkerMessagingProxy.h:
2593         (WorkerMessagingProxy):
2594
2595 2012-07-23  Kent Tamura  <tkent@chromium.org>
2596
2597         Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively
2598         https://bugs.webkit.org/show_bug.cgi?id=91941
2599
2600         Reviewed by Kentaro Hara.
2601
2602         A flag name for an elmement should be ENABLE_*_ELEMENT.
2603
2604         * Configurations/FeatureDefines.xcconfig:
2605         * DerivedSources.make:
2606         * GNUmakefile.am:
2607         * accessibility/AXObjectCache.cpp:
2608         (WebCore::createFromRenderer):
2609         * accessibility/AccessibilityProgressIndicator.cpp:
2610         * accessibility/AccessibilityProgressIndicator.h:
2611         * css/CSSPrimitiveValueMappings.h:
2612         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2613         * css/SelectorChecker.cpp:
2614         (WebCore::SelectorChecker::checkOneSelector):
2615         * css/StyleResolver.cpp:
2616         (WebCore::StyleResolver::collectMatchingRulesForList):
2617         * css/html.css:
2618         * html/HTMLMeterElement.cpp:
2619         * html/HTMLMeterElement.h:
2620         * html/HTMLMeterElement.idl:
2621         * html/HTMLProgressElement.cpp:
2622         * html/HTMLProgressElement.h:
2623         * html/HTMLProgressElement.idl:
2624         * html/HTMLTagNames.in:
2625         * html/shadow/MeterShadowElement.cpp:
2626         * html/shadow/MeterShadowElement.h: Wrap with #if ENABLE(METER_ELEMENT).
2627         * html/shadow/ProgressShadowElement.cpp:
2628         * html/shadow/ProgressShadowElement.h: Wrap with #if ENABLE(PROGRESS_ELEMENT).
2629         * page/DOMWindow.idl:
2630         * platform/efl/RenderThemeEfl.cpp:
2631         (WebCore::RenderThemeEfl::paintThemePart):
2632         (WebCore::RenderThemeEfl::edjeGroupFromFormType):
2633         (WebCore):
2634         * platform/efl/RenderThemeEfl.h:
2635         (RenderThemeEfl):
2636         * platform/gtk/RenderThemeGtk.cpp:
2637         (WebCore):
2638         * platform/gtk/RenderThemeGtk.h:
2639         (RenderThemeGtk):
2640         * platform/gtk/RenderThemeGtk2.cpp:
2641         (WebCore):
2642         * platform/gtk/RenderThemeGtk3.cpp:
2643         (WebCore):
2644         * platform/qt/RenderThemeQt.cpp:
2645         (WebCore):
2646         * platform/qt/RenderThemeQt.h:
2647         (WebCore):
2648         (RenderThemeQt):
2649         * platform/qt/RenderThemeQtMobile.cpp:
2650         (WebCore):
2651         * platform/qt/RenderThemeQtMobile.h:
2652         (RenderThemeQtMobile):
2653         * rendering/RenderMeter.cpp:
2654         * rendering/RenderMeter.h:
2655         * rendering/RenderObject.h:
2656         (RenderObject):
2657         * rendering/RenderProgress.cpp:
2658         * rendering/RenderProgress.h:
2659         * rendering/RenderTheme.cpp:
2660         (WebCore::RenderTheme::adjustStyle):
2661         (WebCore::RenderTheme::paint):
2662         (WebCore::RenderTheme::paintBorderOnly):
2663         (WebCore::RenderTheme::paintDecorations):
2664         (WebCore):
2665         * rendering/RenderTheme.h:
2666         (WebCore):
2667         (RenderTheme):
2668         * rendering/RenderThemeChromiumLinux.cpp:
2669         (WebCore):
2670         * rendering/RenderThemeChromiumLinux.h:
2671         * rendering/RenderThemeChromiumSkia.cpp:
2672         (WebCore):
2673         * rendering/RenderThemeChromiumSkia.h:
2674         (RenderThemeChromiumSkia):
2675         * rendering/RenderThemeChromiumWin.cpp:
2676         (WebCore):
2677         * rendering/RenderThemeChromiumWin.h:
2678         (RenderThemeChromiumWin):
2679         * rendering/RenderThemeMac.h:
2680         (RenderThemeMac):
2681         * rendering/RenderThemeMac.mm:
2682         (WebCore):
2683
2684 2012-07-22  Kent Tamura  <tkent@chromium.org>
2685
2686         Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT
2687         https://bugs.webkit.org/show_bug.cgi?id=91928
2688
2689         Reviewed by Kentaro Hara.
2690
2691         A flag name for an elmement should be ENABLE_*_ELEMENT.
2692
2693         * Configurations/FeatureDefines.xcconfig:
2694         * DerivedSources.make:
2695         * GNUmakefile.am:
2696         * html/HTMLDetailsElement.cpp:
2697         * html/HTMLDetailsElement.idl:
2698         * html/HTMLSummaryElement.cpp:
2699         * html/HTMLTagNames.in:
2700         * html/shadow/DetailsMarkerControl.cpp:
2701         * rendering/RenderDetailsMarker.cpp:
2702         * rendering/RenderDetailsMarker.h:
2703         * rendering/RenderObject.h:
2704         (RenderObject):
2705         * rendering/RenderTreeAsText.cpp:
2706         (WebCore::RenderTreeAsText::writeRenderObject):
2707
2708 2012-07-21  Dan Bernstein  <mitz@apple.com>
2709
2710         <rdar://problem/11928576> SVG-as-image (constrained) intrinsic size calculation is wrong in vertical writing modes
2711         https://bugs.webkit.org/show_bug.cgi?id=91918
2712
2713         Reviewed by Anders Carlsson.
2714
2715         Test: svg/as-image/svg-intrinsic-size-rectangular-vertical.html
2716
2717         * rendering/RenderReplaced.cpp:
2718         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox): When there is a content
2719         renderer, it returns a physical intrinsic size and aspect ratio. The code was already
2720         accounting for this by taking the reciprocal of the aspect ratio in the vertical case. Made
2721         it also transpose the size itself, turning it from physical to logical. Moved this code
2722         after setting m_intrinsicSize, since that member variable is always physical.
2723
2724 2012-07-21  Patrick Gansterer  <paroga@webkit.org>
2725
2726         Cleanup TextEncoding USE(XXX_UNICODE) macros
2727         https://bugs.webkit.org/show_bug.cgi?id=91923
2728
2729         Reviewed by Andreas Kling.
2730
2731         Replace PLATFORM(QT) with USE(QT4_UNICODE) and OS(WINCE) with USE(WINCE_UNICODE).
2732         This gives us more flexibility in choosing the unicode backend for a port.
2733
2734         * platform/text/TextEncoding.cpp:
2735         (WebCore::TextEncoding::encode):
2736         * platform/text/TextEncodingRegistry.cpp:
2737         (WebCore::extendTextCodecMaps):
2738
2739 2012-07-21  Patrick Gansterer  <paroga@webkit.org>
2740
2741         Remove unnecessary ICU header includes from SimpleFontDataWin.cpp
2742         https://bugs.webkit.org/show_bug.cgi?id=91922
2743
2744         Reviewed by Kentaro Hara.
2745
2746         This allows us to use SimpleFontDataWin with an other Unicode implementation too.
2747
2748         * platform/graphics/win/SimpleFontDataWin.cpp:
2749
2750 2012-07-21  Kwang Yul Seo  <skyul@company100.net>
2751
2752         A start tag whose tag name is "html" in the "in body" insertion mode is a parse error
2753         https://bugs.webkit.org/show_bug.cgi?id=91916
2754
2755         Reviewed by Eric Seidel.
2756
2757         According to the HTML5 spec, a start tag whose tag name is "html" in the "in body"
2758         insertion mode is a parse error.
2759
2760         Added HTMLTreeBuilder::processHtmlStartTagForInBody(AtomicHTMLToken&) to call parseError(token).
2761         Removed "FIXME: parse error" from HTMLConstructionSite::insertHTMLHtmlStartTagInBody and
2762         HTMLConstructionSite::insertHTMLBodyStartTagInBody because we already marked the call sites
2763         of these two methods with parseError(token).
2764
2765         No behavior change because parseError(token) is just a marker.
2766
2767         * html/parser/HTMLConstructionSite.cpp:
2768         (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
2769         (WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
2770         * html/parser/HTMLTreeBuilder.cpp:
2771         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
2772         (WebCore::HTMLTreeBuilder::processStartTag):
2773         (WebCore::HTMLTreeBuilder::processHtmlStartTagForInBody):
2774         (WebCore):
2775         (WebCore::HTMLTreeBuilder::processStartTagForInHead):
2776         * html/parser/HTMLTreeBuilder.h:
2777
2778 2012-07-20  Czene Tamás  <tczene@inf.u-szeged.hu>
2779
2780         double data type shoud be changed to float in ColorMatrix
2781         https://bugs.webkit.org/show_bug.cgi?id=91499
2782
2783         Reviewed by Nikolas Zimmermann.
2784
2785         * platform/graphics/filters/FEColorMatrix.cpp:
2786         (WebCore::matrix):
2787         (WebCore::saturate):
2788         (WebCore::huerotate):
2789         (WebCore::luminance):
2790         (WebCore::effectType):
2791
2792 2012-07-20  Stephen White  <senorblanco@chromium.org>
2793
2794         [chromium] Take current transformation matrix into account when
2795         deciding on resize algorithm for drawPattern.
2796         https://bugs.webkit.org/show_bug.cgi?id=90624
2797
2798         Reviewed by Adrienne Walker.
2799
2800         Since the pattern shader uses both the current transformation matrix
2801         and the pattern matrix when transforming pixels, we need to
2802         do the same when computing the resampling mode.  Also removed the
2803         resampling hint code, added in r60658, since it appears to be dead
2804         (caller was removed in r76379).
2805
2806         Covered by existing tests, such as
2807         fast/borders/border-image-scale-transform.html.
2808
2809         * platform/graphics/skia/ImageSkia.cpp:
2810         (WebCore::computeResamplingMode):
2811         Pass in the matrix to be used for computing the destination width and
2812         height (for awesome resampling).  Remove the image resampling hint code.
2813         (WebCore::paintSkBitmap):
2814         Pass in the CTM to computeResamplingMode().
2815         (WebCore::Image::drawPattern):
2816         Concatenate the CTM and the pattern matrix, and pass that to 
2817         computeResamplingMode() and TransformDimensions().  Invert the
2818         CTM's scale and apply it to the pattern transform, so their
2819         concatenation gives identity scale.
2820         * platform/graphics/skia/PlatformContextSkia.cpp:
2821         * platform/graphics/skia/PlatformContextSkia.h:
2822         Remove the image resampling hint (dead code).
2823
2824 2012-07-20  Kwang Yul Seo  <skyul@company100.net>
2825
2826         Anything else in the "in table" insertion mode is a parse error
2827         https://bugs.webkit.org/show_bug.cgi?id=91915
2828
2829         Reviewed by Adam Barth.
2830
2831         According to the HTML5 spec, anything else in the "in table" insertion mode is a parse error.
2832
2833         No behavior change because parseError(token) is just a marker.
2834
2835         * html/parser/HTMLTreeBuilder.cpp:
2836         (WebCore::HTMLTreeBuilder::processEndTagForInTable):
2837
2838 2012-07-20  Kent Tamura  <tkent@chromium.org>
2839
2840         Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT
2841         https://bugs.webkit.org/show_bug.cgi?id=91846
2842
2843         Reviewed by Kentaro Hara.
2844
2845         A flag name for an elmement should be ENABLE_*_ELEMENT.
2846
2847         * Configurations/FeatureDefines.xcconfig:
2848         * DerivedSources.make:
2849         * GNUmakefile.am:
2850         * css/html.css:
2851         * html/HTMLDataListElement.cpp:
2852         * html/HTMLDataListElement.h:
2853         * html/HTMLDataListElement.idl:
2854         * html/HTMLInputElement.cpp:
2855         (WebCore):
2856         (WebCore::HTMLInputElement::parseAttribute):
2857         (WebCore::HTMLInputElement::insertedInto):
2858         (WebCore::HTMLInputElement::removedFrom):
2859         * html/HTMLInputElement.h:
2860         (HTMLInputElement):
2861         * html/HTMLInputElement.idl:
2862         * html/HTMLOptionElement.cpp:
2863         (WebCore::HTMLOptionElement::parseAttribute):
2864         (WebCore::HTMLOptionElement::childrenChanged):
2865         (WebCore):
2866         * html/HTMLOptionElement.h:
2867         (HTMLOptionElement):
2868         * html/HTMLTagNames.in:
2869         * html/InputType.cpp:
2870         (WebCore):
2871         * html/InputType.h:
2872         (InputType):
2873         * html/RangeInputType.cpp:
2874         (WebCore):
2875         * html/RangeInputType.h:
2876         (RangeInputType):
2877         * html/shadow/SliderThumbElement.cpp:
2878         (WebCore::RenderSliderContainer::layout):
2879         * page/DOMWindow.idl:
2880         * platform/efl/RenderThemeEfl.cpp:
2881         (WebCore):
2882         * platform/efl/RenderThemeEfl.h:
2883         (RenderThemeEfl):
2884         * platform/qt/RenderThemeQt.cpp:
2885         (WebCore):
2886         * platform/qt/RenderThemeQt.h:
2887         (RenderThemeQt):
2888         * rendering/RenderTheme.cpp:
2889         (WebCore):
2890         * rendering/RenderTheme.h:
2891         (RenderTheme):
2892         * rendering/RenderThemeChromiumLinux.cpp:
2893         (WebCore):
2894         (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
2895         * rendering/RenderThemeChromiumLinux.h:
2896         (RenderThemeChromiumLinux):
2897         * rendering/RenderThemeChromiumWin.cpp:
2898         (WebCore):
2899         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
2900         * rendering/RenderThemeChromiumWin.h:
2901         (RenderThemeChromiumWin):
2902         * rendering/RenderThemeMac.h:
2903         (RenderThemeMac):
2904         * rendering/RenderThemeMac.mm:
2905         (WebCore::RenderThemeMac::paintSliderTrack):
2906         (WebCore):
2907
2908 2012-07-18  Ryosuke Niwa  <rniwa@webkit.org>
2909
2910         Unify HTMLCollection and DynamicNodeList
2911         https://bugs.webkit.org/show_bug.cgi?id=91335
2912
2913         Reviewed by Anders Carlsson.
2914
2915         This is the grand unification of HTMLCollection and DynamicNodeList.
2916
2917         It merges implementations of item() and length() in ChildNodeList, DynamicNodeList,
2918         and HTMLCollection. The unified implementation is based on the one used for HTMLCollection,
2919         that has been improved over the last few days; see r122660 and r122672 for examples.
2920
2921         There are five key changes:
2922         1. Made itemBeforeOrAfter aware of DynamicNodeList.
2923         2. itemBeforeOrAfter and related functions take and return Node* to support ChildNodeList.
2924         3. Renamed InvalidCollectionType to NodeListCollectionType since DynamicNodeLists need to be
2925         identified itemBeforeOrAfter.
2926         4. Renamed itemAfter to virtualItemAfter in subclasses of HTMLCollection, and devirtualized
2927         itemAfter used in common cases to avoid performance regressions. To make this intent clear,
2928         SupportItemBefore and DoNotSupportItemBefore have been renamed to DoesNotOverrideItemAfter
2929         and OverridesItemAfter. This change also help us detect a subclass of HTMLCollection that
2930         passes in a wrong value to ItemBeforeSupportType by making forward iterations fail (hit an
2931         assertion or doesn't iterate at all) as well as backward iterations.
2932         5. Restricted the use of elementsArrayOffset to subclasses that provide virtualItemAfter.
2933
2934         This patch completes my effort to share code between HTMLCollection and DynamicNodeList.
2935
2936         * dom/ChildNodeList.cpp:
2937         (WebCore::ChildNodeList::ChildNodeList):
2938         (WebCore): Removed length() and item().
2939         (WebCore::ChildNodeList::nodeMatches):
2940         * dom/ChildNodeList.h:
2941         (ChildNodeList):
2942         * dom/ClassNodeList.cpp:
2943         (WebCore::ClassNodeList::ClassNodeList):
2944         * dom/Document.cpp:
2945         (WebCore::Document::registerNodeListCache):
2946         (WebCore::Document::unregisterNodeListCache):
2947         * dom/DynamicNodeList.cpp:
2948         (WebCore::DynamicNodeListCacheBase::invalidateCache):
2949         (WebCore::DynamicNodeList::length):
2950         (WebCore::DynamicNodeList::item):
2951         * dom/DynamicNodeList.h:
2952         (WebCore::DynamicNodeListCacheBase::DynamicNodeListCacheBase): Takes new boolean argument
2953         shouldOnlyIncludeDirectChildren indicating whether the non-child descendents should be
2954         included or not. This is necessary to identify ChildNodeList in itemBeforeOrAfter.
2955         (WebCore::DynamicNodeListCacheBase::ownerNode): Moved from DynamicNodeListCacheBase and
2956         HTMLCollectionCacheBase.
2957         (WebCore::DynamicNodeListCacheBase::document): Moved from DynamicNodeListCacheBase.
2958         (WebCore::DynamicNodeListCacheBase::rootNode): Ditto.
2959         (WebCore::DynamicNodeListCacheBase::overridesItemAfter): Renamed from supportsItemBefore
2960         and the return value has been negated.
2961         (WebCore::DynamicNodeListCacheBase::shouldOnlyIncludeDirectChildren): Added.
2962         (WebCore::DynamicNodeListCacheBase):
2963         (WebCore::DynamicNodeList::DynamicNodeList): Takes NodeListType to determine the value of
2964         shouldOnlyIncludeDirectChildren.
2965         (DynamicNodeList):
2966         (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
2967         (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
2968         * dom/MicroDataItemList.cpp:
2969         (WebCore::MicroDataItemList::MicroDataItemList):
2970         * dom/NameNodeList.cpp:
2971         (WebCore::NameNodeList::NameNodeList):
2972         * dom/TagNodeList.cpp:
2973         (WebCore::TagNodeList::TagNodeList):
2974         * html/CollectionType.h:
2975         * html/HTMLAllCollection.cpp:
2976         (WebCore::HTMLAllCollection::HTMLAllCollection):
2977         * html/HTMLCollection.cpp:
2978         (WebCore::shouldOnlyIncludeDirectChildren):
2979         (WebCore::rootTypeFromCollectionType):
2980         (WebCore::invalidationTypeExcludingIdAndNameAttributes):
2981         (WebCore::HTMLCollection::HTMLCollection):
2982         (WebCore::HTMLCollection::create):
2983         (WebCore::HTMLCollection::~HTMLCollection):
2984         (WebCore::isAcceptableElement):
2985         (WebCore::firstNode): Extracted from itemBeforeOrAfter.
2986         (WebCore::DynamicNodeListCacheBase::iterateForNextNode): Ditto.
2987         (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter): Takes and returns Node*.
2988         Special case ChildNodeList since there is no need to skip any node. When "this" is a
2989         node list, call nodeMatches instead of isAcceptableElement.
2990         (WebCore::DynamicNodeListCacheBase::itemBefore): No longer takes offsetInArray since
2991         the use of elementsArrayOffset has been restricted to HTMLCollections that provides
2992         virtualItemAfter.
2993         (WebCore::DynamicNodeListCacheBase::itemAfter): Calls virtualItemAfter if necessary.
2994         Otherwise assert offsetInArray is zero since we should never be using this variable
2995         when virtualItemAfter is not provided.
2996         (WebCore::DynamicNodeListCacheBase::isLastItemCloserThanLastOrCachedItem):
2997         (WebCore::DynamicNodeListCacheBase::isFirstItemCloserThanCachedItem):
2998         (WebCore::DynamicNodeListCacheBase::setItemCache): Updates m_cachedElementsArrayOffset
2999         in HTMLCollection if and only if virtualItemAfter is provided. This is safe because
3000         node lists never provide virtualItemAfter.
3001         (WebCore::DynamicNodeListCacheBase::cachedElementsArrayOffset): Similarly, returns
3002         m_cachedElementsArrayOffset if virtualItemAfter is provided.
3003         (WebCore::DynamicNodeListCacheBase::lengthCommon):
3004         (WebCore::DynamicNodeListCacheBase::itemCommon): Note that supportsItemBefore() is
3005         equivalent to !overridesItemAfter() here.
3006         (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfterCachedItem): Uses Node* through
3007         out the function. Since itemBefore never uses offsetInArray, always sets 0 for that.
3008         Note that we never call itemBefore and virtualItemAfter on the same object.
3009         (WebCore::HTMLCollection::virtualItemAfter): Added only to make the class "concrete".
3010         (WebCore::HTMLCollection::namedItem):
3011         (WebCore::HTMLCollection::updateNameCache):
3012         (WebCore::HTMLCollection::tags):
3013         * html/HTMLCollection.h:
3014         (WebCore::HTMLCollectionCacheBase::HTMLCollectionCacheBase):
3015         (HTMLCollectionCacheBase):
3016         (WebCore::HTMLCollection::length):
3017         (WebCore::HTMLCollection::item):
3018         (WebCore::HTMLCollection::base):
3019         (HTMLCollection):
3020         * html/HTMLFormCollection.cpp:
3021         (WebCore::HTMLFormCollection::HTMLFormCollection):
3022         (WebCore::HTMLFormCollection::virtualItemAfter):
3023         * html/HTMLFormCollection.h:
3024         (HTMLFormCollection):
3025         * html/HTMLNameCollection.cpp:
3026         (WebCore::HTMLNameCollection::HTMLNameCollection):
3027         (WebCore::HTMLNameCollection::virtualItemAfter):
3028         * html/HTMLNameCollection.h:
3029         (HTMLNameCollection):
3030         * html/HTMLOptionsCollection.cpp:
3031         (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
3032         * html/HTMLPropertiesCollection.cpp:
3033         (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
3034         (WebCore::HTMLPropertiesCollection::virtualItemAfter):
3035         (WebCore::HTMLPropertiesCollection::updateNameCache):
3036         * html/HTMLPropertiesCollection.h:
3037         (HTMLPropertiesCollection):
3038         * html/HTMLTableRowsCollection.cpp:
3039         (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
3040         (WebCore::HTMLTableRowsCollection::virtualItemAfter):
3041         * html/HTMLTableRowsCollection.h:
3042         (HTMLTableRowsCollection):
3043         * html/LabelsNodeList.cpp:
3044         (WebCore::LabelsNodeList::LabelsNodeList):
3045         * html/RadioNodeList.cpp:
3046         (WebCore::RadioNodeList::RadioNodeList):
3047
3048 2012-07-20  Joshua Bell  <jsbell@chromium.org>
3049
3050         IndexedDB: Simplify backend interface classes
3051         https://bugs.webkit.org/show_bug.cgi?id=91901
3052
3053         Reviewed by Tony Chang.
3054
3055         The IDBTransactionBackendInterface included several methods only used by the
3056         real implementation objects, not via the interfaces. Expose a static Impl::from(Interface)
3057         method for transaction, and migrate all of the backend-internal uses from Interface to Impl.
3058
3059         No new tests - no functional changes.
3060
3061         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
3062         (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
3063         * Modules/indexeddb/IDBCursorBackendImpl.h:
3064         (WebCore):
3065         (WebCore::IDBCursorBackendImpl::create):
3066         (IDBCursorBackendImpl):
3067         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3068         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
3069         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
3070         (WebCore::IDBDatabaseBackendImpl::objectStore):
3071         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
3072         (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
3073         (WebCore::IDBDatabaseBackendImpl::setVersion):
3074         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
3075         (WebCore::IDBDatabaseBackendImpl::transactionStarted):
3076         (WebCore::IDBDatabaseBackendImpl::transactionFinished):
3077         (WebCore::IDBDatabaseBackendImpl::transaction):
3078         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
3079         (WebCore):
3080         (IDBDatabaseBackendImpl):
3081         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
3082         (WebCore::IDBIndexBackendImpl::openCursorInternal):
3083         (WebCore::IDBIndexBackendImpl::openCursor):
3084         (WebCore::IDBIndexBackendImpl::openKeyCursor):
3085         (WebCore::IDBIndexBackendImpl::countInternal): Drop unused transaction argument.
3086         (WebCore::IDBIndexBackendImpl::count):
3087         (WebCore::IDBIndexBackendImpl::get):
3088         (WebCore::IDBIndexBackendImpl::getKey):
3089         * Modules/indexeddb/IDBIndexBackendImpl.h:
3090         (IDBIndexBackendImpl):
3091         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3092         (WebCore::IDBObjectStoreBackendImpl::get):
3093         (WebCore::IDBObjectStoreBackendImpl::put):
3094         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
3095         (WebCore):
3096         (WebCore::IDBObjectStoreBackendImpl::putInternal):
3097         (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
3098         (WebCore::IDBObjectStoreBackendImpl::clear):
3099         (WebCore::IDBObjectStoreBackendImpl::createIndex):
3100         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
3101         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
3102         (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
3103         (WebCore::IDBObjectStoreBackendImpl::openCursor):
3104         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
3105         (WebCore::IDBObjectStoreBackendImpl::count):
3106         (WebCore::IDBObjectStoreBackendImpl::countInternal): Drop unused transaction argument.
3107         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
3108         (WebCore):
3109         (IDBObjectStoreBackendImpl):
3110         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
3111         (WebCore::IDBTransactionBackendImpl::objectStore):
3112         * Modules/indexeddb/IDBTransactionBackendImpl.h:
3113         (WebCore::IDBTransactionBackendImpl::from):
3114         (IDBTransactionBackendImpl):
3115         (WebCore::IDBTransactionBackendImpl::mode):
3116         * Modules/indexeddb/IDBTransactionBackendInterface.h:
3117         (IDBTransactionBackendInterface):
3118
3119 2012-07-20  Joshua Bell  <jsbell@chromium.org>
3120
3121         IndexedDB: "ASSERTION FAILED: !m_requestFinished" hit in IDBRequest::dispatchEvent
3122         https://bugs.webkit.org/show_bug.cgi?id=86911
3123
3124         Reviewed by Tony Chang.
3125
3126         Clean up the IDBRequest/IDBCursor relationship and the IDBRequest lifecycle.
3127
3128         The IDBRequest's m_cursor/setCursor() calls are renamed to m_pendingCursor/setPendingCursor() to
3129         clarify that the request will move between two states - either there's a cursor request in-flight
3130         c/o a continue() or advance() call, or the result has come in (cursor, null-for-done, or error).
3131         Since they were only ever used together, resetReadyState() is merged into setResultCursor(). The
3132         m_requestFinished flag becomes redundant and is dropped - the ASSERT reported in the bug
3133         becomes an ASSERT(m_readyState == PENDING) and m_readyState tracking is already correct.
3134
3135         Test: storage/indexeddb/request-continue-abort.html
3136
3137         * Modules/indexeddb/IDBCursor.cpp:
3138         (WebCore::IDBCursor::advance): Unreachable code path now dead and gone.
3139         (WebCore::IDBCursor::continueFunction): Ditto.
3140         * Modules/indexeddb/IDBRequest.cpp: Most functions just add state assertions.
3141         (WebCore::IDBRequest::IDBRequest):
3142         (WebCore::IDBRequest::abort):
3143         (WebCore::IDBRequest::setCursorDetails):
3144         (WebCore::IDBRequest::setPendingCursor): Merge with old resetReadyState().
3145         (WebCore):
3146         (WebCore::IDBRequest::getResultCursor): Helper, since digging cursor out of IDBAny is pesky.
3147         (WebCore::IDBRequest::setResultCursor): Just moved in the file to be with its friends.
3148         (WebCore::IDBRequest::finishCursor):
3149         (WebCore::IDBRequest::onError): Just assertions, re-ordering, re-naming.
3150         (WebCore::IDBRequest::onSuccess):
3151         (WebCore::IDBRequest::onSuccessWithContinuation):
3152         (WebCore::IDBRequest::hasPendingActivity):
3153         (WebCore::IDBRequest::dispatchEvent): Simplify!
3154         (WebCore::IDBRequest::enqueueEvent):
3155         * Modules/indexeddb/IDBRequest.h:
3156         (IDBRequest):
3157
3158 2012-07-20  Andrew Scherkus  <scherkus@chromium.org>
3159
3160         [chromium] Don't display fullscreen button for video elements not containing video
3161         https://bugs.webkit.org/show_bug.cgi?id=91811
3162
3163         Reviewed by Eric Carlson.
3164
3165         Covered by media/media-document-audio-repaint.html
3166
3167         * html/shadow/MediaControlRootElementChromium.cpp:
3168         (WebCore::MediaControlRootElementChromium::reset):
3169
3170 2012-07-20  Dmitry Titov  <dimich@chromium.org>
3171
3172         [Chromium] Out of Memory is observed when a large object is passed to a Web Worker.
3173         https://bugs.webkit.org/show_bug.cgi?id=91535.
3174
3175         Reviewed by David Levin.
3176
3177         No new tests because of no new behavior and lack of mechanism to monitor used memory.
3178
3179         * bindings/v8/SerializedScriptValue.cpp:
3180         (WebCore::SerializedScriptValue::SerializedScriptValue):
3181         (WebCore::SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext):
3182         (WebCore):
3183         (WebCore::SerializedScriptValue::~SerializedScriptValue):
3184         * bindings/v8/SerializedScriptValue.h:
3185         (SerializedScriptValue):
3186         Added a method to SerializedScriptValue to add memory pressure on GC proportional to the size of memory allocated in serialized data.
3187         
3188         * dom/MessageEvent.cpp:
3189         (WebCore::MessageEvent::MessageEvent):
3190         (WebCore::MessageEvent::initMessageEvent):
3191         Call the new method of SerializedScriptValue during creation of MessageEvent (presumably in the thread which contains the right V8 context).
3192
3193 2012-07-20  David Grogan  <dgrogan@chromium.org>
3194
3195         IndexedDB: Include intVersion when converting between WebCore and WebKit IDBMetadata types
3196         https://bugs.webkit.org/show_bug.cgi?id=91414
3197
3198         Reviewed by Adam Barth.
3199
3200         No new tests because no new behavior.
3201
3202         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3203         (WebCore::IDBDatabaseBackendImpl::metadata):
3204         No behavior change, this just needs a dummy parameter to match the
3205         modified API.
3206
3207         * Modules/indexeddb/IDBMetadata.h:
3208         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
3209         (IDBDatabaseMetadata):
3210
3211 2012-07-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
3212
3213         [Soup] Unnecessary RefPtr usage and null check
3214         https://bugs.webkit.org/show_bug.cgi?id=91636
3215
3216         Reviewed by Martin Robinson.
3217
3218         Small clean up of code that is not necessary; no change in functionality.
3219
3220         * platform/network/soup/SocketStreamHandleSoup.cpp:
3221         (WebCore::SocketStreamHandle::connected):
3222
3223 2012-07-20  Mark Salisbury  <mark.salisbury@hp.com>
3224
3225         Typo in FontCacheWin.cpp causes return value from getCachedFontData() in getLastResortFallbackFont() to be ignored
3226         https://bugs.webkit.org/show_bug.cgi?id=91506
3227
3228         Reviewed by Joseph Pecoraro.
3229
3230         No new test.  The "fallback fallback" code ends up creating a font, so you always
3231         get a fallback font even with this code bug.  A test would be buggy, being highly
3232         platform dependent on what the "fallback fallback" font is on the particular
3233         windows machine the test runs on.
3234
3235         * platform/graphics/win/FontCacheWin.cpp:
3236         (WebCore::FontCache::getLastResortFallbackFont):
3237
3238 2012-07-20  Stephen White  <senorblanco@chromium.org>
3239
3240         [chromium] Clean up scratch texture usage in Chromium's implementation
3241         of GPU-accelerated filters.
3242         https://bugs.webkit.org/show_bug.cgi?id=83370
3243
3244         Reviewed by Adrienne Walker.
3245
3246         There didn't used to be a safe way to allocate a scratch texture, and
3247         hold into it beyond the lifetime of GrAutoScratchTexture.  Now there is:
3248         detach().
3249
3250         Covered by existing tests in css3/filters.
3251
3252         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
3253         (WebCore::CCRenderSurfaceFilters::apply):
3254         Use a GrAutoScratchTexture to allocate the destination texture, and 
3255         detach() to detach it from the cache before placing it in an
3256         SkGrTexturePixelRef.  This means we no longer need to do any lock/
3257         unlock trickery with the TextureCacheEntry, since the refcount is
3258         enough to keep the texture away from the cache's prying hands.
3259
3260 2012-07-20  Stephen White  <senorblanco@chromium.org>
3261
3262         [chromium] Clean up scratch texture usage in Chromium's implementation
3263         of GPU-accelerated filters.
3264         https://bugs.webkit.org/show_bug.cgi?id=83370
3265
3266         Reviewed by Adrienne Walker.
3267
3268         There didn't used to be a safe way to allocate a scratch texture, and
3269         hold into it beyond the lifetime of GrAutoScratchTexture.  Now there is:
3270         detach().
3271
3272         Covered by existing tests in css3/filters.
3273
3274         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
3275         (WebCore::CCRenderSurfaceFilters::apply):
3276         Use a GrAutoScratchTexture to allocate the destination texture, and 
3277         detach() to detach it from the cache before placing it in an
3278         SkGrTexturePixelRef.  This means we no longer need to do any lock/
3279         unlock trickery with the TextureCacheEntry, since the refcount is
3280         enough to keep the texture away from the cache's prying hands.
3281
3282 2012-07-19  Andrew Scherkus  <scherkus@chromium.org>
3283
3284         [chromium] CSS tweaks to media controls to prevent styles from being overridden
3285         https://bugs.webkit.org/show_bug.cgi?id=91802
3286
3287         Reviewed by Eric Carlson.
3288
3289         Having the buttons declared as inline caused them to not be included in the box layout,
3290         resulting in styles set outside the media element to affect the position of the buttons.
3291
3292         In a similar vein, it was also possible to override the font-style attribute for the time
3293         display.
3294
3295         Test: media/controls-styling-strict.html
3296
3297         * css/mediaControlsChromium.css:
3298         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
3299         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
3300         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
3301         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
3302
3303 2012-07-20  Han Shen  <shenhan@google.com>
3304
3305         [Chromium] Compilation fails under gcc 4.7
3306         https://bugs.webkit.org/show_bug.cgi?id=90227
3307
3308         Reviewed by Tony Chang.
3309
3310         Disable warnings about c++0x compatibility in gcc newer than 4.6.
3311
3312         * WebCore.gyp/WebCore.gyp:
3313
3314 2012-07-20  Vincent Scheib  <scheib@chromium.org>
3315
3316         Unreviewed compile fix, r123247 included unintended changes to Document.cpp.
3317
3318         See http://trac.webkit.org/changeset/123247.
3319
3320         * dom/Document.cpp:
3321         (WebCore::Document::webkitExitPointerLock):
3322
3323 2012-07-20  Ryosuke Niwa  <rniwa@webkit.org>
3324
3325         REGRESSION(r122873): 15% regression on Dromaeo/dom-attr
3326         https://bugs.webkit.org/show_bug.cgi?id=91827
3327
3328         Reviewed by Anders Carlsson.
3329
3330         Move shouldInvalidateNodeListCaches from Document.cpp to Node.cpp since it's only called
3331         in Node::invalidateNodeListCachesInAncestors.
3332
3333         Test: PerformanceTests/Dromaeo/dom-attr.html.
3334
3335         * dom/Document.cpp:
3336         (WebCore):
3337         * dom/Node.cpp:
3338         (WebCore::shouldInvalidateNodeListCachesForAttr): Extracted from shouldInvalidateNodeListCaches
3339         to unroll the loop in shouldInvalidateNodeListCaches. Apparently gcc wasn't doing the right thing.
3340         (WebCore::Document::shouldInvalidateNodeListCaches):
3341         (WebCore::Document::invalidateNodeListCaches):
3342         (WebCore::Node::invalidateNodeListCachesInAncestors):
3343
3344 2012-07-20  Nico Weber  <thakis@chromium.org>
3345
3346         Fix more -Wunused-private-field violations
3347         https://bugs.webkit.org/show_bug.cgi?id=91876
3348
3349         Reviewed by Adam Barth.
3350
3351         As of http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20120716/061102.html
3352         the warning finds more bugs. Fix them.
3353
3354         * html/FTPDirectoryDocument.cpp:
3355         (FTPDirectoryDocumentParser):
3356         (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
3357         * html/parser/HTMLTreeBuilder.cpp:
3358         (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
3359         * html/parser/HTMLTreeBuilder.h:
3360         (HTMLTreeBuilder):
3361         * html/shadow/MediaControlRootElementChromium.cpp:
3362         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
3363         * html/shadow/MediaControlRootElementChromium.h:
3364         (MediaControlRootElementChromium):
3365         * inspector/InspectorDOMStorageResource.cpp:
3366         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
3367         * inspector/InspectorDOMStorageResource.h:
3368         (InspectorDOMStorageResource):
3369         * page/Settings.cpp:
3370         (WebCore::Settings::Settings):
3371         * page/Settings.h:
3372         (Settings):
3373         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3374         (WebCore::CCThreadProxy::CCThreadProxy):
3375         * platform/graphics/chromium/cc/CCThreadProxy.h:
3376         (CCThreadProxy):
3377         * rendering/svg/RenderSVGTextPath.cpp:
3378         (WebCore::RenderSVGTextPath::RenderSVGTextPath):
3379         * rendering/svg/RenderSVGTextPath.h:
3380
3381 2012-07-20  Adam Klein  <adamk@chromium.org>
3382
3383         CodeGeneratorInspector.py is unnecessarily chatty
3384         https://bugs.webkit.org/show_bug.cgi?id=91758
3385
3386         Reviewed by Vsevolod Vlasov.
3387
3388         The code aded in r123091 included a "print" statement for each written
3389         file. This makes for noisy build output, especially noticeable in the
3390         Chromium ninja build (where build output takes up a single line of the
3391         console).
3392
3393         If this print statement is generally useful, it should be
3394         hidden behind a --verbose commandline option, as we do for the binding
3395         generators.
3396
3397         * inspector/CodeGeneratorInspector.py:
3398         (SmartOutput.close): Remove print statement.
3399
3400 2012-07-20  Stephen White  <senorblanco@chromium.org>
3401
3402         [chromium] Enable GPU-accelerated skia implementation of
3403         feDiffuseLighting, feSpecularLighting.
3404         https://bugs.webkit.org/show_bug.cgi?id=91865
3405
3406         Reviewed by Dirk Schulze.
3407
3408         Translate the light parameters into the appropriate
3409         SkLightingImageFilter calls.  This path is only enabled when
3410         the filters are created with the Accelerated flag set.
3411
3412         This will be covered by tests in svg/filters/* when they are
3413         added to the virtual GPU tests.
3414
3415         * WebCore.gypi:
3416         * platform/graphics/filters/FELighting.h:
3417         (FELighting):
3418         * platform/graphics/filters/skia/FELightingSkia.cpp: Added.
3419         (WebCore):
3420         (WebCore::FELighting::platformApplySkia):
3421
3422 2012-07-20  Pavel Feldman  <pfeldman@chromium.org>
3423
3424         Web Inspector: disable fake workers inspection.
3425         https://bugs.webkit.org/show_bug.cgi?id=91867
3426
3427         Reviewed by Vsevolod Vlasov.
3428
3429         'Fake workers' is unreliable error-prone way to debug workers. There are a
3430         lot of frameworks supporting it. Inspector should not do that since it has a more
3431         powerful native worker inspection capabilities. Port owners should enable it
3432         in case they want to provide workers debugging.
3433
3434         * English.lproj/localizedStrings.js:
3435         * WebCore.gypi:
3436         * WebCore.order:
3437         * WebCore.vcproj/WebCore.vcproj:
3438         * inspector/InjectedScriptHost.cpp:
3439         (WebCore::InjectedScriptHost::InjectedScriptHost):
3440         * inspector/InjectedScriptHost.h:
3441         (InjectedScriptHost):
3442         * inspector/InjectedScriptHost.idl:
3443         * inspector/Inspector.json:
3444         * inspector/InspectorAgent.cpp:
3445         (WebCore::InspectorAgent::didCommitLoad):
3446         (WebCore::InspectorAgent::enable):
3447         * inspector/InspectorAgent.h:
3448         (WebCore):
3449         (InspectorAgent):
3450         * inspector/InspectorInstrumentation.cpp:
3451         * inspector/InspectorInstrumentation.h:
3452         (InspectorInstrumentation):
3453         * inspector/front-end/InjectedFakeWorker.js: Removed.
3454         * inspector/front-end/ScriptsPanel.js:
3455         * inspector/front-end/WebKit.qrc:
3456         * inspector/front-end/WorkersSidebarPane.js:
3457         (WebInspector.WorkersSidebarPane):
3458         * inspector/front-end/externs.js:
3459         * inspector/front-end/inspector.html:
3460         * inspector/front-end/inspector.js:
3461         * workers/AbstractWorker.cpp:
3462         (WebCore::AbstractWorker::contextDestroyed):
3463         * workers/AbstractWorker.h:
3464         (AbstractWorker):
3465         * workers/SharedWorker.cpp:
3466         (WebCore::SharedWorker::create):
3467         * workers/Worker.cpp:
3468         (WebCore::Worker::create):
3469
3470 2012-07-20  Sheriff Bot  <webkit.review.bot@gmail.com>
3471
3472         Unreviewed, rolling out r123182.
3473         http://trac.webkit.org/changeset/123182
3474         https://bugs.webkit.org/show_bug.cgi?id=91863
3475
3476         Causing ASSERT crashes in tests accessibility/canvas.html and
3477         accessibility/canvas-accessibilitynodeobject.html (Requested
3478         by jernoble on #webkit).
3479
3480         * CMakeLists.txt:
3481         * GNUmakefile.list.am:
3482         * Target.pri:
3483         * WebCore.gypi:
3484         * accessibility/AXObjectCache.cpp:
3485         (WebCore):
3486         * accessibility/AXObjectCache.h:
3487         (AXObjectCache):
3488         * accessibility/AccessibilityARIAGrid.cpp:
3489         (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
3490         (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
3491         (WebCore):
3492         (WebCore::AccessibilityARIAGrid::create):
3493         * accessibility/AccessibilityARIAGrid.h:
3494         (AccessibilityARIAGrid):
3495         * accessibility/AccessibilityARIAGridCell.cpp:
3496         (WebCore::AccessibilityARIAGridCell::create):
3497         * accessibility/AccessibilityARIAGridRow.cpp:
3498         (WebCore::AccessibilityARIAGridRow::create):
3499         * accessibility/AccessibilityAllInOne.cpp:
3500         * accessibility/AccessibilityList.cpp:
3501         (WebCore::AccessibilityList::create):
3502         * accessibility/AccessibilityListBox.cpp:
3503         (WebCore::AccessibilityListBox::create):
3504         * accessibility/AccessibilityMediaControls.cpp:
3505         (WebCore::AccessibilityMediaControl::create):
3506         (WebCore::AccessibilityMediaControlsContainer::create):
3507         (WebCore::AccessibilityMediaTimeline::create):
3508         (WebCore::AccessibilityMediaTimeDisplay::create):
3509         * accessibility/AccessibilityMenuList.cpp:
3510         * accessibility/AccessibilityMenuList.h:
3511         (WebCore::AccessibilityMenuList::create):
3512         * accessibility/AccessibilityNodeObject.cpp: Removed.
3513         * accessibility/AccessibilityNodeObject.h: Removed.
3514         * accessibility/AccessibilityObject.h:
3515         (AccessibilityObject):
3516         * accessibility/AccessibilityProgressIndicator.cpp:
3517         (WebCore::AccessibilityProgressIndicator::create):
3518         * accessibility/AccessibilityRenderObject.cpp:
3519         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
3520         (WebCore::AccessibilityRenderObject::create):
3521         (WebCore::AccessibilityRenderObject::detach):
3522         (WebCore::AccessibilityRenderObject::remapAriaRoleDueToParent):
3523         (WebCore):
3524         (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
3525         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
3526         (WebCore::AccessibilityRenderObject::updateAccessibilityRole):
3527         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
3528         (WebCore::AccessibilityRenderObject::childrenChanged):
3529         (WebCore::AccessibilityRenderObject::canHaveChildren):
3530         (WebCore::AccessibilityRenderObject::addChildren):
3531         * accessibility/AccessibilityRenderObject.h:
3532         (AccessibilityRenderObject):
3533         (WebCore::AccessibilityRenderObject::setRenderer):
3534         * accessibility/AccessibilitySlider.cpp:
3535         (WebCore::AccessibilitySlider::create):
3536         * accessibility/AccessibilityTable.cpp:
3537         (WebCore::AccessibilityTable::AccessibilityTable):
3538         (WebCore::AccessibilityTable::~AccessibilityTable):
3539         (WebCore):
3540         (WebCore::AccessibilityTable::create):
3541         * accessibility/AccessibilityTable.h:
3542         (AccessibilityTable):
3543         * accessibility/AccessibilityTableCell.cpp:
3544         (WebCore::AccessibilityTableCell::create):
3545         * accessibility/AccessibilityTableRow.cpp:
3546         (WebCore::AccessibilityTableRow::create):
3547
3548 2012-07-20  Christophe Dumez  <christophe.dumez@intel.com>
3549
3550         [EFL] Proxy configuration should honor the no_proxy environment variable
3551         https://bugs.webkit.org/show_bug.cgi?id=91747
3552
3553         Reviewed by Kenneth Rohde Christiansen.
3554
3555         Implement a custom Proxy URI Resolver for libsoup
3556         so that we can use it in EFL port. This custom
3557         proxy resolver brings support for setting
3558         exceptions so that the proxy is not used for the
3559         specified hosts.
3560
3561         By default, the proxy is not used for localhost and
3562         127.0.0.1.
3563
3564         No new tests, no behavior change for layout tests.
3565
3566         * PlatformEfl.cmake:
3567         * platform/network/soup/ProxyResolverSoup.cpp: Added.
3568         (soup_proxy_resolver_wk_init):
3569         (soupProxyResolverWkFinalize):
3570         (soupProxyResolverWkSetProperty):
3571         (soupProxyResolverWkGetProperty):
3572         (shouldBypassProxy):
3573         (idle_return_proxy_uri):
3574         (soupProxyResolverWkGetProxyURIAsync):
3575         (soupProxyResolverWkGetProxyURISync):
3576         (soup_proxy_resolver_wk_class_init):
3577         (soup_proxy_resolver_wk_interface_init):
3578         (soupProxyResolverWkNew):
3579         * platform/network/soup/ProxyResolverSoup.h: Added.
3580
3581 2012-07-20  Pierre Rossi  <pierre.rossi@gmail.com>
3582
3583         ColorChooserClient should expose the element's location
3584         https://bugs.webkit.org/show_bug.cgi?id=91767
3585
3586         Reviewed by Kent Tamura.
3587
3588         The rationale is that the chrome client could have an interest in placing the picker next to
3589         the element for usability reasons.
3590
3591         No new tests as there is not much logic here: Just exposing a geometry information to WebKit.
3592
3593         * html/ColorInputType.cpp:
3594         (WebCore::ColorInputType::elementRectRelativeToWindow):
3595         (WebCore):
3596         * html/ColorInputType.h:
3597         (ColorInputType):
3598         * platform/ColorChooserClient.h:
3599         (ColorChooserClient):
3600
3601 2012-07-20  Thiago Marcos P. Santos  <thiago.santos@intel.com>
3602
3603         [WK2] WebIntents doesn't build if mutation observers is disabled
3604         https://bugs.webkit.org/show_bug.cgi?id=91839
3605
3606         Reviewed by Kenneth Rohde Christiansen.
3607
3608         WebIntents was depending on a code protected by ENABLE(MUTATION_OBSERVERS).
3609         Now the code is also enabled by ENABLE(WEB_INTENTS).
3610
3611         * bindings/js/JSDictionary.cpp:
3612         (WebCore):
3613         * bindings/js/JSDictionary.h:
3614
3615 2012-07-20  Mihnea Ovidenie  <mihnea@adobe.com>
3616
3617         [CSSRegions]Assert failure when layout positioned objects in regions
3618         https://bugs.webkit.org/show_bug.cgi?id=90792
3619
3620         Reviewed by Andreas Kling.
3621
3622         Before clamping the containing block (for an out-of-flow positioned element
3623         inside a named flow) to the region, we have to test whether the region is not
3624         null, which can happen when the named flow does not have attached regions.
3625
3626         Tests: fast/regions/positioned-vrl-in-named-flow.html
3627                fast/regions/positioned-vrl-in-parent-named-flow.html
3628                fast/regions/positioned-with-vrl-parent-in-named-flow.html
3629
3630         * rendering/RenderBox.cpp:
3631         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
3632         (WebCore::RenderBox::computePositionedLogicalWidth):
3633         (WebCore::RenderBox::computePositionedLogicalHeight):
3634
3635 2012-07-20  Stephen Chenney  <schenney@chromium.org>
3636
3637         SVG Filter Effect sub-region not applied for some filters
3638         https://bugs.webkit.org/show_bug.cgi?id=89767
3639
3640         Reviewed by Dirk Schulze.
3641
3642         The filter effect region for SVG feGaussian and feDropShadow filters
3643         was incorrectly set, failing to account for the radius of the blur.
3644         This patch fixes the problem and removes an unneccessary clip
3645         operation when the filter result is blitted into the target. That clip
3646         was clipping the shadow from webkit-shadow.
3647
3648         Tests: svg/filters/feDropShadow-subregion.svg
3649                svg/filters/feGaussianBlur-subregion.svg
3650
3651         * platform/graphics/filters/FEDropShadow.cpp:
3652         (WebCore::FEDropShadow::determineAbsolutePaintRect): Moved the code
3653         that clips the paint rect by the filter effect subregion to come after
3654         the paint is modified by the filter radius.
3655         * platform/graphics/filters/FEGaussianBlur.cpp:
3656         (WebCore::FEGaussianBlur::determineAbsolutePaintRect):
3657         Moved the code that clips the paint rect by the filter effect subregion to
3658         come after the paint is modified by the filter radius.
3659         * rendering/svg/RenderSVGResourceFilter.cpp:
3660         (WebCore::RenderSVGResourceFilter::postApplyResource):
3661         Removed a clip that is unnecessary and that was incorrectly clipping drop shadows.
3662
3663 2012-07-19  Pavel Feldman  <pfeldman@chromium.org>
3664
3665         Web Inspector: Status bar icons are misaligned by 1px to the right
3666         https://bugs.webkit.org/show_bug.cgi?id=91757
3667
3668         Reviewed by Vsevolod Vlasov.
3669
3670         * inspector/front-end/inspector.css:
3671         (.glyph):
3672         (.glyph.shadow):
3673
3674 2012-07-20  Andrei Poenaru  <poenaru@adobe.com>
3675
3676         Web Inspector: Protocol Extension: add getNamedFlowCollection command
3677         https://bugs.webkit.org/show_bug.cgi?id=91607
3678
3679         Reviewed by Pavel Feldman.
3680
3681         Extended the protocol with "getNamedFlowCollection" command.
3682         This command returns the CSS Named Flows from the document.
3683
3684         Test: inspector/styles/protocol-getNamedFlowCollection-command.html
3685
3686         * dom/WebKitNamedFlowCollection.cpp:
3687         (WebCore::WebKitNamedFlowCollection::namedFlowsNames):
3688         (WebCore):
3689         * dom/WebKitNamedFlowCollection.h:
3690         (WebKitNamedFlowCollection):
3691         * inspector/Inspector.json:
3692         * inspector/InspectorCSSAgent.cpp:
3693         (WebCore::InspectorCSSAgent::getNamedFlowCollection):
3694         (WebCore):
3695         * inspector/InspectorCSSAgent.h:
3696         (InspectorCSSAgent):
3697         * inspector/InspectorDOMAgent.cpp:
3698         (WebCore::InspectorDOMAgent::assertDocument):
3699         (WebCore):
3700         * inspector/InspectorDOMAgent.h:
3701         (InspectorDOMAgent):
3702         * inspector/front-end/CSSStyleModel.js:
3703         (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
3704
3705 2012-07-20  Eugene Klyuchnikov  <eustas.big@gmail.com>
3706
3707         Web Inspector: Timeline: forward compatibility for load.
3708         https://bugs.webkit.org/show_bug.cgi?id=91714
3709
3710         Reviewed by Pavel Feldman.
3711
3712         Accept records of unrecognized types and render them as "unknown".
3713
3714         Test: inspector/timeline/timeline-load-incompatible.html
3715
3716         * English.lproj/localizedStrings.js: Added UI string.
3717         * inspector/front-end/TimelinePresentationModel.js:
3718         (WebInspector.TimelinePresentationModel.recordStyle): Add missing record
3719         styles at runtime.
3720         (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
3721         Add some common information for default case.
3722
3723 2012-07-20  MORITA Hajime  <morrita@google.com>
3724
3725         Another unreviewed Mac build fix against r123184.
3726
3727         * WebCore.exp.in:
3728
3729 2012-07-20  Mihnea Ovidenie  <mihnea@adobe.com>
3730
3731         [CSSRegions]Crash when flowing a region into itself
3732         https://bugs.webkit.org/show_bug.cgi?id=90289
3733
3734         Reviewed by Andreas Kling.
3735
3736         If a region is designed to receive itself as content through a named flow, we avoid
3737         a circular dependency by not attaching the region to the desired named flow.
3738         In such occasions, the region's attached flow thread object is null and
3739         we have to check this pointer before using it in RenderRegion::styleDidChange.
3740
3741         Test: fast/regions/flow-region-into-itself-crash.html
3742
3743         * rendering/RenderRegion.cpp:
3744         (WebCore::RenderRegion::styleDidChange):
3745
3746 2012-07-20  MORITA Hajime  <morrita@google.com>
3747
3748         Unreviewed Mac build fix against r123184.
3749
3750         * WebCore.exp.in:
3751
3752 2012-07-17  Kinuko Yasuda  <kinuko@chromium.org>
3753
3754         If value for responseType defined as type that not supported, it should not throw an exception in XHR 2
3755         https://bugs.webkit.org/show_bug.cgi?id=90976
3756
3757         Reviewed by Alexey Proskuryakov.
3758
3759         http://www.w3.org/TR/XMLHttpRequest2/#the-responsetype-attribute
3760         The spec does not say it should throw an exception when a non-supported
3761         type is set, and other browsers do not throw it either.
3762
3763         Test: fast/xmlhttprequest/xmlhttprequest-responsetype-set-type.html
3764
3765         * xml/XMLHttpRequest.cpp:
3766         (WebCore::XMLHttpRequest::setResponseType): Stop throwing an exception when non-supported type is given.
3767
3768 2012-07-20  Matt Falkenhagen  <falken@chromium.org>
3769
3770         Show or hide <dialog> depending on the open attribute
3771         https://bugs.webkit.org/show_bug.cgi?id=90931
3772
3773         Reviewed by Kent Tamura.
3774
3775         Test: fast/dom/HTMLDialogElement/dialog-open.html
3776
3777         * css/html.css: Add CSS for dialog. This is copied verbatim from the HTML5 spec: http://www.whatwg.org/specs/web-apps/current-work/#flow-content-1
3778         (dialog:not([open])):
3779         (dialog):
3780         * html/HTMLDialogElement.cpp:
3781         (WebCore::HTMLDialogElement::close): Set open to false, to hide the dialog.
3782         (WebCore::HTMLDialogElement::show): Set open to true, to show the dialog.
3783         (WebCore):
3784         (WebCore::HTMLDialogElement::isPresentationAttribute): Make openAttr a presentation attribute, to work around bug 91058
3785         * html/HTMLDialogElement.h:
3786         (HTMLDialogElement):
3787         * html/HTMLDialogElement.idl:
3788
3789 2012-07-20  Shinya Kawanaka  <shinyak@chromium.org>
3790
3791         Needs pseudo id to point the inner element of an img elemnet for styling
3792         https://bugs.webkit.org/show_bug.cgi?id=91590
3793
3794         Reviewed by Hajime Morita.
3795
3796         We introduce pseudo id to point the element in UserAgentShadowDOM.
3797         This enables us to style the inner element of an img element shadow.
3798         Please see also http://trac.webkit.org/wiki/ShadowDOMForReplacedElements
3799
3800         Test: fast/dom/shadow/shadowdom-for-image-with-pseudo-id.html
3801
3802         * html/shadow/ImageInnerElement.cpp:
3803         (WebCore::ImageInnerElement::shadowPseudoId):
3804         (WebCore):
3805         * html/shadow/ImageInnerElement.h:
3806         (ImageInnerElement):
3807
3808 2012-07-20  Kent Tamura  <tkent@chromium.org>
3809
3810         REGRESSION(r121420): Performance regression of form state saving for pages with multiple forms
3811         https://bugs.webkit.org/show_bug.cgi?id=91804
3812
3813         Reviewed by Hajime Morita.
3814
3815         The complexity of FormKeyGenerator::formKey() was O(N) where N is the
3816         number of form elements with an identical action URL, and formKey() is
3817         called for every form. So, it's O(N^2). A page in www.reddit.com
3818         contains hundreds of form elements with action="#". So FormController::
3819         formElementsState() took a few seconds on a slow machine.
3820
3821         In order to avoid O(N^2) operation, storing a map from form signatures
3822         to next index numbers, instead of storing existing formKey strings.
3823
3824         No new tests. Just a performance improvement.
3825
3826         * html/FormController.cpp:
3827         (FormKeyGenerator): Remove m_existingKeys. Add a map from a form
3828         signature string to the next index number.
3829         (WebCore::formSignature): Returns a signature string for a form, without
3830         an index number. This is like "actionURL [name1 name2 ]"
3831         (WebCore::FormKeyGenerator::formKey):
3832         Creates a formKey string by concatenating a formSignature and #n. N is
3833         obtained from m_formSignatureToNextIndexMap in O(1).
3834         (WebCore::FormKeyGenerator::willDeleteForm):
3835         Remove the code for m_existingKeys.
3836
3837 2012-07-20  Keishi Hattori  <keishi@webkit.org>
3838
3839         Fix crash in WebCore::HTMLInputElement::dataList
3840         https://bugs.webkit.org/show_bug.cgi?id=91818
3841
3842         Reviewed by Kent Tamura.
3843
3844         Fix crash that occurs when setting slider appearance on a regular node.
3845
3846         Test: fast/forms/range/slider-appearance-crash.html
3847
3848         * rendering/RenderTheme.cpp:
3849         (WebCore::RenderTheme::paintSliderTicks): Check if node is an input element.
3850
3851 2012-07-20  Kent Tamura  <tkent@chromium.org>
3852
3853         [Chromium] Fix an assertion failure in TextFieldDecorationElement::hostInput()
3854         https://bugs.webkit.org/show_bug.cgi?id=91824
3855
3856         Reviewed by Hajime Morita.
3857
3858         No new tests. This code is used only in Chromium browser.
3859
3860         * html/shadow/TextFieldDecorationElement.cpp:
3861         (WebCore::TextFieldDecorationElement::hostInput):
3862         Use shadowHost(), and allow to return 0.
3863         (WebCore::TextFieldDecorationElement::defaultEventHandler):
3864         Check 0.
3865
3866 2012-07-19  Simon Hausmann  <simon.hausmann@nokia.com>
3867
3868         [Qt] Compile WebCore without QtWidgets
3869         https://bugs.webkit.org/show_bug.cgi?id=91819
3870
3871         Reviewed by Kenneth Rohde Christiansen.
3872
3873         * WebCore.pri: QT += opengl is not needed for Qt 5, given that QtGui has OpenGL
3874         support built in with the QOpenGL* classes.
3875
3876 2012-07-19  MORITA Hajime  <morrita@google.com>
3877
3878         [Refactoring] Replace Node's Document pointer with a TreeScope pointer
3879         https://bugs.webkit.org/show_bug.cgi?id=59816
3880
3881         Reviewed by Ryosuke Niwa.
3882
3883         Before this change, Node::treeScope() fetches the TreeScope object
3884         from ElementRareData. This approach has several shortcomings:
3885
3886         - rareData() call is slow due to a hashtable lookup.
3887         - In shadow tree, each node has its tree scope in ElementRareData,
3888           that means the rare-data is no longer rare in that case.
3889
3890         This change gets rid of ElementRareData::m_treeScope by replacing
3891         Node::m_document with Node::m_treeScope. And retrieves the
3892         document of Node through m_treeScope.
3893
3894         Note that Node::document() is a hot function and naive
3895         replacemennt of m_document with m_treeScope can hurt the
3896         speed. This change employs some tricks to address it.
3897
3898         - This change introduces Node::InShadowTree flag, if the flag is off,
3899           that means m_treeScope is actually a document an can be returned as the result.
3900           this eliminates an extract dereference.
3901         - Node::m_treeScope can be null. But we don't want to issue any extra
3902           conditional statement. So this change represents a null
3903           TreeScope as TreeScope::nullInstance(), which saves one conditional
3904           statement.
3905
3906         With these changes, the Node::document() slowdown is minimized to
3907         unnoticeable size.
3908
3909         No new tests. Covered by existing tests.
3910
3911         * dom/Document.cpp: Took care of connectio betwen TreeScope.
3912         (WebCore::Document::Document):
3913         (WebCore::Document::~Document):
3914         (WebCore::Document::suggestedMIMEType):
3915         * dom/Document.h:
3916         (WebCore::Node::treeScope): Now just return m_treeScope, taking care of nullInstance() case.
3917         (WebCore):
3918         (WebCore::Node::setTreeScope): Now just sets m_treeScope.
3919         (WebCore::Node::documentInternal): Extracted from document() to have ASSERT-free version.
3920         (WebCore::Node::document): Re-implemented over treeScope() and the flag.
3921         (WebCore::Node::isDocumentNode): Re-implemented using treeScope()
3922         (WebCore::Node::Node):
3923         * dom/Node.cpp:
3924         (WebCore::Node::~Node):
3925         (WebCore::Node::reportMemoryUsage):
3926         * dom/Node.h:
3927         (Node):
3928         (WebCore::Node::inDocument):
3929         (WebCore::Node::isInShadowTree): Rewrote to use InShadowTree flag.
3930         * dom/NodeRareData.h:
3931         (WebCore::NodeRareData::NodeRareData): Eliminated m_treeScope.
3932         (NodeRareData):
3933         * dom/ShadowRoot.cpp:
3934         (WebCore::ShadowRoot::ShadowRoot):
3935         * dom/TreeScope.cpp:
3936         (WebCore::TreeScope::TreeScope):
3937         (WebCore):
3938         (WebCore::TreeScope::setParentTreeScope): Added.
3939         (WebCore::TreeScope::isDocumentScope): Added.
3940         (WebCore::TreeScope::nullInstance): Added.
3941         * dom/TreeScope.h: Added m_parentTreeScope.
3942         (WebCore):
3943         (WebCore::TreeScope::rootDocument): Added.
3944         (TreeScope):
3945         * dom/TreeScopeAdopter.cpp: No longer calls setDocument()
3946         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
3947         (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
3948         * editing/MoveSelectionCommand.cpp: Includes Document.h to find inlined Node functions
3949         * editing/RemoveNodeCommand.cpp: Includes Document.h to find inlined Node functions
3950         * editing/RemoveNodePreservingChildrenCommand.cpp: Includes Document.h to find inlined Node functions
3951         * inspector/PageConsoleAgent.cpp: Includes Document.h to find inlined Node functions
3952
3953 2012-07-19  David Hyatt  <hyatt@apple.com>
3954
3955         SVG not properly respecting max-width.
3956         https://bugs.webkit.org/show_bug.cgi?id=91474
3957
3958         My previous checkin for 91474 accidentally inverted width and height in the division case for
3959         the computation of height. When I fixed this inversion, I discovered that <object> elements
3960         are in fact also broken with max-width handling, and that furthermore, trying to apply the same
3961         max-width fix by calling RenderBox::computeReplacedLogicalWidth/Height failed because those methods
3962         call intrinsicLogicalWidth()/Height(). Becuase m_intrinsicSize is out-of-date and does not reflect
3963         the values we just obtained from the contentRenderer, we use the default 300x150 values for object
3964         and fail to render.
3965         
3966         In order to both fix SVG/<object> with max-width constraints and to keep <object> rendering correctly
3967         even when there are no max-width constraints, I was forced to update the m_intrinsicSize immediately
3968         in order to make sure that the RenderBox methods returned the right values when computing the width/height
3969         constrained to max/min-width/height values.
3970
3971         Reviewed by Dan Bernstein.
3972
3973         Added two new tests in svg/as-image. One test covers non-rectangular images to test for the inversion
3974         mistake I made. The second test applies a max-width to <object> and shows that we have never gotten
3975         this right before. An existing test in svg/as-image/ already covers basic <object> use (and tests that
3976         the intrinsic size of 300x150 is not used when an explicit non-percentage size is specified on the SVG
3977         itself).
3978
3979         * rendering/RenderReplaced.cpp:
3980         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
3981         Add a check to update m_intrinsicSize when we know it should apply, so that the calls to check against
3982         min/max-width fetch this correct size.
3983         
3984         * rendering/RenderReplaced.h:
3985         (RenderReplaced):
3986         Make m_intrinsicSize mutable because of the mutation that occurs during the method above. It may be
3987         that we should re-evaluate whether all of these methods should be const, but this would impact RenderBox
3988         methods as well, so I chose to hold off going down that rabbit hole.
3989
3990 2012-07-19  Dominic Mazzoni  <dmazzoni@google.com>
3991
3992         AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
3993         https://bugs.webkit.org/show_bug.cgi?id=87899
3994
3995         Reviewed by Chris Fleizach.
3996
3997         Refactors AccessibilityRenderObject so that it inherits from a new class,
3998         AccessibilityNodeObject, that can be constructed from a Node without a
3999         renderer. Modifies AXObjectCache so that it automatically creates an
4000         AccessibilityNodeObject for elements in a canvas subtree but not otherwise.
4001         A new layout test verifies that this correctly exposes an accessibility
4002         tree with appropriate roles for elements in a canvas subtree.
4003
4004         This patch does not try to complete the implementation of
4005         AccessibilityNodeObject. Most AX methods are still unimplemented and need
4006         to be migrated from AccessibilityRenderObject to AccessibilityNodeObject
4007         in a future patch.
4008         
4009         This patch also doesn't change anything outside of WebCore/accessibility, so
4010         the rest of WebCore only calls AXObjectCache when there are changes to a
4011         RenderObject, not to a Node. Accessible notifications on nodes without
4012         renderers need to be implemented in a future patch.
4013
4014         Test: accessibility/canvas-accessibilitynodeobject.html
4015
4016         * CMakeLists.txt:
4017         * GNUmakefile.list.am:
4018         * Target.pri:
4019         * WebCore.gypi:
4020         * accessibility/AXObjectCache.cpp:
4021         (WebCore::AXObjectCache::get):
4022         (WebCore):
4023         (WebCore::createFromNode):
4024         (WebCore::AXObjectCache::getOrCreate):
4025         (WebCore::AXObjectCache::remove):
4026         * accessibility/AXObjectCache.h:
4027         (AXObjectCache):
4028         (WebCore::AXObjectCache::get):
4029         (WebCore::AXObjectCache::getOrCreate):
4030         (WebCore::AXObjectCache::remove):
4031         * accessibility/AccessibilityARIAGrid.cpp:
4032         (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
4033         (WebCore):
4034         (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
4035         (WebCore::AccessibilityARIAGrid::init):
4036         (WebCore::AccessibilityARIAGrid::create):
4037         * accessibility/AccessibilityARIAGrid.h:
4038         (AccessibilityARIAGrid):
4039         * accessibility/AccessibilityARIAGridCell.cpp:
4040         (WebCore::AccessibilityARIAGridCell::create):
4041         * accessibility/AccessibilityARIAGridRow.cpp:
4042         (WebCore::AccessibilityARIAGridRow::create):