aa0a596ba7553fe2f740f1f765213571a2b2008c
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
2
3         Web Inspector: drop obsolete WebInspector.Uint32Array and adjust snapshot chunk size for better transfer-snapshot metric.
4         https://bugs.webkit.org/show_bug.cgi?id=87490
5
6         Originally WebInspector.Uint32Array was used for dynamic array
7         reallocation because we had no information about expected arrays sizes.
8         Now we have these sizes and allocates array precisely.
9
10         Reviewed by Yury Semikhatsky.
11
12         * bindings/v8/ScriptHeapSnapshot.cpp:
13         (WebCore):
14         * inspector/front-end/HeapSnapshot.js:
15         * inspector/front-end/HeapSnapshotLoader.js:
16         (WebInspector.HeapSnapshotLoader.prototype._parseUintArray):
17         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
18
19 2012-05-25  Alexander Pavlov  <apavlov@chromium.org>
20
21         Web Inspector: cmd-[ shortcut navigates page and is fr-keyboard incompatible
22         https://bugs.webkit.org/show_bug.cgi?id=85312
23
24         Reviewed by Vsevolod Vlasov.
25
26         Suppress the handling of panel history navigation events if the corresponding keyboard activities produce
27         the "keypress" event (which is the case on French keyboards, where AltGr+[ is translated into Ctrl+Alt+[ on Windows).
28         The event is also told to preventDefault() to avoid browser history navigation on Mac while traversing the Inspector panel history.
29
30         * inspector/front-end/InspectorView.js:
31         (WebInspector.InspectorView):
32         (WebInspector.InspectorView.prototype._keyPress):
33         (WebInspector.InspectorView.prototype._keyDown):
34         (WebInspector.InspectorView.prototype._keyDownInternal):
35         * inspector/front-end/UIUtils.js:
36         (WebInspector.isWin):
37
38 2012-05-25  Yury Semikhatsky  <yurys@google.com>
39
40         Unreviewed. Fixed closure compiler warnings.
41
42         * inspector/front-end/NativeMemorySnapshotView.js:
43         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
44         (WebInspector.NativeMemoryProfileHeader.prototype.createView):
45
46 2012-05-25  Lu Guanqun  <guanqun.lu@intel.com>
47
48         [GTK] fix compilation warning in GtkInputMethodFilter.cpp
49         https://bugs.webkit.org/show_bug.cgi?id=87475
50
51         Reviewed by Martin Robinson.
52
53         * platform/gtk/GtkInputMethodFilter.cpp:
54         (WebCore::GtkInputMethodFilter::setWidget):
55
56 2012-05-25  Zalan Bujtas  <zbujtas@gmail.com>
57
58         [Qt] Broken controls rendering when transform is applied.
59         https://bugs.webkit.org/show_bug.cgi?id=87483
60
61         Reviewed by Simon Hausmann.
62
63         Use only the scaling transform value to determine the size of
64         the control to be drawn. When other transforms present such as
65         rotate or skew, ignore them, unless scaling also involved. In
66         that case, calculate the scaling value out of the transformation.
67
68         * ManualTests/qt/control_paiting_with_transforms.html: Added.
69
70         * platform/qt/RenderThemeQtMobile.cpp:
71         (WebCore::painterScale):
72         (WebCore):
73         (WebCore::StylePainterMobile::sizeForPainterScale):
74
75 2012-05-17  Andrey Kosyakov  <caseq@chromium.org>
76
77         [chromium] add instrumentation for compositing
78         https://bugs.webkit.org/show_bug.cgi?id=83928
79
80         Reviewed by James Robinson.
81
82         - plumb willCommit() and didBeginFrame() from CCSingleThreadProxy and CCThreadProxy to inspector instrumentation;
83         - note for threaded case, didBeginFrame() is invoked upon unblocking of main thread;
84
85         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
86         (CCLayerTreeHostClient):
87         (WebCore::CCLayerTreeHost::didBeginFrame):
88         (WebCore::CCLayerTreeHost::willCommit):
89         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
90         (WebCore::CCSingleThreadProxy::commitAndComposite):
91         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
92         (WebCore::CCThreadProxy::beginFrame):
93
94 2012-05-25  Taiju Tsuiki  <tzik@chromium.org>
95
96         Web Inspector: Drop InspectorFileSystemInstrumentation
97         https://bugs.webkit.org/show_bug.cgi?id=87460
98
99         Inspector does not need to track DOMFileSystem object now. So we can
100         drop InspectorFileSystemInstrumentation.
101
102         Reviewed by Vsevolod Vlasov.
103
104         * GNUmakefile.list.am:
105         * Modules/filesystem/DOMFileSystem.cpp:
106         (WebCore::DOMFileSystem::create):
107         * WebCore.gypi:
108         * WebCore.vcproj/WebCore.vcproj:
109         * WebCore.xcodeproj/project.pbxproj:
110         * inspector/InspectorFileSystemAgent.cpp:
111         (WebCore::InspectorFileSystemAgent::enable):
112         * inspector/InspectorFileSystemAgent.h:
113         (InspectorFileSystemAgent):
114         * inspector/InspectorFileSystemInstrumentation.h: Removed.
115         * inspector/InspectorInstrumentation.cpp:
116         (WebCore):
117         * inspector/InspectorInstrumentation.h:
118         (WebCore):
119         (InspectorInstrumentation):
120
121 2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>
122
123         Web Inspector: HeapProfiler: speed-up _calculateClassesRetainedSize and _buildAggregates.
124         https://bugs.webkit.org/show_bug.cgi?id=87482
125
126         Engine didn't inline node's classIndex method because the switch statement in it wasn't inlineable.
127
128         Reviewed by Yury Semikhatsky.
129
130         * inspector/front-end/HeapSnapshot.js:
131         (WebInspector.HeapSnapshotNode.prototype.classIndex):
132
133 2012-05-24  Andreas Kling  <kling@webkit.org>
134
135         Dodge style recalc when id attribute is overwritten with same value.
136         <http://webkit.org/b/87211>
137
138         Reviewed by Eric Seidel.
139
140         Don't force style recalc when the id attribute is set to the same value it already had.
141         ~3.5% improvement on Dromaeo's "dom-attr" locally.
142
143         * dom/Element.cpp:
144         (WebCore::Element::attributeChanged):
145
146 2012-05-24  Yury Semikhatsky  <yurys@chromium.org>
147
148         Web Inspector: add profile type for native memory snapshots
149         https://bugs.webkit.org/show_bug.cgi?id=87400
150
151         Reviewed by Vsevolod Vlasov.
152
153         Introduced new profile type and view classes for native memory snapshots.
154         All the stuff is hidden behind an experimental setting.
155
156         * WebCore.gypi:
157         * WebCore.vcproj/WebCore.vcproj:
158         * inspector/compile-front-end.py:
159         * inspector/front-end/NativeMemorySnapshotView.js: Added.
160         (WebInspector.NativeMemorySnapshotView):
161         (WebInspector.NativeMemorySnapshotView.prototype.dispose):
162         (WebInspector.NativeMemorySnapshotView.prototype.get statusBarItems):
163         (WebInspector.NativeMemorySnapshotView.prototype.get profile):
164         (WebInspector.NativeMemoryProfileType):
165         (WebInspector.NativeMemoryProfileType.prototype.get buttonTooltip):
166         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
167         (WebInspector.NativeMemoryProfileType.prototype.get treeItemTitle):
168         (WebInspector.NativeMemoryProfileType.prototype.get description):
169         (WebInspector.NativeMemoryProfileType.prototype.createTemporaryProfile):
170         (WebInspector.NativeMemoryProfileType.prototype.createProfile):
171         (WebInspector.NativeMemoryProfileHeader):
172         (WebInspector.NativeMemoryProfileHeader.prototype.createSidebarTreeElement):
173         (WebInspector.NativeMemoryProfileHeader.prototype.createView):
174         * inspector/front-end/ProfilesPanel.js:
175         * inspector/front-end/Settings.js:
176         (WebInspector.ExperimentsSettings):
177         * inspector/front-end/WebKit.qrc:
178         * inspector/front-end/inspector.html:
179
180 2012-05-25  Yury Semikhatsky  <yurys@chromium.org>
181
182         Web Inspector: make some profiler methods private
183         https://bugs.webkit.org/show_bug.cgi?id=87479
184
185         Reviewed by Vsevolod Vlasov.
186
187         - Removed unused methods.
188         - Renamed private methods so that their names start with underscore. 
189         - ProfileLauncherView methods are called directly from ProfilesPanel instead
190           of sending events.
191
192         * inspector/front-end/CPUProfileView.js:
193         * inspector/front-end/CSSSelectorProfileView.js:
194         (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
195         (WebInspector.CSSSelectorProfileType.prototype._startRecordingProfile):
196         (WebInspector.CSSSelectorProfileType.prototype.createTemporaryProfile):
197         * inspector/front-end/ProfileLauncherView.js:
198         (WebInspector.ProfileLauncherView.prototype.profileStarted):
199         (WebInspector.ProfileLauncherView.prototype.profileFinished):
200         * inspector/front-end/ProfilesPanel.js:
201         (WebInspector.ProfileType.prototype.createProfile):
202         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
203         (WebInspector.ProfilesPanel.prototype._reset):
204         (WebInspector.ProfilesPanel.prototype._populateProfiles.populateCallback.var):
205         (WebInspector.ProfilesPanel.prototype._populateProfiles.populateCallback):
206         (WebInspector.ProfilesPanel.prototype._populateProfiles):
207         (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
208         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot.done):
209         (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
210
211 2012-05-25  Keishi Hattori  <keishi@webkit.org>
212
213         Bad checkValidity result on recently "enabled" form fields
214         https://bugs.webkit.org/show_bug.cgi?id=85704
215
216         Reviewed by Kent Tamura.
217
218         Test: fast/forms/disabled-attr-checkvalidity.html
219
220         We were tripping on the assertion m_isValid == validity()->valid()
221         inside HTMLFormControlElement::isValidFormControlElement.
222         m_isValid was becoming stale because setNeedsValidityCheck wasn't called
223         after m_willValidate changed.
224
225         * html/HTMLFormControlElement.cpp:
226         (WebCore::HTMLFormControlElement::willValidate): We used const_cast
227         because it was too difficult to remove const. We are checking if the
228         value from willValidate has changed to avoid an infinite loop.
229         (WebCore::HTMLFormControlElement::setNeedsWillValidateCheck):
230
231 2012-05-24  Kinuko Yasuda  <kinuko@chromium.org>
232
233         [chromium] DataTransferItem.webkitGetAsEntry() shouldn't be exposed without flag yet
234         https://bugs.webkit.org/show_bug.cgi?id=87457
235
236         Reviewed by Kent Tamura.
237
238         No new tests, marking some tests SKIP as we stop exposing this by default.
239
240         * Modules/filesystem/DataTransferItemFileSystem.idl: Removed webkitGetAsEntry
241
242 2012-05-25  Rakesh KN  <rakesh.kn@motorola.com>
243
244         RadioNodeList does not include a object element
245         https://bugs.webkit.org/show_bug.cgi?id=87371
246
247         Reviewed by Kent Tamura.
248
249         As per spec http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#category-listed
250         Object element should also be listed in RadioNodeList object.
251
252         Updated existing test.
253
254         * html/RadioNodeList.cpp:
255         (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
256         Compares if test element's name/id  and form matches that of the RadioNodeList filter.
257         (WebCore::RadioNodeList::nodeMatches):
258         Added support for Object element, check if object elements name/id matches the RadioNodeList filter.
259         * html/RadioNodeList.h:
260         (RadioNodeList): Ditto
261
262 2012-05-25  Jan Keromnes  <janx@linux.com>
263
264         Web Inspector: Resource object has no methods getContent and setContent
265         https://bugs.webkit.org/show_bug.cgi?id=87424
266
267         This fixes the extension API so that it uses the `new Resource()`
268         constructor, which adds the missing `getContent` and `setContent`
269         methods to a `Resource` object.
270
271         Reviewed by Vsevolod Vlasov.
272
273         The tests were fixed accordingly in:
274         LayoutTests/inspector/extensions/extensions-resources-expected.txt
275
276         * inspector/front-end/ExtensionAPI.js:
277         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
278         (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
279
280 2012-05-24  Tim Horton  <timothy_horton@apple.com>
281
282         Add feature defines for web-facing parts of CSS Regions and Exclusions
283         https://bugs.webkit.org/show_bug.cgi?id=87442
284         <rdar://problem/10887709>
285
286         Reviewed by Dan Bernstein.
287
288         * Configurations/FeatureDefines.xcconfig:
289         * GNUmakefile.am:
290         * bindings/generic/RuntimeEnabledFeatures.cpp:
291         * bindings/generic/RuntimeEnabledFeatures.h:
292         (RuntimeEnabledFeatures):
293         (WebCore::RuntimeEnabledFeatures::setCSSExclusionsEnabled):
294         (WebCore::RuntimeEnabledFeatures::cssExclusionsEnabled):
295         * bindings/js/JSCSSRuleCustom.cpp:
296         (WebCore::toJS):
297         * bindings/objc/DOMCSS.mm:
298         (kitClass):
299         * css/CSSComputedStyleDeclaration.cpp:
300         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
301         * css/CSSParser.cpp:
302         (WebCore::isSimpleLengthPropertyID):
303         (WebCore::isValidKeywordPropertyAndValue):
304         (WebCore::isKeywordPropertyID):
305         (WebCore::CSSParser::parseValue):
306         (WebCore::CSSParser::detectAtToken):
307         * css/CSSProperty.cpp:
308         (WebCore::CSSProperty::isInheritedProperty):
309         * css/CSSPropertyNames.in:
310         * css/CSSRule.cpp:
311         (WebCore::CSSRule::cssText):
312         (WebCore::CSSRule::destroy):
313         (WebCore::CSSRule::reattach):
314         * css/CSSRule.h:
315         (WebCore::CSSRule::isRegionRule):
316         * css/CSSRule.idl:
317         * css/StyleBuilder.cpp:
318         (WebCore::StyleBuilder::StyleBuilder):
319         * css/StylePropertySet.cpp:
320         (WebCore::StylePropertySet::getPropertyValue):
321         (WebCore::StylePropertySet::asText):
322         * css/StylePropertyShorthand.cpp:
323         (WebCore::shorthandForProperty):
324         * css/StylePropertyShorthand.h:
325         * css/StyleResolver.cpp:
326         (WebCore::StyleResolver::collectMatchingRulesForList):
327         * css/StyleRule.cpp:
328         (WebCore::StyleRuleBase::destroy):
329         (WebCore::StyleRuleBase::copy):
330         (WebCore::StyleRuleBase::createCSSOMWrapper):
331         * css/WebKitCSSRegionRule.cpp:
332         * css/WebKitCSSRegionRule.h:
333         * css/WebKitCSSRegionRule.idl:
334         * dom/Document.cpp:
335         * dom/Document.h:
336         * dom/Document.idl:
337         * page/DOMWindow.idl:
338         * page/Settings.cpp:
339         (WebCore::Settings::Settings):
340         * page/Settings.h:
341         (WebCore::Settings::setCSSRegionsEnabled):
342         (WebCore::Settings::cssRegionsEnabled):
343
344 2012-05-24  Geoffrey Garen  <ggaren@apple.com>
345
346         WebKit should be lazy-finalization-safe (esp. the DOM)
347         https://bugs.webkit.org/show_bug.cgi?id=87456
348
349         Reviewed by Filip Pizlo.
350
351         * bindings/js/DOMWrapperWorld.cpp:
352         (WebCore::JSStringOwner::finalize):
353         * bindings/js/JSDOMBinding.cpp:
354         (WebCore::jsStringSlowCase):
355         * bindings/js/JSDOMBinding.h:
356         (WebCore::cacheWrapper):
357         (WebCore::uncacheWrapper): Use the new idioms.
358
359         (WebCore::jsString): Use get instead of find because get is simpler in
360         the case of entries that are logically null.
361
362         (WebCore::domObjectWrapperMapFor): Removed, since it was unused.
363
364         * bindings/js/ScriptWrappable.h:
365         (WebCore::ScriptWrappable::clearWrapper): Use the new idioms.
366
367         * bridge/runtime_root.cpp:
368         (JSC::Bindings::RootObject::invalidate): Check for null while iterating,
369         since that's possible now.
370
371         (JSC::Bindings::RootObject::addRuntimeObject):
372         (JSC::Bindings::RootObject::removeRuntimeObject):
373         (JSC::Bindings::RootObject::finalize): Use the new idioms.
374
375         * bridge/runtime_root.h:
376         (RootObject): Clarified the word "need".
377
378 2012-05-24  Kent Tamura  <tkent@chromium.org>
379
380         PAGE_POPUP: window.setValueAndClosePopup should be moved to a
381         per-context property of DOMWindow.
382         https://bugs.webkit.org/show_bug.cgi?id=87086
383
384         Reviewed by Adam Barth.
385
386         - Introduce window.pagePagePopupController property as V8EnabledPerContext.
387         - Move window.setValueAndClosePopup() to window.pagePopupController.
388         So, we can remove ad-hoc ScriptController::installFunctionsForPagePopup().
389
390         No behavior change.
391
392         Test: fast/forms/date/no-page-popup-controller.html
393
394         * Resources/calendarPicker.js:
395         (submitValue): Use window.pagePopupController.
396         (handleCancel): ditto.
397         * WebCore.gypi: Add new files.
398         * bindings/generic/ContextEnabledFeatures.cpp:
399         (WebCore::ContextEnabledFeatures::pagePopupEnabled): Added.
400         * bindings/generic/ContextEnabledFeatures.h:
401         (ContextEnabledFeatures): Added.
402         * bindings/v8/ScriptController.cpp: Remove installFunctionsForPagePopup().
403         * bindings/v8/ScriptController.h: ditto.
404         * loader/FrameLoaderClient.h:
405         (WebCore::FrameLoaderClient::allowPagePopup): Added.
406         * page/DOMWindowPagePopup.cpp:
407         (WebCore::DOMWindowPagePopup::DOMWindowPagePopup):
408         Creates a PagePopupController object for the specified PagePopupClient.
409         (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
410         Empty destructor to generate the RefPtr<PagePopupController> destructor.
411         (WebCore::DOMWindowPagePopup::pagePopupController):
412         * page/DOMWindowPagePopup.h:
413         (DOMWindowPagePopup):
414          - Remove setValueAndClosePopup()
415          - Add pagePopupController()
416          - Change the data member from PagePopupClient to PagePopupController.
417         * page/DOMWindowPagePopup.idl: Supply per-context window.pagePopupController.
418         * page/PagePopupController.cpp: Added. This object is attached to window.
419         * page/PagePopupController.h: ditto.
420         * page/PagePopupController.idl: ditto.
421
422 2012-05-21  Kinuko Yasuda  <kinuko@chromium.org>
423
424         Cleanup: add a file system call which captures the file metadata at once.
425         https://bugs.webkit.org/show_bug.cgi?id=86995
426
427         Reviewed by David Levin.
428
429         Current File.slice() (webkitSlice()) implementation calls two separate platform calls,
430         getFileSize() and getFileModificationTime() [both are defined in platform/FileSystem.h],
431         to capture the file metadata, but we should have a single file system call to get them at once
432         for two reasons: 1. save additional system call costs, and 2.  atomically obtain the file metadata.
433
434         No new tests: existing tests (http/tests/local/fileapi/* and fast/files/*) should pass.
435
436         * fileapi/File.cpp:
437         (WebCore::File::captureSnapshot):
438         * platform/FileMetadata.h:
439         * platform/FileSystem.h:
440         * platform/chromium/FileSystemChromium.cpp:
441         (WebCore::getFileMetadata): Added.
442         * platform/chromium/PlatformSupport.h:
443         (PlatformSupport):
444         * platform/gtk/FileSystemGtk.cpp:
445         (WebCore::getFileMetadata): Added.
446         * platform/posix/FileSystemPOSIX.cpp:
447         (WebCore::getFileMetadata): Added.
448         * platform/qt/FileSystemQt.cpp:
449         (WebCore::getFileMetadata): Added.
450         * platform/win/FileSystemWin.cpp:
451         (WebCore::getFileSizeFromFindData):
452         (WebCore::getFileModificationTimeFromFindData):
453         (WebCore::getFileSize):
454         (WebCore::getFileModificationTime):
455         (WebCore::getFileMetadata): Added.
456         * platform/wince/FileSystemWinCE.cpp:
457         (WebCore::getFileSizeFromFileInfo):
458         (WebCore::getFileModificationTimeFromFileInfo):
459         (WebCore::getFileSize):
460         (WebCore::getFileModificationTime):
461         (WebCore::getFileMetadata): Added.
462         * platform/wx/FileSystemWx.cpp:
463         (WebCore::getFileMetadata): Added.
464         (WebCore):
465
466 2012-05-24  Hironori Bono  <hbono@chromium.org>
467
468         Enable grammar checking on Chromium when we paste text (Take 2)
469         https://bugs.webkit.org/show_bug.cgi?id=74393
470
471         Reviewed by Ryosuke Niwa.
472
473         This change enables grammar checking on Chromium and implements a mock grammar
474         checker to fix a failing test.
475
476         Test: editing/spelling/grammar-markers.html
477
478         * platform/graphics/skia/GraphicsContextSkia.cpp:
479         (WebCore::GraphicsContext::drawLineForDocumentMarker): render grammar markers in gray on Windows and Linux or in green on Mac.
480
481 2012-05-24  Dominic Mazzoni  <dmazzoni@google.com>
482
483         Crash in WebCore::AccessibilityTable::isDataTable
484         https://bugs.webkit.org/show_bug.cgi?id=87409
485
486         Reviewed by Abhishek Arya.
487
488         Use Node::rendererIsEditable everywhere rather than
489         Node::isContentEditable because the latter can trigger a layout
490         and destroy the renderer. New test covers the change to
491         AccessibilityTable.cpp, changes to AccessibilityRenderObject.cpp
492         are covered by existing tests.
493
494         Test: accessibility/contenteditable-table-check-causes-crash.html
495
496         * accessibility/AccessibilityRenderObject.cpp:
497         (WebCore::AccessibilityRenderObject::isReadOnly):
498         (WebCore::AccessibilityRenderObject::contentChanged):
499         * accessibility/AccessibilityTable.cpp:
500         (WebCore::AccessibilityTable::isDataTable):
501
502 2012-05-24  Yoshifumi Inoue  <yosin@chromium.org>
503
504         [Forms][TextArea] Too long validation message doesn't count LF as CRLF
505         https://bugs.webkit.org/show_bug.cgi?id=87458
506
507         Reviewed by Kent Tamura.
508
509         This patch changes current number of characters in "too long" validation message
510         parameter to counting newline as 2 characters (CR and LF) as submission data.
511
512         No new tests. To have test for this change, we need to change localization
513         text handling during DRT. We'll try.
514
515         * html/HTMLTextAreaElement.cpp:
516         (WebCore::HTMLTextAreaElement::validationMessage): Use computeLengthForSubmission instead of numGraphmeClusters.
517
518 2012-05-24  Hayato Ito  <hayato@chromium.org>
519
520         Fix crashes caused by a DOMCharacterDataModified event on a text node.
521         https://bugs.webkit.org/show_bug.cgi?id=86953
522
523         Reviewed by Dimitri Glazkov.
524
525         TextNode can be released while CharacterData::setData() will dispatch a mutation event.
526         So protect it.
527
528         Mutation event itself should not be dispatched on the test case.
529         This is being tracked by webkit bug https://bugs.webkit.org/show_bug.cgi?id=87372.
530
531         Test: fast/events/dom-character-data-modified-textarea-crash.html
532
533         * dom/CharacterData.cpp:
534         (WebCore::CharacterData::setData):
535
536 2012-05-24  Philippe Normand  <pnormand@igalia.com>
537
538         [GTK] Add --enable-css3-flexbox configure option after r118304.
539         https://bugs.webkit.org/show_bug.cgi?id=87455
540
541         Reviewed by Xan Lopez.
542
543         * GNUmakefile.am:
544
545 2012-05-24  MORITA Hajime  <morrita@google.com>
546
547         Scoped stylesheet should be per-document-configurable.
548         https://bugs.webkit.org/show_bug.cgi?id=86985
549
550         Reviewed by Kent Tamura.
551
552         This change replaced RuntimeEnabledFeatures::styleScopedEnabled() callsites
553         with newly introduced ContextEnabledFeatures::styleScopedEnabled().
554         Clients can override the decision by implementing FrameLoaderClient::allowStyleScoped().
555
556         No new tests. This isn't testable on DRT.
557
558         * bindings/generic/ContextEnabledFeatures.cpp:
559         (WebCore):
560         (WebCore::ContextEnabledFeatures::styleScopedEnabled):
561         * bindings/generic/ContextEnabledFeatures.h:
562         (WebCore):
563         (ContextEnabledFeatures):
564         * css/StyleResolver.cpp:
565         (WebCore::StyleResolver::determineScope):
566         * css/StyleResolver.h:
567         (StyleResolver):
568         * html/HTMLStyleElement.cpp:
569         (WebCore::HTMLStyleElement::registerWithScopingNode):
570         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
571         * loader/FrameLoaderClient.h:
572         (WebCore::FrameLoaderClient::allowStyleScoped):
573
574 2012-05-24  Sheriff Bot  <webkit.review.bot@gmail.com>
575
576         Unreviewed, rolling out r118452.
577         http://trac.webkit.org/changeset/118452
578         https://bugs.webkit.org/show_bug.cgi?id=87446
579
580         Causes many tests to assert on Mac, NRWT bails out (Requested
581         by sundiamonde on #webkit).
582
583         * rendering/RenderObject.cpp:
584         (WebCore::RenderObject::~RenderObject):
585         (WebCore::RenderObject::clearLayoutRootIfNeeded):
586
587 2012-05-24  Kevin Ollivier  <kevino@theolliviers.com>
588
589         [wx] Unreviewed build fix. Add contextMenuItemVector stub.
590
591         * platform/wx/ContextMenuWx.cpp:
592         (WebCore):
593         (WebCore::contextMenuItemVector):
594
595 2012-05-24  Raymond Toy  <rtoy@google.com>
596
597         Use 32-byte alignment in AudioArray if using WEBAUDIO_FFMPEG
598         https://bugs.webkit.org/show_bug.cgi?id=87430
599
600         Reviewed by Chris Rogers.
601
602         Covered by existing tests.
603
604         * platform/audio/AudioArray.h:
605         (WebCore::AudioArray::allocate):
606
607 2012-05-24  Antoine Labour  <piman@chromium.org>
608
609         [chromium] Add a setForceRenderSurface to WebLayer for test/bench purpose
610         https://bugs.webkit.org/show_bug.cgi?id=87436
611
612         Reviewed by James Robinson.
613
614         Tested by CCLayerTreeHostCommonTest.verifyForceRenderSurface
615
616         * platform/graphics/chromium/LayerChromium.cpp:
617         (WebCore::LayerChromium::LayerChromium):
618         (WebCore::LayerChromium::setForceRenderSurface):
619         (WebCore):
620         (WebCore::LayerChromium::pushPropertiesTo):
621         * platform/graphics/chromium/LayerChromium.h:
622         (WebCore::LayerChromium::forceRenderSurface):
623         (LayerChromium):
624         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
625         (WebCore::CCLayerImpl::CCLayerImpl):
626         * platform/graphics/chromium/cc/CCLayerImpl.h:
627         (WebCore::CCLayerImpl::forceRenderSurface):
628         (WebCore::CCLayerImpl::setForceRenderSurface):
629         (CCLayerImpl):
630         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
631         (WebCore::subtreeShouldRenderToSeparateSurface):
632
633 2012-05-24  Ken Buchanan  <kenrb@chromium.org>
634
635         Layout root not getting cleared for anonymous renderers geting destroyed
636         https://bugs.webkit.org/show_bug.cgi?id=84002
637
638         Reviewed by Abhishek Arya.
639
640         This is a follow-up to r109406, which added a check to clear layout
641         roots when they point to a renderer that is being destroyed. The
642         thinking was that layout roots would never be anonymous renderers,
643         but there are some cases where this is not true (in particular,
644         generated content containers with overflow clips can be layout roots).
645
646         As in r109406, this patch has no layout test. This is because any test
647         that exercises this behavior is caused by an existing layout bug where
648         a child is not properly getting layout (or a renderer is getting dirtied
649         out of order during layout) and will fail multiple ASSERTs:
650         in particular, ASSERT(!m_layoutRoot->container() || !m_layoutRoot->
651         container()->needsLayout()) in FrameView::scheduleRelayoutOfSubtree(),
652         and ASSERT_NOT_REACHED() in RenderObject::clearLayoutRootIfNeeded().
653         We are preventing those bugs from manifesting as security issues with
654         this patch.
655
656         * rendering/RenderObject.cpp:
657         (WebCore::RenderObject::~RenderObject):
658         (WebCore::RenderObject::willBeDestroyed):
659
660 2012-05-24  Anders Carlsson  <andersca@apple.com>
661
662         Corrupted pages rendering when images are zoomed on Google+
663         https://bugs.webkit.org/show_bug.cgi?id=87439
664         <rdar://problem/11503078>
665
666         Reviewed by Beth Dakin.
667
668         The rect that's given to scrollContentsSlowPath is in frame view coordinates, but if we end up
669         passing them to RenderLayer::setBackingNeedsRepaintInRect we need to account for the frame scale factor.
670
671         * page/FrameView.cpp:
672         (WebCore::FrameView::scrollContentsSlowPath):
673
674 2012-05-24  Ryosuke Niwa  <rniwa@webkit.org>
675
676         REGRESSION (r112399): insertHTML doesn't respect current selection range and inserts HTML to incorrect position
677         https://bugs.webkit.org/show_bug.cgi?id=87195
678
679         Reviewed by Darin Adler.
680
681         The bug was caused by our passing insertionPos.anchorNode() to splitTreeToNode's start node even when
682         the position's type was an offset in a container. Fixed the bug by passing the node after the insert position
683         or the container node if the position is at the end of the container.
684
685         Test: editing/pasteboard/paste-at-end-of-node-followed-by-inline-element.html
686
687         * editing/ReplaceSelectionCommand.cpp:
688         (WebCore::ReplaceSelectionCommand::doApply):
689
690 2012-05-24  Emil A Eklund  <eae@chromium.org>
691
692         REGRESSION (115573): Incorrect rounding of margins for floats
693         https://bugs.webkit.org/show_bug.cgi?id=87319
694
695         Reviewed by Eric Seidel.
696
697         In RenderBlock::computeInlinePreferredLogicalWidths we used a float to
698         accumulate margins for floating children while the children themselves
699         represent their margins as LayoutUnits. Due to lack of rounding this can
700         cause the block to be too small at certain certain zoom levels, causing
701         unwanted wrapping. 
702
703         This patch changes computeInlinePreferredLogicalWidths to use a
704         LayoutUnit to accumulate the margins and thus ensures that the margin
705         values are rounded the same way.
706
707         Test: fast/block/float/floats-with-margin-should-not-wrap.html
708
709         * rendering/RenderBlock.cpp:
710         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
711
712 2012-05-24  Christophe Dumez  <christophe.dumez@intel.com>
713
714         postMessage and webkitPostMessage should behave the same way
715         https://bugs.webkit.org/show_bug.cgi?id=87384
716
717         Reviewed by Adam Barth.
718
719         Make postMessage behave the same way as webkitPostMessage, meaning
720         that it supports transfer of MessagePorts and ArrayBuffers as per
721         the spec. Both V8 and JSC implementations have been updated.
722
723         Test: fast/dom/Window/window-postmessage-args.html
724
725         * bindings/js/JSDOMWindowCustom.cpp:
726         (WebCore::handlePostMessage):
727         (WebCore::JSDOMWindow::postMessage):
728         (WebCore::JSDOMWindow::webkitPostMessage):
729         * bindings/v8/custom/V8DOMWindowCustom.cpp:
730         (WebCore::handlePostMessageCallback):
731         (WebCore::V8DOMWindow::postMessageCallback):
732         (WebCore::V8DOMWindow::webkitPostMessageCallback):
733         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
734         (WebCore::handlePostMessageCallback):
735         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
736         (WebCore::V8DedicatedWorkerContext::webkitPostMessageCallback):
737         * bindings/v8/custom/V8MessagePortCustom.cpp:
738         (WebCore::handlePostMessageCallback):
739         (WebCore::V8MessagePort::postMessageCallback):
740         (WebCore::V8MessagePort::webkitPostMessageCallback):
741         * bindings/v8/custom/V8WorkerCustom.cpp:
742         (WebCore::handlePostMessageCallback):
743         (WebCore::V8Worker::postMessageCallback):
744         (WebCore::V8Worker::webkitPostMessageCallback):
745
746 2012-05-24  Pablo Flouret  <pablof@motorola.com>
747
748         Submit button doesn't submit the form if the form is wrapped by an anchor tag
749         https://bugs.webkit.org/show_bug.cgi?id=86719
750
751         Reviewed by Ryosuke Niwa.
752
753         When a form's button is clicked or activated with the keyboard a
754         DOMActivate event is dispatched internally and the default handler for
755         it takes care of processing the form submission, but the underlying
756         event that prompted it is not set as handled and so it ends up
757         navigating the anchor, thereby cancelling the form submission.
758
759         This patch sets the original click event as handled if the DOMActivate
760         event was handled. This matches the rest of the browsers for form
761         controls that submit a form (input type=submit, button type=submit,
762         input type=image, etc), and matches IE for the rest of the controls
763         (basically, IE never activates the anchor when clicking on form
764         controls, Presto and Gecko mostly don't either, except in a few cases.
765
766         Test: fast/forms/form-in-anchor-controls-activation.html
767
768         * dom/Node.cpp:
769         (WebCore::Node::dispatchDOMActivateEvent):
770         (WebCore::Node::defaultEventHandler):
771         * dom/Node.h:
772         (Node):
773         * html/HTMLButtonElement.cpp:
774         (WebCore::HTMLButtonElement::defaultEventHandler):
775
776 2012-05-24  Crystal Zhang  <haizhang@rim.com>
777
778         [BlackBerry] Implement select popup and remove old hook to air popup
779         https://bugs.webkit.org/show_bug.cgi?id=87419
780
781         Reviewed by Rob Buis.
782
783         Add new files to make file, add css file for select popup.
784
785         * PlatformBlackBerry.cmake:
786         * Resources/blackberry/popupControlBlackBerry.css: Added.
787         (html):
788         (body):
789         (.bottombuttonOK):
790         (.bottombuttonCancel):
791         (.tablebutton):
792
793 2012-05-24  Levi Weintraub  <leviw@chromium.org>
794
795         Avoid creating InlineBoxes for floating and positioned objects in isolates.
796         https://bugs.webkit.org/show_bug.cgi?id=87277
797
798         Reviewed by Eric Seidel.
799
800         We currently will create a placeholder run for the first object we encounter inside an isolate. Then
801         in RenderBlockLineLayout's constructBidiRuns, we replace that run with the contents of the Isolate.
802         We run into problems when there are no valid contents in the Isolate. We can't simply remove the
803         placeholder if there's nothing to replace it with since it may be the logically last run, which we
804         track but can't rebuild by the time we're handling isolates (we've already shuffled the BidiRuns around).
805
806         With this change, we avoid creating a placeholder altogether until we hit contents in the isolate
807         that would warrant a BidiRun in the first place.
808
809         Test: fast/text/international/float-as-only-child-of-isolate-crash.html
810
811         * rendering/InlineIterator.h:
812         (WebCore::IsolateTracker::addFakeRunIfNecessary):
813         * rendering/RenderBlock.h:
814         (RenderBlock):
815         (WebCore::RenderBlock::shouldSkipCreatingRunsForObject):
816         * rendering/RenderBlockLineLayout.cpp:
817         (WebCore::RenderBlock::appendRunsForObject):
818
819 2012-05-24  Ryosuke Niwa  <rniwa@webkit.org>
820
821         There are too many poorly named functions to create a fragment from markup
822         https://bugs.webkit.org/show_bug.cgi?id=87339
823
824         Reviewed by Eric Seidel.
825
826         Moved all functions that create a fragment from markup to markup.h/cpp.
827         There should be no behavioral change.
828
829         * dom/Range.cpp:
830         (WebCore::Range::createContextualFragment):
831         * dom/Range.h: Removed createDocumentFragmentForElement.
832         * dom/ShadowRoot.cpp:
833         (WebCore::ShadowRoot::setInnerHTML):
834         * editing/markup.cpp:
835         (WebCore::createFragmentFromMarkup):
836         (WebCore::createFragmentForInnerOuterHTML): Renamed from createFragmentFromSource.
837         (WebCore::createFragmentForTransformToFragment): Moved from XSLTProcessor.
838         (WebCore::removeElementPreservingChildren): Moved from Range.
839         (WebCore::createContextualFragment): Ditto.
840         * editing/markup.h:
841         * html/HTMLElement.cpp:
842         (WebCore::HTMLElement::setInnerHTML):
843         (WebCore::HTMLElement::setOuterHTML):
844         (WebCore::HTMLElement::insertAdjacentHTML):
845         * inspector/DOMPatchSupport.cpp:
846         (WebCore::DOMPatchSupport::patchNode): Added a FIXME since this code should be using
847         one of the functions listed in markup.h
848         * xml/XSLTProcessor.cpp:
849         (WebCore::XSLTProcessor::transformToFragment):
850
851 2012-05-24  Jer Noble  <jer.noble@apple.com>
852
853         MediaControlTimelineElement is adjusting time 3 times per click
854         https://bugs.webkit.org/show_bug.cgi?id=58160
855
856         Reviewed by Eric Carlson.
857
858         No new tests; we intentionally throttle timeupdate events for the same
859         movie time, so there is no way to write a layout test for this case.
860
861         Only call setCurrentTime() on mousedown or mousemove events.
862
863         * html/shadow/MediaControlElements.cpp:
864         (WebCore::MediaControlTimelineElement::defaultEventHandler):
865
866 2012-05-24  John Mellor  <johnme@chromium.org>
867
868         Font Boosting: Add compile flag and runtime setting
869         https://bugs.webkit.org/show_bug.cgi?id=87394
870
871         Reviewed by Adam Barth.
872
873         Add ENABLE_FONT_BOOSTING compile flag and fontBoostingEnabled runtime setting.
874
875         No functionality yet, so no new tests.
876
877         * Configurations/FeatureDefines.xcconfig:
878         * GNUmakefile.am:
879         * Target.pri:
880         * page/Settings.cpp:
881         (WebCore::Settings::Settings):
882         (WebCore::Settings::setFontBoostingEnabled):
883         (WebCore):
884         * page/Settings.h:
885         (Settings):
886         (WebCore::Settings::fontBoostingEnabled):
887
888 2012-05-24  Greg Spencer  <gspencer@chromium.org>
889
890         MHTML files should be loadable from all schemes considered local,
891         not just "file:"
892
893         https://bugs.webkit.org/show_bug.cgi?id=86540
894
895         Reviewed by Adam Barth.
896
897         Existing tests should verify correct function.
898
899         * loader/MainResourceLoader.cpp:
900         (WebCore::MainResourceLoader::continueAfterContentPolicy):
901         * loader/archive/mhtml/MHTMLArchive.cpp:
902         (WebCore::MHTMLArchive::create):
903
904 2012-05-24  Dana Jansens  <danakj@chromium.org>
905
906         [chromium] Remove some leftover references to LayerTilerChromium
907         https://bugs.webkit.org/show_bug.cgi?id=87405
908
909         Reviewed by James Robinson.
910
911         * platform/graphics/chromium/LayerChromium.h:
912         (LayerChromium):
913         * platform/graphics/chromium/SolidColorLayerChromium.h:
914
915 2012-05-24  Jessie Berlin  <jberlin@apple.com>
916
917         REGRESSION(r109663) All the the dom/html/level2/html/HTMLFrameElement* tests crash on Windows
918         https://bugs.webkit.org/show_bug.cgi?id=87410
919
920         Reviewed by Anders Carlsson.
921
922         Do not pass a reference type to va_start (see r75435).
923
924         * platform/LocalizedStrings.cpp:
925         (WebCore::formatLocalizedString):
926
927 2012-05-24  Yael Aharon  <yael.aharon@nokia.com>
928
929         [Qt] Stop using the flag FIXED_POSITION_CREATES_STACKING_CONTEXT
930         https://bugs.webkit.org/show_bug.cgi?id=87392
931
932         Reviewed by Antonio Gomes.
933
934         Remove our dependency on a build flag and use the new setting.
935
936         No new tests.
937
938         * css/StyleResolver.cpp:
939
940 2012-05-24  Alexey Proskuryakov  <ap@apple.com>
941
942         [WK2] Let the client give local files universal access on a case by case basis
943         https://bugs.webkit.org/show_bug.cgi?id=87174
944         <rdar://problem/11024330>
945
946         Reviewed by Maciej Stachowiak.
947
948         * dom/Document.cpp: (WebCore::Document::initSecurityContext): When settings->allowUniversalAccessFromFileURLs()
949         is false, also try asking the client for an indulgence.
950
951         * loader/FrameLoaderClient.h: (WebCore::FrameLoaderClient::shouldForceUniversalAccessFromLocalURL):
952         Default implementation doesn't change anything.
953
954 2012-05-24  Tony Chang  <tony@chromium.org>
955
956         improve StyleRareNonInheritedData bit packing on Windows
957         https://bugs.webkit.org/show_bug.cgi?id=87322
958
959         Reviewed by Eric Seidel.
960
961         Accessors for m_runningAcceleratedAnimation and m_hasAspectRatio are on RenderStyle already.
962
963         Also reorder the variables in operator== to be consistent with the constructor and header file.
964         This makes it easier to add or remove values.
965
966         No new tests, just refactoring.
967
968         * rendering/style/StyleRareNonInheritedData.cpp:
969         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
970         (WebCore::StyleRareNonInheritedData::operator==):
971         * rendering/style/StyleRareNonInheritedData.h:
972         (StyleRareNonInheritedData):
973
974 2012-05-24  Robert Hogan  <robert@webkit.org>
975
976         Negative margin block doesn't properly clear a float enclosed by a previous sibling
977         https://bugs.webkit.org/show_bug.cgi?id=10900
978
979         Reviewed by David Hyatt.
980
981         Tests: fast/css/clear-float-sibling.html
982
983         Parent blocks keep a list of child floats that extend out of the parent block and
984         by implication overhang into the parent's siblings. But this doesn't work if the
985         sibling has collapsing margins - it will not find the float in the previous block's
986         list so will ignore the float and fail to clear it.
987
988         RenderBlock:collapseMargins() needs to check if a child's collapsing margin has 
989         reduced the height of the parent up past the bottom of its previous sibling's lowest float
990         and add the now overhanging float to the parent's float list if appropriate.
991         
992         * rendering/RenderBlock.cpp:
993         (WebCore::RenderBlock::collapseMargins):
994
995 2012-05-24  Kinuko Yasuda  <kinuko@chromium.org>
996
997         Cleanup: introduce toFile() to reduce static cast from Blob to File
998         https://bugs.webkit.org/show_bug.cgi?id=87234
999
1000         Reviewed by Eric Seidel.
1001
1002         No new tests as this must have no side effect.
1003
1004         * bindings/v8/custom/V8BlobCustom.cpp:
1005         (WebCore::toV8):
1006         * fileapi/Blob.cpp:
1007         (WebCore::Blob::webkitSlice):
1008         * fileapi/Blob.h:
1009         (Blob):
1010         * fileapi/File.h:
1011         (WebCore::toFile): Added.
1012         (WebCore):
1013         * fileapi/FileReader.cpp:
1014         (WebCore::FileReader::readAsArrayBuffer):
1015         (WebCore::FileReader::readAsBinaryString):
1016         (WebCore::FileReader::readAsText):
1017         (WebCore::FileReader::readAsDataURL):
1018         * fileapi/WebKitBlobBuilder.cpp:
1019         (WebCore::WebKitBlobBuilder::append):
1020         * platform/chromium/ClipboardChromium.cpp:
1021         (WebCore::ClipboardChromium::files):
1022         * platform/network/FormData.cpp:
1023         (WebCore::FormData::appendKeyValuePairItems):
1024         * xml/XMLHttpRequest.cpp:
1025         (WebCore::XMLHttpRequest::send):
1026
1027 2012-05-24  Darin Adler  <darin@apple.com>
1028
1029         SVGElement::addEventListener has peculiar RefPtr usage
1030         https://bugs.webkit.org/show_bug.cgi?id=86497
1031
1032         Reviewed by Andy Estes.
1033
1034         * svg/SVGElement.cpp:
1035         (WebCore::SVGElement::addEventListener): Switch to a more-standard style of RefPtr usage,
1036         getting rid of some unneeded reference count churn; also removed an unneeded special case
1037         for zero listeners.
1038
1039 2012-05-24  Raphael Kubo da Costa  <rakuco@webkit.org>
1040
1041         [EFL] Modify keycode conversion functions to return keycodes with location information after r118001.
1042         https://bugs.webkit.org/show_bug.cgi?id=87203
1043
1044         Reviewed by Andreas Kling.
1045
1046         Add the required changes to make
1047         fast/events/keydown-leftright-keys.html pass after r118001.
1048
1049         * platform/efl/EflKeyboardUtilities.cpp:
1050         (WebCore::createWindowsKeyMap): Translate the keycodes for
1051         "{left,right}{Shift,Alt,Control}" into the right windows keyboard
1052         definitions.
1053
1054 2012-05-24  Claudio Saavedra  <csaavedra@igalia.com>
1055
1056         [Gtk] Wrong cursor used for ne-resize
1057         https://bugs.webkit.org/show_bug.cgi?id=87366
1058
1059         Reviewed by Eric Seidel.
1060
1061         * platform/gtk/CursorGtk.cpp:
1062         (WebCore::Cursor::ensurePlatformCursor): Use GDK_TOP_RIGHT_CORNER
1063         for Cursor::NorthEastPanning.
1064
1065 2012-05-24  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
1066
1067         [Qt]  Fix Webkit1 + V8 build.
1068         https://bugs.webkit.org/show_bug.cgi?id=87368
1069
1070         Reviewed by Eric Seidel.
1071
1072         No new tests, because this is a buildfix.
1073
1074         * bindings/scripts/CodeGeneratorV8.pm:
1075         (GenerateImplementation):
1076         * bindings/v8/npruntime_impl.h:
1077         * bindings/v8/npruntime_priv.h:
1078
1079 2012-05-24  Dana Jansens  <danakj@chromium.org>
1080
1081         [chromium] Only display frames created with memory allocations meant to be displayed
1082         https://bugs.webkit.org/show_bug.cgi?id=85108
1083
1084         Reviewed by Adrienne Walker.
1085
1086         In this patch we remove the setVisible() code paths from CCProxy, and
1087         instead commit visiblity state along with a frame. We also commit a
1088         flag with a frame that indicates if the frame is one that can be drawn.
1089
1090         The impl host is set to visible during commit instead of using a
1091         special channel through the proxy, and the scheduler allows
1092         commits when we are waiting to draw our first frame but blocked on
1093         being non-visible.
1094
1095         canDraw is gated on a new flag that indicates if the frame is one meant
1096         for display. A frame is meant for display if the frame was generated
1097         with a memory allocation meant for display. At this time, any non-zero
1098         memory allocation is considered meant for display.
1099
1100         We prevent races by not changing the memory allocation at any time
1101         except during a commit. So we force a commit when the memory
1102         allocation needs to be adjusted and we are not visible. Similarly,
1103         we force a commit when visibility changes so that we are able to
1104         commit the visibility change to the impl tree.
1105
1106         In order to prevent drawing frames that are not meant for display
1107         with a single thread, we prevent compositing when the impl tree
1108         is not visible, with an early out in CCSingleThreadProxy.
1109
1110         Unit tests: CCLayerTreeHostTestVisibilityAndAllocationControlDrawing
1111
1112         * platform/graphics/chromium/LayerChromium.h:
1113         * platform/graphics/chromium/TiledLayerChromium.cpp:
1114         * platform/graphics/chromium/TiledLayerChromium.h:
1115         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1116         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
1117         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
1118         (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
1119         (WebCore::CCLayerTreeHost::setNeedsCommit):
1120         (WebCore):
1121         (WebCore::CCLayerTreeHost::setNeedsForcedCommit):
1122         (WebCore::CCLayerTreeHost::setVisible):
1123         (WebCore::CCLayerTreeHost::setContentsMemoryAllocationLimitBytes):
1124         (WebCore::CCLayerTreeHost::scheduleComposite):
1125         (WebCore::CCLayerTreeHost::updateLayers):
1126         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1127         (CCLayerTreeHost):
1128         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1129         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
1130         (WebCore::CCLayerTreeHostImpl::canDraw):
1131         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1132         (WebCore::CCLayerTreeHostImpl::sourceFrameCanBeDrawn):
1133         (WebCore::CCLayerTreeHostImpl::setSourceFrameCanBeDrawn):
1134         (CCLayerTreeHostImpl):
1135         * platform/graphics/chromium/cc/CCProxy.h:
1136         (CCProxy):
1137         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
1138         (WebCore::CCSchedulerStateMachine::drawSuspendedUntilCommit):
1139         (WebCore::CCSchedulerStateMachine::scheduledToDraw):
1140         (WebCore::CCSchedulerStateMachine::updateState):
1141         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1142         (WebCore::CCSingleThreadProxy::doCommit):
1143         (WebCore::CCSingleThreadProxy::setNeedsCommit):
1144         (WebCore):
1145         (WebCore::CCSingleThreadProxy::setNeedsForcedCommit):
1146         (WebCore::CCSingleThreadProxy::doComposite):
1147         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1148         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1149         (WebCore::CCThreadProxy::CCThreadProxy):
1150         (WebCore::CCThreadProxy::setNeedsForcedCommit):
1151         (WebCore):
1152         (WebCore::CCThreadProxy::setNeedsForcedCommitOnImplThread):
1153         (WebCore::CCThreadProxy::forceBeginFrameOnImplThread):
1154         (WebCore::CCThreadProxy::beginFrame):
1155         (WebCore::CCThreadProxy::scheduledActionCommit):
1156         * platform/graphics/chromium/cc/CCThreadProxy.h:
1157         (CCThreadProxy):
1158
1159 2012-05-24  Pavel Feldman  <pfeldman@chromium.org>
1160
1161         Web Inspector: [regression] search in formatted scripts is broken.
1162         https://bugs.webkit.org/show_bug.cgi?id=87377
1163
1164         Reviewed by Vsevolod Vlasov.
1165
1166         Using formatted content in search.
1167
1168         Test: inspector/debugger/script-formatter-search.html
1169
1170         * inspector/front-end/JavaScriptSource.js:
1171         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
1172         (WebInspector.JavaScriptSource.prototype.searchInContent.callbackWrapper):
1173         (WebInspector.JavaScriptSource.prototype.searchInContent):
1174
1175 2012-05-24  Philip Rogers  <pdr@google.com>
1176
1177         Refactor SVGAnimateTransformElement to avoid expensive determineAnimatedPropertyType call
1178         https://bugs.webkit.org/show_bug.cgi?id=87309
1179
1180         Reviewed by Nikolas Zimmermann.
1181
1182         This is a simple refactor that matches the work done in
1183         https://bugs.webkit.org/show_bug.cgi?id=87309 to avoid an expensive call.
1184
1185         No new tests, no actual effects beyond performance improvement.
1186
1187         * svg/SVGAnimateElement.h:
1188         (SVGAnimateElement):
1189         * svg/SVGAnimateTransformElement.cpp:
1190         (WebCore::SVGAnimateTransformElement::hasValidAttributeType):
1191
1192 2012-05-24  Csaba Osztrogonác  <ossy@webkit.org>
1193
1194         [Qt] Unreviewed trvial fixes.
1195
1196         * Target.pri: Typo fix after r118226.
1197         * WebCore.pri: Warning fix after r117291.
1198
1199 2012-05-24  Antti Koivisto  <antti@apple.com>
1200
1201         Move StyleRuleImport to a file of its own
1202         https://bugs.webkit.org/show_bug.cgi?id=87386
1203
1204         Rubber-stamped by Andreas Kling.
1205
1206         Move StyleRuleImport out from CSSImportRule.cpp/.h
1207
1208         * CMakeLists.txt:
1209         * GNUmakefile.list.am:
1210         * Target.pri:
1211         * WebCore.gypi:
1212         * WebCore.vcproj/WebCore.vcproj:
1213         * WebCore.xcodeproj/project.pbxproj:
1214         * css/CSSImportRule.cpp:
1215         (WebCore):
1216         (WebCore::CSSImportRule::href):
1217         * css/CSSImportRule.h:
1218         (WebCore):
1219         (CSSImportRule):
1220         * css/CSSParser.cpp:
1221         * css/StyleRuleImport.cpp: Copied from Source/WebCore/css/CSSImportRule.cpp.
1222         (WebCore):
1223         * css/StyleRuleImport.h: Copied from Source/WebCore/css/CSSImportRule.h.
1224         (WebCore):
1225         * css/StyleSheetContents.cpp:
1226
1227 2012-05-24  Sheriff Bot  <webkit.review.bot@gmail.com>
1228
1229         Unreviewed, rolling out r118352.
1230         http://trac.webkit.org/changeset/118352
1231         https://bugs.webkit.org/show_bug.cgi?id=87390
1232
1233         Caused 6 editing/spelling tests crash/fail on chromium in
1234         debug. (Requested by vsevik on #webkit).
1235
1236         * platform/graphics/skia/GraphicsContextSkia.cpp:
1237         (WebCore::GraphicsContext::drawLineForDocumentMarker):
1238
1239 2012-05-24  Alexander Pavlov  <apavlov@chromium.org>
1240
1241         Web Inspector: Support hierarchical context menus
1242         https://bugs.webkit.org/show_bug.cgi?id=86847
1243
1244         Reviewed by Pavel Feldman.
1245
1246         This patch makes use of the WebMenuItemInfo SubMenu type to expose the capability of building submenu items
1247         in the Web Inspector's context menu. ContextMenuItems are also passed/stored by reference/value rather than pointer
1248         in order to be consistent with the PlatformMenuDescription typedef.
1249
1250         * bindings/js/JSInspectorFrontendHostCustom.cpp:
1251         (WebCore::populateContextMenuItems): Enable submenu item population.
1252         (WebCore):
1253         (WebCore::JSInspectorFrontendHost::showContextMenu): Extract the menu population part into populateContextMenuItems().
1254         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
1255         (WebCore::populateContextMenuItems): Enable submenu item population.
1256         (WebCore):
1257         (WebCore::V8InspectorFrontendHost::showContextMenuCallback): Extract the menu population part into populateContextMenuItems().
1258         * inspector/InspectorFrontendHost.cpp:
1259         (WebCore::FrontendMenuProvider::create): Use reference instead of pointer for ContextMenuItems.
1260         (WebCore::FrontendMenuProvider::FrontendMenuProvider): Use reference instead of pointer for ContextMenuItems.
1261         (WebCore::FrontendMenuProvider::populateContextMenu): Use reference instead of pointer for ContextMenuItems.
1262         (WebCore::FrontendMenuProvider::contextMenuCleared):
1263         (FrontendMenuProvider):
1264         (WebCore::InspectorFrontendHost::showContextMenu): Use reference instead of pointer for ContextMenuItems.
1265         * inspector/InspectorFrontendHost.h:
1266         (InspectorFrontendHost):
1267         * inspector/front-end/ContextMenu.js: Support the tree-like structure of context menus.
1268         (WebInspector.ContextMenuItem):
1269         (WebInspector.ContextMenuItem.prototype.id):
1270         (WebInspector.ContextMenuItem.prototype.type):
1271         (WebInspector.ContextMenuItem.prototype._buildDescriptor):
1272         (WebInspector.ContextSubMenuItem):
1273         (WebInspector.ContextSubMenuItem.prototype.appendItem):
1274         (WebInspector.ContextSubMenuItem.prototype.appendSubMenuItem):
1275         (WebInspector.ContextSubMenuItem.prototype.appendCheckboxItem):
1276         (WebInspector.ContextSubMenuItem.prototype.appendSeparator):
1277         (WebInspector.ContextSubMenuItem.prototype._buildDescriptor):
1278         (WebInspector.ContextMenu):
1279         (WebInspector.ContextMenu.prototype.nextId):
1280         (WebInspector.ContextMenu.prototype.show):
1281         (WebInspector.ContextMenu.prototype._setHandler):
1282         (WebInspector.ContextMenu.prototype._buildDescriptor):
1283         * inspector/front-end/SoftContextMenu.js:
1284         (.WebInspector.SoftContextMenu): Support sub-menus.
1285         (.WebInspector.SoftContextMenu.prototype.show):
1286         (.WebInspector.SoftContextMenu.prototype._parentGlassPaneElement):
1287         (.WebInspector.SoftContextMenu.prototype._createMenuItem):
1288         (.WebInspector.SoftContextMenu.prototype._createSubMenu):
1289         (.WebInspector.SoftContextMenu.prototype._createSeparator):
1290         (.WebInspector.SoftContextMenu.prototype._menuItemMouseUp):
1291         (.WebInspector.SoftContextMenu.prototype._focus):
1292         (.WebInspector.SoftContextMenu.prototype._triggerAction):
1293         (.WebInspector.SoftContextMenu.prototype._showSubMenu):
1294         (.WebInspector.SoftContextMenu.prototype._buildMouseEventForSubMenu):
1295         (.WebInspector.SoftContextMenu.prototype._hideSubMenu):
1296         (.WebInspector.SoftContextMenu.prototype._menuItemMouseOut):
1297         (.WebInspector.SoftContextMenu.prototype._highlightMenuItem):
1298         (.WebInspector.SoftContextMenu.prototype._menuKeyDown):
1299         (.WebInspector.SoftContextMenu.prototype._glassPaneMouseUp):
1300         (.WebInspector.SoftContextMenu.prototype._discardMenu):
1301         (.WebInspector.SoftContextMenu.prototype._discardSubMenus):
1302         * inspector/front-end/inspector.css: Support for sub-menus, separator improvement.
1303         (.soft-context-menu-separator):
1304         (.soft-context-menu-separator > .separator-line):
1305         (.soft-context-menu-item-submenu-arrow):
1306         * platform/chromium/ContextMenuChromium.cpp:
1307         (WebCore::contextMenuItemVector): Implemented.
1308         (WebCore):
1309
1310 2012-05-24  Vivek Galatage  <vivekgalatage@gmail.com>
1311
1312         Web Inspector: Breakpoints Pane should not show context menu with no breakpoints
1313         https://bugs.webkit.org/show_bug.cgi?id=87340
1314
1315         Reviewed by Pavel Feldman.
1316
1317         Removed the method _contextMenu as this would be redundant call
1318         because _breakpointContextMenu would take care of showing the remove
1319         all breakpoints option.
1320
1321         * inspector/front-end/BreakpointsSidebarPane.js:
1322         (WebInspector.JavaScriptBreakpointsSidebarPane):
1323         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
1324
1325 2012-05-24  Yury Semikhatsky  <yurys@chromium.org>
1326
1327         Unreviewed. Chromium Mac build fix after r118357.
1328         Use full name specifier instead of "using" directive.
1329
1330         * inspector/InspectorMemoryAgent.cpp:
1331         (WebCore::jsHeapInfo):
1332         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
1333
1334 2012-05-24  Pavel Feldman  <pfeldman@chromium.org>
1335
1336         Web Inspector: introduce virtual resource for inspector stylesheet.
1337         https://bugs.webkit.org/show_bug.cgi?id=87357
1338
1339         Reviewed by Vsevolod Vlasov.
1340
1341         This change introduces virtual resource that represents inspector stylesheet (that is added for styles added via inspector).
1342         New resource has url of form "inspector://<page url folder>/inspector-stylesheet. It enables live editing and revision
1343         history of the inspector stylesheet.
1344
1345         Test: inspector/styles/edit-inspector-stylesheet.html
1346
1347         * inspector/Inspector.json:
1348         * inspector/InspectorCSSAgent.cpp:
1349         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
1350         (WebCore::InspectorCSSAgent::bindStyleSheet):
1351         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
1352         (WebCore::InspectorCSSAgent::detectOrigin):
1353         * inspector/InspectorCSSAgent.h:
1354         (InspectorCSSAgent):
1355         * inspector/InspectorDOMAgent.h:
1356         (InspectorDOMAgent):
1357         (WebCore::InspectorDOMAgent::pageAgent):
1358         * inspector/InspectorStyleSheet.cpp:
1359         (WebCore::InspectorStyleSheet::create):
1360         (WebCore::InspectorStyleSheet::InspectorStyleSheet):
1361         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
1362         (WebCore::InspectorStyleSheet::buildObjectForRule):
1363         (WebCore::InspectorStyleSheet::resourceStyleSheetText):
1364         (WebCore::InspectorStyleSheetForInlineStyle::create):
1365         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
1366         * inspector/InspectorStyleSheet.h:
1367         (WebCore):
1368         (InspectorStyleSheet):
1369         (WebCore::InspectorStyleSheet::canBind):
1370         (InspectorStyleSheetForInlineStyle):
1371         * inspector/front-end/CSSStyleModel.js:
1372         (WebInspector.CSSStyleModel):
1373         (WebInspector.CSSStyleModel.prototype._undoRedoCompleted):
1374         (WebInspector.CSSStyleModel.prototype.getViaInspectorResourceForRule):
1375         (WebInspector.CSSStyleModelResourceBinding):
1376         (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
1377         (WebInspector.CSSStyleModelResourceBinding.prototype._inspectedURLChanged):
1378         (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
1379         (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged):
1380         (WebInspector.CSSStyleModelResourceBinding.prototype._getViaInspectorResource.hadersLoaded):
1381         (WebInspector.CSSStyleModelResourceBinding.prototype._getViaInspectorResource):
1382         (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResource.overrideRequestContent.callbackWrapper):
1383         (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResource.overrideRequestContent):
1384         (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResource):
1385         (WebInspector.CSSStyleModelResourceBinding.prototype._viaInspectorResourceURL):
1386         * inspector/front-end/Resource.js:
1387         (WebInspector.Resource):
1388         (WebInspector.Resource.prototype.isHidden):
1389         * inspector/front-end/ResourceTreeModel.js:
1390         (WebInspector.ResourceTreeModel.prototype._onRequestUpdateDropped):
1391         (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
1392         (WebInspector.ResourceTreeFrame.prototype._navigate):
1393         (WebInspector.ResourceTreeFrame.prototype.addResource):
1394         * inspector/front-end/ResourcesPanel.js:
1395         (WebInspector.FrameTreeElement.prototype.appendResource):
1396         * inspector/front-end/ScriptsPanel.js:
1397         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1398         * inspector/front-end/StylesPanel.js:
1399         (WebInspector.InspectorStyleSource):
1400         * inspector/front-end/StylesSidebarPane.js:
1401         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode.callback):
1402         (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
1403         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
1404         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
1405
1406 2012-05-24  Robin Cao  <robin.cao@torchmobile.com.cn>
1407
1408         [BlackBerry] Possible deadlock in the WebGL code path
1409         https://bugs.webkit.org/show_bug.cgi?id=87375
1410
1411         Reviewed by Rob Buis.
1412
1413         Fix a deadlock happening in the WebGL code path. The mutex is locked
1414         but is not unlocked afterword. Also fix a possible double delete,
1415         the mutex m_frontBufferLock will be destroyed in the base class.
1416
1417         Covered by tests in fast/canvas/webgl.
1418
1419         * platform/graphics/blackberry/LayerCompositingThread.cpp:
1420         (WebCore::LayerCompositingThread::releaseTextureResources):
1421         * platform/graphics/blackberry/WebGLLayerWebKitThread.cpp:
1422         (WebCore::WebGLLayerWebKitThread::~WebGLLayerWebKitThread):
1423
1424 2012-05-24  Ian Vollick  <vollick@chromium.org>
1425
1426         [chromium] Forcibly sync running animations in the waiting state when synchronized start times are needed.
1427         https://bugs.webkit.org/show_bug.cgi?id=87153
1428
1429         Reviewed by James Robinson.
1430
1431         Unit test: CCLayerAnimationControllerTest.ForceSyncWhenSynchronizedStartTimeNeeded
1432
1433         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
1434         (WebCore::CCLayerAnimationController::replaceImplThreadAnimations):
1435
1436 2012-05-24  Ilya Tikhonovsky  <loislo@chromium.org>
1437
1438         Web Inspector: convert HeapSnapshotGridNode._provider into getter.
1439         https://bugs.webkit.org/show_bug.cgi?id=87382
1440
1441         I found that we create a provider for child nodes for the each DataGrid node in advance.
1442         It cost us one async call to the HeapSnapshot's worker per each such the node.
1443         I converted the property into the getter which is initializing the provider lazily.
1444
1445         Reviewed by Yury Semikhatsky.
1446
1447         * inspector/front-end/HeapSnapshot.js:
1448         * inspector/front-end/HeapSnapshotGridNodes.js:
1449         (WebInspector.HeapSnapshotGridNode):
1450         (WebInspector.HeapSnapshotGridNode.prototype.createProvider):
1451         (WebInspector.HeapSnapshotGridNode.prototype._provider):
1452         (WebInspector.HeapSnapshotGridNode.prototype.dispose):
1453         (WebInspector.HeapSnapshotGridNode.prototype._populate):
1454         (WebInspector.HeapSnapshotGridNode.prototype.expandWithoutPopulate):
1455         (WebInspector.HeapSnapshotGridNode.prototype._populateChildren.serializeNextChunk):
1456         (WebInspector.HeapSnapshotGridNode.prototype.sort):
1457         (WebInspector.HeapSnapshotGenericObjectNode):
1458         (WebInspector.HeapSnapshotGenericObjectNode.prototype.updateHasChildren):
1459         (WebInspector.HeapSnapshotObjectNode):
1460         (WebInspector.HeapSnapshotInstanceNode):
1461         (WebInspector.HeapSnapshotConstructorNode):
1462         (WebInspector.HeapSnapshotConstructorNode.prototype.createProvider):
1463         (WebInspector.HeapSnapshotConstructorNode.prototype.revealNodeBySnapshotObjectId):
1464         (WebInspector.HeapSnapshotDiffNode):
1465         (WebInspector.HeapSnapshotDiffNode.prototype.createProvider):
1466         (WebInspector.HeapSnapshotDominatorObjectNode):
1467         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.createProvider):
1468         (WebInspector.HeapSnapshotDominatorObjectNode.prototype.retrieveChildBySnapshotObjectId):
1469
1470 2012-05-24  Rakesh KN  <rakesh.kn@motorola.com>
1471
1472         Filter for RadioNodeList should be case sensitive.
1473         https://bugs.webkit.org/show_bug.cgi?id=87369
1474
1475         Reviewed by Kent Tamura.
1476
1477         Element's id/name attribute matching criteria is case sensitive now.
1478
1479         Modified existing test.
1480
1481         * html/RadioNodeList.cpp:
1482         (WebCore::RadioNodeList::nodeMatches):
1483         Element matching criteria is case sensitive.
1484
1485 2012-05-23  Yury Semikhatsky  <yurys@chromium.org>
1486
1487         Web Inspector: add a command to InspectorMemoryAgent for getting process memory break down
1488         https://bugs.webkit.org/show_bug.cgi?id=87263
1489
1490         Reviewed by Pavel Feldman.
1491
1492         Introduced new protocol command Memory.getProcessMemoryDistribution which returns
1493         memory distribution for the inspected process. Currently only JS allocated and used
1494         heap size is included.
1495
1496         * inspector/Inspector.json:
1497         * inspector/InspectorMemoryAgent.cpp:
1498         (WebCore::jsHeapInfo):
1499         (WebCore):
1500         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
1501         * inspector/InspectorMemoryAgent.h:
1502         (InspectorMemoryAgent):
1503         * platform/chromium/PlatformSupport.h:
1504         (PlatformSupport):
1505
1506 2012-05-24  Nikolas Zimmermann  <nzimmermann@rim.com>
1507
1508         SVGZoomAndPan constants are missing from window object
1509         https://bugs.webkit.org/show_bug.cgi?id=15494
1510
1511         Reviewed by Rob Buis.
1512
1513         Generate the SVGZoomAndPanConstructor, so that the constants defined in the IDL
1514         can be reached from the bindings. Provide a stub-implementation of ref/deref
1515         that's never used, as we don't actually use JSSVGZoomAndPan which needs this, but
1516         only the JSSVGZoomAndPanConstructor.
1517
1518         Add a new IDL flag "SuppressToJSObject" which disables generation of toJS/toV8
1519         methods for classes that are only used in SVGs interfaces via multiple inheritance.
1520         This affects: SVGFitToViewBox, SVGTests, SVGLangSapce, SVGExternalResourcesRequired, etc.
1521
1522         Unlike those classes SVGZoomAndPan defines constants, and thus needs a generated Constructor.
1523         That requires us to build JSSVGZoomAndPan.* (JSSVGFitToViewBox/etc. is generated, but not built!).
1524         Unfortunately this causes compilation problems on Windows, as it builds all sources in a single-file.
1525         MSVC can't decide whether it should call toJS(Node*) or toJS(SVGZoomAndPan*) for a SVGSVGElement.
1526         To avoid these problems stop generating toJS/toV8 completely for all SVG MI types. They were
1527         never used before, so there's no point in actually generating them, as it's now causing problems.
1528
1529         This is a preparation towards bug 15495, which covers implementing
1530         SVGSVGElement.currentView and the SVGViewSpec interface.
1531
1532         No new tests. The SVGZoomAndPan constructor is covered by existing tests, now that its enabled.
1533
1534         * CMakeLists.txt:
1535         * DerivedSources.cpp:
1536         * DerivedSources.pri:
1537         * GNUmakefile.list.am:
1538         * WebCore.gyp/WebCore.gyp:
1539         * WebCore.vcproj/WebCore.vcproj:
1540         * WebCore.xcodeproj/project.pbxproj:
1541         * bindings/scripts/CodeGeneratorJS.pm:
1542         (ShouldGenerateToJSDeclaration):
1543         (ShouldGenerateToJSImplementation):
1544         (GenerateHeader):
1545         (GenerateImplementation):
1546         * bindings/scripts/CodeGeneratorV8.pm:
1547         (GenerateHeader):
1548         * bindings/scripts/IDLAttributes.txt:
1549         * gyp/WebCore.gyp:
1550         * page/DOMWindow.idl:
1551         * svg/SVGDocument.cpp:
1552         (WebCore::SVGDocument::zoomAndPanEnabled):
1553         * svg/SVGExternalResourcesRequired.idl:
1554         * svg/SVGFitToViewBox.idl:
1555         * svg/SVGLangSpace.idl:
1556         * svg/SVGLocatable.idl:
1557         * svg/SVGRenderingIntent.idl:
1558         * svg/SVGSVGElement.cpp:
1559         (WebCore::SVGSVGElement::SVGSVGElement):
1560         (WebCore::SVGSVGElement::parseAttribute):
1561         (WebCore::SVGSVGElement::viewBoxToViewTransform):
1562         (WebCore::SVGSVGElement::setupInitialView):
1563         (WebCore::SVGSVGElement::inheritViewAttributes):
1564         * svg/SVGSVGElement.h:
1565         (SVGSVGElement):
1566         (WebCore::SVGSVGElement::useCurrentView):
1567         (WebCore::SVGSVGElement::setUseCurrentView):
1568         (WebCore::SVGSVGElement::zoomAndPan):
1569         (WebCore::SVGSVGElement::setZoomAndPan):
1570         * svg/SVGStylable.idl:
1571         * svg/SVGTests.idl:
1572         * svg/SVGURIReference.idl:
1573         * svg/SVGUnitTypes.idl:
1574         * svg/SVGViewElement.cpp:
1575         (WebCore::SVGViewElement::SVGViewElement):
1576         (WebCore::SVGViewElement::parseAttribute):
1577         * svg/SVGViewElement.h:
1578         (SVGViewElement):
1579         (WebCore::SVGViewElement::zoomAndPan):
1580         (WebCore::SVGViewElement::setZoomAndPan):
1581         * svg/SVGViewSpec.cpp:
1582         (WebCore::SVGViewSpec::SVGViewSpec):
1583         (WebCore::SVGViewSpec::setTransformString):
1584         (WebCore::SVGViewSpec::parseViewSpec):
1585         * svg/SVGViewSpec.h:
1586         (SVGViewSpec):
1587         (WebCore::SVGViewSpec::transformBaseValue):
1588         (WebCore::SVGViewSpec::zoomAndPan):
1589         (WebCore::SVGViewSpec::setZoomAndPanBaseValue):
1590         * svg/SVGZoomAndPan.cpp:
1591         (WebCore::SVGZoomAndPan::isKnownAttribute):
1592         (WebCore::SVGZoomAndPan::addSupportedAttributes):
1593         (WebCore):
1594         (WebCore::SVGZoomAndPan::parseZoomAndPan):
1595         (WebCore::SVGZoomAndPan::ref):
1596         (WebCore::SVGZoomAndPan::deref):
1597         (WebCore::SVGZoomAndPan::setZoomAndPan):
1598         * svg/SVGZoomAndPan.h:
1599         (SVGZoomAndPan):
1600         (WebCore::SVGZoomAndPan::parseFromNumber):
1601         (WebCore::SVGZoomAndPan::parseAttribute):
1602         (WebCore::SVGZoomAndPan::zoomAndPan):
1603         * svg/SVGZoomAndPan.idl:
1604
1605 2012-05-24  Hironori Bono  <hbono@chromium.org>
1606
1607         Enable grammar checking on Chromium when we paste text.
1608         https://bugs.webkit.org/show_bug.cgi?id=74393
1609
1610         Reviewed by Hajime Morita.
1611
1612         This change enables grammar checking on Chromium and implements a mock grammar
1613         checker to fix a failing test.
1614
1615         Test: editing/spelling/grammar-markers.html
1616
1617         * platform/graphics/skia/GraphicsContextSkia.cpp:
1618         (WebCore::GraphicsContext::drawLineForDocumentMarker): render grammar markers in gray on Windows and Linux or in green on Mac.
1619
1620 2012-05-17  Andrey Kosyakov  <caseq@chromium.org>
1621
1622         Web Inspector: add inspector instrumentation interface for compositing
1623         https://bugs.webkit.org/show_bug.cgi?id=83842
1624
1625         Reviewed by Pavel Feldman.
1626
1627         - added instrumentation methods to mark start/end of layer compositing;
1628         - added associated timeline record type (CompositeLayers);
1629         - plumbed the calls from instrumentation up to the timeline panel;
1630         - actual call-sites are platform-specific and will come as separate patches.
1631
1632         * inspector/InspectorInstrumentation.cpp:
1633         (WebCore::InspectorInstrumentation::willCompositeImpl):
1634         (WebCore):
1635         (WebCore::InspectorInstrumentation::didCompositeImpl):
1636         * inspector/InspectorInstrumentation.h:
1637         (InspectorInstrumentation):
1638         (WebCore::InspectorInstrumentation::willComposite):
1639         (WebCore):
1640         (WebCore::InspectorInstrumentation::didComposite):
1641         * inspector/InspectorTimelineAgent.cpp:
1642         (TimelineRecordType):
1643         (WebCore::InspectorTimelineAgent::willComposite):
1644         (WebCore):
1645         (WebCore::InspectorTimelineAgent::didComposite):
1646         * inspector/InspectorTimelineAgent.h:
1647         (InspectorTimelineAgent):
1648         * inspector/front-end/TimelineModel.js:
1649         * inspector/front-end/TimelinePresentationModel.js:
1650         (WebInspector.TimelinePresentationModel.recordStyle):
1651
1652 2012-05-24  Ilya Tikhonovsky  <loislo@chromium.org>
1653
1654         Unreviewed Web Inspector: remove obsolete isDetailedSnapshot method from HeapSnapshotView.
1655
1656         * inspector/front-end/HeapSnapshotView.js:
1657
1658 2012-05-24  Vivek Galatage  <vivekgalatage@gmail.com>
1659
1660         Web Inspector: localStorage items are not updated when the storage changes
1661         https://bugs.webkit.org/show_bug.cgi?id=83012
1662
1663         Reviewed by Pavel Feldman.
1664
1665         Renamed the inspector protocol UpdateDOMStorage to domStorageUpdated.
1666         Instrumented StorageEventDispatcher to send the update event to the
1667         front-end. Also removed the way DOM Storage Agent used to listen for
1668         the storage events. Added new test to verify the update notifications.
1669
1670         Test: inspector/storage-panel-dom-storage-update.html
1671
1672         * dom/EventListener.h:
1673         * inspector/Inspector.json:
1674         * inspector/InspectorDOMStorageAgent.cpp:
1675         (WebCore):
1676         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
1677         (WebCore::InspectorDOMStorageAgent::storageId):
1678         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
1679         (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
1680         * inspector/InspectorDOMStorageAgent.h:
1681         (InspectorDOMStorageAgent):
1682         * inspector/InspectorDOMStorageResource.cpp:
1683         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
1684         (WebCore::InspectorDOMStorageResource::isSameHostAndType):
1685         (WebCore::InspectorDOMStorageResource::unbind):
1686         * inspector/InspectorDOMStorageResource.h:
1687         (WebCore):
1688         (InspectorDOMStorageResource):
1689         (WebCore::InspectorDOMStorageResource::create):
1690         (WebCore::InspectorDOMStorageResource::id):
1691         (WebCore::InspectorDOMStorageResource::storageArea):
1692         (WebCore::InspectorDOMStorageResource::frame):
1693         * inspector/InspectorInstrumentation.cpp:
1694         (WebCore::InspectorInstrumentation::didDispatchDOMStorageEventImpl):
1695         (WebCore):
1696         * inspector/InspectorInstrumentation.h:
1697         (InspectorInstrumentation):
1698         (WebCore::InspectorInstrumentation::didUseDOMStorage):
1699         (WebCore):
1700         (WebCore::InspectorInstrumentation::didDispatchDOMStorageEvent):
1701         * inspector/front-end/DOMStorage.js:
1702         (WebInspector.DOMStorageDispatcher.prototype.domStorageUpdated):
1703         * inspector/front-end/ResourcesPanel.js:
1704         (WebInspector.ResourcesPanel.prototype.domStorageUpdated):
1705         * storage/StorageEventDispatcher.cpp:
1706         (WebCore::StorageEventDispatcher::dispatch):
1707
1708 2012-05-23  Ilya Tikhonovsky  <loislo@chromium.org>
1709
1710         Web Inspector: introduce console proxy object for HeapSnapshot worker.
1711         https://bugs.webkit.org/show_bug.cgi?id=87346
1712
1713         There is no console object in html5 workers at the moment.
1714         This makes me sad when I'm troubleshooting the HeapSnapshot stuff.
1715         I wrote a simplest proxy object which sends the log, info and error messages
1716         to the WebInspector window.
1717
1718         Reviewed by Pavel Feldman.
1719
1720         * inspector/front-end/HeapSnapshotProxy.js:
1721         (WebInspector.HeapSnapshotRealWorker.prototype._messageReceived):
1722         * inspector/front-end/HeapSnapshotWorker.js:
1723         (WebInspector.WorkerConsole):
1724         (WebInspector.WorkerConsole.prototype.log):
1725         (WebInspector.WorkerConsole.prototype.error):
1726         (WebInspector.WorkerConsole.prototype.info):
1727         (WebInspector.WorkerConsole.prototype._postMessage):
1728
1729 2012-05-24  Shinya Kawanaka  <shinyak@chromium.org>
1730
1731         Elements in Shadow DOM are not resizable.
1732         https://bugs.webkit.org/show_bug.cgi?id=87342
1733
1734         Reviewed by Ryosuke Niwa.
1735
1736         In RenderLayer::resize(), shadowAncestorNode() was used but if the ancestor node is used,
1737         it is not possible to resize elements in Shadow DOM.
1738
1739         The comments said it is necessary for textarea, however actually it is not necessary now.
1740         Existing test (fast/css/resize-corner-tracking) covers it.
1741
1742         Test: fast/dom/shadow/resize-in-shadow-dom.html
1743
1744         * rendering/RenderLayer.cpp:
1745         (WebCore::RenderLayer::resize):
1746
1747 2012-05-24  Antti Koivisto  <antti@apple.com>
1748
1749         Move StyleSheetContents to a separate file
1750         https://bugs.webkit.org/show_bug.cgi?id=87354
1751
1752         Reviewed by Eric Seidel.
1753
1754         Move StyleSheetContents class to StyleSheetContents.h/cpp.
1755
1756         * CMakeLists.txt:
1757         * GNUmakefile.list.am:
1758         * Target.pri:
1759         * WebCore.gypi:
1760         * WebCore.vcproj/WebCore.vcproj:
1761         * WebCore.xcodeproj/project.pbxproj:
1762         * css/CSSFontFaceSrcValue.cpp:
1763         * css/CSSGrammar.y:
1764         * css/CSSImportRule.cpp:
1765         * css/CSSParser.cpp:
1766         * css/CSSPrimitiveValue.cpp:
1767         * css/CSSRule.cpp:
1768         * css/CSSStyleSheet.cpp:
1769         (WebCore::CSSStyleSheet::create):
1770         (WebCore::CSSStyleSheet::href):
1771         (WebCore):
1772         (WebCore::CSSStyleSheet::baseURL):
1773         (WebCore::CSSStyleSheet::isLoading):
1774         * css/CSSStyleSheet.h:
1775         (WebCore):
1776         (CSSStyleSheet):
1777         * css/StylePropertySet.cpp:
1778         * css/StyleResolver.cpp:
1779         * css/StyleSheetContents.cpp: Copied from css/CSSStyleSheet.cpp.
1780         (WebCore):
1781         * css/StyleSheetContents.h: Copied from css/CSSStyleSheet.h.
1782         (WebCore):
1783         * dom/DOMImplementation.cpp:
1784         (WebCore::XMLMIMETypeRegExp::XMLMIMETypeRegExp):
1785         * dom/Document.cpp:
1786         * dom/ProcessingInstruction.cpp:
1787         * dom/StyleElement.cpp:
1788         * html/HTMLLinkElement.cpp:
1789         * html/HTMLStyleElement.cpp:
1790         * inspector/InspectorStyleSheet.cpp:
1791         * loader/cache/CachedCSSStyleSheet.cpp:
1792         * page/PageSerializer.cpp:
1793
1794 2012-05-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>
1795
1796         [Qt] Buildfix for the minimal build because the r118197 broke it.
1797         https://bugs.webkit.org/show_bug.cgi?id=87096
1798
1799         Reviewed by Csaba Osztrogonác.
1800
1801         * plugins/PluginData.cpp:
1802         (WebCore):
1803         (WebCore::PluginData::refresh):
1804         (WebCore::PluginData::initPlugins):
1805
1806 2012-05-23  Ilya Tikhonovsky  <loislo@chromium.org>
1807
1808         Unreviewed: Web Inspector single line fix for r118162.
1809
1810         * inspector/front-end/HeapSnapshotDataGrids.js:
1811         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._populateChildren):
1812
1813 2012-05-23  Lu Guanqun  <guanqun.lu@intel.com>
1814
1815         sort the array 'non_wrapper_types'
1816         https://bugs.webkit.org/show_bug.cgi?id=87335
1817
1818         Reviewed by Kentaro Hara.
1819
1820         * bindings/scripts/CodeGeneratorV8.pm:
1821
1822 2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
1823
1824         Document.elementFromPoint exposes inner element of Shadow DOM.
1825         https://bugs.webkit.org/show_bug.cgi?id=87235
1826
1827         Reviewed by Dimitri Glazkov.
1828
1829         Document::elementFromPoint didn't consider nested Shadow DOM.
1830         The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.
1831
1832         Test: fast/dom/shadow/element-from-point-in-nested-shadow.html
1833
1834         * dom/Document.cpp:
1835         (WebCore::Document::elementFromPoint):
1836
1837 2012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
1838
1839         Unreviewed, rolling out r118297.
1840         http://trac.webkit.org/changeset/118297
1841         https://bugs.webkit.org/show_bug.cgi?id=87338
1842
1843         It caused several layout failures on Mac (Requested by
1844         sundiamonde on #webkit).
1845
1846         * rendering/RenderBlock.cpp:
1847         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
1848
1849 2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
1850
1851         Document.caretRangeFromPoint exposes inner elemnet of Shadow DOM.
1852         https://bugs.webkit.org/show_bug.cgi?id=87231
1853
1854         Reviewed by Dimitri Glazkov.
1855
1856         Document::caretRangeFromPoint didn't consider nested Shadow DOM.
1857         The container node should be adjusted up to document TreeScope beyond ShadowRoot TreeScope.
1858
1859         Test: fast/dom/shadow/caret-range-from-point-in-nested-shadow.html
1860
1861         * dom/Document.cpp:
1862         (WebCore::Document::caretRangeFromPoint):
1863
1864 2012-05-23  Julien Chaffraix  <jchaffraix@webkit.org>
1865
1866         Crash in RenderTableCol::nextColumn
1867         https://bugs.webkit.org/show_bug.cgi?id=87314
1868
1869         Reviewed by Abhishek Arya.
1870
1871         Tests: fast/table/canvas-column-in-column-group.html
1872                fast/table/columngroup-inside-columngroup.html
1873
1874         The issue comes from elements not abiding by the display property (e.g. canvas). This means
1875         that any renderer with display: table-column would pass the current isChildAllowed check and
1876         would confuse our algorithm to iterate.
1877
1878         We were getting away with allowing those children as table columns or column groups don't
1879         paint themselves but it's better to just not allow such children in the first place.
1880
1881         * rendering/RenderTableCol.cpp:
1882         (WebCore::RenderTableCol::isChildAllowed):
1883         Fixed the logic to only accept proper column renderer (RenderTableCol with display: column
1884         to ignore column-groups). Also removed an unneeded NULL-check.
1885
1886 2012-05-23  Jer Noble  <jer.noble@apple.com>
1887
1888         REGRESSION: compositing/video/video-poster.html fails on Mac
1889         https://bugs.webkit.org/show_bug.cgi?id=87199
1890
1891         Reviewed by Maciej Stachowiak.
1892
1893         No new tests; fixes failing compositing/video/video-poster.html test.
1894
1895         Instead of creating the video layer directly, simply allow the layer
1896         to be created in updateStates() by changing the definition of
1897         isReadyForVideoSetup() to bypass the m_isAllowedToRender check if
1898         the player reports a video track is present.  This causes the video layer
1899         to be created and for future calls to prepareForRendering() to result
1900         in calls to mediaPlayerRenderingModeChanged().
1901
1902         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1903         (WebCore::MediaPlayerPrivateAVFoundation::isReadyForVideoSetup):
1904         (WebCore::MediaPlayerPrivateAVFoundation::metadataLoaded):
1905
1906 2012-05-23  Nico Weber  <thakis@chromium.org>
1907
1908         [chromium/mac] Unbreak popup menus.
1909         https://bugs.webkit.org/show_bug.cgi?id=87325
1910
1911         Reviewed by David Levin.
1912
1913         http://svn.webkit.org/repository/webkit/trunk@117607 added this function, but the
1914         Chromium/Mac build doesn't use the file added in that change and hence didn't have
1915         the category method.. Adding it doesn't help, as the category calls a
1916         10.7-only function. Just don't use the category for chromium/mac. Fixes
1917         http://crbug.com/129418
1918
1919         * platform/mac/WebCoreNSCellExtras.h:
1920
1921 2012-05-23  Ojan Vafai  <ojan@chromium.org>
1922
1923         add back the ability to disable flexbox
1924         https://bugs.webkit.org/show_bug.cgi?id=87147
1925
1926         Reviewed by Tony Chang.
1927
1928         * Configurations/FeatureDefines.xcconfig:
1929         * css/CSSParser.cpp:
1930         (WebCore::isValidKeywordPropertyAndValue):
1931
1932 2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
1933
1934         [Shadow] mousewheel event isn't fired on nodes in Shadow DOM.
1935         https://bugs.webkit.org/show_bug.cgi?id=87218
1936
1937         Reviewed by Dimitri Glazkov.
1938
1939         EventHander::handleWheelEvent re-targets an event to a shadow ancestor node,
1940         however it should be done by adjusting event target. So we don't need to have it.
1941
1942         Tests: fast/dom/shadow/wheel-event-in-shadow-dom.html
1943                fast/dom/shadow/wheel-event-on-input-in-shadow-dom.html
1944
1945         * page/EventHandler.cpp:
1946         (WebCore::EventHandler::handleWheelEvent):
1947
1948 2012-05-23  Huang Dongsung  <luxtella@company100.net>
1949
1950         Remove an unused setter in CachedResource.h.
1951         https://bugs.webkit.org/show_bug.cgi?id=87324
1952
1953         CachedResource::setInLiveDecodedResourcesList was defined in r24925, but it has
1954         been unused.
1955
1956         Reviewed by Darin Adler.
1957
1958         * loader/cache/CachedResource.h:
1959
1960 2012-05-23  Hayato Ito  <hayato@chromium.org>
1961
1962         Adjust a target node of a mouse event correctly when a distributed text node is clicked.
1963         https://bugs.webkit.org/show_bug.cgi?id=86999
1964
1965         Reviewed by Dimitri Glazkov.
1966
1967         Make EventHandler::updateMouseEventTargetNode() be aware of shadow dom subtree
1968         so that an insertion point can receive an event when a distributed text node is clicked.
1969
1970         Tests: fast/dom/shadow/shadow-dom-event-dispatching.html
1971
1972         * page/EventHandler.cpp:
1973         (WebCore::EventHandler::updateMouseEventTargetNode):
1974
1975 2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>
1976
1977         [Shadow] drop event is not fired on nodes in Shadow DOM
1978         https://bugs.webkit.org/show_bug.cgi?id=85774
1979
1980         Reviewed by Dimitri Glazkov.
1981
1982         EventHander::updateDragAndDrop re-targets an event to a shadow ancestor node,
1983         however it should be done by adjusting event target. So we don't need to have it.
1984
1985         Tests: fast/dom/shadow/drop-event-for-input-in-shadow.html
1986                fast/dom/shadow/drop-event-in-shadow.html
1987
1988         * page/EventHandler.cpp:
1989         (WebCore::EventHandler::updateDragAndDrop):
1990
1991 2012-05-23  Emil A Eklund  <eae@chromium.org>
1992
1993         REGRESSION (115573): Incorrect rounding of margins for floats
1994         https://bugs.webkit.org/show_bug.cgi?id=87319
1995
1996         Reviewed by Eric Seidel.
1997
1998         In RenderBlock::computeInlinePreferredLogicalWidths we used a float to
1999         accumulate margins for floating children while the children themselves
2000         represent their margins as LayoutUnits. Due to lack of rounding this can
2001         cause the block to be too small at certain certain zoom levels, causing
2002         unwanted wrapping. 
2003
2004         This patch changes computeInlinePreferredLogicalWidths to use a
2005         LayoutUnit to accumulate the margins and thus ensures that the margin
2006         values are rounded the same way.
2007
2008         Test: fast/block/float/floats-with-margin-should-not-wrap.html
2009
2010         * rendering/RenderBlock.cpp:
2011         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
2012
2013 2012-05-23  Huang Dongsung  <luxtella@company100.net>
2014
2015         Remove unused declarations in MemoryCache.h
2016         https://bugs.webkit.org/show_bug.cgi?id=87323
2017
2018         It is originated from r75912.
2019
2020         Reviewed by Darin Adler.
2021
2022         * loader/cache/MemoryCache.h:
2023
2024 2012-05-23  Eric Seidel  <eric@webkit.org>
2025
2026         Add seamless layout code (and pass most of the remaining seamless tests)
2027         https://bugs.webkit.org/show_bug.cgi?id=86608
2028
2029         Reviewed by Ojan Vafai.
2030
2031         This patch contains almost all the layout changes needed for seamless iframes.
2032         I removed the scroll-bar avoiding code at the last moment, as it didn't
2033         work for platforms other than mac-lion.  I'll add that, as well as the
2034         HTMLIFrameElement.seamless idl attribute in a follow-up patch.
2035
2036         Seamless iframes piggy-back a bit on the existing frame-flattening
2037         logic, however seamless is different from frame-flattening in a few ways:
2038         - Frame flattening can only ever make an iframe larger (seamless just behaves like a normal div).
2039         - Frame flattening disables scrollbars (seamless frames behave like normal overflow: auto divs).
2040         - Seamless only has to work with iframes (flattening works with frame/frameset as well).
2041         - Seamless support shrink-wrap size negotiation when the iframe is inline.
2042
2043         Test: fast/frames/seamless/seamless-percent-height.html
2044
2045         * css/StyleResolver.cpp:
2046         (WebCore::StyleResolver::adjustRenderStyle): map inline -> inline-block for seamless iframes.
2047         * dom/Document.cpp:
2048         (WebCore::Document::scheduleStyleRecalc):
2049          - Seamless iframes don't manage their own style recalc.
2050         (WebCore::Document::recalcStyle):
2051          - We should make sure our parent is resolved before we are, but currently that causes some tests to crash
2052            I don't have a test to demonstrate this need yet, as presumably it's fulfilled through other codepaths atm.
2053         * page/FrameView.cpp:
2054         (WebCore::FrameView::scheduleRelayout): Do the cheaper check first.
2055         (WebCore::FrameView::isInChildFrameWithFrameFlattening): Make frameview layout abort child layouts like how frame flattening does.
2056         * rendering/RenderBox.h:
2057         (WebCore::RenderBox::stretchesToViewport): Disable the stretch-to-viewport quirk for seamless iframes (it makes no sense and breaks the layout code).
2058         * rendering/RenderIFrame.cpp:
2059         (WebCore::RenderIFrame::computeLogicalHeight):
2060          - This function is needed for the child document to participate in the normal block shrink-wrap algorithm.
2061            Thankfully all the shrink-wrap logic is in RenderBox instead of RenderBlock. In the future we may make
2062            RenderIframe a RenderBlock for the seamless case. We may just split RenderIframe into two renderers.
2063         (WebCore::RenderIFrame::computeLogicalWidth):
2064         (WebCore::RenderIFrame::shouldComputeSizeAsReplaced):
2065          - seamless iframes behave like blocks, not inline replaced elements.
2066         (WebCore):
2067         (WebCore::RenderIFrame::isInlineBlockOrInlineTable):
2068          - Behave like an inline-block when marked inline.
2069         (WebCore::RenderIFrame::minPreferredLogicalWidth):
2070          - When asked for our pref widths, return those of our child document.
2071         (WebCore::RenderIFrame::maxPreferredLogicalWidth):
2072         (WebCore::RenderIFrame::isSeamless): helper function
2073         (WebCore::RenderIFrame::contentRootRenderer): helper function
2074         (WebCore::RenderIFrame::flattenFrame): seamless iframes never use the frame-flattening feature.
2075         (WebCore::RenderIFrame::layoutSeamlessly): The guts of seamless layout.
2076         (WebCore::RenderIFrame::layout):
2077         * rendering/RenderIFrame.h:
2078         (WebCore):
2079         (RenderIFrame):
2080
2081 2012-05-23  Rafael Brandao  <rafael.lobo@openbossa.org>
2082
2083         [Qt] GraphicsContext should avoid converting rotation angle to degrees
2084         https://bugs.webkit.org/show_bug.cgi?id=87317
2085
2086         Reviewed by Noam Rosenthal.
2087
2088         The angle for rotate is already in radians, so we should take advantage of it
2089         by using QTransform::rotateRadians, rather than converting it back internally.
2090
2091         * platform/graphics/qt/GraphicsContextQt.cpp:
2092         (WebCore::GraphicsContext::rotate):
2093
2094 2012-05-23  David Tseng  <dtseng@google.com>
2095
2096         AX: Prevents assertion from potentially dereferencing null pointer.
2097         https://bugs.webkit.org/show_bug.cgi?id=87290
2098
2099         Reviewed by Chris Fleizach.
2100
2101         Changes to assertions. Coverage by existing tests.
2102
2103         * accessibility/AccessibilityTable.cpp:
2104         (WebCore::AccessibilityTable::cellForColumnAndRow):
2105
2106 2012-05-23  Tony Chang  <tony@chromium.org>
2107
2108         auto margins on flexbox should allocate space in the cross direction
2109         https://bugs.webkit.org/show_bug.cgi?id=86913
2110
2111         Reviewed by Ojan Vafai.
2112
2113         Test: css3/flexbox/auto-margins.html
2114
2115         * rendering/RenderFlexibleBox.cpp:
2116         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis):
2117         (WebCore):
2118         (WebCore::RenderFlexibleBox::updateAutoMarginsInCrossAxis):
2119         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): If we have flex-align: baseline and auto margins, we ignore flex-align: baseline.
2120         (WebCore::RenderFlexibleBox::alignChildren): auto margins apply before flex-align.
2121         * rendering/RenderFlexibleBox.h:
2122
2123 2012-05-23  Kentaro Hara  <haraken@chromium.org>
2124
2125         Unreviewed, rolling out r118120.
2126         http://trac.webkit.org/changeset/118120
2127         https://bugs.webkit.org/show_bug.cgi?id=87193
2128
2129         some LayoutTests crash since the patch passes a NULL to
2130         Null(isolate)
2131
2132         * bindings/scripts/CodeGeneratorV8.pm:
2133         (GenerateHeader):
2134         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2135         (WebCore::toV8):
2136         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2137         (WebCore::toV8):
2138         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2139         (WebCore::toV8):
2140         * bindings/scripts/test/V8/V8TestEventTarget.h:
2141         (WebCore::toV8):
2142         * bindings/scripts/test/V8/V8TestException.h:
2143         (WebCore::toV8):
2144         * bindings/scripts/test/V8/V8TestInterface.h:
2145         (WebCore::toV8):
2146         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2147         (WebCore::toV8):
2148         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2149         (WebCore::toV8):
2150         * bindings/scripts/test/V8/V8TestNode.h:
2151         (WebCore::toV8):
2152         * bindings/scripts/test/V8/V8TestObj.h:
2153         (WebCore::toV8):
2154         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2155         (WebCore::toV8):
2156
2157 2012-05-23  Kentaro Hara  <haraken@chromium.org>
2158
2159         Unreviewed, rolling out r118129.
2160         http://trac.webkit.org/changeset/118129
2161         https://bugs.webkit.org/show_bug.cgi?id=87202
2162
2163         some LayoutTests crash since the patch passes a NULL to
2164         Null(isolate)
2165
2166         * bindings/scripts/CodeGeneratorV8.pm:
2167         (GenerateNormalAttrGetter):
2168         (GenerateFunctionCallback):
2169         (NativeToJSValue):
2170         * bindings/scripts/test/V8/V8TestObj.cpp:
2171         (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
2172         (WebCore::TestObjV8Internal::getSVGDocumentCallback):
2173         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2174         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
2175         (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
2176         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
2177         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
2178
2179 2012-05-23  Kentaro Hara  <haraken@chromium.org>
2180
2181         Unreviewed, rolling out r118133.
2182         http://trac.webkit.org/changeset/118133
2183         https://bugs.webkit.org/show_bug.cgi?id=87207
2184
2185         some LayoutTests crash since the patch passes a NULL to
2186         Null(isolate)
2187
2188         * bindings/v8/custom/V8BlobCustom.cpp:
2189         (WebCore::toV8):
2190         * bindings/v8/custom/V8CSSRuleCustom.cpp:
2191         (WebCore::toV8):
2192         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
2193         (WebCore::toV8):
2194         * bindings/v8/custom/V8CSSValueCustom.cpp:
2195         (WebCore::toV8):
2196         * bindings/v8/custom/V8ClipboardCustom.cpp:
2197         (WebCore::V8Clipboard::typesAccessorGetter):
2198         * bindings/v8/custom/V8CoordinatesCustom.cpp:
2199         (WebCore::V8Coordinates::altitudeAccessorGetter):
2200         (WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
2201         (WebCore::V8Coordinates::headingAccessorGetter):
2202         (WebCore::V8Coordinates::speedAccessorGetter):
2203         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2204         (WebCore::toV8):
2205         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
2206         (WebCore::toV8):
2207         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2208         (WebCore::toV8):
2209         * bindings/v8/custom/V8DataViewCustom.cpp:
2210         (WebCore::toV8):
2211         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
2212         (WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
2213         (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
2214         (WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
2215         (WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
2216         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
2217         (WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
2218         (WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
2219         (WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
2220         (WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
2221         * bindings/v8/custom/V8DocumentCustom.cpp:
2222         (WebCore::toV8):
2223         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
2224         (WebCore::V8Document::locationAccessorGetter):
2225         * bindings/v8/custom/V8EntryCustom.cpp:
2226         (WebCore::toV8):
2227         * bindings/v8/custom/V8EntrySyncCustom.cpp:
2228         (WebCore::toV8):
2229         * bindings/v8/custom/V8EventCustom.cpp:
2230         (WebCore::toV8):
2231         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
2232         (WebCore::toV8):
2233         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
2234         (WebCore::toV8):
2235         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2236         (WebCore::V8HTMLCanvasElement::getContextCallback):
2237         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2238         (WebCore::toV8):
2239
2240 2012-05-23  Kentaro Hara  <haraken@chromium.org>
2241
2242         Unreviewed, rolling out r118134.
2243         http://trac.webkit.org/changeset/118134
2244         https://bugs.webkit.org/show_bug.cgi?id=87209
2245
2246         some LayoutTests crash since the patch passes a NULL to
2247         Null(isolate)
2248
2249         * bindings/v8/custom/V8HTMLElementCustom.cpp:
2250         (WebCore::toV8Object):
2251         (WebCore::toV8):
2252         * bindings/v8/custom/V8HistoryCustom.cpp:
2253         (WebCore::V8History::stateAccessorGetter):
2254         * bindings/v8/custom/V8IDBAnyCustom.cpp:
2255         (WebCore::toV8):
2256         * bindings/v8/custom/V8IDBKeyCustom.cpp:
2257         (WebCore::toV8):
2258         * bindings/v8/custom/V8ImageDataCustom.cpp:
2259         (WebCore::toV8):
2260         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
2261         (WebCore::toV8):
2262         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
2263         (WebCore::toV8):
2264         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
2265         (WebCore::toV8):
2266         * bindings/v8/custom/V8LocationCustom.cpp:
2267         (WebCore::toV8):
2268         * bindings/v8/custom/V8MessageEventCustom.cpp:
2269         (WebCore::V8MessageEvent::dataAccessorGetter):
2270         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2271         (WebCore::toV8):
2272         * bindings/v8/custom/V8NodeCustom.cpp:
2273         (WebCore::V8Node::insertBeforeCallback):
2274         (WebCore::V8Node::replaceChildCallback):
2275         (WebCore::V8Node::removeChildCallback):
2276         (WebCore::V8Node::appendChildCallback):
2277         (WebCore::toV8Slow):
2278         * bindings/v8/custom/V8PopStateEventCustom.cpp:
2279         (WebCore::V8PopStateEvent::stateAccessorGetter):
2280         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
2281         (WebCore::V8SQLResultSetRowList::itemCallback):
2282         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
2283         (WebCore::toV8):
2284         * bindings/v8/custom/V8SVGElementCustom.cpp:
2285         (WebCore::toV8):
2286         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
2287         (WebCore::toV8):
2288         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
2289         (WebCore::toV8):
2290         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
2291         (WebCore::toV8):
2292         * bindings/v8/custom/V8StyleSheetCustom.cpp:
2293         (WebCore::toV8):
2294         * bindings/v8/custom/V8TrackEventCustom.cpp:
2295         (WebCore::V8TrackEvent::trackAccessorGetter):
2296         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
2297         (WebCore::toV8):
2298         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
2299         (WebCore::toV8):
2300         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
2301         (WebCore::toV8):
2302         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
2303         (WebCore::toV8):
2304         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2305         (WebCore::toV8Object):
2306         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
2307         (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
2308         * bindings/v8/custom/V8WorkerContextCustom.cpp:
2309         (WebCore::toV8):
2310
2311 2012-05-23  James Robinson  <jamesr@chromium.org>
2312
2313         Add a Setting to make position:fixed form a new stacking context
2314         https://bugs.webkit.org/show_bug.cgi?id=87186
2315
2316         Reviewed by Adam Barth.
2317
2318         position:fixed elements form a new stacking context in several mobile WebKit ports and in the Qt port always. To
2319         be consistent across devices, we want to try turning it on everywhere. This will likely cause compatibility
2320         issues, so we need a runtime setting in order to stage the change carefully.
2321
2322         Tests: fast/block/positioning/fixed-position-stacking-context.html
2323                fast/block/positioning/fixed-position-stacking-context2.html
2324
2325         * css/StyleResolver.cpp:
2326         (WebCore::StyleResolver::collectMatchingRulesForList):
2327         * page/Settings.cpp:
2328         (WebCore::Settings::Settings):
2329         * page/Settings.h:
2330         (WebCore::Settings::setFixedPositionCreatesStackingContext):
2331         (WebCore::Settings::fixedPositionCreatesStackingContext):
2332         (Settings):
2333         * testing/InternalSettings.cpp:
2334         (WebCore::InternalSettings::InternalSettings):
2335         (WebCore::InternalSettings::restoreTo):
2336         (WebCore::InternalSettings::setFixedPositionCreatesStackingContext):
2337         (WebCore):
2338         * testing/InternalSettings.h:
2339         (InternalSettings):
2340         * testing/InternalSettings.idl:
2341
2342 2012-05-23  Michael Nordman  <michaeln@google.com>
2343
2344         [chromium] DomStorage events handling needs TLC (3)
2345         https://bugs.webkit.org/show_bug.cgi?id=87031
2346         https://code.google.com/p/chromium/issues/detail?id=128482
2347         Create WebCore::Storage instances as a side effect of attaching storage event handlers.
2348         This allows storage events in chromium to be propagated with less IPC chatter.
2349
2350         Worth noting that in non-chromium ports, creation of the localStorage instance can have
2351         an additional side effect of scheduling a background task to read the area's values
2352         from disk, which given the interest in events is probably a beneficial side effect.
2353
2354         Reviewed by Adam Barth.
2355
2356         No new tests. Existing tests cover this.
2357
2358         * page/DOMWindow.cpp:
2359         (WebCore::didAddStorageEventListener):
2360         (WebCore::DOMWindow::addEventListener):
2361
2362 2012-05-23  Michael Saboff  <msaboff@apple.com>
2363
2364         Crash in fast/files/read tests during Garbage Collection
2365         https://bugs.webkit.org/show_bug.cgi?id=87165
2366
2367         Reviewed by Alexey Proskuryakov.
2368
2369         Changed hasPendingActivity() processing to use ActiveDOMObject::hasPendingActivity()
2370         and associated setPendingActivity() / unsetPendingActivity().
2371
2372         Fixed two existing tests with change.
2373
2374         * Modules/filesystem/FileWriter.cpp:
2375         (WebCore::FileWriter::stop):
2376         (WebCore::FileWriter::write):
2377         (WebCore::FileWriter::truncate):
2378         (WebCore::FileWriter::signalCompletion):
2379         * Modules/filesystem/FileWriter.h:
2380         * fileapi/FileReader.cpp:
2381         (WebCore::FileReader::readInternal):
2382         (WebCore::FileReader::doAbort):
2383         (WebCore::FileReader::didFinishLoading):
2384         (WebCore::FileReader::didFail):
2385         * fileapi/FileReader.h:
2386
2387 2012-05-23  Abhishek Arya  <inferno@chromium.org>
2388
2389         Crash in run-ins with continuations while moving back to original position.
2390         https://bugs.webkit.org/show_bug.cgi?id=87264
2391
2392         Reviewed by Julien Chaffraix.
2393
2394         Run-in that are now placed in sibling block can break up into continuation
2395         chains when new children are added to it. We cannot easily send them back to their
2396         original place since that requires writing integration logic with RenderInline::addChild
2397         and all other places that might cause continuations to be created (without blowing away
2398         |this|). Disabling this feature for now to prevent crashes.
2399
2400         Test: fast/runin/runin-continuations-crash.html
2401
2402         * rendering/RenderBlock.cpp:
2403         (WebCore::RenderBlock::moveRunInToOriginalPosition):
2404
2405 2012-05-23  Abhishek Arya  <inferno@chromium.org>
2406
2407         Crash in RenderInline::linesVisualOverflowBoundingBox.
2408         https://bugs.webkit.org/show_bug.cgi?id=85804
2409
2410         Reviewed by Dave Hyatt.
2411
2412         Defer layout of replaced elements to the next line break function.
2413         We shouldn't do it while we are clearing our inline chilren
2414         lineboxes in full layout mode.
2415
2416         Test: fast/block/inline-children-root-linebox-crash.html
2417
2418         * rendering/RenderBlockLineLayout.cpp:
2419         (WebCore::RenderBlock::layoutInlineChildren):
2420         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
2421
2422 2012-05-23  Chris Rogers  <crogers@google.com>
2423
2424         AudioParam must support fan-in (multiple audio connections) (take 2)
2425         https://bugs.webkit.org/show_bug.cgi?id=83610
2426
2427         Reviewed by Kenneth Russell.
2428         
2429         This re-lands bug: https://bugs.webkit.org/show_bug.cgi?id=83610
2430         Now that a fix has been landed: http://trac.webkit.org/changeset/118099
2431
2432         Test: webaudio/audioparam-summingjunction.html
2433
2434         * Modules/webaudio/AudioParam.cpp:
2435         * Modules/webaudio/AudioParam.h:
2436         (WebCore::AudioParam::calculateSampleAccurateValues):
2437         (WebCore::AudioParam::calculateAudioRateSignalValues):
2438         Sums intrinsic parameter value with all audio-rate connections.
2439         
2440         (WebCore::AudioParam::connect):
2441         (WebCore::AudioParam::disconnect):
2442         Support multiple connections.
2443         
2444         (WebCore::AudioParam::hasSampleAccurateValues):
2445         If we have one or more audio-rate connections.
2446         
2447         (WebCore::AudioParam::AudioParam):
2448         AudioParam now sub-classes AudioSummingJunction.
2449
2450 2012-05-23  Christophe Dumez  <christophe.dumez@intel.com>
2451
2452         [EFL] webintents/web-intents-delivery-reuse.html is failing on EFL port
2453         https://bugs.webkit.org/show_bug.cgi?id=87092
2454
2455         Reviewed by Adam Barth.
2456
2457         Remove readonly keyword from the webkitIntent attribute. This is
2458         needed otherwise the [Replaceable] extended attribute has not effect
2459         with JSC. This is tested by webintents/web-intents-delivery-reuse.html
2460         test case.
2461
2462         * Modules/intents/DOMWindowIntents.idl:
2463
2464 2012-05-23  Abhishek Arya  <inferno@chromium.org>
2465
2466         ASSERT failure toRenderProgress in HTMLProgressElement::didElementStateChange
2467         https://bugs.webkit.org/show_bug.cgi?id=87274
2468
2469         Reviewed by Darin Adler.
2470
2471         Progress bar can't run-in. Prevent it from becoming a run-in, leading to an
2472         unworkable RenderInline.
2473
2474         Test: fast/runin/progress-run-in-crash.html
2475
2476         * html/HTMLProgressElement.cpp:
2477         (WebCore::HTMLProgressElement::didElementStateChange):
2478         * rendering/RenderBlock.cpp:
2479         (WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
2480
2481 2012-05-23  Andrew Lo  <anlo@rim.com>
2482
2483         [BlackBerry] UI thread unnecessarily blocks on WebKit thread when servicing requestAnimationFrames
2484         https://bugs.webkit.org/show_bug.cgi?id=87289
2485
2486         Reviewed by Antonio Gomes.
2487
2488         requestAnimationFrame already covered by tests in LayoutTests/fast/animation.
2489
2490         If UI thread cannot acquire DisplayRefreshMonitor mutex immediately,
2491         avoid blocking on the mutex, it can trigger the frame change on the next
2492         animation tick instead.
2493
2494         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
2495         (WebCore::DisplayRefreshMonitor::displayLinkFired):
2496
2497 2012-05-23  Alec Flett  <alecflett@chromium.org>
2498
2499         Implement DOM4 DOMError
2500         https://bugs.webkit.org/show_bug.cgi?id=87055
2501
2502         Reviewed by Adam Barth.
2503
2504         Implement the DOMError class and it's IDL interface.
2505
2506         No new tests. Not testable yet, as it's not used.
2507
2508         * WebCore.gypi:
2509         * dom/DOMError.cpp: Added.
2510         (WebCore):
2511         (WebCore::DOMError::DOMError):
2512         * dom/DOMError.h: Added.
2513         (WebCore):
2514         (DOMError):
2515         (WebCore::DOMError::create):
2516         (WebCore::DOMError::name):
2517         * dom/DOMError.idl: Added.
2518
2519 2012-05-23  Kenneth Russell  <kbr@google.com>
2520
2521         REGRESSION(117918) - 4 webgl/tex-iomage-and-sub-image-2d-with-image tests failing on Mac bots.
2522         https://bugs.webkit.org/show_bug.cgi?id=87136
2523
2524         Reviewed by Stephen White.
2525
2526         Fixed longstanding bug in GraphicsContext3D constructor in Mac
2527         port, and logic error in tracking of texture bound to unit 0. Also
2528         fixed up Cairo port's constructor by code inspection. This code is
2529         ripe for cleanup; Bug 87198 filed for this.
2530
2531         Covered by existing tests.
2532
2533         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
2534         (WebCore::GraphicsContext3D::GraphicsContext3D):
2535             Initialize missing members.
2536         * platform/graphics/mac/GraphicsContext3DMac.mm:
2537         (WebCore::GraphicsContext3D::GraphicsContext3D):
2538             Correctly initialize m_activeTexture.
2539         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
2540         (WebCore::GraphicsContext3D::bindTexture):
2541             Fix logic error in tracking of texture bound to unit 0.
2542
2543 2012-05-23  Dana Jansens  <danakj@chromium.org>
2544
2545         [chromium] Layers on main thread should get a RenderSurface for animating transform only if masksToBounds is true also
2546         https://bugs.webkit.org/show_bug.cgi?id=87184
2547
2548         Reviewed by James Robinson.
2549
2550         Layers on main thread get a RenderSurface if their impl counterpart may
2551         have a RenderSurface due to its animating transform. We currently create
2552         a RenderSurface for all layers with an animating transform and
2553         a descendant that drawsContents. But a RenderSurface on impl also
2554         implies that the layer masksToBounds. So only make a RenderSurface on
2555         main thread when the layer also masksToBounds.
2556
2557         Modified unit test CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy.
2558
2559         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2560         (WebCore::subtreeShouldRenderToSeparateSurface):
2561
2562 2012-05-23  Chris Fleizach  <cfleizach@apple.com>
2563
2564         Regression(r112694): Crash in WebCore::AXObjectCache::postNotification 
2565         https://bugs.webkit.org/show_bug.cgi?id=86029
2566
2567         Reviewed by Abhishek Arya.
2568
2569         Test: accessibility/content-changed-notification-causes-crash.html
2570
2571         * accessibility/AccessibilityObject.h:
2572         (WebCore::AccessibilityObject::isDetached):
2573         (AccessibilityObject):
2574         * accessibility/AccessibilityRenderObject.cpp:
2575         (WebCore::AccessibilityRenderObject::contentChanged):
2576
2577 2012-05-23  Robin Dunn  <robin@alldunn.com>
2578
2579         [wx] Fix memory leak in FontHolder.
2580         https://bugs.webkit.org/show_bug.cgi?id=87281
2581
2582         Reviewed by Kevin Ollivier.
2583
2584         * platform/graphics/wx/FontPlatformData.h:
2585
2586 2012-05-23  Robin Dunn  <robin@alldunn.com>
2587
2588         [wx] Make sure we do not create a substitute font if the facename is not found.
2589         https://bugs.webkit.org/show_bug.cgi?id=87280
2590
2591         Reviewed by Kevin Ollivier.
2592
2593         * platform/graphics/wx/FontCacheWx.cpp:
2594         (WebCore::FontCache::createFontPlatformData):
2595
2596 2012-05-23  Robin Dunn  <robin@alldunn.com>
2597
2598         [wx] Implement transparency layer support.
2599         https://bugs.webkit.org/show_bug.cgi?id=87279
2600
2601         Reviewed by Kevin Ollivier.
2602
2603         * platform/graphics/wx/GraphicsContextWx.cpp:
2604         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
2605         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
2606         (WebCore::GraphicsContext::supportsTransparencyLayers):
2607
2608 2012-05-23  Jer Noble  <jer.noble@apple.com>
2609
2610         GenericClock loses precision due to float->double conversion.
2611         https://bugs.webkit.org/show_bug.cgi?id=87227
2612
2613         Reviewed by Darin Adler.
2614
2615         No new tests; fixes media/media-controller-time.html on Chromium.
2616
2617         Only narrow to float after the entire calculation is complete. This requires now() and m_offset
2618         to be double-precision.
2619
2620         * platform/ClockGeneric.cpp:
2621         (ClockGeneric::currentTime): 
2622         (ClockGeneric::now): Make double-precision.
2623         * platform/ClockGeneric.h:
2624         (ClockGeneric): Make m_offset double-precision.
2625
2626 2012-05-22  Jer Noble  <jer.noble@apple.com>
2627
2628         PlatformClockCM has uninitialized m_rate member.
2629         https://bugs.webkit.org/show_bug.cgi?id=87217
2630
2631         Reviewed by Eric Carlson.
2632
2633         Test: media/media-controller-time.html
2634
2635         Initialize the m_rate member to a default of 1 (second-per-second), matching the implementation
2636         of ClockGeneric.
2637
2638         * platform/mac/PlatformClockCM.mm:
2639         (PlatformClockCM::PlatformClockCM):
2640
2641 2012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
2642
2643         Unreviewed, rolling out r118096.
2644         http://trac.webkit.org/changeset/118096
2645         https://bugs.webkit.org/show_bug.cgi?id=87285
2646
2647         caused multiple crashes on the mac bots (Requested by
2648         jessieberlin on #webkit).
2649
2650         * dom/ContainerNodeAlgorithms.h:
2651
2652 2012-05-23  Darin Adler  <darin@apple.com>
2653
2654         Speed up traverseNextNode when called on a ContainerNode or Element
2655         https://bugs.webkit.org/show_bug.cgi?id=87224
2656
2657         Reviewed by Geoffrey Garen.
2658
2659         * dom/ContainerNode.h: Added overrides of traverseNextNode for ContainerNode.
2660         That way, when we know at compile time something is ContainerNode, we can
2661         skip a branch at the start of this hot function.
2662
2663 2012-05-23  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
2664
2665         Use PluginDataNone.cpp always when NETSCAPE_PLUGIN_API is OFF
2666         https://bugs.webkit.org/show_bug.cgi?id=87096
2667
2668         Reviewed by Andy Estes.
2669
2670         Fix a build error by adding an extra check in PluginData.cpp to use
2671         PluginStrategy only when NETSCAPE_PLUGIN_API is ON.
2672
2673         No new tests. This is only a build fix.
2674
2675         * plugins/PluginData.cpp:
2676         (WebCore):
2677
2678 2012-05-23  Malcolm MacLeod  <malcolm.macleod@tshwanedje.com>
2679
2680         [wx] Fix scrollbar drawing under wxGTK.
2681         https://bugs.webkit.org/show_bug.cgi?id=87150
2682
2683         Reviewed by Kevin Ollivier.
2684
2685         * platform/wx/wxcode/gtk/scrollbar_render.cpp:
2686         (wxRenderer_DrawScrollbar):
2687
2688 2012-05-23  Antti Koivisto  <antti@apple.com>
2689
2690         Rename StyleSheetInternal to StyleSheetContents
2691         https://bugs.webkit.org/show_bug.cgi?id=87272
2692
2693         Reviewed by Andreas Kling.
2694
2695         The name is more descriptive and the code reads better.
2696         
2697         Plain "StyleSheet" would be good too but that is a CSSOM type and the name can't be used without
2698         changing idl code generation and resolving bunch of other issues.
2699
2700         * css/CSSFontFaceSrcValue.cpp:
2701         (WebCore::CSSFontFaceSrcValue::addSubresourceStyleURLs):
2702         * css/CSSFontFaceSrcValue.h:
2703         (CSSFontFaceSrcValue):
2704         * css/CSSImportRule.cpp:
2705         (WebCore::StyleRuleImport::setCSSStyleSheet):
2706         (WebCore::StyleRuleImport::requestStyleSheet):
2707         * css/CSSImportRule.h:
2708         (WebCore):
2709         (WebCore::StyleRuleImport::parentStyleSheet):
2710         (WebCore::StyleRuleImport::setParentStyleSheet):
2711         (WebCore::StyleRuleImport::styleSheet):
2712         (StyleRuleImport):
2713         * css/CSSMediaRule.cpp:
2714         (WebCore::CSSMediaRule::insertRule):
2715         * css/CSSParser.cpp:
2716         (WebCore::CSSParser::parseSheet):
2717         (WebCore::CSSParser::parseRule):
2718         (WebCore::CSSParser::parseKeyframeRule):
2719         (WebCore::CSSParser::parseValue):
2720         (WebCore::CSSParser::parseSelector):
2721         (WebCore::CSSParser::parseDeclaration):
2722         (WebCore::CSSParser::setStyleSheet):
2723         (WebCore::CSSParser::parseFlowThread):
2724         * css/CSSParser.h:
2725         (WebCore):
2726         (CSSParser):
2727         * css/CSSPrimitiveValue.cpp:
2728         (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs):
2729         * css/CSSPrimitiveValue.h:
2730         (CSSPrimitiveValue):
2731         * css/CSSReflectValue.cpp:
2732         (WebCore::CSSReflectValue::addSubresourceStyleURLs):
2733         * css/CSSReflectValue.h:
2734         (CSSReflectValue):
2735         * css/CSSRule.cpp:
2736         (WebCore::CSSRule::parserContext):
2737         * css/CSSStyleSheet.cpp:
2738         (WebCore::StyleSheetContents::estimatedSizeInBytes):
2739         (WebCore::StyleSheetContents::StyleSheetContents):
2740         (WebCore::StyleSheetContents::~StyleSheetContents):
2741         (WebCore::StyleSheetContents::isCacheable):
2742         (WebCore::StyleSheetContents::parserAppendRule):
2743         (WebCore::StyleSheetContents::ruleAt):
2744         (WebCore::StyleSheetContents::ruleCount):
2745         (WebCore::StyleSheetContents::clearCharsetRule):
2746         (WebCore::StyleSheetContents::clearRules):
2747         (WebCore::StyleSheetContents::parserSetEncodingFromCharsetRule):
2748         (WebCore::StyleSheetContents::wrapperInsertRule):
2749         (WebCore::StyleSheetContents::wrapperDeleteRule):
2750         (WebCore::StyleSheetContents::parserAddNamespace):
2751         (WebCore::StyleSheetContents::determineNamespace):
2752         (WebCore::StyleSheetContents::parseAuthorStyleSheet):
2753         (WebCore::StyleSheetContents::parseString):
2754         (WebCore::StyleSheetContents::parseStringAtLine):
2755         (WebCore::StyleSheetContents::isLoading):
2756         (WebCore::StyleSheetContents::checkLoaded):
2757         (WebCore::StyleSheetContents::notifyLoadedSheet):
2758         (WebCore::StyleSheetContents::startLoadingDynamicSheet):
2759         (WebCore::StyleSheetContents::rootStyleSheet):
2760         (WebCore::StyleSheetContents::singleOwnerNode):
2761         (WebCore::StyleSheetContents::singleOwnerDocument):
2762         (WebCore::StyleSheetContents::completeURL):
2763         (WebCore::StyleSheetContents::addSubresourceStyleURLs):
2764         (WebCore::StyleSheetContents::parentStyleSheet):
2765         (WebCore::StyleSheetContents::registerClient):
2766         (WebCore::StyleSheetContents::unregisterClient):
2767         (WebCore::StyleSheetContents::addedToMemoryCache):
2768         (WebCore::StyleSheetContents::removedFromMemoryCache):
2769         (WebCore::CSSStyleSheet::createInline):
2770         (WebCore::CSSStyleSheet::CSSStyleSheet):
2771         (WebCore::CSSStyleSheet::~CSSStyleSheet):
2772         (WebCore::CSSStyleSheet::willMutateRules):
2773         (WebCore::CSSStyleSheet::didMutateRules):
2774         (WebCore::CSSStyleSheet::reattachChildRuleCSSOMWrappers):
2775         (WebCore::CSSStyleSheet::length):
2776         (WebCore::CSSStyleSheet::item):
2777         (WebCore::CSSStyleSheet::rules):
2778         (WebCore::CSSStyleSheet::insertRule):
2779         (WebCore::CSSStyleSheet::deleteRule):
2780         (WebCore::CSSStyleSheet::cssRules):
2781         * css/CSSStyleSheet.h:
2782         (WebCore::StyleSheetContents::create):
2783         (StyleSheetContents):
2784         (WebCore::StyleSheetContents::copy):
2785         (WebCore::CSSStyleSheet::create):
2786         (WebCore::CSSStyleSheet::contents):
2787         (CSSStyleSheet):
2788         * css/CSSValue.cpp:
2789         (WebCore::CSSValue::addSubresourceStyleURLs):
2790         * css/CSSValue.h:
2791         (WebCore):
2792         (CSSValue):
2793         * css/CSSValueList.cpp:
2794         (WebCore::CSSValueList::addSubresourceStyleURLs):
2795         * css/CSSValueList.h:
2796         (CSSValueList):
2797         * css/PropertySetCSSStyleDeclaration.cpp:
2798         (WebCore::PropertySetCSSStyleDeclaration::contextStyleSheet):
2799         * css/PropertySetCSSStyleDeclaration.h:
2800         (WebCore):
2801         (PropertySetCSSStyleDeclaration):
2802         * css/StylePropertySet.cpp:
2803         (WebCore::StylePropertySet::setProperty):
2804         (WebCore::StylePropertySet::parseDeclaration):
2805         (WebCore::StylePropertySet::addSubresourceStyleURLs):
2806         * css/StylePropertySet.h:
2807         (WebCore):
2808         (StylePropertySet):
2809         * css/StyleResolver.cpp:
2810         (RuleSet):
2811         (WebCore):
2812         (WebCore::StyleResolver::StyleResolver):
2813         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
2814         (WebCore::StyleResolver::appendAuthorStylesheets):
2815         (WebCore::parseUASheet):
2816         (WebCore::StyleResolver::collectMatchingRulesForList):
2817         * css/StyleResolver.h:
2818         (StyleResolver):
2819         * css/WebKitCSSKeyframesRule.cpp:
2820         (WebCore::WebKitCSSKeyframesRule::insertRule):
2821         * dom/DOMImplementation.cpp:
2822         (WebCore::DOMImplementation::createCSSStyleSheet):
2823         * dom/Document.cpp:
2824         (WebCore::Document::recalcStyle):
2825         (WebCore::Document::updateBaseURL):
2826         (WebCore::Document::pageUserSheet):
2827         (WebCore::Document::pageGroupUserSheets):
2828         (WebCore::Document::addUserSheet):
2829         (WebCore::Document::testAddedStylesheetRequiresStyleRecalc):
2830         (WebCore::Document::analyzeStylesheetChange):
2831         (WebCore::styleSheetsUseRemUnits):
2832         * dom/Document.h:
2833         (WebCore):
2834         (Document):
2835         * dom/ElementAttributeData.cpp:
2836         (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
2837         * dom/ProcessingInstruction.cpp:
2838         (WebCore::ProcessingInstruction::setCSSStyleSheet):
2839         (WebCore::ProcessingInstruction::parseStyleSheet):
2840         * dom/StyleElement.cpp:
2841         (WebCore::StyleElement::createSheet):
2842         * dom/StyledElement.cpp:
2843         (WebCore::StyledElement::setInlineStyleProperty):
2844         (WebCore::StyledElement::addSubresourceAttributeURLs):
2845         (WebCore::StyledElement::addPropertyToAttributeStyle):
2846         * html/HTMLLinkElement.cpp:
2847         (WebCore::HTMLLinkElement::setCSSStyleSheet):
2848         (WebCore::HTMLLinkElement::styleSheetIsLoading):
2849         (WebCore::HTMLLinkElement::addSubresourceAttributeURLs):
2850         * html/HTMLStyleElement.cpp:
2851         (WebCore::HTMLStyleElement::addSubresourceAttributeURLs):
2852         * inspector/InspectorStyleSheet.cpp:
2853         (WebCore::fillMediaListChain):
2854         (WebCore::InspectorStyle::setPropertyText):
2855         (WebCore::InspectorStyleSheet::styleSheetURL):
2856         (WebCore::InspectorStyleSheet::reparseStyleSheet):
2857         (WebCore::InspectorStyleSheet::ensureSourceData):
2858         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
2859         * loader/cache/CachedCSSStyleSheet.cpp:
2860         (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
2861         (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
2862         * loader/cache/CachedCSSStyleSheet.h:
2863         (WebCore):
2864         (CachedCSSStyleSheet):
2865         * page/PageSerializer.cpp:
2866         (WebCore::PageSerializer::serializeCSSStyleSheet):
2867
2868 2012-05-23  Darin Adler  <darin@apple.com>
2869
2870         Use ContainerNode instead of Node where possible
2871         https://bugs.webkit.org/show_bug.cgi?id=87220
2872
2873         Reviewed by Geoffrey Garen.
2874
2875         It's better to use a more specific type; in some cases we even generate
2876         more efficient code if we have a more specific type. Also, we want any
2877         type casts to be as close as possible to the corresponding type checks,
2878         so eliminating these uses of toContainerNode is a plus, also.
2879
2880         * dom/ContainerNodeAlgorithms.h: Changed insertionPoint to be a ContainerNode
2881         instead of a Node. Fixed spelling error "inseretions". Changed
2882         (WebCore::ChildFrameDisconnector::Target::Target): Changed type of frame owner
2883         element to HTMLFrameOwnerElement from Node.
2884
2885         * dom/DocumentType.cpp:
2886         (WebCore::DocumentType::insertedInto):
2887         (WebCore::DocumentType::removedFrom):
2888         * dom/DocumentType.h:
2889         * dom/Element.cpp:
2890         (WebCore::Element::insertedInto):
2891         (WebCore::Element::removedFrom):
2892         * dom/Element.h:
2893         * dom/Node.cpp:
2894         (WebCore::Node::insertedInto):
2895         (WebCore::Node::removedFrom):
2896         * dom/Node.h:
2897         * dom/ProcessingInstruction.cpp:
2898         (WebCore::ProcessingInstruction::insertedInto):
2899         (WebCore::ProcessingInstruction::removedFrom):
2900         * dom/ProcessingInstruction.h:
2901         * dom/ScriptElement.cpp:
2902         (WebCore::ScriptElement::insertedInto):
2903         * dom/ScriptElement.h:
2904         * html/FormAssociatedElement.cpp:
2905         (WebCore::FormAssociatedElement::insertedInto):
2906         (WebCore::FormAssociatedElement::removedFrom):
2907         * html/FormAssociatedElement.h:
2908         * html/HTMLBaseElement.cpp:
2909         (WebCore::HTMLBaseElement::insertedInto):
2910         (WebCore::HTMLBaseElement::removedFrom):
2911         * html/HTMLBaseElement.h:
2912         * html/HTMLBodyElement.cpp:
2913         (WebCore::HTMLBodyElement::insertedInto):
2914         (WebCore::HTMLBodyElement::didNotifyDescendantInsertions):
2915         * html/HTMLBodyElement.h:
2916         * html/HTMLFormControlElement.cpp:
2917         (WebCore::HTMLFormControlElement::insertedInto):
2918         (WebCore::HTMLFormControlElement::removedFrom):
2919         * html/HTMLFormControlElement.h:
2920         * html/HTMLFormElement.cpp:
2921         (WebCore::HTMLFormElement::insertedInto):
2922         (WebCore::HTMLFormElement::didNotifyDescendantInsertions):
2923         (WebCore::HTMLFormElement::removedFrom):
2924         * html/HTMLFormElement.h:
2925         * html/HTMLFrameElementBase.cpp:
2926         (WebCore::HTMLFrameElementBase::insertedInto):
2927         (WebCore::HTMLFrameElementBase::didNotifyDescendantInsertions):
2928         * html/HTMLFrameElementBase.h:
2929         * html/HTMLFrameSetElement.cpp:
2930         (WebCore::HTMLFrameSetElement::insertedInto):
2931         (WebCore::HTMLFrameSetElement::removedFrom):
2932         * html/HTMLFrameSetElement.h:
2933         * html/HTMLIFrameElement.cpp:
2934         (WebCore::HTMLIFrameElement::insertedInto):
2935         (WebCore::HTMLIFrameElement::removedFrom):
2936         * html/HTMLIFrameElement.h:
2937         * html/HTMLImageElement.cpp:
2938         (WebCore::HTMLImageElement::insertedInto):
2939         (WebCore::HTMLImageElement::removedFrom):
2940         * html/HTMLImageElement.h:
2941         * html/HTMLInputElement.cpp:
2942         (WebCore::HTMLInputElement::insertedInto):
2943         (WebCore::HTMLInputElement::removedFrom):
2944         * html/HTMLInputElement.h:
2945         * html/HTMLLinkElement.cpp:
2946         (WebCore::HTMLLinkElement::insertedInto):
2947         (WebCore::HTMLLinkElement::removedFrom):
2948         * html/HTMLLinkElement.h:
2949         * html/HTMLMapElement.cpp:
2950         (WebCore::HTMLMapElement::insertedInto):
2951         (WebCore::HTMLMapElement::removedFrom):
2952         * html/HTMLMapElement.h:
2953         * html/HTMLMediaElement.cpp:
2954         (WebCore::HTMLMediaElement::insertedInto):
2955         (WebCore::HTMLMediaElement::removedFrom):
2956         * html/HTMLMediaElement.h:
2957         * html/HTMLMetaElement.cpp:
2958         (WebCore::HTMLMetaElement::insertedInto):
2959         * html/HTMLMetaElement.h:
2960         * html/HTMLObjectElement.cpp:
2961         (WebCore::HTMLObjectElement::insertedInto):
2962         (WebCore::HTMLObjectElement::removedFrom):
2963         * html/HTMLObjectElement.h:
2964         * html/HTMLOptionElement.cpp:
2965         (WebCore::HTMLOptionElement::insertedInto):
2966         * html/HTMLOptionElement.h:
2967         * html/HTMLQuoteElement.cpp:
2968         (WebCore::HTMLQuoteElement::insertedInto):
2969         * html/HTMLQuoteElement.h:
2970         * html/HTMLScriptElement.cpp:
2971         (WebCore::HTMLScriptElement::insertedInto):
2972         * html/HTMLScriptElement.h:
2973         * html/HTMLSelectElement.cpp:
2974         (WebCore::HTMLSelectElement::insertedInto):
2975         * html/HTMLSelectElement.h:
2976         * html/HTMLSourceElement.cpp:
2977         (WebCore::HTMLSourceElement::insertedInto):
2978         (WebCore::HTMLSourceElement::removedFrom):
2979         * html/HTMLSourceElement.h:
2980         * html/HTMLStyleElement.cpp:
2981         (WebCore::HTMLStyleElement::insertedInto):
2982         (WebCore::HTMLStyleElement::removedFrom):
2983         * html/HTMLStyleElement.h:
2984         * html/HTMLTextFormControlElement.cpp:
2985         (WebCore::HTMLTextFormControlElement::insertedInto):
2986         * html/HTMLTextFormControlElement.h:
2987         * html/HTMLTitleElement.cpp:
2988         (WebCore::HTMLTitleElement::insertedInto):
2989         (WebCore::HTMLTitleElement::removedFrom):
2990         * html/HTMLTitleElement.h:
2991         * html/HTMLTrackElement.cpp:
2992         (WebCore::HTMLTrackElement::insertedInto):
2993         (WebCore::HTMLTrackElement::removedFrom):
2994         * html/HTMLTrackElement.h:
2995         * mathml/MathMLMathElement.cpp:
2996         (WebCore::MathMLMathElement::insertedInto):
2997         * mathml/MathMLMathElement.h:
2998         * svg/SVGElement.cpp:
2999         (WebCore::SVGElement::removedFrom):
3000         * svg/SVGElement.h:
3001         * svg/SVGFEImageElement.cpp:
3002         (WebCore::SVGFEImageElement::insertedInto):
3003         (WebCore::SVGFEImageElement::removedFrom):
3004         * svg/SVGFEImageElement.h:
3005         * svg/SVGFontFaceElement.cpp:
3006         (WebCore::SVGFontFaceElement::insertedInto):
3007         (WebCore::SVGFontFaceElement::removedFrom):
3008         * svg/SVGFontFaceElement.h:
3009         * svg/SVGFontFaceUriElement.cpp:
3010         (WebCore::SVGFontFaceUriElement::insertedInto):
3011         * svg/SVGFontFaceUriElement.h:
3012         * svg/SVGGlyphElement.cpp:
3013         (WebCore::SVGGlyphElement::insertedInto):
3014         (WebCore::SVGGlyphElement::removedFrom):
3015         * svg/SVGGlyphElement.h:
3016         * svg/SVGHKernElement.cpp:
3017         (WebCore::SVGHKernElement::insertedInto):
3018         (WebCore::SVGHKernElement::removedFrom):
3019         * svg/SVGHKernElement.h:
3020         * svg/SVGImageElement.cpp:
3021         (WebCore::SVGImageElement::insertedInto):
3022         * svg/SVGImageElement.h:
3023         * svg/SVGSVGElement.cpp:
3024         (WebCore::SVGSVGElement::insertedInto):
3025         (WebCore::SVGSVGElement::removedFrom):
3026         * svg/SVGSVGElement.h:
3027         * svg/SVGScriptElement.cpp:
3028         (WebCore::SVGScriptElement::insertedInto):
3029         * svg/SVGScriptElement.h:
3030         * svg/SVGStyleElement.cpp:
3031         (WebCore::SVGStyleElement::insertedInto):
3032         (WebCore::SVGStyleElement::removedFrom):
3033         * svg/SVGStyleElement.h:
3034         * svg/SVGStyledElement.cpp:
3035         (WebCore::SVGStyledElement::insertedInto):
3036         (WebCore::SVGStyledElement::removedFrom):
3037         * svg/SVGStyledElement.h:
3038         * svg/SVGTRefElement.cpp:
3039         (WebCore::SVGTRefElement::insertedInto):
3040         (WebCore::SVGTRefElement::removedFrom):
3041         * svg/SVGTRefElement.h:
3042         * svg/SVGTextPathElement.cpp:
3043         (WebCore::SVGTextPathElement::insertedInto):
3044         * svg/SVGTextPathElement.h:
3045         * svg/SVGTitleElement.cpp:
3046         (WebCore::SVGTitleElement::insertedInto):
3047         (WebCore::SVGTitleElement::removedFrom):
3048         * svg/SVGTitleElement.h:
3049         * svg/SVGUseElement.cpp:
3050         (WebCore::SVGUseElement::insertedInto):
3051         (WebCore::SVGUseElement::removedFrom):
3052         * svg/SVGUseElement.h:
3053         * svg/SVGVKernElement.cpp:
3054         (WebCore::SVGVKernElement::insertedInto):
3055         (WebCore::SVGVKernElement::removedFrom):
3056         * svg/SVGVKernElement.h:
3057         * svg/animation/SVGSMILElement.cpp:
3058         (WebCore::SVGSMILElement::insertedInto):
3059         (WebCore::SVGSMILElement::removedFrom):
3060         * svg/animation/SVGSMILElement.h:
3061         Changed arguments of insertedInto and removedFrom to ContainerNode instead of Node.
3062         Did the same with didNotifyDescendantInsertions, while fixing the typo in its name.
3063
3064         * editing/ReplaceSelectionCommand.cpp:
3065         (WebCore::ReplaceSelectionCommand::doApply): Put a typecast toHTMLElement here.
3066         The check for isListElement and isLegacyAppleStyleSpan takes care of the type checking.
3067         (WebCore::ReplaceSelectionCommand::insertAsListItems): Changed this function to take
3068         an HTMLElement instead of a Node, then we can drop use of the toContainerNode function.
3069         * editing/ReplaceSelectionCommand.h:
3070
3071         * editing/TextIterator.cpp: Fixed a typo in a comment.
3072
3073 2012-05-23  Alexei Filippov  <alexeif@chromium.org>
3074
3075         Web Inspector: filter out debugging stuff from the heap class view
3076         https://bugs.webkit.org/show_bug.cgi?id=86723
3077
3078         We mark objects that are accessible from user roots (e.g. Window)
3079         with pageObject attribute. This fix filters out all non-pageObjects
3080         from the classes view.
3081
3082         Reviewed by Yury Semikhatsky.
3083
3084         * inspector/front-end/HeapSnapshot.js:
3085         (WebInspector.HeapSnapshotNode.prototype.isPageObject):
3086         (WebInspector.HeapSnapshot.prototype._buildAggregates):
3087         (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
3088         (WebInspector.HeapSnapshot.prototype._buildPostOrderIndex):
3089         (WebInspector.HeapSnapshot.prototype._markPageOwnedNodes):
3090         (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):
3091
3092 2012-05-23  Andrei Bucur  <abucur@adobe.com>
3093
3094         [CSSRegions]Implement NamedFlow::name attribute
3095         https://bugs.webkit.org/show_bug.cgi?id=79645
3096
3097         Implementation for the NamedFlow::name attribute per the CSS Regions WD 3-May-2012 recommendation:
3098         http://www.w3.org/TR/2012/WD-css3-regions-20120503/
3099
3100         Reviewed by Andreas Kling.
3101
3102         Test: fast/regions/webkit-named-flow-name.html
3103
3104         * dom/WebKitNamedFlow.cpp:
3105         (WebCore::WebKitNamedFlow::name):
3106         (WebCore):
3107         * dom/WebKitNamedFlow.h:
3108         (WebKitNamedFlow):
3109         * dom/WebKitNamedFlow.idl:
3110
3111 2012-05-23  Andreas Kling  <kling@webkit.org>
3112
3113         Let the compiler generate FontFamily's copy ctor and assignment operator.
3114
3115         Blindly rubberstamped by the brave Antti Koivisto.
3116
3117         * platform/graphics/FontFamily.cpp:
3118         * platform/graphics/FontFamily.h:
3119
3120 2012-05-23  Andreas Kling  <kling@webkit.org>
3121
3122         CSSParser: Simplify StylePropertySet creation.
3123         <http://webkit.org/b/87259>
3124
3125         Reviewed by Alexis Menard.
3126
3127         Turn CSSParser's filteredProperties() into createStylePropertySet() which filters the parsed
3128         properties and creates a new StylePropertySet, adopting the vector to avoid the Vector copy we
3129         were previously incurring.
3130
3131         Added a StylePropertyVector typedef for Vector<CSSProperty, 4> since we need to pass this type
3132         to the constructor for Vector::swap() to work.
3133
3134         And thus StylePropertySet::create(const Vector<CSSProperty>&, CSSParserMode) became
3135         StylePropertySet::adopt(StylePropertyVector&, CSSParserMode).
3136
3137         * css/CSSComputedStyleDeclaration.cpp:
3138         (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
3139         * css/CSSParser.cpp:
3140         (WebCore::CSSParser::createStylePropertySet):
3141         (WebCore::CSSParser::createStyleRule):
3142         (WebCore::CSSParser::createFontFaceRule):
3143         (WebCore::CSSParser::createPageRule):
3144         (WebCore::CSSParser::createKeyframe):
3145         * css/CSSParser.h:
3146         * css/StylePropertySet.cpp:
3147         (WebCore::StylePropertySet::StylePropertySet):
3148         (WebCore::StylePropertySet::removePropertiesInSet):
3149         (WebCore::StylePropertySet::copyPropertiesInSet):
3150         (SameSizeAsStylePropertySet):
3151         * css/StylePropertySet.h:
3152         (WebCore::StylePropertySet::adopt):
3153         (StylePropertySet):
3154
3155 2012-05-23  Andreas Kling  <kling@webkit.org>
3156
3157         Kill some frivolous null-checking of Element::m_attributeData.
3158         <http://webkit.org/b/87248>
3159
3160         Reviewed by Antti Koivisto.
3161
3162         Replace unnecessary Element::m_attributeData with assertions where it makes sense.
3163         Others are flat out removed because it should be obvious from context that it's non-null.
3164         E.g if an attribute has changed, we're obviously storing it somewhere.
3165
3166         Also added a short-circuit to Element::normalize() if there are no Attr objects
3167         associated with the element.
3168
3169         * dom/Element.cpp:
3170         (WebCore::Element::~Element):
3171         (WebCore::Element::attributeChanged):
3172         (WebCore::Element::insertedInto):
3173         (WebCore::Element::removedFrom):
3174         (WebCore::Element::removeAttributeNode):
3175         (WebCore::Element::normalizeAttributes):
3176         * dom/StyledElement.cpp:
3177         (WebCore::StyledElement::classAttributeChanged):
3178
3179 2012-05-23  Andreas Kling  <kling@webkit.org>
3180
3181         Let Element::detachAttribute() handle removal of the attribute.
3182         <http://webkit.org/b/87242>
3183
3184         Reviewed by Antti Koivisto.
3185
3186         All the call sites were removing the attribute after detaching it, so move
3187         that into detachAttribute(). The function name already made it sound like it
3188         removes the attribute anyway.
3189
3190         Also sprinkle some assertions wrt being called with guaranteed presence of
3191         attributeData() and the provided index in the attribute vector.
3192
3193         * dom/Element.cpp:
3194         (WebCore::Element::detachAttribute):
3195         (WebCore::Element::removeAttributeNode):
3196         * dom/NamedNodeMap.cpp:
3197         (WebCore::NamedNodeMap::removeNamedItem):
3198         (WebCore::NamedNodeMap::removeNamedItemNS):
3199
3200 2012-05-23  Andreas Kling  <kling@webkit.org>
3201
3202         Streamline Element teardown for the no-Attr-objects case.
3203         <http://webkit.org/b/87228>
3204
3205         Reviewed by Antti Koivisto.
3206
3207         Dodge one function call in ~Element() if the element has no Attr objects
3208         associated (the typical case.)
3209
3210         Renamed detachAttributes to detachAttrObjectsFromElement to reduce ambiguity.
3211
3212         * dom/Element.cpp:
3213         (WebCore::Element::~Element):
3214         * dom/ElementAttributeData.cpp:
3215         (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
3216         (WebCore::ElementAttributeData::clearAttributes):
3217         * dom/ElementAttributeData.h:
3218         (ElementAttributeData):
3219
3220 2012-05-23  Jochen Eisinger  <jochen@chromium.org>
3221
3222         Fix incomplete switch statement in CSSParser after r118082
3223         https://bugs.webkit.org/show_bug.cgi?id=87250
3224
3225         Reviewed by Alexis Menard.
3226
3227         * css/CSSParser.cpp:
3228         (WebCore::CSSParser::parseValue):
3229
3230 2012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
3231
3232         Unreviewed, rolling out r118105.
3233         http://trac.webkit.org/changeset/118105
3234         https://bugs.webkit.org/show_bug.cgi?id=87255
3235
3236         New LayoutTest is causing several cookie tests to fail on
3237         numerous bots (Requested by steveblock on #webkit).
3238
3239         * platform/blackberry/CookieJarBlackBerry.cpp:
3240         (WebCore::setCookies):
3241         * platform/blackberry/CookieManager.cpp:
3242         (WebCore::CookieManager::setCookies):
3243         (WebCore::CookieManager::checkAndTreatCookie):
3244         (WebCore::CookieManager::addCookieToMap):
3245         (WebCore::CookieManager::setPrivateMode):
3246         (WebCore):
3247         * platform/blackberry/CookieManager.h:
3248         * platform/blackberry/CookieMap.cpp:
3249         (WebCore::CookieMap::addOrReplaceCookie):
3250         (WebCore::CookieMap::removeCookie):
3251         * platform/blackberry/CookieMap.h:
3252         (CookieMap):
3253
3254 2012-05-23  Zan Dobersek  <zandobersek@gmail.com>
3255
3256         [Gtk] EventSender should properly handle (left|right)(control|shift|alt) after r118001
3257         https://bugs.webkit.org/show_bug.cgi?id=87221
3258
3259         Reviewed by Martin Robinson.
3260
3261         No new tests - covered by fast/events/keydown-leftright-keys.html.
3262
3263         Windows key code for shift, control and alt keys should respect the
3264         left or right position of that key. This way the DOM location code of
3265         a key event is properly determined for these keys.
3266
3267         * platform/gtk/PlatformKeyboardEventGtk.cpp:
3268         (WebCore::PlatformKeyboardEvent::windowsKeyCodeForGdkKeyCode):
3269
3270 2012-05-23  Ilya Tikhonovsky  <loislo@chromium.org>
3271
3272         Web Inspector: eliminate getters from HeapSnapshot.js
3273         https://bugs.webkit.org/show_bug.cgi?id=87241
3274
3275         getters can't be inlined by engine at the moment.
3276         I found that conversion getters into functions gives us about 600 ms
3277
3278         RESULT heap-snapshot: switch-to-containment-view= 1920 ms
3279         vs
3280         RESULT heap-snapshot: switch-to-containment-view= 1367 ms
3281
3282         Reviewed by Yury Semikhatsky.
3283
3284         * inspector/front-end/HeapSnapshot.js:
3285         (WebInspector.HeapSnapshotEdge.prototype.hasStringName):
3286         (WebInspector.HeapSnapshotEdge.prototype.isElement):
3287         (WebInspector.HeapSnapshotEdge.prototype.isHidden):
3288         (WebInspector.HeapSnapshotEdge.prototype.isWeak):
3289         (WebInspector.HeapSnapshotEdge.prototype.isInternal):
3290         (WebInspector.HeapSnapshotEdge.prototype.isInvisible):
3291         (WebInspector.HeapSnapshotEdge.prototype.isShortcut):
3292         (WebInspector.HeapSnapshotEdge.prototype.name):
3293         (WebInspector.HeapSnapshotEdge.prototype.node):
3294         (WebInspector.HeapSnapshotEdge.prototype.nodeIndex):
3295         (WebInspector.HeapSnapshotEdge.prototype.rawEdges):
3296         (WebInspector.HeapSnapshotEdge.prototype.toString):
3297         (WebInspector.HeapSnapshotEdge.prototype.type):
3298         (WebInspector.HeapSnapshotEdge.prototype._hasStringName):
3299         (WebInspector.HeapSnapshotEdge.prototype._name):
3300         (WebInspector.HeapSnapshotEdge.prototype._nameOrIndex):
3301         (WebInspector.HeapSnapshotEdgeIterator.prototype.index):
3302         (WebInspector.HeapSnapshotEdgeIterator.prototype.setIndex):
3303         (WebInspector.HeapSnapshotEdgeIterator.prototype.item):
3304         (WebInspector.HeapSnapshotRetainerEdge):
3305         (WebInspector.HeapSnapshotRetainerEdge.prototype.clone):
3306         (WebInspector.HeapSnapshotRetainerEdge.prototype.hasStringName):
3307         (WebInspector.HeapSnapshotRetainerEdge.prototype.isElement):
3308         (WebInspector.HeapSnapshotRetainerEdge.prototype.isHidden):
3309         (WebInspector.HeapSnapshotRetainerEdge.prototype.isInternal):
3310         (WebInspector.HeapSnapshotRetainerEdge.prototype.isInvisible):
3311         (WebInspector.HeapSnapshotRetainerEdge.prototype.isShortcut):
3312         (WebInspector.HeapSnapshotRetainerEdge.prototype.isWeak):
3313         (WebInspector.HeapSnapshotRetainerEdge.prototype.name):
3314         (WebInspector.HeapSnapshotRetainerEdge.prototype.node):
3315         (WebInspector.HeapSnapshotRetainerEdge.prototype.nodeIndex):
3316         (WebInspector.HeapSnapshotRetainerEdge.prototype.retainerIndex):
3317         (WebInspector.HeapSnapshotRetainerEdge.prototype.setRetainerIndex):
3318         (WebInspector.HeapSnapshotRetainerEdge.prototype._node):
3319         (WebInspector.HeapSnapshotRetainerEdge.prototype._edge):
3320         (WebInspector.HeapSnapshotRetainerEdge.prototype.toString):
3321         (WebInspector.HeapSnapshotRetainerEdge.prototype.type):
3322         (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.first):
3323         (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.hasNext):
3324         (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.index):
3325         (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.setIndex):
3326         (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.item):
3327         (WebInspector.HeapSnapshotRetainerEdgeIterator.prototype.next):
3328         (WebInspector.HeapSnapshotNode.prototype.canBeQueried):
3329         (WebInspector.HeapSnapshotNode.prototype.distanceToWindow):
3330         (WebInspector.HeapSnapshotNode.prototype.className):
3331         (WebInspector.HeapSnapshotNode.prototype.dominatorIndex):
3332         (WebInspector.HeapSnapshotNode.prototype.edges):
3333         (WebInspector.HeapSnapshotNode.prototype.edgesCount):
3334         (WebInspector.HeapSnapshotNode.prototype.flags):
3335         (WebInspector.HeapSnapshotNode.prototype.id):
3336         (WebInspector.HeapSnapshotNode.prototype.isHidden):
3337         (WebInspector.HeapSnapshotNode.prototype.isNative):
3338         (WebInspector.HeapSnapshotNode.prototype.isSynthetic):
3339         (WebInspector.HeapSnapshotNode.prototype.isWindow):
3340         (WebInspector.HeapSnapshotNode.prototype.isDetachedDOMTreesRoot):
3341         (WebInspector.HeapSnapshotNode.prototype.isDetachedDOMTree):
3342         (WebInspector.HeapSnapshotNode.prototype.isRoot):
3343         (WebInspector.HeapSnapshotNode.prototype.name):
3344         (WebInspector.HeapSnapshotNode.prototype.rawEdges):
3345         (WebInspector.HeapSnapshotNode.prototype.retainedSize):
3346         (WebInspector.HeapSnapshotNode.prototype.retainers):
3347         (WebInspector.HeapSnapshotNode.prototype.selfSize):
3348         (WebInspector.HeapSnapshotNode.prototype.type):
3349         (WebInspector.HeapSnapshotNode.prototype._name):
3350         (WebInspector.HeapSnapshotNode.prototype._edgeIndexesEnd):
3351         (WebInspector.HeapSnapshotNode.prototype._nextNodeIndex):
3352         (WebInspector.HeapSnapshotNode.prototype._type):
3353         (WebInspector.HeapSnapshotNodeIterator):
3354         (WebInspector.HeapSnapshotNodeIterator.prototype.hasNext):
3355         (WebInspector.HeapSnapshotNodeIterator.prototype.index):
3356         (WebInspector.HeapSnapshotNodeIterator.prototype.setIndex):
3357         (WebInspector.HeapSnapshotNodeIterator.prototype.item):
3358         (WebInspector.HeapSnapshotNodeIterator.prototype.next):
3359         (WebInspector.HeapSnapshot.prototype._allNodes):
3360         (WebInspector.HeapSnapshot.prototype.rootNode):
3361         (WebInspector.HeapSnapshot.prototype.get totalSize):
3362         (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
3363         (WebInspector.HeapSnapshot.prototype.aggregatesForDiff):
3364         (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
3365         (WebInspector.HeapSnapshot.prototype._buildAggregates):
3366         (WebInspector.HeapSnapshot.prototype._calculateClassesRetainedSize):
3367         (WebInspector.HeapSnapshot.prototype._sortAggregateIndexes):
3368         (WebInspector.HeapSnapshot.prototype._markInvisibleEdges):
3369         (WebInspector.HeapSnapshot.prototype._markDetachedDOMTreeNodes):
3370         (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
3371         (WebInspector.HeapSnapshot.prototype._calculateDiffForClass):
3372         (WebInspector.HeapSnapshot.prototype._nodeForSnapshotObjectId):
3373         (WebInspector.HeapSnapshot.prototype.nodeClassName):
3374         (WebInspector.HeapSnapshot.prototype.dominatorIdsForNode):
3375         (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
3376         (WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
3377         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype._createIterationOrder):
3378         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.isEmpty):
3379         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.item):
3380         (WebInspector.HeapSnapshotFilteredOrderedIterator.prototype.serializeItemsRange):
3381         (WebInspector.HeapSnapshotEdgesProvider.prototype.serializeItem):
3382         (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareEdgeFieldName):
3383         (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareNodeField):
3384         (WebInspector.HeapSnapshotNodesProvider):
3385         (WebInspector.HeapSnapshotNodesProvider.prototype.nodePosition):
3386         (WebInspector.HeapSnapshotNodesProvider.prototype.serializeItem):
3387         (WebInspector.HeapSnapshotNodesProvider.prototype.sort.sortByNodeField):
3388         * inspector/front-end/HeapSnapshotGridNodes.js:
3389         * inspector/front-end/HeapSnapshotProxy.js:
3390         (WebInspector.HeapSnapshotProviderProxy.prototype.isEmpty):
3391
3392 2012-05-22  Yury Semikhatsky  <yurys@chromium.org>
3393
3394         Web Inspector: Debugger should correctly show catch scope
3395         https://bugs.webkit.org/show_bug.cgi?id=87197
3396
3397         Reviewed by Vsevolod Vlasov.
3398
3399         * bindings/v8/DebuggerScript.js: In case of Catch scope the scope object
3400         is a synthetic one which means that it contains all standard object properties.
3401         When passing this object further we need to leave only properties available in
3402         the catch block(only variable thar stores the exception in fact).
3403
3404 2012-05-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3405
3406         [Qt] FloatSize Qt Support
3407         https://bugs.webkit.org/show_bug.cgi?id=87237
3408
3409         Reviewed by Andreas Kling.
3410
3411         No new functionality. No new tests.
3412
3413         * Target.pri:
3414         * platform/graphics/FloatSize.h:
3415         (FloatSize):
3416         * platform/graphics/qt/FloatSizeQt.cpp: Added.
3417         (WebCore::FloatSize::FloatSize):
3418         (WebCore::FloatSize::operator QSizeF):
3419
3420 2012-05-23  Alexei Filippov  <alexeif@chromium.org>
3421
3422         Web Inspector: Enable HeapSnapshotRealWorker in production mode.
3423         https://bugs.webkit.org/show_bug.cgi?id=87240
3424
3425         Reviewed by Yury Semikhatsky.
3426
3427         * inspector/front-end/HeapSnapshotProxy.js:
3428         (WebInspector.HeapSnapshotWorker):
3429
3430 2012-05-23  'Pavel Feldman'  <pfeldman@chromium.org>
3431
3432         Not reviewed: inspector's Find is not consuming event as of r117974.
3433
3434         * inspector/front-end/AdvancedSearchController.js:
3435         (WebInspector.AdvancedSearchController.prototype.handleShortcut):
3436         * inspector/front-end/SearchController.js:
3437         (WebInspector.SearchController.prototype.handleShortcut):
3438
3439 2012-05-23  Pavel Feldman  <pfeldman@chromium.org>
3440
3441         Web Inspector: enable drag-an-drop from the navigator panel.
3442         https://bugs.webkit.org/show_bug.cgi?id=87238
3443
3444         Reviewed by Vsevolod Vlasov.
3445
3446         Making tree item draggable.
3447
3448         * inspector/front-end/NavigatorView.js:
3449         (WebInspector.NavigatorSourceTreeElement.prototype.onattach):
3450         (WebInspector.NavigatorSourceTreeElement.prototype._onmousedown.callback):
3451         (WebInspector.NavigatorSourceTreeElement.prototype._onmousedown):
3452         (WebInspector.NavigatorSourceTreeElement.prototype._ondragstart):
3453
3454 2012-05-23  Ryosuke Niwa  <rniwa@webkit.org>
3455
3456         WebKit spends ~20% of time in HTMLTextAreaElement::defaultValue() when opening a review page
3457         https://bugs.webkit.org/show_bug.cgi?id=86813
3458
3459         Reviewed by Eric Seidel.
3460
3461         Replace String and calls to String::operator+= by StringBuilder and calls to append respectively.
3462         While there are other optimizations we can implement such as not replacing all nodes in the shadow DOM,
3463         or not serializing the value when detecting whether the value had changed, they require considerable
3464         amount of refactoring and this change alone seems to buy us a lot so let us defer those 'til later time.
3465
3466         Also avoid the redundant call to setValue in childrenChanged when the value is dirty.
3467         This should halve the time we spend in setting the value.
3468
3469         * html/HTMLTextAreaElement.cpp:
3470         (WebCore::HTMLTextAreaElement::childrenChanged):
3471         (WebCore::HTMLTextAreaElement::defaultValue):
3472
3473 2012-05-23  Alice Boxhall  <aboxhall@chromium.org>
3474
3475         AX: Contenteditable tables should always be exposed as data tables
3476         https://bugs.webkit.org/show_bug.cgi?id=87052
3477
3478         Reviewed by Chris Fleizach.
3479
3480         Tested in accessibility/table-detection.html.
3481
3482         * accessibility/AccessibilityTable.cpp:
3483         (WebCore::AccessibilityTable::isDataTable): Return true if the node is contenteditable.
3484
3485 2012-05-23  Ryosuke Niwa  <rniwa@webkit.org>
3486
3487         Fix a typo per Darin's comment.
3488
3489         * rendering/RenderBlockLineLayout.cpp:
3490         (WebCore::constructBidiRuns):
3491
3492 2012-05-23  Kentaro Hara  <haraken@chromium.org>
3493
3494         [V8] Pass Isolate to v8::Null() in custom bindings (Part 2)
3495         https://bugs.webkit.org/show_bug.cgi?id=87209
3496
3497         Reviewed by Adam Barth.
3498
3499         The objective is to pass Isolate around in V8 bindings.
3500         This patch passes Isolate to v8::Null() in custom bindings.
3501
3502         No tests. No change in behavior.
3503
3504         * bindings/v8/custom/V8HTMLElementCustom.cpp:
3505         (WebCore::toV8Object):
3506         (WebCore::toV8):
3507         * bindings/v8/custom/V8HistoryCustom.cpp:
3508         (WebCore::V8History::stateAccessorGetter):
3509         * bindings/v8/custom/V8IDBAnyCustom.cpp:
3510         (WebCore::toV8):
3511         * bindings/v8/custom/V8IDBKeyCustom.cpp:
3512         (WebCore::toV8):
3513         * bindings/v8/custom/V8ImageDataCustom.cpp:
3514         (WebCore::toV8):
3515         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
3516         (WebCore::toV8):
3517         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
3518         (WebCore::toV8):
3519         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
3520         (WebCore::toV8):
3521         * bindings/v8/custom/V8LocationCustom.cpp:
3522         (WebCore::toV8):
3523         * bindings/v8/custom/V8MessageEventCustom.cpp:
3524         (WebCore::V8MessageEvent::dataAccessorGetter):
3525         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3526         (WebCore::toV8):
3527         * bindings/v8/custom/V8NodeCustom.cpp:
3528         (WebCore::V8Node::insertBeforeCallback):
3529         (WebCore::V8Node::replaceChildCallback):
3530         (WebCore::V8Node::removeChildCallback):
3531         (WebCore::V8Node::appendChildCallback):
3532         (WebCore::toV8Slow):
3533         * bindings/v8/custom/V8PopStateEventCustom.cpp:
3534         (WebCore::V8PopStateEvent::stateAccessorGetter):
3535         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
3536         (WebCore::V8SQLResultSetRowList::itemCallback):
3537         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
3538         (WebCore::toV8):
3539         * bindings/v8/custom/V8SVGElementCustom.cpp:
3540         (WebCore::toV8):
3541         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
3542         (WebCore::toV8):
3543         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
3544         (WebCore::toV8):
3545         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
3546         (WebCore::toV8):
3547         * bindings/v8/custom/V8StyleSheetCustom.cpp:
3548         (WebCore::toV8):
3549         * bindings/v8/custom/V8TrackEventCustom.cpp:
3550         (WebCore::V8TrackEvent::trackAccessorGetter):
3551         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
3552         (WebCore::toV8):
3553         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
3554         (WebCore::toV8):
3555         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
3556         (WebCore::toV8):
3557         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
3558         (WebCore::toV8):
3559         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3560         (WebCore::toV8Object):
3561         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
3562         (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallback):
3563         * bindings/v8/custom/V8WorkerContextCustom.cpp:
3564         (WebCore::toV8):
3565
3566 2012-05-23  Kentaro Hara  <haraken@chromium.org>
3567
3568         [V8] Pass Isolate to v8::Null() in custom bindings (Part 1)
3569         https://bugs.webkit.org/show_bug.cgi?id=87207
3570
3571         Reviewed by Adam Barth.
3572
3573         The objective is to pass Isolate around in V8 bindings.
3574         This patch passes Isolate to v8::Null() in custom bindings.
3575
3576         Also this patch makes V8DeviceMotionEventCustom::createAccelerationObject()
3577         and V8DeviceMotionEventCustom::createRotationRateObject() static.
3578
3579         No tests. No change in behavior.
3580
3581         * bindings/v8/custom/V8BlobCustom.cpp:
3582         (WebCore::toV8):
3583         * bindings/v8/custom/V8CSSRuleCustom.cpp:
3584         (WebCore::toV8):
3585         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
3586         (WebCore::toV8):
3587         * bindings/v8/custom/V8CSSValueCustom.cpp:
3588         (WebCore::toV8):
3589         * bindings/v8/custom/V8ClipboardCustom.cpp:
3590         (WebCore::V8Clipboard::typesAccessorGetter):
3591         * bindings/v8/custom/V8CoordinatesCustom.cpp:
3592         (WebCore::V8Coordinates::altitudeAccessorGetter):
3593         (WebCore::V8Coordinates::altitudeAccuracyAccessorGetter):
3594         (WebCore::V8Coordinates::headingAccessorGetter):
3595         (WebCore::V8Coordinates::speedAccessorGetter):
3596         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
3597         (WebCore::toV8):
3598         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
3599         (WebCore::toV8):
3600         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3601         (WebCore::toV8):
3602         * bindings/v8/custom/V8DataViewCustom.cpp:
3603         (WebCore::toV8):
3604         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
3605         (WebCore::V8DeviceMotionEvent::accelerationAccessorGetter):
3606         (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAccessorGetter):
3607         (WebCore::V8DeviceMotionEvent::rotationRateAccessorGetter):
3608         (WebCore::V8DeviceMotionEvent::intervalAccessorGetter):
3609         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
3610         (WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
3611         (WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
3612         (WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
3613         (WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
3614         * bindings/v8/custom/V8DocumentCustom.cpp:
3615         (WebCore::toV8):
3616         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
3617         (WebCore::V8Document::locationAccessorGetter):
3618         * bindings/v8/custom/V8EntryCustom.cpp:
3619         (WebCore::toV8):
3620         * bindings/v8/custom/V8EntrySyncCustom.cpp:
3621         (WebCore::toV8):
3622         * bindings/v8/custom/V8EventCustom.cpp:
3623         (WebCore::toV8):
3624         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
3625         (WebCore::toV8):
3626         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
3627         (WebCore::toV8):
3628         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3629         (WebCore::V8HTMLCanvasElement::getContextCallback):
3630         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3631         (WebCore::toV8):
3632
3633 2012-05-22  MORITA Hajime  <morrita@google.com>
3634
3635         [Refactoring] ElementShadow::m_needsRedistributing  should be on ContentDistributor
3636         https://bugs.webkit.org/show_bug.cgi?id=87216
3637
3638         Reviewed by Kentaro Hara.
3639
3640         Moved ElementShadow::m_needsRedistributing to ContentDistributor::m_needsRedistributing
3641
3642         No new tests. No behavior change.
3643
3644         * dom/ElementShadow.cpp:
3645         (WebCore::ElementShadow::recalcStyle):
3646         (WebCore::ElementShadow::needsRedistributing):
3647         (WebCore::ElementShadow::setNeedsRedistributing):
3648         * dom/ElementShadow.h:
3649         (ElementShadow):
3650         * dom/ShadowRoot.h: Removed outdated declarations.
3651         * html/shadow/ContentDistributor.cpp:
3652         (WebCore::ContentDistributor::ContentDistributor):
3653         * html/shadow/ContentDistributor.h:
3654         (WebCore::ContentDistributor::needsRedistributing):
3655         (WebCore::ContentDistributor::setNeedsRedistributing):
3656         (WebCore::ContentDistributor::clearNeedsRedistributing):
3657
3658 2012-05-22  Kentaro Hara  <haraken@chromium.org>
3659
3660         [V8] Pass Isolate to v8::Null() in CodeGeneratorV8.pm
3661         https://bugs.webkit.org/show_bug.cgi?id=87202
3662
3663         Reviewed by Adam Barth.
3664
3665         The objective is to pass Isolate around in V8 bindings.
3666         This patch passes Isolate to v8::Null() in CodeGeneratorV8.pm.
3667
3668         No tests. No change in behavior.
3669
3670         * bindings/scripts/CodeGeneratorV8.pm:
3671         (GenerateNormalAttrGetter):
3672         (GenerateFunctionCallback):
3673         (NativeToJSValue):
3674         * bindings/scripts/test/V8/V8TestObj.cpp:
3675         (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
3676         (WebCore::TestObjV8Internal::getSVGDocumentCallback):
3677         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3678         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrGetter):
3679         (WebCore::TestSerializedScriptValueInterfaceV8Internal::readonlyValueAttrGetter):
3680         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
3681         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
3682
3683 2012-05-22  Andreas Kling  <kling@webkit.org>
3684
3685         Short-circuit Element::attrIfExists() when the Element has no Attr list.
3686         <http://webkit.org/b/87214>
3687
3688         Reviewed by Ryosuke Niwa.
3689
3690         This function was lukewarm on Dromaeo/dom-attr (0.4% of samples.)
3691         Added an early return if !hasAttrList() to avoid the function call overhead of
3692         ElementAttributeData::attrIfExists().
3693
3694         * dom/Element.cpp:
3695         (WebCore::Element::attrIfExists):
3696
3697 2012-05-22  Hayato Ito  <hayato@chromium.org>
3698
3699         Remove an assertion since an event's target might be a shadow root if a text node is clicked.
3700         https://bugs.webkit.org/show_bug.cgi?id=87072
3701
3702         Reviewed by Dimitri Glazkov.
3703
3704         Tests: fast/dom/shadow/shadow-dom-event-dispatching.html
3705
3706         * dom/ComposedShadowTreeWalker.cpp:
3707         (WebCore::ComposedShadowTreeWalker::ComposedShadowTreeWalker):
3708
3709 2012-05-22  Dongwoo Im  <dw.im@samsung.com>
3710
3711         [EFL] Implements the registerProtocolHandler method and option.
3712         https://bugs.webkit.org/show_bug.cgi?id=73638
3713
3714         Reviewed by Andreas Kling.
3715
3716         The registerProtocolHandler() method allows Web sites to register themselves
3717         as possible handlers for particular schemes.
3718
3719         http://dev.w3.org/html5/spec/Overview.html#dom-navigator-registerprotocolhandler
3720
3721         * CMakeLists.txt: Add page/NavigatorRegisterProtocolHandler.idl into WebCore_IDL_FILES.
3722
3723 2012-05-22  Kentaro Hara  <haraken@chromium.org>
3724
3725         [V8][Performance] Pass Isolate to v8::Null() in V8Node::toV8()
3726         https://bugs.webkit.org/show_bug.cgi?id=87193
3727
3728         Reviewed by Adam Barth.
3729
3730         This patch improves the performance of Bindings/undefined-first-child.html by 58.7%,
3731         Bindings/undefined-get-element-by-id.html by 26.8%,
3732         Dromaeo/dom-query.html(getElementById (not in document)) by 9.8%,
3733         and Dromaeo/dom-query.html(getElementsByName (not in document)) by 2.1%.
3734         These benchmarks test the performance of accessing an undefined Node object.
3735
3736         Performance test results in my Linux desktop:
3737
3738         [Bindings/undefined-first-child.html]
3739           - without my patch
3740           RESULT Bindings: undefined-first-child= 481.843775891 runs/s
3741           median= 474.934036939 runs/s, stdev= 17.7753278263 runs/s, min= 471.204188482 runs/s, max= 534.629404617 runs/s
3742
3743           - with my patch
3744           RESULT Bindings: undefined-first-child= 764.720531908 runs/s
3745           median= 803.515696424 runs/s, stdev= 54.7402312963 runs/s, min= 688.806888069 runs/s, max= 807.061790668 runs/s
3746
3747         [Bindings/undefined-get-element-by-id.html]
3748           - without my patch
3749           RESULT Bindings: undefined-get-element-by-id= 236.642705579 runs/s
3750           median= 234.527786832 runs/s, stdev= 5.77090297761 runs/s, min= 231.362467866 runs/s, max= 246.305418719 runs/s
3751
3752           - with my patch
3753           RESULT Bindings: undefined-get-element-by-id= 300.031032067 runs/s
3754           median= 303.797468354 runs/s, stdev= 6.99060409266 runs/s, min= 287.581699346 runs/s, max= 304.955527319 runs/s
3755
3756         [Dromaeo/dom-query.html(getElementById (not in document))]
3757           - without my patch
3758           2855.80runs/s ±0.30%
3759
3760           - with my patch
3761           3136.20runs/s ±0.22%
3762
3763         [Dromaeo/dom-query.html(getElementsByName (not in document))]
3764           - without my patch
3765           2198.00runs/s ±0.50%
3766
3767           - with my patch
3768           2243.40runs/s ±3.39%
3769
3770         Currently v8::Null() looks up Isolate, which is a bottleneck of
3771         V8Node::toV8() for undefined Nodes. This patch removes the Isolate
3772         look-up by passing Isolate to v8::Null(), like v8::Null(isolate).
3773
3774         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
3775         (GenerateHeader):
3776
3777         * bindings/scripts/test/V8/V8TestActiveDOMObject.h: Updated run-bindings-tests results.
3778         (WebCore::toV8):
3779         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
3780         (WebCore::toV8):
3781         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3782         (WebCore::toV8):
3783         * bindings/scripts/test/V8/V8TestEventTarget.h:
3784         (WebCore::toV8):
3785         * bindings/scripts/test/V8/V8TestException.h:
3786         (WebCore::toV8):
3787         * bindings/scripts/test/V8/V8TestInterface.h:
3788         (WebCore::toV8):
3789         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
3790         (WebCore::toV8):
3791         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
3792         (WebCore::toV8):
3793         * bindings/scripts/test/V8/V8TestNode.h:
3794         (WebCore::toV8):
3795         * bindings/scripts/test/V8/V8TestObj.h:
3796         (WebCore::toV8):
3797         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
3798         (WebCore::toV8):
3799
3800 2012-05-22  MORITA Hajime  <morrita@google.com>
3801
3802         REGRESSION(r116629) tests for <style scoped> is crashing
3803         https://bugs.webkit.org/show_bug.cgi?id=87191
3804
3805         Reviewed by Kent Tamura.
3806
3807         unregisterWithScopingNode() and registerWithScopingNode() doesn't follow
3808         refactoring around removedFrom(), insertedInto() and willRemove().
3809         This change aligns them to such recent changes.
3810
3811         No new tests. Covered by existing tests.
3812
3813         * html/HTMLStyleElement.cpp:
3814         (WebCore::HTMLStyleElement::unregisterWithScopingNode)
3815         (WebCore::HTMLStyleElement::insertedInto):
3816         - Allowed registerWithScopingNode() only for in-document traversal.
3817           That is how it originally did.
3818         (WebCore::HTMLStyleElement::removedFrom):
3819         - Gave ex-parent to unregisterWithScopingNode().
3820         * html/HTMLStyleElement.h:
3821         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
3822         (HTMLStyleElement):
3823
3824 2012-05-21  Shawn Singh  <shawnsingh@chromium.org>
3825
3826         Improve W3C conformance of backface-visibility
3827         https://bugs.webkit.org/show_bug.cgi?id=84195
3828
3829         Reviewed by Adrienne Walker.
3830
3831         Tests: compositing/backface-visibility/backface-visibility-3d.html
3832                compositing/backface-visibility/backface-visibility-hierarchical-transform.html
3833                compositing/backface-visibility/backface-visibility-non3d.html
3834                compositing/backface-visibility/backface-visibility-simple.html
3835
3836         Unit Tests: CCLayerTreeHostCommonTest::verifyBackFaceCullingWithoutPreserves3d
3837                     CCLayerTreeHostCommonTest::verifyBackFaceCullingWithPreserves3d
3838
3839         Also updated a few other layout and unit tests.
3840
3841         This patch updates chromium to conform to the W3C spec on CSS
3842         transforms, Section 12 about backface visibility. This patch also
3843         updates layout tests to reflect the latest W3C spec. In
3844         particular, rule #1 on section 12, http://dev.w3.org/csswg/css3-transforms/#backface-visibility-property
3845         states which transforms should be used to determine backface-visibility.
3846
3847         Because chromium has an additional quirk of the concept of render
3848         surfaces, unit tests needed to be updated as well.
3849
3850         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3851         (WebCore::layerIsRootOfNewRenderingContext):
3852         (WebCore):
3853         (WebCore::isLayerBackFaceVisible):
3854         (WebCore::isSurfaceBackFaceVisible):
3855         (WebCore::calculateVisibleLayerRect):
3856         (WebCore::layerShouldBeSkipped):
3857         (WebCore::calculateDrawTransformsAndVisibilityInternal):
3858
3859 2012-05-22  Sheriff Bot  <webkit.review.bot@gmail.com>
3860
3861         Unreviewed, rolling out r118095.
3862         http://trac.webkit.org/changeset/118095
3863         https://bugs.webkit.org/show_bug.cgi?id=87201
3864
3865         "Causing crashes on Mac in
3866         WebCore::StyleResolver::adjustRenderStyle (Requested by
3867         sundiamonde on #webkit).
3868
3869         * css/StyleResolver.cpp:
3870         (WebCore::StyleResolver::collectMatchingRulesForList):
3871         * page/Settings.cpp:
3872         (WebCore::Settings::Settings):
3873         * page/Settings.h:
3874         (Settings):
3875         * testing/InternalSettings.cpp:
3876         (WebCore::InternalSettings::InternalSettings):
3877         (WebCore::InternalSettings::restoreTo):
3878         * testing/InternalSettings.h:
3879         (InternalSettings):
3880         * testing/InternalSettings.idl:
3881
3882 2012-05-22  Levi Weintraub  <leviw@chromium.org>
3883
3884         NULL ptr in WebCore::RenderBlock::layoutRunsAndFloatsInRange
3885         https://bugs.webkit.org/show_bug.cgi?id=77786
3886
3887         Reviewed by Ryosuke Niwa.
3888
3889         InlineBidiResolver adds one fake TextRun for isolated inlines in the process of creating the
3890         list of TextRuns to send to the UBA. After the UBA has been run and the TextRuns reordered,
3891         we re-run InlineBidiResolver rooted in the isolate and replace the fake run with those
3892         generated by the subsequent pass by calling the method BidiRunList::replaceRunWithRuns.
3893         This method assumes there are runs to replace the fake run with.
3894
3895         Positioned inline children are ignored when creating TextRuns, so when an isolated inline
3896         has only positioned children we end up with an empty set of runs to pass to replaceRunWithRuns.
3897         Ideally, we'd remove the fake run and not replace it with anything, but BidiRunList keeps
3898         a pointer to the logically last run, which we're unable to easily re-determine after the UBA
3899         has been run. Instead, we leave the fake run in the list and simply avoid calling
3900         replaceRunWithRuns when we don't have any replacement runs.
3901
3902         Test: fast/block/line-layout/crash-in-isolate-with-positioned-child.html
3903
3904         * rendering/RenderBlockLineLayout.cpp:
3905         (WebCore::constructBidiRuns):
3906
3907 2012-05-22  Kent Tamura  <tkent@chromium.org>
3908
3909         [V8] Refactor generation code for non-standard functions
3910         https://bugs.webkit.org/show_bug.cgi?id=87185
3911
3912         Reviewed by Kentaro Hara.
3913
3914         No behavior change. Just a refactoring.
3915
3916         * bindings/scripts/CodeGeneratorV8.pm:
3917         (IsStandardFunction): Introduce a new function to check if a
3918         function can be in a batch registration.
3919         (GenerateNonStandardFunction): Factor out a code to generate
3920         non-standard functions.
3921         (GenerateImplementation):
3922         Use IsStandardFunction and GenerateNonStandardFunction.
3923
3924 2012-05-22  Hayato Ito  <hayato@chromium.org>
3925
3926         Make ComposedShadowTreeWalker traverse inactive insertion points correctly.
3927         https://bugs.webkit.org/show_bug.cgi?id=86830
3928
3929         Reviewed by Dimitri Glazkov.
3930
3931         Fixed InsertionPoint::isActive() issue, which may return true
3932         wrongly even if the insertion point is not in Shadow DOM subtree.
3933         Now ComposedShadowTreeWalker can traverse inactive insertion
3934         points correctly using InsertionPoint::isActive().
3935
3936         Test: fast/dom/shadow/composed-shadow-tree-walker.html
3937
3938         * dom/ComposedShadowTreeWalker.cpp:
3939         (WebCore::ComposedShadowTreeWalker::traverseNode):
3940         (WebCore::ComposedShadowTreeWalker::escapeFallbackContentElement):
3941         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
3942         * html/shadow/InsertionPoint.cpp:
3943         (WebCore::InsertionPoint::isActive):
3944         * html/shadow/InsertionPoint.h:
3945         (WebCore::isActiveInsertionPoint):
3946         (WebCore):
3947
3948 2012-05-22  Mark Pilgrim  <pilgrim@chromium.org>
3949
3950         [Chromium] Call canAccelerate2dCanvas directly
3951         https://bugs.webkit.org/show_bug.cgi?id=86893
3952
3953         Reviewed by James Robinson.
3954
3955         Part of a refactoring series. See tracking bug 82948.
3956
3957         * html/HTMLCanvasElement.cpp:
3958         (WebCore::HTMLCanvasElement::shouldAccelerate):
3959         * platform/chromium/PlatformSupport.h:
3960
3961 2012-05-22  Jason Liu  <jason.liu@torchmobile.com.cn>
3962
3963         [BlackBerry] Possible to clobber httponly cookie.
3964         https://bugs.webkit.org/show_bug.cgi?id=86067
3965
3966         Reviewed by Rob Buis.
3967
3968         If a cookie is set by javaScript and there is already a same httpOnly cookie in cookieManager,
3969         we should reject it. If it has a httpOnly property, we reject it, too.
3970
3971         Test: http/tests/cookies/js-get-and-set-http-only-cookie.php
3972
3973         * platform/blackberry/CookieJarBlackBerry.cpp:
3974         (WebCore::setCookies):
3975         * platform/blackberry/CookieManager.cpp:
3976         (WebCore::CookieManager::setCookies):
3977         (WebCore::CookieManager::shouldRejectNotHttpCookie):
3978         (WebCore):
3979         * platform/blackberry/CookieManager.h:
3980
3981 2012-05-22  Dana Jansens  <danakj@chromium.org>
3982
3983         [chromium] Don't drop children of a RenderSurface from the renderSurfaceLayerList when then position of the surface in its clipRect is not known
3984         https://bugs.webkit.org/show_bug.cgi?id=87181
3985
3986         Reviewed by Adrienne Walker.
3987
3988         We want to avoid dropping things from the renderSurfaceLayerList on main
3989         thread when they may be in the renderSurfaceLayerList on impl thread due
3990         to animation. A render surface would drop all its children if its
3991         contentRect was clipped to become empty by its parent. But when the
3992         surface is being animated, then we can't be sure how its parent will
3993         clip the surface's content, so we don't clip it at all.
3994
3995         Chromium bug: http://crbug.com/128739
3996
3997         Unit test: CCLayerTreeHostCommonTest.verifyClipRectCullsSurfaceWithoutVisibleContent
3998
3999         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
4000         (WebCore::calculateDrawTransformsAndVisibilityInternal):
4001
4002 2012-05-22  Kangil Han  <kangil.han@samsung.com>
4003
4004         [EFL][DRT] Implement touch event
4005         https://bugs.webkit.org/show_bug.cgi?id=86720
4006
4007         Reviewed by Hajime Morita.
4008
4009         Currently EFL DRT doesn't support touch event.
4010         Therefore, this patch enabled it and implemented some eventSender function callbacks.
4011
4012         * platform/PlatformTouchEvent.h:
4013         (PlatformTouchEvent): Implement meta state.
4014         * platform/efl/PlatformTouchEventEfl.cpp:
4015         (WebCore::PlatformTouchEvent::PlatformTouchEvent): Implement meta state.
4016
4017 2012-05-22  Chris Rogers  <crogers@google.com>
4018
4019         AudioNodeOutput::disconnectAllParams() must take care when iterating through its parameter list
4020         https://bugs.webkit.org/show_bug.cgi?id=87190
4021
4022         Reviewed by Kenneth Russell.
4023
4024         No new tests. Covered by existing tests.
4025
4026         * Modules/webaudio/AudioNodeOutput.cpp:
4027         (WebCore::AudioNodeOutput::disconnectAllParams):
4028
4029 2012-05-22  MORITA Hajime  <morrita@google.com>
4030
4031         <shadow> and <content> should be hidden behind ContextEnabledFeatures
4032         https://bugs.webkit.org/show_bug.cgi?id=87063
4033
4034         This change repalces "runtimeConditional" tag definition property
4035         with new "contextConditional" property, which refers
4036         ContextEnabledFeatures instead of RuntimeEnabledFeatures.
4037
4038         Reviewed by Dimitri Glazkov.
4039
4040         No new tests. DRT cannot test this. No behaviour change on DRT.
4041
4042         * dom/make_names.pl:
4043         (defaultTagPropertyHash):
4044         (printConstructorInterior):
4045         (printFactoryCppFile):
4046         (printWrapperFunctions):
4047         (printWrapperFactoryCppFile):
4048         * html/HTMLTagNames.in:
4049
4050 2012-05-22  Kent Tamura  <tkent@chromium.org>
4051
4052         Fix a crash in HTMLFormControlElement::disabled().
4053         https://bugs.webkit.org/show_bug.cgi?id=86534
4054
4055         Reviewed by Hajime Morita.
4056
4057         Node::removedFrom() was not called in some cases. This patch fixes it.
4058
4059         No new tests. It's almost impossible to make a reliable test.
4060
4061         * dom/ContainerNodeAlgorithms.h:
4062         Remove inDocument() check so that Node::removedFrom() is called even if
4063         a parent node in an orphan tree is deleted but a child node remains,
4064
4065 2012-05-22  James Robinson  <jamesr@chromium.org>
4066
4067         Add a Setting to make position:fixed form a new stacking context
4068         https://bugs.webkit.org/show_bug.cgi?id=87186
4069
4070         Reviewed by Adam Barth.
4071
4072         position:fixed elements form a new stacking context in several mobile WebKit ports and in the Qt port always. To
4073         be consistent across devices, we want to try turning it on everywhere. This will likely cause compatibility
4074         issues, so we need a runtime setting in order to stage the change carefully.
4075
4076         Tests: fast/block/positioning/fixed-position-stacking-context.html
4077                fast/block/positioning/fixed-position-stacking-context2.html
4078
4079         * css/StyleResolver.cpp:
4080         (WebCore::StyleResolver::collectMatchingRulesForList):
4081         * page/Settings.cpp:
4082         (WebCore::Settings::Settings):
4083         * page/Settings.h:
4084         (WebCore::Settings::setFixedPositionCreatesStackingContext):
4085         (WebCore::Settings::fixedPositionCreatesStackingContext):
4086         (Settings):
4087         * testing/InternalSettings.cpp:
4088         (WebCore::InternalSettings::InternalSettings):
4089         (WebCore::InternalSettings::restoreTo):
4090         (WebCore::InternalSettings::setFixedPositionCreatesStackingContext):
4091         (WebCore):
4092         * testing/InternalSettings.h:
4093         (InternalSettings):
4094         * testing/InternalSettings.idl:
4095
4096 2012-05-22  Adam Barth  <abarth@webkit.org>
4097
4098         RenderInline::absoluteRects does some incorrect layout math
4099         https://bugs.webkit.org/show_bug.cgi?id=87036
4100
4101         Reviewed by Eric Seidel.
4102
4103         http://trac.webkit.org/changeset/88297/trunk/Source/WebCore/rendering/RenderInline.cpp
4104         contained a typo.  We should accumulate offsets, not add sizes to
4105         offsets.
4106
4107         Test: fast/inline/boundingBox-with-continuation.html
4108
4109         * rendering/RenderInline.cpp:
4110         (WebCore::RenderInline::absoluteRects):
4111         (WebCore):
4112
4113 2012-05-22  Dana Jansens  <danakj@chromium.org>
4114