1 2012-07-24 Jian Li <jianli@chromium.org>
3 Add per-context setting for html notifications
4 https://bugs.webkit.org/show_bug.cgi?id=91295
6 Reviewed by Adam Barth.
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.
12 Also enhance V8 code generator to support V8EnabledPerContext attribute
15 Updated the binding tests.
17 * Modules/notifications/NotificationCenter.cpp:
18 (WebCore::NotificationCenter::document): Expose document for being used by installPerContextProperties.
20 * Modules/notifications/NotificationCenter.h:
22 * Modules/notifications/NotificationCenter.idl: Add V8EnabledPerContext attribute.
23 * bindings/scripts/CodeGeneratorV8.pm: V8EnabledPerContext now supports methods.
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):
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):
40 * dom/ContextFeatures.h: Add a new per-context feature.
42 2012-07-24 Sheriff Bot <webkit.review.bot@gmail.com>
44 Unreviewed, rolling out r123499.
45 http://trac.webkit.org/changeset/123499
46 https://bugs.webkit.org/show_bug.cgi?id=92161
48 Android fails to compile (Requested by zhenyao on #webkit).
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:
61 * Modules/mediastream/MediaStreamTrack.idl:
65 * dom/EventTargetFactory.in:
66 * platform/chromium/support/WebMediaStreamDescriptor.cpp:
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):
77 * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
78 (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
79 (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
81 2012-07-24 Julien Chaffraix <jchaffraix@webkit.org>
83 Crash in RenderTableSection::layoutRows
84 https://bugs.webkit.org/show_bug.cgi?id=92145
86 Reviewed by Abhishek Arya.
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.
92 This change also aligns the ancestor iteration with RenderBlock::addChildToAnonymousColumnBlocks.
94 Test: fast/table/crash-table-section-layoutRows.html
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.
101 2012-07-24 Tony Chang <tony@chromium.org>
103 Make RenderBlock::paintChildren virtual so sub classes can change the paint order
104 https://bugs.webkit.org/show_bug.cgi?id=92042
106 Reviewed by Ojan Vafai.
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.
111 No new tests, this is just a refactoring.
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.
120 2012-07-24 Anna Cavender <annacc@chromium.org>
122 Create SourceBuffer and SourceBufferList objects
123 https://bugs.webkit.org/show_bug.cgi?id=91771
125 Reviewed by Eric Carlson.
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
131 No new tests - will be able to test after landing BUGWK91775
133 Adding new files to build files:
135 * DerivedSources.cpp:
136 * DerivedSources.make:
137 * DerivedSources.pri:
139 * GNUmakefile.list.am:
141 * WebCore.gyp/WebCore.gyp:
143 * WebCore.vcproj/WebCore.vcproj:
144 * WebCore.vcproj/WebCoreCommon.vsprops:
145 * WebCore.vcproj/copyForwardingHeaders.cmd:
146 * WebCore.xcodeproj/project.pbxproj:
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.
161 * dom/EventTargetFactory.in:
164 * page/DOMWindow.idl:
166 2012-07-24 Patrick Gansterer <paroga@webkit.org>
168 Store the full year in GregorianDateTime
169 https://bugs.webkit.org/show_bug.cgi?id=92067
171 Reviewed by Geoffrey Garen.
173 Use the full year instead of the offset from year 1900
174 for the year member variable of GregorianDateTime.
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):
183 2012-07-24 Benjamin Poulain <bpoulain@apple.com>
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
188 Reviewed by Geoffrey Garen.
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.
193 When the String is 8 bits, it was converted to 16 bits by getData16SlowCase() because of the call
194 to String::characters().
196 This patch adds a path for creating a CFString from a 8bits string using CFStringCreateWithBytes.
198 This is covered by existing tests.
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.
206 2012-07-24 Kentaro Hara <haraken@chromium.org>
208 [V8] String wrappers should be marked Independent
209 https://bugs.webkit.org/show_bug.cgi?id=91251
211 Reviewed by Adam Barth.
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).
219 'm_lastStringImpl = 0' in StringCache::remove() is important.
220 Look at the following code:
222 static void cachedStringCallback(v8::Persistent<v8::Value> wrapper, void* parameter)
225 stringCache()->remove(stringImpl);
229 void StringCache::remove(StringImpl* stringImpl)
232 if (m_lastStringImpl.get() == stringImpl)
233 m_lastStringImpl = 0;
236 v8::Local<v8::String> v8ExternalString(StringImpl* stringImpl, v8::Isolate* isolate)
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.
241 return v8ExternalStringSlow(stringImpl, isolate);
244 Without 'm_lastStringImpl = 0', already disposed m_lastV8String can be used
245 in v8ExternalString(). This was a cause of the crashes of r122614.
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
255 * bindings/v8/V8Binding.cpp:
256 (WebCore::StringCache::remove):
257 (WebCore::StringCache::v8ExternalStringSlow):
259 2012-07-24 Tommy Widenflycht <tommyw@google.com>
261 MediaStream API: Update MediaStreamTrack to match the specification
262 https://bugs.webkit.org/show_bug.cgi?id=90180
264 Reviewed by Adam Barth.
266 MediaStreamTracks are now required to show the status of the underlying source,
267 and trigger events when that status changes.
269 Test: fast/mediastream/MediaStreamTrack.html
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):
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:
293 * dom/EventTargetFactory.in:
294 * platform/chromium/support/WebMediaStreamDescriptor.cpp:
295 * platform/chromium/support/WebMediaStreamSource.cpp:
296 (WebKit::WebMediaStreamSource::setReadyState):
298 (WebKit::WebMediaStreamSource::readyState):
299 * platform/mediastream/MediaStreamSource.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamSource.h.
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:
308 (WebCore::MediaStreamSource::Observer::~Observer):
310 (WebCore::MediaStreamSource::readyState):
311 * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
312 (WebCore::MediaStreamCenterChromium::queryMediaStreamSources):
313 (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
315 2012-07-24 Scott Graham <scottmg@chromium.org>
317 Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
318 https://bugs.webkit.org/show_bug.cgi?id=91667
320 Reviewed by Tony Chang.
322 Using native tools instead of cygwin version improves build time
323 performance by roughly 50% (on top of previous cl-instead-of-gcc
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.
336 * WebCore.gyp/WebCore.gyp:
337 * WebCore.gyp/scripts/rule_bison.py:
338 * bindings/scripts/preprocessor.pm:
340 * make-hash-tools.pl:
342 2012-07-24 Daniel Cheng <dcheng@chromium.org>
344 Files from drag and file <input> should use getMIMETypeForExtension to determine content type.
345 https://bugs.webkit.org/show_bug.cgi?id=91702
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
356 (WebCore::getContentTypeFromFileName):
357 (WebCore::createBlobDataForFile):
358 (WebCore::createBlobDataForFileWithName):
359 (WebCore::createBlobDataForFileWithMetadata):
360 (WebCore::File::createWithRelativePath):
361 (WebCore::File::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):
379 2012-07-24 Vsevolod Vlasov <vsevik@chromium.org>
381 Web Inspector: Snippets UI polish
382 https://bugs.webkit.org/show_bug.cgi?id=92142
384 Reviewed by Pavel Feldman.
386 Changed snippets context menu items.
387 Added run snippet status bar button.
388 Removed unused edit source button.
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):
409 2012-07-24 Nico Weber <thakis@chromium.org>
411 [chromium/mac] Remove webcore_resource_files from WebCore.gypi
412 https://bugs.webkit.org/show_bug.cgi?id=92129
414 Reviewed by Adam Barth.
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.
420 * WebCore.gyp/WebCore.gyp:
422 2012-07-24 Julien Chaffraix <jchaffraix@webkit.org>
424 inline-table wrapper should be generated for display: inline element only
425 https://bugs.webkit.org/show_bug.cgi?id=92054
427 Reviewed by Abhishek Arya.
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.
433 Test: fast/table/inline-block-generates-table-wrapper.html
435 * rendering/RenderTable.cpp:
436 (WebCore::RenderTable::createAnonymousWithParentRenderer):
437 Changed to use display instead of isInline to properly match the spec.
439 2012-07-24 Alec Flett <alecflett@chromium.org>
441 IndexedDB: Temporarily continue generating backend keys for empty key lists
442 https://bugs.webkit.org/show_bug.cgi?id=92012
444 Reviewed by Tony Chang.
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
451 No new tests, this is part of a refactor that doesn't change behavior.
453 * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
454 (WebCore::IDBObjectStoreBackendImpl::putInternal):
456 2012-07-24 Pavel Feldman <pfeldman@chromium.org>
458 Web Inspector: introduce UISourceCodeFrame.
459 https://bugs.webkit.org/show_bug.cgi?id=92124
461 Reviewed by Vsevolod Vlasov.
463 Generic implementation of SourceFrame over UISourceCode added.
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:
482 2012-07-24 Dan Bernstein <mitz@apple.com>
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
487 Reviewed by Mark Rowe.
489 * platform/Scrollbar.cpp:
490 (WebCore::Scrollbar::scrollbarOverlayStyle): Reversed an incorrect null check.
492 2012-07-24 Andrew Wilson <atwilson@chromium.org>
494 Another prospective build fix for Chromium. Unreviewed.
496 * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
498 2012-07-24 Andrew Wilson <atwilson@chromium.org>
500 Unreviewed prospective build fix for Chromium. Changed include of hb.h in HarfBuzzNGFace.h
502 * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
504 2012-07-24 Dominik Röttsches <dominik.rottsches@intel.com>
506 HarfBuzzFaceNG.h forward declarations conflict with newer versions of Harfbuzz
507 https://bugs.webkit.org/show_bug.cgi?id=92103
509 Reviewed by Philippe Normand.
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
515 No new tests, no change in behavior.
517 * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
519 2012-07-24 Allan Sandfeld Jensen <allan.jensen@nokia.com>
521 Fix blend filter for autovectorizing
522 https://bugs.webkit.org/show_bug.cgi?id=91398
524 Reviewed by Nikolas Zimmermann.
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.
530 On a X86-64 architechture using GCC -O3 on the file, this gives a speed-up of 2.9x.
532 * platform/graphics/filters/FEBlend.cpp:
533 (WebCore::fastDivideBy255):
535 (WebCore::BlendNormal::apply):
537 (WebCore::BlendMultiply::apply):
539 (WebCore::BlendScreen::apply):
541 (WebCore::BlendDarken::apply):
543 (WebCore::BlendLighten::apply):
545 (WebCore::BlendUnknown::apply):
546 (WebCore::platformApply):
547 (WebCore::FEBlend::platformApplyGeneric):
548 (WebCore::FEBlend::platformApplySoftware):
549 * platform/graphics/filters/FEBlend.h:
552 2012-07-23 Hans Wennborg <hans@chromium.org>
554 Speech JavaScript API: Add the SpeechRecognitionResult.emma attribute
555 https://bugs.webkit.org/show_bug.cgi?id=91743
557 Reviewed by Adam Barth.
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
562 Test: fast/speech/scripted/emma.html
564 * Modules/speech/SpeechRecognitionResult.cpp:
565 (WebCore::SpeechRecognitionResult::~SpeechRecognitionResult):
567 (WebCore::SpeechRecognitionResult::emma):
568 * Modules/speech/SpeechRecognitionResult.h:
570 (SpeechRecognitionResult):
571 * Modules/speech/SpeechRecognitionResult.idl:
573 * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
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
580 2012-07-24 Andrei Poenaru <poenaru@adobe.com>
582 Web Inspector: Protocol Extension: add getFlowByName command
583 https://bugs.webkit.org/show_bug.cgi?id=91855
585 Reviewed by Pavel Feldman.
587 The "getFlowByName" command should return a NamedFlow for a given document and name.
589 Test: inspector/styles/protocol-css-regions-commands.html
591 * inspector/Inspector.json:
592 * inspector/InspectorCSSAgent.cpp:
593 (WebCore::InspectorCSSAgent::getFlowByName):
595 * inspector/InspectorCSSAgent.h:
597 * inspector/front-end/CSSStyleModel.js:
598 (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
599 (WebInspector.CSSStyleModel.prototype.getFlowByNameAsync):
600 (WebInspector.NamedFlow):
601 (WebInspector.NamedFlow.parsePayload):
603 2012-07-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
605 [Qt] Fix compilation against namespaced Qt
607 Reviewed by Simon Hausmann.
609 * platform/graphics/Font.h:
610 * platform/network/ResourceHandleInternal.h:
611 * platform/qt/ThirdPartyCookiesQt.h:
613 2012-07-24 Anthony Scian <ascian@rim.com>
615 Web Inspector [JSC]: Enable initiator column in network panel.
616 https://bugs.webkit.org/show_bug.cgi?id=65533
618 Reviewed by Vsevolod Vlasov.
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.
623 Test: http/tests/inspector/network/network-initiator.html
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:
633 2012-07-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
635 Missing *explicit* keyword in dom and page.
636 https://bugs.webkit.org/show_bug.cgi?id=92074
638 Reviewed by Kentaro Hara.
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.
644 Some files in dom directory can't use explicit keyword because of build breaks.
646 No new tests. Covered by existing tests.
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:
658 * dom/ClientRectList.h:
660 * dom/ComposedShadowTreeWalker.h:
661 (ComposedShadowTreeParentWalker):
662 * dom/DOMCoreException.h:
663 (WebCore::DOMCoreException::DOMCoreException):
664 * dom/DOMImplementation.h:
666 * dom/DatasetDOMStringMap.h:
667 (WebCore::DatasetDOMStringMap::DatasetDOMStringMap):
668 * dom/DeviceMotionController.h:
669 (DeviceMotionController):
670 * dom/DeviceOrientationController.h:
671 (DeviceOrientationController):
672 * dom/DocumentParser.h:
674 * dom/EventException.h:
675 (WebCore::EventException::EventException):
676 * dom/EventListener.h:
677 (WebCore::EventListener::EventListener):
678 * dom/ExceptionBase.h:
680 * dom/GenericEventQueue.h:
682 * dom/KeyboardEvent.h:
683 (WebCore::KeypressCommand::KeypressCommand):
684 * dom/MemoryInstrumentation.h:
685 (WebCore::MemoryObjectInfo::MemoryObjectInfo):
686 * dom/MessageChannel.h:
690 * dom/MessagePortChannel.h:
691 (MessagePortChannel):
692 * dom/MutationObserver.h:
693 * dom/NamedNodeMap.h:
694 (WebCore::NamedNodeMap::NamedNodeMap):
696 (WebCore::NodeFilter::NodeFilter):
697 * dom/NodeWithIndex.h:
698 (WebCore::NodeWithIndex::NodeWithIndex):
700 * dom/RangeException.h:
701 (WebCore::RangeException::RangeException):
702 * dom/RawDataDocumentParser.h:
703 (WebCore::RawDataDocumentParser::RawDataDocumentParser):
704 * dom/ScriptRunner.h:
706 * dom/SelectorQuery.h:
710 * dom/SpaceSplitString.h:
711 (SpaceSplitStringData):
712 * dom/StaticHashSetNodeList.h:
713 (StaticHashSetNodeList):
714 * dom/StaticNodeList.h:
715 (WebCore::StaticNodeList::StaticNodeList):
716 * dom/TransformSource.h:
720 * dom/WebKitNamedFlowCollection.h:
721 (WebKitNamedFlowCollection):
722 * page/EventHandler.h:
724 * page/FocusController.h:
734 * page/PrintContext.h:
738 * page/SpeechInput.h:
740 * page/SpeechInputResultList.h:
741 (SpeechInputResultList):
742 * page/WebKitAnimation.h:
743 * page/WindowFeatures.h:
745 * page/WorkerNavigator.h:
748 2012-07-24 Kent Tamura <tkent@chromium.org>
750 Replace some callsites of shadowAncestorNode() with shadowHost()
751 https://bugs.webkit.org/show_bug.cgi?id=92060
753 Reviewed by Hajime Morita.
755 shadowAncestorNode() is deprecated.
757 No new tests. This shouldn't change behaviors.
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):
804 2012-07-24 Peter Beverloo <peter@chromium.org>
806 [Chromium] Build fix for Android after r123424
807 https://bugs.webkit.org/show_bug.cgi?id=92082
809 Unreviewed build fix.
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.
815 * platform/chromium/ScrollbarThemeChromiumAndroid.cpp:
817 2012-07-24 Kentaro Hara <haraken@chromium.org>
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
823 Reviewed by Adam Barth.
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).
830 Test: bindings/scripts/test/TestSupplemental.idl
832 * bindings/scripts/CodeGeneratorJS.pm:
833 (GenerateImplementation):
834 * bindings/scripts/test/JS/JSTestInterface.cpp:
835 (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
836 (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
837 (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
839 2012-07-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
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
844 Reviewed by Kentaro Hara.
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.
850 No new tests. Covered by existing tests.
852 * bridge/IdentifierRep.h:
853 (WebCore::IdentifierRep::IdentifierRep):
854 * history/BackForwardListImpl.h:
855 (BackForwardListImpl):
856 * history/CachedFrame.h:
858 * history/HistoryItem.h:
860 * loader/DocumentWriter.h:
862 * loader/FrameNetworkingContext.h:
863 (WebCore::FrameNetworkingContext::FrameNetworkingContext):
864 * loader/HistoryController.h:
865 * loader/ImageLoader.h:
867 * loader/LinkLoader.h:
869 * loader/MainResourceLoader.h:
870 (MainResourceLoader):
871 * loader/NavigationAction.h:
873 * loader/NavigationScheduler.h:
874 (NavigationScheduler):
875 * loader/PolicyChecker.h:
877 * loader/SubframeLoader.h:
879 * loader/ThreadableLoaderClientWrapper.h:
880 (WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper):
881 * plugins/PluginData.h:
883 * plugins/PluginViewBase.h:
884 (WebCore::PluginViewBase::PluginViewBase):
886 2012-07-24 Patrick Gansterer <paroga@webkit.org>
888 [Qt] Fix conversion from GregorianDateTime to QTime
889 https://bugs.webkit.org/show_bug.cgi?id=92068
891 Reviewed by Simon Hausmann.
893 * bridge/qt/qt_runtime.cpp:
894 (JSC::Bindings::convertValueToQVariant):
895 * bridge/qt/qt_runtime_qt4.cpp:
896 (JSC::Bindings::convertValueToQVariant):
898 2012-07-24 Arko Saha <arko@motorola.com>
900 Microdata: Implement PropertyNodeList interface.
901 https://bugs.webkit.org/show_bug.cgi?id=80269
903 Reviewed by Ryosuke Niwa.
905 Added support for PropertyNodeList interface. Currently HTMLPropertiesCollection.namedItem(name)
906 returns NodeList object. Made changes so that it will return PropertyNodeList object.
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.
912 Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#propertynodelist
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
920 * DerivedSources.cpp:
921 * DerivedSources.make:
922 * DerivedSources.pri:
923 * GNUmakefile.list.am:
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.
934 (WebCore::toJS): Added toJS() custom method. Returns Node if itemValue is node else returns String.
935 * bindings/v8/custom/V8MicroDataItemValueCustom.cpp: Added.
937 (WebCore::toV8): Added toV8 custom code.
938 * dom/DynamicNodeList.cpp:
939 (WebCore::DynamicNodeListCacheBase::rootNode): Return document if owner node has itemref attribute specified.
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
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
957 (WebCore::Node::propertyNodeList):
961 * dom/PropertyNodeList.cpp: Added.
963 (WebCore::PropertyNodeList::PropertyNodeList):
964 (WebCore::PropertyNodeList::~PropertyNodeList):
965 (WebCore::PropertyNodeList::elementIsPropertyOfRefElement): Checks if the testElement is a property of Microdata
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.
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):
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:
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().
997 (HTMLPropertiesCollection):
998 (WebCore::HTMLPropertiesCollection::invalidateCache):
999 (WebCore::HTMLPropertiesCollection::updatePropertyCache):
1000 * html/HTMLPropertiesCollection.idl:
1001 * html/MicroDataItemValue.idl: Added.
1002 * page/DOMWindow.idl:
1004 2012-07-24 Kentaro Hara <haraken@chromium.org>
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
1010 Reviewed by Adam Barth.
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].
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.
1022 Test: bindings/scripts/test/TestObj.idl
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):
1035 2012-07-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
1037 Missing *explicit* keyword in editing.
1038 https://bugs.webkit.org/show_bug.cgi?id=92055
1040 Reviewed by Ryosuke Niwa.
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.
1046 No new tests. Covered by existing tests.
1048 * editing/AlternativeTextController.h:
1049 (WebCore::AlternativeTextController::UNLESS_ENABLED):
1050 * editing/BreakBlockquoteCommand.h:
1051 (BreakBlockquoteCommand):
1052 * editing/DeleteButton.h:
1054 * editing/DeleteButtonController.h:
1055 (DeleteButtonController):
1056 * editing/EditCommand.h:
1058 (WebCore::SimpleEditCommand::SimpleEditCommand):
1059 * editing/EditingBehavior.h:
1060 (WebCore::EditingBehavior::EditingBehavior):
1061 * editing/EditingStyle.h:
1065 * editing/FrameSelection.h:
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:
1084 * editing/UnlinkCommand.h:
1086 * editing/WrapContentsInDummySpanCommand.h:
1087 (WrapContentsInDummySpanCommand):
1089 2012-07-23 Dominic Mazzoni <dmazzoni@google.com>
1091 AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
1092 https://bugs.webkit.org/show_bug.cgi?id=87899
1094 Reviewed by Chris Fleizach.
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.
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
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.
1113 Test: accessibility/canvas-accessibilitynodeobject.html
1116 * GNUmakefile.list.am:
1119 * accessibility/AXObjectCache.cpp:
1120 (WebCore::AXObjectCache::get):
1122 (WebCore::createFromNode):
1123 (WebCore::AXObjectCache::getOrCreate):
1124 (WebCore::AXObjectCache::remove):
1125 * accessibility/AXObjectCache.h:
1127 (WebCore::AXObjectCache::get):
1128 (WebCore::AXObjectCache::getOrCreate):
1129 (WebCore::AXObjectCache::remove):
1130 * accessibility/AccessibilityARIAGrid.cpp:
1131 (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
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):
1155 * accessibility/AccessibilityMenuList.h:
1156 (AccessibilityMenuList):
1157 * accessibility/AccessibilityNodeObject.cpp: Added.
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.
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):
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):
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):
1220 2012-07-23 David Barr <davidbarr@chromium.org>
1222 Fix ENABLE_CSS_IMAGE_ORIENTATION compile flag
1223 https://bugs.webkit.org/show_bug.cgi?id=91961
1225 Reviewed by Tony Chang.
1227 https://bugs.webkit.org/show_bug.cgi?id=89055
1228 A rule was missed implementing the ENABLE_CSS_IMAGE_ORIENTATION compile flag.
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.
1233 No new tests; build configuration fix.
1235 * Configurations/FeatureDefines.xcconfig:
1237 2012-07-23 Douglas Stockwell <dstockwell@chromium.org>
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
1242 Reviewed by Simon Fraser.
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
1252 Test: fast/css/crash-on-gradient-with-derived-color.html
1254 * css/CSSGradientValue.cpp:
1255 (WebCore::CSSGradientValue::gradientWithStylesResolved): Added. Resolve and cache
1256 resolved colors, clone if colors are derived from the element.
1258 (WebCore::CSSGradientValue::addStops):
1259 (WebCore::CSSGradientValue::isCacheable): Defer to new logic in
1261 * css/CSSGradientValue.h:
1262 (CSSGradientColorStop): Added cache of resolved color.
1264 (CSSLinearGradientValue):
1265 (CSSRadialGradientValue):
1266 * css/CSSImageGeneratorValue.h:
1269 (WebCore::CSSValue::isGradientValue):
1270 * css/StyleResolver.cpp:
1271 (WebCore::StyleResolver::collectMatchingRulesForList):
1272 * css/StyleResolver.h:
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.
1279 2012-07-23 Patrick Gansterer <paroga@webkit.org>
1281 Move GregorianDateTime from JSC to WTF namespace
1282 https://bugs.webkit.org/show_bug.cgi?id=91948
1284 Reviewed by Geoffrey Garen.
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.
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):
1297 2012-07-23 Mark Pilgrim <pilgrim@chromium.org>
1299 [Chromium] Move layoutTestMode to WebCore
1300 https://bugs.webkit.org/show_bug.cgi?id=92010
1302 Reviewed by Adam Barth.
1304 Part of a refactoring series. See tracking bug 82948.
1307 * GNUmakefile.list.am:
1310 * WebCore.vcproj/WebCore.vcproj:
1311 * WebCore.xcodeproj/project.pbxproj:
1312 * bindings/generic/RuntimeEnabledFeatures.h:
1313 (RuntimeEnabledFeatures):
1314 * platform/LayoutTestSupport.cpp: Added.
1316 (WebCore::isRunningLayoutTest):
1317 (WebCore::setIsRunningLayoutTest):
1318 * platform/LayoutTestSupport.h: Added.
1320 * platform/chromium/PlatformSupport.h:
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:
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:
1348 (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
1349 (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
1350 (WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
1351 (WebCore::RenderThemeChromiumWin::systemColor):
1352 (WebCore::menuListButtonWidth):
1353 (WebCore::RenderThemeChromiumWin::determineClassicState):
1355 2012-07-23 Dave Tu <dtu@chromium.org>
1357 [chromium] Add droppedFrameCount to renderingStats.
1358 https://bugs.webkit.org/show_bug.cgi?id=91694
1360 Reviewed by Adrienne Walker.
1362 * platform/graphics/chromium/cc/CCFrameRateCounter.cpp:
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:
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):
1387 2012-07-23 Dan Bernstein <mitz@apple.com>
1389 Fixed the build after r123418.
1391 * WebCore.exp.in: Added DocumentMarkerController::addTextMatchMarker.
1393 2012-07-23 Mike Lawther <mikelawther@chromium.org>
1395 CSS3 calc: optimise blending expression
1396 https://bugs.webkit.org/show_bug.cgi?id=90037
1398 Reviewed by Tony Chang.
1400 Introduce a new calc expression node - a BlendLength node. Given two Lengths and a progress
1401 this blends them together when evaluated.
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.
1407 No functional change. Covered by existing tests.
1409 * platform/CalculationValue.h:
1410 (CalcExpressionBlendLength):
1411 (WebCore::CalcExpressionBlendLength::CalcExpressionBlendLength):
1412 (WebCore::CalcExpressionBlendLength::operator==):
1413 (WebCore::CalcExpressionBlendLength::evaluate):
1415 * platform/Length.cpp:
1416 (WebCore::Length::blendCalculation):
1418 2012-07-23 Nico Weber <thakis@chromium.org>
1420 [chromium] Show search tickmarks on css-styled scrollbars
1421 https://bugs.webkit.org/show_bug.cgi?id=91949
1423 Reviewed by Adrienne Walker.
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.
1430 For testing, add internals.addTextMatchMarker() and add a pixel test.
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.
1451 * rendering/RenderScrollbarTheme.h:
1452 (RenderScrollbarTheme):
1453 Override paintTickmarks().
1455 2012-07-23 Brian Anderson <brianderson@chromium.org>
1457 [chromium] Use shallow flushes that don't glFlush
1458 https://bugs.webkit.org/show_bug.cgi?id=90325
1460 Reviewed by Kenneth Russell.
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.
1467 CCTextureUpdaterTest updated to recognize shallow flushes.
1469 * platform/chromium/support/Extensions3DChromium.cpp:
1470 (WebCore::Extensions3DChromium::shallowFlushCHROMIUM):
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):
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):
1485 2012-07-23 Hanyee Kim <choco@company100.net>
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
1490 Reviewed by Noam Rosenthal.
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.
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.
1500 Link to CSS Animations spec: http://www.w3.org/TR/css3-animations/#animation-fill-mode-property
1502 Test: animations/fill-mode-forwards2.html
1504 * platform/graphics/GraphicsLayerAnimation.cpp:
1505 (WebCore::normalizedAnimationValueForFillsForwards):
1507 (WebCore::GraphicsLayerAnimation::apply):
1509 2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
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
1517 pagecycler regression (Requested by morrita on #webkit).
1521 (WebCore::Document::Document):
1522 (WebCore::Document::~Document):
1523 (WebCore::Document::suggestedMIMEType):
1526 (WebCore::Node::isDocumentNode):
1527 (WebCore::Node::Node):
1529 (WebCore::Node::~Node):
1530 (WebCore::Node::setDocument):
1532 (WebCore::Node::setTreeScope):
1533 (WebCore::Node::treeScope):
1534 (WebCore::Node::isInShadowTree):
1535 (WebCore::Node::reportMemoryUsage):
1538 (WebCore::Node::document):
1539 (WebCore::Node::inDocument):
1540 * dom/NodeRareData.h:
1541 (WebCore::NodeRareData::NodeRareData):
1542 (WebCore::NodeRareData::treeScope):
1543 (WebCore::NodeRareData::setTreeScope):
1545 * dom/ShadowRoot.cpp:
1546 (WebCore::ShadowRoot::ShadowRoot):
1547 * dom/TreeScope.cpp:
1548 (WebCore::TreeScope::TreeScope):
1549 (WebCore::TreeScope::setParentTreeScope):
1552 (WebCore::TreeScope::idTargetObserverRegistry):
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:
1562 2012-07-23 Roger Fong <roger_fong@apple.com>
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>
1569 Reviewed by Tim Horton.
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.
1577 Test: ManualTests/win/select-menu-off-screen.html
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.
1584 2012-07-23 David Dorwin <ddorwin@chromium.org>
1586 Fixed crash in webkitAddKey() when key parameter is null.
1587 https://bugs.webkit.org/show_bug.cgi?id=85444
1589 Reviewed by Kentaro Hara.
1591 Reference: Step 1 of http://dvcs.w3.org/hg/html-media/raw-file/5f76a0b43836/encrypted-media/encrypted-media.html#dom-addkey
1593 Tests: media/encrypted-media/encrypted-media-syntax.html
1595 * html/HTMLMediaElement.cpp:
1596 (WebCore::HTMLMediaElement::webkitAddKey):
1598 2012-07-23 Hayato Ito <hayato@chromium.org>
1600 A FocusScope for a distributed node should not be its TreeScope.
1601 https://bugs.webkit.org/show_bug.cgi?id=91829
1603 Reviewed by Dimitri Glazkov.
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
1611 Test: fast/dom/shadow/focus-navigation-with-distributed-nodes.html
1613 * page/FocusController.cpp:
1614 (WebCore::FocusScope::focusScopeOf):
1616 2012-07-23 Douglas Stockwell <dstockwell@google.com>
1618 Null-pointer crash when parsing border-image
1619 https://bugs.webkit.org/show_bug.cgi?id=91963
1621 Reviewed by Darin Adler.
1623 Test: fast/css/border-image-fill-crash.html
1625 * css/CSSParser.cpp:
1626 (WebCore::CSSParser::parseBorderImageRepeat): Handle the case where
1627 parseBorderImageRepeat is called when the value list is empty.
1629 2012-07-23 Bem Jones-Bey <bjonesbe@adobe.com>
1631 [CSS Exclusions] SVG shape errors should invalidate exclusion shapes
1632 https://bugs.webkit.org/show_bug.cgi?id=91761
1634 Reviewed by Andreas Kling.
1636 CSS exclusion shapes that are specified with negative radiuses or
1637 height/width are now considered invalid and ignored.
1640 LayoutTests/fast/exclusions/parsing-wrap-shape-lengths.html
1642 * css/CSSParser.cpp:
1643 (WebCore::CSSParser::parseExclusionShapeRectangle):
1644 (WebCore::CSSParser::parseExclusionShapeCircle):
1645 (WebCore::CSSParser::parseExclusionShapeEllipse):
1647 2012-07-23 Tien-Ren Chen <trchen@chromium.org>
1649 [chromium] Implement scrollbar theme for Android
1650 https://bugs.webkit.org/show_bug.cgi?id=91674
1652 Reviewed by Adam Barth.
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.
1658 No new tests. We use mock scrollbars during layout test to share
1659 pixel results with Linux.
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):
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):
1677 2012-07-23 Kwang Yul Seo <skyul@company100.net>
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
1682 Reviewed by Adam Barth.
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".
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
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.
1703 Updated test expectation for html5lib/runner-expected.txt
1704 because now resources/scripted/adoption01.dat passes.
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):
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!=):
1749 (HTMLFormattingElementList):
1750 * html/parser/HTMLStackItem.h: Added.
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):
1764 2012-07-23 Andreas Kling <kling@webkit.org>
1766 Report the extra memory used by immutable StylePropertySet objects.
1767 <http://webkit.org/b/92032>
1769 Reviewed by Anders Carlsson.
1771 Add an optional parameter to the MemoryClassInfo constructor for passing in additional base object
1772 size on top of sizeof(T).
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.
1777 * css/StylePropertySet.h:
1778 (WebCore::StylePropertySet::reportMemoryUsage):
1779 * dom/MemoryInstrumentation.h:
1780 (WebCore::MemoryObjectInfo::reportObjectInfo):
1781 (WebCore::MemoryClassInfo::MemoryClassInfo):
1783 2012-07-23 Gregg Tavares <gman@google.com>
1785 Fix WebGL texSubImage2D for cube maps
1786 https://bugs.webkit.org/show_bug.cgi?id=91927
1788 Reviewed by Kenneth Russell.
1790 Fixes texSubImage2D so any size rectangle can be passed in
1793 Test: fast/canvas/webgl/tex-sub-image-cube-maps.html
1795 * html/canvas/WebGLRenderingContext.cpp:
1797 (WebCore::WebGLRenderingContext::copyTexImage2D):
1798 (WebCore::WebGLRenderingContext::texImage2DBase):
1799 (WebCore::WebGLRenderingContext::texSubImage2DBase):
1800 (WebCore::WebGLRenderingContext::validateTexFuncParameters):
1801 * html/canvas/WebGLRenderingContext.h:
1802 (WebGLRenderingContext):
1804 2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
1806 Unreviewed, rolling out r123387.
1807 http://trac.webkit.org/changeset/123387
1808 https://bugs.webkit.org/show_bug.cgi?id=92036
1810 Broke chromium win build (Requested by tony^work on #webkit).
1812 * WebCore.gyp/WebCore.gyp:
1813 * WebCore.gyp/scripts/rule_bison.py:
1814 * bindings/scripts/preprocessor.pm:
1815 (applyPreprocessor):
1816 * make-hash-tools.pl:
1818 2012-07-23 Kwang Yul Seo <skyul@company100.net>
1820 Ref-count AtomicHTMLToken
1821 https://bugs.webkit.org/show_bug.cgi?id=91981
1823 Reviewed by Adam Barth.
1825 Ref-count AtomicHTMLToken to avoid copying AtomicHTMLToken in Bug 91703.
1827 No new tests - no functional changes.
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):
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):
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:
1898 * html/parser/TextDocumentParser.cpp:
1899 (WebCore::TextDocumentParser::insertFakePreElement):
1901 2012-07-23 Scott Graham <scottmg@google.com>
1903 Use native (non-cygwin) binaries for perl, gperf, and bison in Chromium
1904 https://bugs.webkit.org/show_bug.cgi?id=91667
1906 Reviewed by Tony Chang.
1908 Using native tools instead of cygwin version improves build time
1909 performance by roughly 50% (on top of previous cl-instead-of-gcc
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).
1918 * WebCore.gyp/WebCore.gyp:
1919 * WebCore.gyp/scripts/rule_bison.py:
1920 * bindings/scripts/preprocessor.pm:
1921 (applyPreprocessor):
1922 * make-hash-tools.pl:
1924 2012-06-12 Jer Noble <jer.noble@apple.com>
1926 MediaController.currentTime should be kept stable during script execution.
1927 https://bugs.webkit.org/show_bug.cgi?id=88555
1929 Reviewed by Eric Carlson.
1931 Test: media/media-controller-time-constant.html
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.
1938 * html/MediaController.cpp:
1939 (MediaController::MediaController):
1940 (MediaController::currentTime):
1941 (MediaController::setCurrentTime):
1942 (MediaController::clearPositionTimerFired):
1943 * html/MediaController.h:
1945 2012-07-23 Huang Dongsung <luxtella@company100.net>
1947 Destroy CSS decoded data more eagerly once they become dead caches.
1948 https://bugs.webkit.org/show_bug.cgi?id=91733
1950 Reviewed by Geoffrey Garen.
1952 Internal review by Kwang Yul Seo.
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
1962 No new tests - no new testable functionality.
1964 * loader/cache/CachedCSSStyleSheet.cpp:
1965 (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
1966 (WebCore::CachedCSSStyleSheet::didAddClient):
1967 (WebCore::CachedCSSStyleSheet::allClientsRemoved):
1968 (WebCore::CachedCSSStyleSheet::destroyDecodedData):
1970 (WebCore::CachedCSSStyleSheet::decodedDataDeletionTimerFired):
1971 * loader/cache/CachedCSSStyleSheet.h:
1972 (CachedCSSStyleSheet):
1974 2012-07-23 Simon Fraser <simon.fraser@apple.com>
1976 Part 2 of: Implement sticky positioning
1977 https://bugs.webkit.org/show_bug.cgi?id=90046
1979 Reviewed by Ojan Vafai.
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.
1984 Test: fast/css/sticky/parsing-position-sticky.html
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:
1998 2012-07-23 Stephen Chenney <schenney@chromium.org>
2000 Crash when setting empty class name on a new element
2001 https://bugs.webkit.org/show_bug.cgi?id=92024
2003 Reviewed by Andreas Kling.
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.
2009 Test: svg/custom/empty-className-baseVal-crash.html
2011 * dom/StyledElement.cpp:
2012 (WebCore::StyledElement::classAttributeChanged): Add check for null attributeData()
2014 2012-07-23 Shawn Singh <shawnsingh@chromium.org>
2016 [chromium] Refactor CCLayerTreeHostCommon: clean up clipRect and drawableContentRect design
2017 https://bugs.webkit.org/show_bug.cgi?id=80622
2019 Reviewed by Adrienne Walker.
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.
2032 Tests are also significantly updated to keep up with this refactoring change.
2034 * platform/graphics/chromium/LayerChromium.cpp:
2035 (WebCore::LayerChromium::LayerChromium):
2036 * platform/graphics/chromium/LayerChromium.h:
2038 Removed m_usesLayerClipping and m_clipRect and associated accessors.
2040 * platform/graphics/chromium/RenderSurfaceChromium.h:
2041 (RenderSurfaceChromium):
2044 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2045 (WebCore::CCLayerImpl::CCLayerImpl):
2046 * platform/graphics/chromium/cc/CCLayerImpl.h:
2048 Removed m_usesLayerClipping and m_clipRect and associated accessors.
2050 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2051 (WebCore::CCLayerTreeHost::updateLayers):
2052 removed setClipRect code that no longer applies
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.
2058 (WebCore::calculateSurfaceScissorRect):
2059 scissor rect is now a little bit tighter, except when filters are involved.
2061 (WebCore::layerClipsSubtree):
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.
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.
2082 * platform/graphics/chromium/cc/CCRenderSurface.h:
2084 2012-07-23 Patrick Gansterer <paroga@webkit.org>
2086 [CMAKE] Added missing RenderLayerFilterInfo.cpp to build system.
2090 2012-07-23 Ryosuke Niwa <rniwa@webkit.org>
2092 REGRESSION(r123281): childNodes sometimes returns wrong nodes
2093 https://bugs.webkit.org/show_bug.cgi?id=92014
2095 Reviewed by Anders Carlsson.
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.
2102 Test: fast/dom/NodeList/childNodes-reverse-iteration.html
2104 * html/HTMLCollection.cpp:
2105 (WebCore::DynamicNodeListCacheBase::itemBeforeOrAfter):
2107 2012-07-23 Steve VanDeBogart <vandebo@chromium.org>
2109 Chrome/Skia: PDF print output does not have clickable links.
2110 https://bugs.webkit.org/show_bug.cgi?id=91171
2112 Reviewed by Stephen White.
2114 Connect GraphicsContext::setURLForRect to Skia's new API for annotations.
2116 Printing is not generally testable.
2118 * platform/graphics/skia/GraphicsContextSkia.cpp:
2119 (WebCore::GraphicsContext::setURLForRect):
2121 2012-07-23 Pierre Rossi <pierre.rossi@gmail.com>
2123 Unify numTouchEventHandlersChanged and needTouchEvents in the chrome client
2124 https://bugs.webkit.org/show_bug.cgi?id=91006
2126 Reviewed by Ryosuke Niwa.
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.
2131 Test: fast/events/touch/touch-handler-count.html
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
2142 (WebCore::Document::touchEventHandlerCount):
2143 * loader/EmptyClients.h:
2144 * page/ChromeClient.h:
2146 * page/Frame.cpp: Removed notifyChromeClientTouchEventHandlerCountChanged.
2147 (WebCore::Frame::setDocument): call needsTouchEvents directly.
2148 * page/Frame.h: Ditto.
2150 * testing/Internals.cpp:
2151 (WebCore::Internals::hasTouchEventListener): expose Document::hasListenerType indirectly
2152 for additional testing.
2154 * testing/Internals.h:
2156 * testing/Internals.idl:
2158 2012-07-23 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
2160 [Qt] RenderThemeQtMobile highlight colors are not being used
2161 https://bugs.webkit.org/show_bug.cgi?id=92004
2163 Reviewed by Noam Rosenthal.
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.
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.
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.
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.
2188 * platform/qt/RenderThemeQt.h:
2190 * platform/qt/RenderThemeQtMobile.cpp:
2191 (WebCore::RenderThemeQtMobile::colorPalette):
2193 * platform/qt/RenderThemeQtMobile.h:
2194 (RenderThemeQtMobile):
2196 2012-07-23 Simon Fraser <simon.fraser@apple.com>
2198 Part 1 of: Implement sticky positioning
2199 https://bugs.webkit.org/show_bug.cgi?id=90046
2201 Reviewed by Ojan Vafai.
2203 Add ENABLE_CSS_STICKY_POSITION, defaulting to off initially.
2205 Sort the ENABLE_CSS lines in the file. Make sure all the flags
2206 are in FEATURE_DEFINES.
2208 * Configurations/FeatureDefines.xcconfig:
2210 2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com>
2212 Unreviewed, rolling out r123339.
2213 http://trac.webkit.org/changeset/123339
2214 https://bugs.webkit.org/show_bug.cgi?id=92006
2216 massive media tests failure (Requested by philn on #webkit).
2218 * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
2220 * platform/graphics/gstreamer/GStreamerVersioning.cpp:
2221 (setGstElementClassMetadata):
2222 * platform/graphics/gstreamer/GStreamerVersioning.h:
2224 2012-07-21 Vincent Scheib <scheib@chromium.org>
2226 webkitFullscreenElement, webkitCurrentFullScreenElement, webkitPointerLockElement block cross origin access.
2227 https://bugs.webkit.org/show_bug.cgi?id=91892
2229 Reviewed by Adam Barth.
2231 PointerLockElement only returned when requested from the document that owns it.
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
2239 (WebCore::Document::webkitPointerLockElement):
2241 2012-07-23 Philippe Normand <pnormand@igalia.com>
2243 [GTK][jhbuild] Switch to GStreamer 0.11 build
2244 https://bugs.webkit.org/show_bug.cgi?id=91727
2246 Reviewed by Gustavo Noronha Silva.
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
2253 * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
2255 * platform/graphics/gstreamer/GStreamerVersioning.cpp:
2256 (gstObjectIsFloating):
2257 * platform/graphics/gstreamer/GStreamerVersioning.h:
2259 2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
2261 [EFL] media/controls-styling.html is failing
2262 https://bugs.webkit.org/show_bug.cgi?id=91984
2264 Reviewed by Eric Carlson.
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,
2271 No new tests. Already tested by media/controls-styling.html and
2272 media/controls-styling-strict.html
2274 * css/mediaControlsEfl.css:
2275 (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
2277 2012-07-23 Carlos Garcia Campos <cgarcia@igalia.com>
2279 Unreviewed. Fix make distcheck.
2281 * GNUmakefile.list.am: Add missing header files.
2283 2012-07-23 Kent Tamura <tkent@chromium.org>
2285 Replace some instances of shadowAncestorNode() with shadowHost()
2286 https://bugs.webkit.org/show_bug.cgi?id=91966
2288 Reviewed by Hajime Morita.
2290 shadowAncestorNode() is deprecated. We should use shadowHost().
2291 No new tests. This doesn't change any behavior.
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):
2328 2012-07-23 Pavel Feldman <pfeldman@chromium.org>
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
2333 Reviewed by Yury Semikhatsky.
2335 hideHighlight was never called once user hovered over a node.
2337 * inspector/DOMNodeHighlighter.cpp:
2338 (WebCore::InspectorOverlay::update):
2340 2012-07-23 Peter Beverloo <peter@chromium.org>
2342 [Chromium] Build fix for the Windows builder following r123311
2343 https://bugs.webkit.org/show_bug.cgi?id=91979
2345 Unreviewed build fix.
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.
2352 2012-07-23 Patrick Gansterer <paroga@webkit.org>
2354 [WIN] Remove ICU dependencies from UniscribeController
2355 https://bugs.webkit.org/show_bug.cgi?id=91921
2357 Reviewed by Ryosuke Niwa.
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.
2362 * platform/graphics/win/UniscribeController.cpp:
2363 (WebCore::UniscribeController::advance):
2365 2012-07-23 Christophe Dumez <christophe.dumez@intel.com>
2367 [EFL] media/controls-styling-strict.html is failing
2368 https://bugs.webkit.org/show_bug.cgi?id=91960
2370 Reviewed by Kenneth Rohde Christiansen.
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.
2376 No new test, already tested by media/controls-styling-strict.html
2378 * css/mediaControlsEfl.css:
2379 (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
2381 2012-07-23 Carlos Garcia Campos <cgarcia@igalia.com>
2383 Unreviewed. Fix GTK+ build with ENABLE_DATALIST_ELEMENT.
2385 Add an implementation for virtual pure methods sliderTickSize()
2386 and sliderTickOffsetFromTrackCenter() when HTML5 datalist element
2389 * platform/gtk/RenderThemeGtk.cpp:
2391 (WebCore::RenderThemeGtk::sliderTickSize):
2392 (WebCore::RenderThemeGtk::sliderTickOffsetFromTrackCenter):
2393 * platform/gtk/RenderThemeGtk.h:
2395 2012-07-23 Patrick Gansterer <paroga@webkit.org>
2397 Replace getCurrentLocalTime() with GetLocalTime() in LocaleWin.cpp
2398 https://bugs.webkit.org/show_bug.cgi?id=91937
2400 Reviewed by Ryosuke Niwa.
2402 The windows function returns the required year directly and
2403 removes one additonal dependecy on getCurrentLocalTime().
2405 * platform/text/LocaleWin.cpp:
2406 (WebCore::LocaleWin::LocaleWin):
2408 2012-07-23 Vsevolod Vlasov <vsevik@chromium.org>
2410 Web Inspector: Drag and drop should not be started on right mouse click.
2411 https://bugs.webkit.org/show_bug.cgi?id=91728
2413 Reviewed by Pavel Feldman.
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.
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):
2477 2012-07-23 Hayato Ito <hayato@chromium.org>
2479 ComposedShadowTreeWalker should skip an empty insertion points.
2480 https://bugs.webkit.org/show_bug.cgi?id=91826
2482 Reviewed by Hajime Morita.
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.
2490 Test: fast/dom/shadow/composed-shadow-tree-walker.html
2492 * dom/ComposedShadowTreeWalker.cpp:
2493 (WebCore::ComposedShadowTreeWalker::traverseLightChildren):
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):
2504 2012-07-23 Patrick Gansterer <paroga@webkit.org>
2506 Rename TextCodecWinCE to TextCodecWin
2507 https://bugs.webkit.org/show_bug.cgi?id=91947
2509 Reviewed by Ryosuke Niwa.
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.
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.
2521 2012-07-22 Kentaro Hara <haraken@chromium.org>
2523 [V8] CodeGeneratorV8.pm should support static attributes
2524 https://bugs.webkit.org/show_bug.cgi?id=91764
2526 Reviewed by Adam Barth.
2528 CodeGeneratorJS.pm already supports static attributes.
2529 CodeGeneratorV8.pm should also support them.
2531 Tests: bindings/scripts/test/TestObj.idl
2532 bindings/scripts/test/TestSupplemental.idl
2534 * bindings/scripts/CodeGeneratorV8.pm:
2535 (GenerateNormalAttrGetter):
2536 (GenerateNormalAttrSetter):
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.
2541 * bindings/scripts/test/JS/JSTestInterface.cpp: Updated run-bindings-tests results.
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:
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):
2556 * bindings/scripts/test/V8/V8TestObj.cpp:
2557 (WebCore::TestObjV8Internal::staticReadOnlyIntAttrAttrGetter):
2558 (TestObjV8Internal):
2559 (WebCore::TestObjV8Internal::staticStringAttrAttrGetter):
2560 (WebCore::TestObjV8Internal::staticStringAttrAttrSetter):
2563 2012-07-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
2565 Missing *explicit* keyword in storage and workers.
2566 https://bugs.webkit.org/show_bug.cgi?id=91934
2568 Reviewed by Kentaro Hara.
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.
2574 No new tests. Convered by existing tests.
2576 * storage/StorageAreaImpl.h:
2578 * storage/StorageMap.h:
2580 * storage/StorageSyncManager.h:
2581 (StorageSyncManager):
2582 * storage/StorageTask.h:
2584 * storage/StorageTracker.h:
2586 * workers/SharedWorker.h:
2590 * workers/WorkerLocation.h:
2591 (WebCore::WorkerLocation::WorkerLocation):
2592 * workers/WorkerMessagingProxy.h:
2593 (WorkerMessagingProxy):
2595 2012-07-23 Kent Tamura <tkent@chromium.org>
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
2600 Reviewed by Kentaro Hara.
2602 A flag name for an elmement should be ENABLE_*_ELEMENT.
2604 * Configurations/FeatureDefines.xcconfig:
2605 * DerivedSources.make:
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):
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):
2634 * platform/efl/RenderThemeEfl.h:
2636 * platform/gtk/RenderThemeGtk.cpp:
2638 * platform/gtk/RenderThemeGtk.h:
2640 * platform/gtk/RenderThemeGtk2.cpp:
2642 * platform/gtk/RenderThemeGtk3.cpp:
2644 * platform/qt/RenderThemeQt.cpp:
2646 * platform/qt/RenderThemeQt.h:
2649 * platform/qt/RenderThemeQtMobile.cpp:
2651 * platform/qt/RenderThemeQtMobile.h:
2652 (RenderThemeQtMobile):
2653 * rendering/RenderMeter.cpp:
2654 * rendering/RenderMeter.h:
2655 * rendering/RenderObject.h:
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):
2665 * rendering/RenderTheme.h:
2668 * rendering/RenderThemeChromiumLinux.cpp:
2670 * rendering/RenderThemeChromiumLinux.h:
2671 * rendering/RenderThemeChromiumSkia.cpp:
2673 * rendering/RenderThemeChromiumSkia.h:
2674 (RenderThemeChromiumSkia):
2675 * rendering/RenderThemeChromiumWin.cpp:
2677 * rendering/RenderThemeChromiumWin.h:
2678 (RenderThemeChromiumWin):
2679 * rendering/RenderThemeMac.h:
2681 * rendering/RenderThemeMac.mm:
2684 2012-07-22 Kent Tamura <tkent@chromium.org>
2686 Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT
2687 https://bugs.webkit.org/show_bug.cgi?id=91928
2689 Reviewed by Kentaro Hara.
2691 A flag name for an elmement should be ENABLE_*_ELEMENT.
2693 * Configurations/FeatureDefines.xcconfig:
2694 * DerivedSources.make:
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:
2705 * rendering/RenderTreeAsText.cpp:
2706 (WebCore::RenderTreeAsText::writeRenderObject):
2708 2012-07-21 Dan Bernstein <mitz@apple.com>
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
2713 Reviewed by Anders Carlsson.
2715 Test: svg/as-image/svg-intrinsic-size-rectangular-vertical.html
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.
2724 2012-07-21 Patrick Gansterer <paroga@webkit.org>
2726 Cleanup TextEncoding USE(XXX_UNICODE) macros
2727 https://bugs.webkit.org/show_bug.cgi?id=91923
2729 Reviewed by Andreas Kling.
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.
2734 * platform/text/TextEncoding.cpp:
2735 (WebCore::TextEncoding::encode):
2736 * platform/text/TextEncodingRegistry.cpp:
2737 (WebCore::extendTextCodecMaps):
2739 2012-07-21 Patrick Gansterer <paroga@webkit.org>
2741 Remove unnecessary ICU header includes from SimpleFontDataWin.cpp
2742 https://bugs.webkit.org/show_bug.cgi?id=91922
2744 Reviewed by Kentaro Hara.
2746 This allows us to use SimpleFontDataWin with an other Unicode implementation too.
2748 * platform/graphics/win/SimpleFontDataWin.cpp:
2750 2012-07-21 Kwang Yul Seo <skyul@company100.net>
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
2755 Reviewed by Eric Seidel.
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.
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).
2765 No behavior change because parseError(token) is just a marker.
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):
2775 (WebCore::HTMLTreeBuilder::processStartTagForInHead):
2776 * html/parser/HTMLTreeBuilder.h:
2778 2012-07-20 Czene Tamás <tczene@inf.u-szeged.hu>
2780 double data type shoud be changed to float in ColorMatrix
2781 https://bugs.webkit.org/show_bug.cgi?id=91499
2783 Reviewed by Nikolas Zimmermann.
2785 * platform/graphics/filters/FEColorMatrix.cpp:
2787 (WebCore::saturate):
2788 (WebCore::huerotate):
2789 (WebCore::luminance):
2790 (WebCore::effectType):
2792 2012-07-20 Stephen White <senorblanco@chromium.org>
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
2798 Reviewed by Adrienne Walker.
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).
2806 Covered by existing tests, such as
2807 fast/borders/border-image-scale-transform.html.
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).
2824 2012-07-20 Kwang Yul Seo <skyul@company100.net>
2826 Anything else in the "in table" insertion mode is a parse error
2827 https://bugs.webkit.org/show_bug.cgi?id=91915
2829 Reviewed by Adam Barth.
2831 According to the HTML5 spec, anything else in the "in table" insertion mode is a parse error.
2833 No behavior change because parseError(token) is just a marker.
2835 * html/parser/HTMLTreeBuilder.cpp:
2836 (WebCore::HTMLTreeBuilder::processEndTagForInTable):
2838 2012-07-20 Kent Tamura <tkent@chromium.org>
2840 Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT
2841 https://bugs.webkit.org/show_bug.cgi?id=91846
2843 Reviewed by Kentaro Hara.
2845 A flag name for an elmement should be ENABLE_*_ELEMENT.
2847 * Configurations/FeatureDefines.xcconfig:
2848 * DerivedSources.make:
2851 * html/HTMLDataListElement.cpp:
2852 * html/HTMLDataListElement.h:
2853 * html/HTMLDataListElement.idl:
2854 * html/HTMLInputElement.cpp:
2856 (WebCore::HTMLInputElement::parseAttribute):
2857 (WebCore::HTMLInputElement::insertedInto):
2858 (WebCore::HTMLInputElement::removedFrom):
2859 * html/HTMLInputElement.h:
2861 * html/HTMLInputElement.idl:
2862 * html/HTMLOptionElement.cpp:
2863 (WebCore::HTMLOptionElement::parseAttribute):
2864 (WebCore::HTMLOptionElement::childrenChanged):
2866 * html/HTMLOptionElement.h:
2867 (HTMLOptionElement):
2868 * html/HTMLTagNames.in:
2869 * html/InputType.cpp:
2873 * html/RangeInputType.cpp:
2875 * html/RangeInputType.h:
2877 * html/shadow/SliderThumbElement.cpp:
2878 (WebCore::RenderSliderContainer::layout):
2879 * page/DOMWindow.idl:
2880 * platform/efl/RenderThemeEfl.cpp:
2882 * platform/efl/RenderThemeEfl.h:
2884 * platform/qt/RenderThemeQt.cpp:
2886 * platform/qt/RenderThemeQt.h:
2888 * rendering/RenderTheme.cpp:
2890 * rendering/RenderTheme.h:
2892 * rendering/RenderThemeChromiumLinux.cpp:
2894 (WebCore::RenderThemeChromiumLinux::paintSliderTrack):
2895 * rendering/RenderThemeChromiumLinux.h:
2896 (RenderThemeChromiumLinux):
2897 * rendering/RenderThemeChromiumWin.cpp:
2899 (WebCore::RenderThemeChromiumWin::paintSliderTrack):
2900 * rendering/RenderThemeChromiumWin.h:
2901 (RenderThemeChromiumWin):
2902 * rendering/RenderThemeMac.h:
2904 * rendering/RenderThemeMac.mm:
2905 (WebCore::RenderThemeMac::paintSliderTrack):
2908 2012-07-18 Ryosuke Niwa <rniwa@webkit.org>
2910 Unify HTMLCollection and DynamicNodeList
2911 https://bugs.webkit.org/show_bug.cgi?id=91335
2913 Reviewed by Anders Carlsson.
2915 This is the grand unification of HTMLCollection and DynamicNodeList.
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.
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.
2934 This patch completes my effort to share code between HTMLCollection and DynamicNodeList.
2936 * dom/ChildNodeList.cpp:
2937 (WebCore::ChildNodeList::ChildNodeList):
2938 (WebCore): Removed length() and item().
2939 (WebCore::ChildNodeList::nodeMatches):
2940 * dom/ChildNodeList.h:
2942 * dom/ClassNodeList.cpp:
2943 (WebCore::ClassNodeList::ClassNodeList):
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.
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
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):
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):
3048 2012-07-20 Joshua Bell <jsbell@chromium.org>
3050 IndexedDB: Simplify backend interface classes
3051 https://bugs.webkit.org/show_bug.cgi?id=91901
3053 Reviewed by Tony Chang.
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.
3059 No new tests - no functional changes.
3061 * Modules/indexeddb/IDBCursorBackendImpl.cpp:
3062 (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
3063 * Modules/indexeddb/IDBCursorBackendImpl.h:
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:
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):
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:
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):
3119 2012-07-20 Joshua Bell <jsbell@chromium.org>
3121 IndexedDB: "ASSERTION FAILED: !m_requestFinished" hit in IDBRequest::dispatchEvent
3122 https://bugs.webkit.org/show_bug.cgi?id=86911
3124 Reviewed by Tony Chang.
3126 Clean up the IDBRequest/IDBCursor relationship and the IDBRequest lifecycle.
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.
3135 Test: storage/indexeddb/request-continue-abort.html
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().
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:
3158 2012-07-20 Andrew Scherkus <scherkus@chromium.org>
3160 [chromium] Don't display fullscreen button for video elements not containing video
3161 https://bugs.webkit.org/show_bug.cgi?id=91811
3163 Reviewed by Eric Carlson.
3165 Covered by media/media-document-audio-repaint.html
3167 * html/shadow/MediaControlRootElementChromium.cpp:
3168 (WebCore::MediaControlRootElementChromium::reset):
3170 2012-07-20 Dmitry Titov <dimich@chromium.org>
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.
3175 Reviewed by David Levin.
3177 No new tests because of no new behavior and lack of mechanism to monitor used memory.
3179 * bindings/v8/SerializedScriptValue.cpp:
3180 (WebCore::SerializedScriptValue::SerializedScriptValue):
3181 (WebCore::SerializedScriptValue::registerMemoryAllocatedWithCurrentScriptContext):
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.
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).
3193 2012-07-20 David Grogan <dgrogan@chromium.org>
3195 IndexedDB: Include intVersion when converting between WebCore and WebKit IDBMetadata types
3196 https://bugs.webkit.org/show_bug.cgi?id=91414
3198 Reviewed by Adam Barth.
3200 No new tests because no new behavior.
3202 * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3203 (WebCore::IDBDatabaseBackendImpl::metadata):
3204 No behavior change, this just needs a dummy parameter to match the
3207 * Modules/indexeddb/IDBMetadata.h:
3208 (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
3209 (IDBDatabaseMetadata):
3211 2012-07-18 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
3213 [Soup] Unnecessary RefPtr usage and null check
3214 https://bugs.webkit.org/show_bug.cgi?id=91636
3216 Reviewed by Martin Robinson.
3218 Small clean up of code that is not necessary; no change in functionality.
3220 * platform/network/soup/SocketStreamHandleSoup.cpp:
3221 (WebCore::SocketStreamHandle::connected):
3223 2012-07-20 Mark Salisbury <mark.salisbury@hp.com>
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
3228 Reviewed by Joseph Pecoraro.
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.
3235 * platform/graphics/win/FontCacheWin.cpp:
3236 (WebCore::FontCache::getLastResortFallbackFont):
3238 2012-07-20 Stephen White <senorblanco@chromium.org>
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
3244 Reviewed by Adrienne Walker.
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:
3250 Covered by existing tests in css3/filters.
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.
3260 2012-07-20 Stephen White <senorblanco@chromium.org>
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
3266 Reviewed by Adrienne Walker.
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:
3272 Covered by existing tests in css3/filters.
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.
3282 2012-07-19 Andrew Scherkus <scherkus@chromium.org>
3284 [chromium] CSS tweaks to media controls to prevent styles from being overridden
3285 https://bugs.webkit.org/show_bug.cgi?id=91802
3287 Reviewed by Eric Carlson.
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.
3292 In a similar vein, it was also possible to override the font-style attribute for the time
3295 Test: media/controls-styling-strict.html
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):
3303 2012-07-20 Han Shen <shenhan@google.com>
3305 [Chromium] Compilation fails under gcc 4.7
3306 https://bugs.webkit.org/show_bug.cgi?id=90227
3308 Reviewed by Tony Chang.
3310 Disable warnings about c++0x compatibility in gcc newer than 4.6.
3312 * WebCore.gyp/WebCore.gyp:
3314 2012-07-20 Vincent Scheib <scheib@chromium.org>
3316 Unreviewed compile fix, r123247 included unintended changes to Document.cpp.
3318 See http://trac.webkit.org/changeset/123247.
3321 (WebCore::Document::webkitExitPointerLock):
3323 2012-07-20 Ryosuke Niwa <rniwa@webkit.org>
3325 REGRESSION(r122873): 15% regression on Dromaeo/dom-attr
3326 https://bugs.webkit.org/show_bug.cgi?id=91827
3328 Reviewed by Anders Carlsson.
3330 Move shouldInvalidateNodeListCaches from Document.cpp to Node.cpp since it's only called
3331 in Node::invalidateNodeListCachesInAncestors.
3333 Test: PerformanceTests/Dromaeo/dom-attr.html.
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):
3344 2012-07-20 Nico Weber <thakis@chromium.org>
3346 Fix more -Wunused-private-field violations
3347 https://bugs.webkit.org/show_bug.cgi?id=91876
3349 Reviewed by Adam Barth.
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.
3354 * html/FTPDirectoryDocument.cpp:
3355 (FTPDirectoryDocumentParser):
3356 (WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
3357 * html/parser/HTMLTreeBuilder.cpp:
3358 (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
3359 * html/parser/HTMLTreeBuilder.h:
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):
3373 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3374 (WebCore::CCThreadProxy::CCThreadProxy):
3375 * platform/graphics/chromium/cc/CCThreadProxy.h:
3377 * rendering/svg/RenderSVGTextPath.cpp:
3378 (WebCore::RenderSVGTextPath::RenderSVGTextPath):
3379 * rendering/svg/RenderSVGTextPath.h:
3381 2012-07-20 Adam Klein <adamk@chromium.org>
3383 CodeGeneratorInspector.py is unnecessarily chatty
3384 https://bugs.webkit.org/show_bug.cgi?id=91758
3386 Reviewed by Vsevolod Vlasov.
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
3393 If this print statement is generally useful, it should be
3394 hidden behind a --verbose commandline option, as we do for the binding
3397 * inspector/CodeGeneratorInspector.py:
3398 (SmartOutput.close): Remove print statement.
3400 2012-07-20 Stephen White <senorblanco@chromium.org>
3402 [chromium] Enable GPU-accelerated skia implementation of
3403 feDiffuseLighting, feSpecularLighting.
3404 https://bugs.webkit.org/show_bug.cgi?id=91865
3406 Reviewed by Dirk Schulze.
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.
3412 This will be covered by tests in svg/filters/* when they are
3413 added to the virtual GPU tests.
3416 * platform/graphics/filters/FELighting.h:
3418 * platform/graphics/filters/skia/FELightingSkia.cpp: Added.
3420 (WebCore::FELighting::platformApplySkia):
3422 2012-07-20 Pavel Feldman <pfeldman@chromium.org>
3424 Web Inspector: disable fake workers inspection.
3425 https://bugs.webkit.org/show_bug.cgi?id=91867
3427 Reviewed by Vsevolod Vlasov.
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.
3434 * English.lproj/localizedStrings.js:
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:
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:
3465 * workers/SharedWorker.cpp:
3466 (WebCore::SharedWorker::create):
3467 * workers/Worker.cpp:
3468 (WebCore::Worker::create):
3470 2012-07-20 Sheriff Bot <webkit.review.bot@gmail.com>
3472 Unreviewed, rolling out r123182.
3473 http://trac.webkit.org/changeset/123182
3474 https://bugs.webkit.org/show_bug.cgi?id=91863
3476 Causing ASSERT crashes in tests accessibility/canvas.html and
3477 accessibility/canvas-accessibilitynodeobject.html (Requested
3478 by jernoble on #webkit).
3481 * GNUmakefile.list.am:
3484 * accessibility/AXObjectCache.cpp:
3486 * accessibility/AXObjectCache.h:
3488 * accessibility/AccessibilityARIAGrid.cpp:
3489 (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
3490 (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
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):
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):
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):
3548 2012-07-20 Christophe Dumez <christophe.dumez@intel.com>
3550 [EFL] Proxy configuration should honor the no_proxy environment variable
3551 https://bugs.webkit.org/show_bug.cgi?id=91747
3553 Reviewed by Kenneth Rohde Christiansen.
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
3561 By default, the proxy is not used for localhost and
3564 No new tests, no behavior change for layout tests.
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.
3581 2012-07-20 Pierre Rossi <pierre.rossi@gmail.com>
3583 ColorChooserClient should expose the element's location
3584 https://bugs.webkit.org/show_bug.cgi?id=91767
3586 Reviewed by Kent Tamura.
3588 The rationale is that the chrome client could have an interest in placing the picker next to
3589 the element for usability reasons.
3591 No new tests as there is not much logic here: Just exposing a geometry information to WebKit.
3593 * html/ColorInputType.cpp:
3594 (WebCore::ColorInputType::elementRectRelativeToWindow):
3596 * html/ColorInputType.h:
3598 * platform/ColorChooserClient.h:
3599 (ColorChooserClient):
3601 2012-07-20 Thiago Marcos P. Santos <thiago.santos@intel.com>
3603 [WK2] WebIntents doesn't build if mutation observers is disabled
3604 https://bugs.webkit.org/show_bug.cgi?id=91839
3606 Reviewed by Kenneth Rohde Christiansen.
3608 WebIntents was depending on a code protected by ENABLE(MUTATION_OBSERVERS).
3609 Now the code is also enabled by ENABLE(WEB_INTENTS).
3611 * bindings/js/JSDictionary.cpp:
3613 * bindings/js/JSDictionary.h:
3615 2012-07-20 Mihnea Ovidenie <mihnea@adobe.com>
3617 [CSSRegions]Assert failure when layout positioned objects in regions
3618 https://bugs.webkit.org/show_bug.cgi?id=90792
3620 Reviewed by Andreas Kling.
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.
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
3630 * rendering/RenderBox.cpp:
3631 (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
3632 (WebCore::RenderBox::computePositionedLogicalWidth):
3633 (WebCore::RenderBox::computePositionedLogicalHeight):
3635 2012-07-20 Stephen Chenney <schenney@chromium.org>
3637 SVG Filter Effect sub-region not applied for some filters
3638 https://bugs.webkit.org/show_bug.cgi?id=89767
3640 Reviewed by Dirk Schulze.
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.
3648 Tests: svg/filters/feDropShadow-subregion.svg
3649 svg/filters/feGaussianBlur-subregion.svg
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.
3663 2012-07-19 Pavel Feldman <pfeldman@chromium.org>
3665 Web Inspector: Status bar icons are misaligned by 1px to the right
3666 https://bugs.webkit.org/show_bug.cgi?id=91757
3668 Reviewed by Vsevolod Vlasov.
3670 * inspector/front-end/inspector.css:
3674 2012-07-20 Andrei Poenaru <poenaru@adobe.com>
3676 Web Inspector: Protocol Extension: add getNamedFlowCollection command
3677 https://bugs.webkit.org/show_bug.cgi?id=91607
3679 Reviewed by Pavel Feldman.
3681 Extended the protocol with "getNamedFlowCollection" command.
3682 This command returns the CSS Named Flows from the document.
3684 Test: inspector/styles/protocol-getNamedFlowCollection-command.html
3686 * dom/WebKitNamedFlowCollection.cpp:
3687 (WebCore::WebKitNamedFlowCollection::namedFlowsNames):
3689 * dom/WebKitNamedFlowCollection.h:
3690 (WebKitNamedFlowCollection):
3691 * inspector/Inspector.json:
3692 * inspector/InspectorCSSAgent.cpp:
3693 (WebCore::InspectorCSSAgent::getNamedFlowCollection):
3695 * inspector/InspectorCSSAgent.h:
3696 (InspectorCSSAgent):
3697 * inspector/InspectorDOMAgent.cpp:
3698 (WebCore::InspectorDOMAgent::assertDocument):
3700 * inspector/InspectorDOMAgent.h:
3701 (InspectorDOMAgent):
3702 * inspector/front-end/CSSStyleModel.js:
3703 (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
3705 2012-07-20 Eugene Klyuchnikov <eustas.big@gmail.com>
3707 Web Inspector: Timeline: forward compatibility for load.
3708 https://bugs.webkit.org/show_bug.cgi?id=91714
3710 Reviewed by Pavel Feldman.
3712 Accept records of unrecognized types and render them as "unknown".
3714 Test: inspector/timeline/timeline-load-incompatible.html
3716 * English.lproj/localizedStrings.js: Added UI string.
3717 * inspector/front-end/TimelinePresentationModel.js:
3718 (WebInspector.TimelinePresentationModel.recordStyle): Add missing record
3720 (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
3721 Add some common information for default case.
3723 2012-07-20 MORITA Hajime <morrita@google.com>
3725 Another unreviewed Mac build fix against r123184.
3729 2012-07-20 Mihnea Ovidenie <mihnea@adobe.com>
3731 [CSSRegions]Crash when flowing a region into itself
3732 https://bugs.webkit.org/show_bug.cgi?id=90289
3734 Reviewed by Andreas Kling.
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.
3741 Test: fast/regions/flow-region-into-itself-crash.html
3743 * rendering/RenderRegion.cpp:
3744 (WebCore::RenderRegion::styleDidChange):
3746 2012-07-20 MORITA Hajime <morrita@google.com>
3748 Unreviewed Mac build fix against r123184.
3752 2012-07-17 Kinuko Yasuda <kinuko@chromium.org>
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
3757 Reviewed by Alexey Proskuryakov.
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.
3763 Test: fast/xmlhttprequest/xmlhttprequest-responsetype-set-type.html
3765 * xml/XMLHttpRequest.cpp:
3766 (WebCore::XMLHttpRequest::setResponseType): Stop throwing an exception when non-supported type is given.
3768 2012-07-20 Matt Falkenhagen <falken@chromium.org>
3770 Show or hide <dialog> depending on the open attribute
3771 https://bugs.webkit.org/show_bug.cgi?id=90931
3773 Reviewed by Kent Tamura.
3775 Test: fast/dom/HTMLDialogElement/dialog-open.html
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])):
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.
3784 (WebCore::HTMLDialogElement::isPresentationAttribute): Make openAttr a presentation attribute, to work around bug 91058
3785 * html/HTMLDialogElement.h:
3786 (HTMLDialogElement):
3787 * html/HTMLDialogElement.idl:
3789 2012-07-20 Shinya Kawanaka <shinyak@chromium.org>
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
3794 Reviewed by Hajime Morita.
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
3800 Test: fast/dom/shadow/shadowdom-for-image-with-pseudo-id.html
3802 * html/shadow/ImageInnerElement.cpp:
3803 (WebCore::ImageInnerElement::shadowPseudoId):
3805 * html/shadow/ImageInnerElement.h:
3806 (ImageInnerElement):
3808 2012-07-20 Kent Tamura <tkent@chromium.org>
3810 REGRESSION(r121420): Performance regression of form state saving for pages with multiple forms
3811 https://bugs.webkit.org/show_bug.cgi?id=91804
3813 Reviewed by Hajime Morita.
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.
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.
3824 No new tests. Just a performance improvement.
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.
3837 2012-07-20 Keishi Hattori <keishi@webkit.org>
3839 Fix crash in WebCore::HTMLInputElement::dataList
3840 https://bugs.webkit.org/show_bug.cgi?id=91818
3842 Reviewed by Kent Tamura.
3844 Fix crash that occurs when setting slider appearance on a regular node.
3846 Test: fast/forms/range/slider-appearance-crash.html
3848 * rendering/RenderTheme.cpp:
3849 (WebCore::RenderTheme::paintSliderTicks): Check if node is an input element.
3851 2012-07-20 Kent Tamura <tkent@chromium.org>
3853 [Chromium] Fix an assertion failure in TextFieldDecorationElement::hostInput()
3854 https://bugs.webkit.org/show_bug.cgi?id=91824
3856 Reviewed by Hajime Morita.
3858 No new tests. This code is used only in Chromium browser.
3860 * html/shadow/TextFieldDecorationElement.cpp:
3861 (WebCore::TextFieldDecorationElement::hostInput):
3862 Use shadowHost(), and allow to return 0.
3863 (WebCore::TextFieldDecorationElement::defaultEventHandler):
3866 2012-07-19 Simon Hausmann <simon.hausmann@nokia.com>
3868 [Qt] Compile WebCore without QtWidgets
3869 https://bugs.webkit.org/show_bug.cgi?id=91819
3871 Reviewed by Kenneth Rohde Christiansen.
3873 * WebCore.pri: QT += opengl is not needed for Qt 5, given that QtGui has OpenGL
3874 support built in with the QOpenGL* classes.
3876 2012-07-19 MORITA Hajime <morrita@google.com>
3878 [Refactoring] Replace Node's Document pointer with a TreeScope pointer
3879 https://bugs.webkit.org/show_bug.cgi?id=59816
3881 Reviewed by Ryosuke Niwa.
3883 Before this change, Node::treeScope() fetches the TreeScope object
3884 from ElementRareData. This approach has several shortcomings:
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.
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.
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.
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
3906 With these changes, the Node::document() slowdown is minimized to
3909 No new tests. Covered by existing tests.
3911 * dom/Document.cpp: Took care of connectio betwen TreeScope.
3912 (WebCore::Document::Document):
3913 (WebCore::Document::~Document):
3914 (WebCore::Document::suggestedMIMEType):
3916 (WebCore::Node::treeScope): Now just return m_treeScope, taking care of nullInstance() case.
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):
3924 (WebCore::Node::~Node):
3925 (WebCore::Node::reportMemoryUsage):
3928 (WebCore::Node::inDocument):
3929 (WebCore::Node::isInShadowTree): Rewrote to use InShadowTree flag.
3930 * dom/NodeRareData.h:
3931 (WebCore::NodeRareData::NodeRareData): Eliminated m_treeScope.
3933 * dom/ShadowRoot.cpp:
3934 (WebCore::ShadowRoot::ShadowRoot):
3935 * dom/TreeScope.cpp:
3936 (WebCore::TreeScope::TreeScope):
3938 (WebCore::TreeScope::setParentTreeScope): Added.
3939 (WebCore::TreeScope::isDocumentScope): Added.
3940 (WebCore::TreeScope::nullInstance): Added.
3941 * dom/TreeScope.h: Added m_parentTreeScope.
3943 (WebCore::TreeScope::rootDocument): Added.
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
3953 2012-07-19 David Hyatt <hyatt@apple.com>
3955 SVG not properly respecting max-width.
3956 https://bugs.webkit.org/show_bug.cgi?id=91474
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
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.
3971 Reviewed by Dan Bernstein.
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
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.
3984 * rendering/RenderReplaced.h:
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.
3990 2012-07-19 Dominic Mazzoni <dmazzoni@google.com>
3992 AX: Need AccessibilityObjects for nodes without renderers in canvas subtree
3993 https://bugs.webkit.org/show_bug.cgi?id=87899
3995 Reviewed by Chris Fleizach.
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.
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
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.
4014 Test: accessibility/canvas-accessibilitynodeobject.html
4017 * GNUmakefile.list.am:
4020 * accessibility/AXObjectCache.cpp:
4021 (WebCore::AXObjectCache::get):
4023 (WebCore::createFromNode):
4024 (WebCore::AXObjectCache::getOrCreate):
4025 (WebCore::AXObjectCache::remove):
4026 * accessibility/AXObjectCache.h:
4028 (WebCore::AXObjectCache::get):
4029 (WebCore::AXObjectCache::getOrCreate):
4030 (WebCore::AXObjectCache::remove):
4031 * accessibility/AccessibilityARIAGrid.cpp:
4032 (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
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):