https://bugs.webkit.org/show_bug.cgi?id=70120
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-10-14  Dmitry Lomov  <dslomov@google.com>
2
3         https://bugs.webkit.org/show_bug.cgi?id=70120
4         [Chromium] Pass MessagePortArray to SerializedScriptValue::serialize/deserialize.
5         This patch augments SerializedScriptValue with MessagePortArray* parameter to implement MessagePort 
6         transfer within the message in the future.
7
8         Reviewed by David Levin.
9
10         * bindings/scripts/CodeGeneratorV8.pm:
11         (GenerateParametersCheck):
12         * bindings/v8/SerializedScriptValue.cpp:
13         (WebCore::SerializedScriptValue::create):
14         (WebCore::SerializedScriptValue::SerializedScriptValue):
15         (WebCore::SerializedScriptValue::deserialize):
16         * bindings/v8/SerializedScriptValue.h:
17         * bindings/v8/custom/V8DOMWindowCustom.cpp:
18         (WebCore::handlePostMessageCallback):
19         (WebCore::V8DOMWindow::postMessageCallback):
20         (WebCore::V8DOMWindow::webkitPostMessageCallback):
21         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
22         (WebCore::handlePostMessageCallback):
23         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
24         (WebCore::V8DedicatedWorkerContext::webkitPostMessageCallback):
25         * bindings/v8/custom/V8HistoryCustom.cpp:
26         (WebCore::V8History::pushStateCallback):
27         (WebCore::V8History::replaceStateCallback):
28         * bindings/v8/custom/V8MessageEventCustom.cpp:
29         (WebCore::V8MessageEvent::dataAccessorGetter):
30         * bindings/v8/custom/V8MessagePortCustom.cpp:
31         (WebCore::handlePostMessageCallback):
32         (WebCore::V8MessagePort::postMessageCallback):
33         (WebCore::V8MessagePort::webkitPostMessageCallback):
34         * bindings/v8/custom/V8WorkerCustom.cpp:
35         (WebCore::handlePostMessageCallback):
36         (WebCore::V8Worker::postMessageCallback):
37         (WebCore::V8Worker::webkitPostMessageCallback):
38         * workers/Worker.idl:
39
40 2011-10-14  Jeff Miller  <jeffm@apple.com>
41
42         InjectedBundleHitTestResult::imageRect() should return rect in WKView coordinates
43         https://bugs.webkit.org/show_bug.cgi?id=69963
44         
45         Add infrastructure to convert from any frame view's coordinate system to the
46         root view's coordinate system.
47
48         Reviewed by Simon Fraser.
49
50         No new tests (yet), this is covered by <https://bugs.webkit.org/show_bug.cgi?id=70136>.
51
52         * WebCore.exp.in: Exported WebCore::ScrollView::contentsToRootView(), used by InjectedBundleHitTestResult.cpp.
53         
54         * platform/ScrollView.cpp:
55         (WebCore::ScrollView::rootViewToContents): Added (both point and rect versions).
56         (WebCore::ScrollView::contentsToRootView): Ditto.
57         
58         * platform/ScrollView.h: Added member functions to convert to/from root view coordinates.
59         
60         * platform/Widget.cpp:
61         (WebCore::Widget::convertFromRootView): Added (both point and rect versions).
62         (WebCore::Widget::convertToRootView): Ditto.
63         
64         * platform/Widget.h: Added member functions to convert to/from root view coordinates.
65
66 2011-10-14  Andreas Kling  <kling@webkit.org>
67
68         CSSParser: Remove StyleBase usage.
69         https://bugs.webkit.org/show_bug.cgi?id=70150
70
71         Reviewed by Darin Adler.
72
73         Split CSSParser::m_parsedStyleObjects into two vectors of
74         CSSRules and MediaLists.
75
76         * css/CSSParser.cpp:
77         (WebCore::CSSParser::createMediaList):
78         (WebCore::CSSParser::createCharsetRule):
79         (WebCore::CSSParser::createImportRule):
80         (WebCore::CSSParser::createMediaRule):
81         (WebCore::CSSParser::createKeyframesRule):
82         (WebCore::CSSParser::createStyleRule):
83         (WebCore::CSSParser::createFontFaceRule):
84         (WebCore::CSSParser::createPageRule):
85         (WebCore::CSSParser::createKeyframeRule):
86         * css/CSSParser.h:
87
88 2011-10-14  Adam Barth  <abarth@webkit.org>
89
90         canvas getImageData should explain why it throws SECURITY_ERR
91         https://bugs.webkit.org/show_bug.cgi?id=70088
92
93         Reviewed by Darin Adler.
94
95         Log as message to the console when getImageData fails because the
96         canvas is tainted.
97
98         * html/canvas/CanvasRenderingContext2D.cpp:
99         (WebCore::CanvasRenderingContext2D::getImageData):
100
101 2011-10-14  Andreas Kling  <kling@webkit.org>
102
103         Inspector: Remove StyleBase usage.
104         https://bugs.webkit.org/show_bug.cgi?id=70138
105
106         Reviewed by Antti Koivisto.
107
108         Be fully specific about whether we're operating on a CSSRule or
109         a CSSStyleSheet.
110
111         No behavior change expected, this merely is a cleanup.
112
113         * inspector/InspectorCSSAgent.cpp:
114         (WebCore::InspectorCSSAgent::parentStyleSheet):
115         (WebCore::InspectorCSSAgent::asCSSStyleRule):
116         * inspector/InspectorCSSAgent.h:
117         * inspector/InspectorStyleSheet.cpp:
118         (WebCore::asCSSRuleList):
119
120 2011-10-14  Mark Hahnenberg  <mhahnenberg@apple.com>
121
122         Rename virtual deleteProperty to deletePropertyVirtual
123         https://bugs.webkit.org/show_bug.cgi?id=69884
124
125         Reviewed by Darin Adler.
126
127         No new tests.
128
129         Renamed virtual versions of deleteProperty to deletePropertyVirtual in prepration for 
130         adding the static deleteProperty to the MethodTable in ClassInfo since the 
131         compiler gets mad if the virtual and static versions have the same name.
132
133         * WebCore.exp.in:
134         * bindings/js/JSDOMStringMapCustom.cpp:
135         (WebCore::JSDOMStringMap::deletePropertyVirtual):
136         * bindings/js/JSDOMWindowCustom.cpp:
137         (WebCore::JSDOMWindow::deletePropertyVirtual):
138         * bindings/js/JSDOMWindowShell.cpp:
139         (WebCore::JSDOMWindowShell::deletePropertyVirtual):
140         * bindings/js/JSDOMWindowShell.h:
141         * bindings/js/JSHistoryCustom.cpp:
142         (WebCore::JSHistory::deletePropertyVirtual):
143         * bindings/js/JSLocationCustom.cpp:
144         (WebCore::JSLocation::deletePropertyVirtual):
145         * bindings/js/JSStorageCustom.cpp:
146         (WebCore::JSStorage::deletePropertyVirtual):
147         * bindings/js/ScriptObject.cpp:
148         (WebCore::ScriptGlobalObject::remove):
149         * bindings/objc/WebScriptObject.mm:
150         (-[WebScriptObject removeWebScriptKey:]):
151         * bindings/scripts/CodeGeneratorJS.pm:
152         (GenerateHeader):
153         * bridge/NP_jsobject.cpp:
154         (_NPN_RemoveProperty):
155         * bridge/jni/jni_jsobject.mm:
156         (JavaJSObject::removeMember):
157         * bridge/objc/objc_runtime.h:
158         * bridge/objc/objc_runtime.mm:
159         (JSC::Bindings::ObjcFallbackObjectImp::deletePropertyVirtual):
160         * bridge/runtime_array.cpp:
161         (JSC::RuntimeArray::deletePropertyVirtual):
162         * bridge/runtime_array.h:
163         * bridge/runtime_object.cpp:
164         (JSC::Bindings::RuntimeObject::deletePropertyVirtual):
165         * bridge/runtime_object.h:
166
167 2011-10-14  Simon Fraser  <simon.fraser@apple.com>
168
169         Web Inspector: WebProcess crashes hard when inspecting elements with border-images applied
170         https://bugs.webkit.org/show_bug.cgi?id=70105
171
172         Reviewed by Dave Hyatt.
173         
174         Fix three different crashes related to getting computed style for border-image.
175         In both valueForNinePieceImageSlice() and valueForNinePieceImageQuad(),
176         assign 'right' to 'left' because we've computed a value for 'right' already.
177         Otherwise this would leave 'right' as null, causing later crashes in cssText().
178         
179         In mapNinePieceImage(), borderImage->imageValue() can be null for a border-image
180         shorthand that is missing the image value.
181
182         Test: fast/css/getComputedStyle/computed-style-border-image.html
183
184         * css/CSSComputedStyleDeclaration.cpp:
185         (WebCore::valueForNinePieceImageSlice):
186         (WebCore::valueForNinePieceImageQuad):
187         * css/CSSStyleSelector.cpp:
188         (WebCore::CSSStyleSelector::mapNinePieceImage):
189
190 2011-10-14  Ryosuke Niwa  <rniwa@webkit.org>
191
192         Mac build fix after r97497.
193
194         * editing/markup.cpp:
195         (WebCore::isNonTableCellHTMLBlockElement):
196
197 2011-10-14  Daniel Cheng  <dcheng@chromium.org>
198
199         Context-aware HTML paste for Chromium
200         https://bugs.webkit.org/show_bug.cgi?id=62112
201
202         Reviewed by Ryosuke Niwa.
203
204         Add createFragmentFromMarkupWithContext which understands enough about DOM structure to
205         retain necessary elements to preserve structure and appearance when extracting a subset of
206         a DOM tree.
207
208         Covered by existing layout tests.
209
210         * editing/MarkupAccumulator.h:
211         * editing/markup.cpp:
212         (WebCore::isNonTableCellHTMLBlockElement):
213         (WebCore::isHTMLBlockElement):
214         (WebCore::ancestorToRetainStructureAndAppearanceForBlock):
215         (WebCore::ancestorToRetainStructureAndAppearance):
216         (WebCore::ancestorToRetainStructureAndAppearanceWithNoRenderer):
217         (WebCore::findNodesSurroundingContext):
218         (WebCore::trimFragment):
219         (WebCore::createFragmentFromMarkupWithContext):
220         * editing/markup.h:
221         * platform/chromium/ChromiumDataObject.cpp:
222         (WebCore::ChromiumDataObject::getData):
223         * platform/chromium/DataTransferItemChromium.cpp:
224         (WebCore::DataTransferItemChromium::getAsString):
225         * platform/chromium/PasteboardChromium.cpp:
226         (WebCore::Pasteboard::documentFragment):
227         * platform/chromium/PlatformSupport.h:
228
229 2011-10-14  Peter Beverloo  <peter@chromium.org>
230
231         [Chromium] Inherit settings from Chromium's envsetup.sh, address a NDK todo
232         https://bugs.webkit.org/show_bug.cgi?id=70028
233
234         Reviewed by Adam Barth.
235
236         * WebCore.gyp/WebCore.gyp:
237
238 2011-10-14  Nate Chapin  <japhet@chromium.org>
239
240         Check CachedResourceClient types with ASSERTs rather
241         than if statements.
242         https://bugs.webkit.org/show_bug.cgi?id=70113
243
244         Reviewed by Adam Barth.
245
246         No new tests, no functionality change.
247
248         * loader/cache/CachedCSSStyleSheet.cpp:
249         * loader/cache/CachedFont.cpp:
250         * loader/cache/CachedImage.cpp:
251         * loader/cache/CachedResourceClientWalker.h:
252         * loader/cache/CachedXSLStyleSheet.cpp:
253
254 2011-10-14  Andreas Kling  <kling@webkit.org>
255
256         Don't assert that CSSRules are CSSRules.
257
258         Rubber-stamped by Antti Koivisto.
259
260         * css/CSSRule.h:
261         (WebCore::CSSRule::isRule):
262         * css/CSSStyleSheet.cpp:
263         (WebCore::CSSStyleSheet::append):
264         (WebCore::CSSStyleSheet::insert):
265
266 2011-10-14  Beth Dakin  <bdakin@apple.com>
267
268         Attempted Leopard build fix.
269
270         * platform/graphics/GraphicsContext.cpp:
271         (WebCore::GraphicsContext::createCompatibleBuffer):
272
273 2011-10-14  Andreas Kling  <kling@webkit.org>
274
275         CSSStyleSheet should only ever contain CSSRules.
276         https://bugs.webkit.org/show_bug.cgi?id=70116
277
278         Reviewed by Antti Koivisto.
279
280         Move child management from the StyleSheet class down into
281         CSSStyleSheet and XSLStyleSheet. XSLStyleSheet continues to
282         manage StyleBase objects, while CSSStyleSheet now only contains
283         CSSRule.
284
285         This is enforced at both compile time and runtime with explicit
286         types and assertions.
287
288         * css/CSSRule.h:
289         (WebCore::CSSRule::isRule):
290
291             Promoted to a public method so we can use it in assertions.
292
293         * css/CSSRuleList.h:
294         (WebCore::CSSRuleList::create):
295         (WebCore::CSSRuleList::styleSheet):
296         * css/CSSRuleList.cpp:
297         (WebCore::CSSRuleList::CSSRuleList):
298         * bindings/js/JSCSSRuleListCustom.cpp:
299         (WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
300
301             Change backing to a CSSStyleSheet instead of a StyleSheet.
302
303         * css/CSSRuleList.cpp:
304         (WebCore::CSSRuleList::item):
305
306             Remove redundant assertions.
307
308         * css/CSSStyleSheet.cpp:
309         (WebCore::CSSStyleSheet::isLoading):
310         (WebCore::CSSStyleSheet::addSubresourceStyleURLs):
311         * css/CSSStyleSelector.cpp:
312         (WebCore::RuleSet::addRulesFromSheet):
313         * inspector/InspectorCSSAgent.cpp:
314         (WebCore::InspectorCSSAgent::collectStyleSheets):
315         * page/PageSerializer.cpp:
316         (WebCore::PageSerializer::serializeCSSStyleSheet):
317
318             Use more specific CSSRule* since that's what we get from
319             CSSStyleSheet::item() now.
320
321         * css/StyleSheet.cpp:
322         (WebCore::StyleSheet::~StyleSheet):
323         * css/CSSStyleSheet.cpp:
324         (WebCore::CSSStyleSheet::~CSSStyleSheet):
325         * xml/XSLStyleSheetLibxslt.cpp:
326         (WebCore::XSLStyleSheet::~XSLStyleSheet):
327         * xml/XSLStyleSheetQt.cpp:
328         (WebCore::XSLStyleSheet::~XSLStyleSheet):
329
330             Orphaning logic from ~StyleSheet() moved to subclass dtors.
331
332         * css/StyleSheet.h:
333         * css/CSSStyleSheet.h:
334         (WebCore::CSSStyleSheet::length):
335         (WebCore::CSSStyleSheet::item):
336         * css/CSSStyleSheet.cpp:
337         (WebCore::CSSStyleSheet::append):
338         (WebCore::CSSStyleSheet::insert):
339         (WebCore::CSSStyleSheet::remove):
340
341             Moved from StyleSheet and changed to only accept CSSRules.
342
343         * css/StyleSheet.h:
344         * xml/XSLStyleSheet.h:
345         (WebCore::XSLStyleSheet::length):
346         (WebCore::XSLStyleSheet::item):
347         (WebCore::XSLStyleSheet::append):
348         (WebCore::XSLStyleSheet::insert):
349         (WebCore::XSLStyleSheet::remove):
350
351             Moved from StyleSheet though still uses StyleBase.
352
353 2011-10-14 Yuji Sanachan <sanachan.y@gmail.com>
354
355         Include dom/ExceptionCode.h instead of Filesystem APIs headers
356         to fix compile error when ENABLE_WORKERS=1 and ENABLE_FILE_SYSTEM=0
357         https://bugs.webkit.org/show_bug.cgi?id=70036
358
359         Reviewed by Darin Adler.
360
361         * workers/WorkerContext.cpp:
362         (WebCore::WorkerContext::importScript):
363
364 2011-10-14  Darin Adler  <darin@apple.com>
365
366         Text drawn via -webkit-background-clip:text should be non-blurry with all scaling 
367         techniques
368         https://bugs.webkit.org/show_bug.cgi?id=68641
369
370         Reviewed by Simon Fraser. Committed by Beth Dakin.
371
372         * platform/graphics/GraphicsContext.cpp:
373         (WebCore::GraphicsContext::createCompatibleBuffer): Allocate a buffer based on the 
374         scale
375         factor of the context.
376         * platform/graphics/GraphicsContext.h: Added createCompatibleBuffer.
377
378         * rendering/RenderBoxModelObject.cpp:
379         (WebCore::RenderBoxModelObject::paintFillLayerExtended): Use 
380         createCompatibleBuffer.
381
382 2011-10-14  Ryosuke Niwa  <rniwa@webkit.org>
383
384         Move selectionStartStyle and selectionHasStyle to EditingStyle
385         https://bugs.webkit.org/show_bug.cgi?id=69882
386
387         Reviewed by Enrica Casucci.
388
389         Moved selectionHasStyle and selectionStartStyle from Editor to EditingStyle.
390         Also moved much of code in Editor::selectionStartCSSPropertyValue to method of EditingStyle.
391
392         In addition, moved Range::editingStartPosition to htmlediting where it belongs
393         and renamed it to adjustedSelectionStartForStyleComputation.
394
395         * dom/Range.cpp:
396         * dom/Range.h:
397         * editing/EditingStyle.cpp:
398         (WebCore::EditingStyle::triStateOfStyle): Extracted from selectionHasStyle.
399         (WebCore::EditingStyle::legacyFontSize): Extracted from selectionStartCSSPropertyValue.
400         (WebCore::EditingStyle::styleAtSelectionStart): Moved from Editor::selectionStartStyle.
401         * editing/EditingStyle.h:
402         * editing/Editor.cpp:
403         (WebCore::Editor::fontForSelection):
404         (WebCore::Editor::selectionStartHasStyle):
405         (WebCore::Editor::selectionHasStyle):
406         (WebCore::Editor::selectionStartCSSPropertyValue):
407         * editing/Editor.h:
408         * editing/EditorCommand.cpp:
409         (WebCore::executeToggleStyleInList):
410         * editing/htmlediting.cpp:
411         (WebCore::adjustedSelectionStartForStyleComputation): Moved from Range::editingStartPosition.
412         * editing/htmlediting.h:
413
414 2011-10-14  Ryosuke Niwa  <rniwa@webkit.org>
415
416         Redundant comparison in AccessibilityObject.cpp updateAXLineStartForVisiblePosition
417         https://bugs.webkit.org/show_bug.cgi?id=70074
418
419         Reviewed by Chris Fleizach.
420
421         Removed redundant code.
422
423         * accessibility/AccessibilityObject.cpp:
424         (WebCore::updateAXLineStartForVisiblePosition):
425
426 2011-10-12  Ryosuke Niwa  <rniwa@webkit.org>
427
428         Make the interface of locationAndLengthFromRange and rangeFromLocationAndLength consistent
429         https://bugs.webkit.org/show_bug.cgi?id=69964
430
431         Reviewed by Enrica Casucci.
432
433         Extracted the logic to determine the scope element as FrameSelection::rootEditableElementOrDocumentElement
434         and deployed it in WebKit layer. Made locationAndLengthFromRange take a scope element and renamed it to
435         getLocationAndLengthFromRange.
436
437         * WebCore.exp.in:
438         * editing/FrameSelection.cpp:
439         (WebCore::FrameSelection::rootEditableElementOrDocumentElement):
440         * editing/FrameSelection.h:
441         * editing/TextIterator.cpp:
442         (WebCore::TextIterator::getLocationAndLengthFromRange):
443         * editing/TextIterator.h:
444
445 2011-10-13  Arko Saha  <arko@motorola.com>
446
447         Microdata: Basic implementation of document.getItems() method.
448         https://bugs.webkit.org/show_bug.cgi?id=68610
449
450         Reviewed by Ryosuke Niwa.
451
452         Added ENABLE(MICRODATA) feature flag. Implement document.getItems() DOM API.
453         Spec: http://www.whatwg.org/specs/web-apps/current-work/complete/microdata.html
454
455         Tests: fast/dom/MicroData/001.html
456                fast/dom/MicroData/002.html
457                fast/dom/MicroData/003.html
458                fast/dom/MicroData/004.html
459                fast/dom/MicroData/005.html
460                fast/dom/MicroData/006.html
461                fast/dom/MicroData/007.html
462                fast/dom/MicroData/008.html
463                fast/dom/MicroData/009.html
464
465         * CMakeLists.txt:
466         * DerivedSources.make:
467         * GNUmakefile.am:
468         * GNUmakefile.list.am:
469         * WebCore.gypi:
470         * WebCore.pro:
471         * WebCore.vcproj/WebCore.vcproj:
472         * dom/Document.cpp:
473         (WebCore::Document::getItems): Returns NodeList of the element in the Document that
474         create items, that are not part of other items, and that are of one of the types
475         given in the argument. If no tokens specified/undefined in the argument, then
476         return a NodeList containing all top level microdata items.
477         (WebCore::Document::removeCachedMicroDataItemList): Remove Microdata item node list
478         from cache.
479         * dom/Document.h:
480         * dom/Document.idl: Added getItems() microdata DOM API.
481         * dom/MicroDataItemList.cpp: Added.
482         (WebCore::MicroDataItemList::MicroDataItemList):
483         (WebCore::MicroDataItemList::~MicroDataItemList):
484         (WebCore::MicroDataItemList::nodeMatches):
485         * dom/MicroDataItemList.h: Added.
486         (WebCore::MicroDataItemList::create):
487         * dom/Node.cpp:
488         (WebCore::Node::itemTypeAttributeChanged): It is responsible to invalidate the Microdata
489         item node cache when itemType attribute changes.
490         (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes):
491         (WebCore::NodeListsNodeData::invalidateMicrodataItemListCaches): Invalidate Microdata item
492         list cache.
493         (WebCore::NodeListsNodeData::isEmpty):
494         * dom/Node.h:
495         * dom/NodeRareData.h:
496         * features.pri:
497         * html/HTMLAttributeNames.in: Added itemid, itemprop, itemscope, itemtype attributes.
498         * html/HTMLElement.cpp:
499         (WebCore::HTMLElement::parseMappedAttribute): Handle itemtype attribute change.
500         * html/HTMLElement.idl: Added itemid, itemprop, itemscope, itemtypes microdata attributes.
501
502 2011-10-14  Andreas Kling  <kling@webkit.org>
503
504         Stricter management of WebKitCSSKeyframeRules.
505         https://bugs.webkit.org/show_bug.cgi?id=70109
506
507         Reviewed by Antti Koivisto.
508
509         Covered by existing tests.
510
511         * css/CSSParser.h:
512         * css/CSSParser.cpp:
513         (WebCore::CSSParser::parseKeyframeRule):
514
515             Return a WebKitCSSKeyframeRule instead of a CSSRule.
516
517         * css/CSSRuleList.cpp:
518         (WebCore::CSSRuleList::deleteRule):
519         * css/WebKitCSSKeyframesRule.cpp:
520         (WebCore::WebKitCSSKeyframesRule::deleteRule):
521
522             Moved style sheet orphaning logic for @-webkit-keyframe
523             from CSSRuleList into WebKitCSSKeyframesRule::deleteRule()
524             since that's the only caller operating on those rules.
525
526         * css/WebKitCSSKeyframesRule.cpp:
527         (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
528         (WebCore::WebKitCSSKeyframesRule::length):
529         (WebCore::WebKitCSSKeyframesRule::item):
530         (WebCore::WebKitCSSKeyframesRule::insertRule):
531
532             Change isKeyframeRule() checks to assertions since we know
533             our rules are always WebKitCSSKeyframeRules. Also tidied up.
534
535 2011-10-14  Andreas Kling  <kling@webkit.org>
536
537         Unreviewed, actually remove StyleList.* after r97640.
538
539         * css/StyleList.cpp: Removed.
540         * css/StyleList.h: Removed.
541
542 2011-10-14  Andreas Kling  <kling@webkit.org>
543
544         Merge StyleList into StyleSheet.
545         https://bugs.webkit.org/show_bug.cgi?id=70100
546
547         Reviewed by Antti "printf" Koivisto.
548
549         Merge all functionality from StyleList into StyleSheet,
550         since StyleSheet was the only subclass of StyleList anyway.
551
552         Also removed FIXME's about throwing exceptions in CSSRuleList
553         since they were incorrect. The call sites already handle the
554         relevant cases.
555
556         * CMakeLists.txt:
557         * GNUmakefile.list.am:
558         * WebCore.gypi:
559         * WebCore.pro:
560         * WebCore.vcproj/WebCore.vcproj:
561         * WebCore.xcodeproj/project.pbxproj:
562         * bindings/js/JSCSSRuleListCustom.cpp:
563         (WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
564         * css/CSSRuleList.cpp:
565         (WebCore::CSSRuleList::CSSRuleList):
566         (WebCore::CSSRuleList::length):
567         (WebCore::CSSRuleList::item):
568         (WebCore::CSSRuleList::deleteRule):
569         (WebCore::CSSRuleList::append):
570         (WebCore::CSSRuleList::insertRule):
571         * css/CSSRuleList.h:
572         (WebCore::CSSRuleList::create):
573         (WebCore::CSSRuleList::styleSheet):
574         * css/StyleList.cpp: Removed.
575         * css/StyleList.h: Removed.
576         * css/StyleSheet.cpp:
577         (WebCore::StyleSheet::StyleSheet):
578         (WebCore::StyleSheet::append):
579         (WebCore::StyleSheet::insert):
580         (WebCore::StyleSheet::remove):
581         * css/StyleSheet.h:
582         (WebCore::StyleSheet::length):
583         (WebCore::StyleSheet::item):
584
585 2011-10-14  Mihnea Ovidenie  <mihnea@adobe.com>
586
587         [CSS Regions] Change -webkit-flow to -webkit-flow-into
588         https://bugs.webkit.org/show_bug.cgi?id=70014
589
590         Reviewed by David Hyatt.
591
592         1. -webkit-flow is renamed to -webkit-flow-into
593         2. -webkit-flow-into takes <ident> instead of strings
594
595         * css/CSSComputedStyleDeclaration.cpp:
596         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
597         * css/CSSParser.cpp:
598         (WebCore::CSSParser::parseValue):
599         (WebCore::validFlowName):
600         (WebCore::CSSParser::parseFlowThread):
601         * css/CSSPropertyNames.in:
602         * css/CSSStyleSelector.cpp:
603         (WebCore::CSSStyleSelector::applyProperty):
604
605 2011-10-12  Hans Wennborg  <hans@chromium.org>
606
607         IndexedDB: Remove SQLite backing store
608         https://bugs.webkit.org/show_bug.cgi?id=69620
609
610         Reviewed by Darin Fisher.
611
612         Remove the SQLite backing store implementation; it is not used anymore.
613         Also remove the maximumSize parameter, it is not used either.
614
615         No new functionality, so no new tests.
616
617         * GNUmakefile.list.am:
618         * WebCore.gypi:
619         * storage/IDBBackingStore.h:
620         * storage/IDBFactory.cpp:
621         (WebCore::IDBFactory::getDatabaseNames):
622         (WebCore::IDBFactory::open):
623         * storage/IDBFactoryBackendImpl.cpp:
624         (WebCore::computeFileIdentifier):
625         (WebCore::computeUniqueIdentifier):
626         (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
627         (WebCore::IDBFactoryBackendImpl::open):
628         (WebCore::IDBFactoryBackendImpl::openBackingStore):
629         * storage/IDBFactoryBackendImpl.h:
630         * storage/IDBFactoryBackendInterface.h:
631         * storage/IDBLevelDBBackingStore.cpp:
632         (WebCore::IDBLevelDBBackingStore::open):
633         * storage/IDBLevelDBBackingStore.h:
634         * storage/IDBSQLiteBackingStore.cpp: Removed.
635         * storage/IDBSQLiteBackingStore.h: Removed.
636
637 2011-10-14  Nikolas Zimmermann  <nzimmermann@rim.com>
638
639         Not reviewed. Fix mac builds. r97448 broke them.
640
641         * WebCore.xcodeproj/project.pbxproj: Set ImageBySizeCache.h role to private.
642
643 2011-10-14  Justin Schuh  <jschuh@chromium.org>
644
645         Clear WebMediaPlayerClientImpl back pointer on destruction
646         https://bugs.webkit.org/show_bug.cgi?id=69973
647
648         Reviewed by James Robinson.
649
650         Clear the backpointer and remove the unused m_currentFrame
651
652         * platform/graphics/chromium/VideoLayerChromium.cpp:
653         (WebCore::VideoLayerChromium::VideoLayerChromium):
654         (WebCore::VideoLayerChromium::cleanupResources):
655         (WebCore::VideoLayerChromium::updateCompositorResources):
656         (WebCore::VideoLayerChromium::releaseProvider):
657         * platform/graphics/chromium/VideoLayerChromium.h:
658
659 2011-10-13  Hans Wennborg  <hans@chromium.org>
660
661         IndexedDB: Make IDBCursor.value() return an IDBAny object
662         https://bugs.webkit.org/show_bug.cgi?id=70024
663
664         Reviewed by Tony Chang.
665
666         This is to work around the fact that the V8 bindings mechanism does
667         eager deserialization of SerializedScriptValue attributes. This means
668         that the value is fetched from the back-end only once, when the
669         IDBCursor is first wrapped. When the cursor's value changes, this is
670         not reflected.
671
672         We work around this by making IDBCursor.value() return the
673         SerializedScriptValue wrapped in an IDBAny object.
674
675         * storage/IDBCursor.cpp:
676         (WebCore::IDBCursor::value):
677         * storage/IDBCursor.h:
678         * storage/IDBCursorWithValue.idl:
679
680 2011-10-14  Rémi Duraffort  <remi.duraffort@st.com>
681
682         Fix compilation when the JS Debugger is disabled.
683         https://bugs.webkit.org/show_bug.cgi?id=70007
684
685         Reviewed by Antti Koivisto.
686
687         * inspector/InspectorInstrumentation.cpp:
688         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
689         * inspector/InspectorRuntimeAgent.cpp:
690         * inspector/InspectorRuntimeAgent.h:
691         * inspector/WorkerInspectorController.cpp:
692         * inspector/WorkerInspectorController.h:
693         * workers/WorkerMessagingProxy.cpp:
694         (WebCore::WorkerMessagingProxy::disconnectFromInspector):
695         (WebCore::WorkerMessagingProxy::sendMessageToInspector):
696
697 2011-10-13  Nikolas Zimmermann  <nzimmermann@rim.com>
698
699         Prepare SVGImage intrinsic size negotiation: Introduce an IntSize <-> SVGImage cache in CachedImage
700         https://bugs.webkit.org/show_bug.cgi?id=69416
701
702         Reviewed by Antti Koivisto.
703
704         Refactor ImageBySizeCache out of CSSImageGeneratorValue as CachedImage wants to use the same type of cache for its purposes.
705         When introducing the SVGImage intrinsic size negotiation the container size of an SVGImage is dependant on the place where
706         it gets embedded (eg width/height attributes of host documents <img> force a certain size).
707
708         Currently CachedImage only contains a single RefPtr<Image>, which it constructs out of the decoded data.
709         Multiple RenderObjects share the same CachedImages, when embedding eg. a SVG document in a <html:img> or using it in a background-image for a <div>.
710         Consider the case where two RenderObjects use the same CachedImage, each with a different container size (200x100 vs 100x200) and the embedded
711         document contains a viewBox and some arbitary preserveAspectRatio settings. To honour these we have to relayout the document with the desired
712         size (percentual unit resolving etc, all depend on the RenderSVGRoots size).
713
714         With the current design this is hard to realize, w/o requring to relayout the embedded document for each embedder that uses an SVGImage.
715         This patch introduces a cache right within CachedImage, which manages a map of images to certain sizes, by utilizing the new ImageBySizeCache.
716
717         CachedImage::imageForRenderer() takes a RenderObject* parameter, which it uses to look up the last set image container size for a renderer.
718         Using that size it queries the cache whether it already has an SVGImage for that size, if not it gets created, by creating a whole
719         new instance of SVGImage, filling it with the already decoded data, and passing on a fixed image container size, which overrides the
720         size that RenderSVGRoot reports, when computeReplacedLogicalWidth/Height is called and thus laying out the document at the desired size.
721         This image is then put in the cache for further reusability.
722
723         Likewise CachedImage::setContainerSizeForRenderer() now takes a RenderObject* parameter and stores that in the cache with an associated container size.
724         It requires to touch several files which use CachedImage throughout WebCore/WebKit/WebKit2.
725
726         The actual cache is not yet turned on yet, so this is not a functional change so far, as it needs some other changes to SVGImage,
727         which will come with the master patch in bug 47156.
728
729         No new tests yet, as the new cache isn't turned on yet.
730
731         * CMakeLists.txt: Add rendering/ImageBySizeCache.* to build.
732         * GNUmakefile.list.am: Ditto.
733         * WebCore.gypi: Ditto.
734         * WebCore.pro: Ditto.
735         * WebCore.vcproj/WebCore.vcproj: Ditto.
736         * WebCore.xcodeproj/project.pbxproj: Ditto.
737         * accessibility/AccessibilityRenderObject.cpp:
738         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Use new CachedImage::imageSizeForRenderer(RenderObject*) method.
739         * bindings/objc/DOM.mm: Ditto (for CachedImage::image()).
740         (-[DOMElement image]):
741         (-[DOMElement _imageTIFFRepresentation]):
742         * bridge/qt/qt_pixmapruntime.cpp:
743         (JSC::Bindings::QtPixmapInstance::variantFromObject): Ditto (for CachedImage::image()).
744         * css/CSSCanvasValue.cpp: s/m_clients/clients()/, which now live in the ImageBySizeCache instead of CSSImageGeneratorValue.
745         (WebCore::CSSCanvasValue::canvasChanged):
746         (WebCore::CSSCanvasValue::canvasResized):
747         (WebCore::CSSCanvasValue::image):
748         * css/CSSGradientValue.cpp: Ditto.
749         (WebCore::CSSGradientValue::image):
750         * css/CSSImageGeneratorValue.cpp: Move the sizes/clients/images cache into a new ImageBySizeCache class, to make it usable for CachedImage as well.
751         (WebCore::CSSImageGeneratorValue::addClient): Adapt to move.
752         (WebCore::CSSImageGeneratorValue::removeClient): Ditto.
753         (WebCore::CSSImageGeneratorValue::getImage): Ditto.
754         (WebCore::CSSImageGeneratorValue::putImage): Ditto.
755         * css/CSSImageGeneratorValue.h:
756         (WebCore::CSSImageGeneratorValue::clients): Forwarded to the ImageBySizeCache.
757         * editing/DeleteButtonController.cpp: 
758         (WebCore::isDeletableElement): CachedImage::canRender() now takes a RenderObject* parameter.
759         * html/HTMLImageElement.cpp:
760         (WebCore::HTMLImageElement::width): Use new CachedImage::imageSizeForRenderer(RenderObject*) method.
761         (WebCore::HTMLImageElement::height): Ditto.
762         (WebCore::HTMLImageElement::naturalWidth): Ditto.
763         (WebCore::HTMLImageElement::naturalHeight): Ditto.
764         * html/ImageDocument.cpp:
765         (WebCore::ImageDocumentParser::finish): Ditto.
766         (WebCore::ImageDocument::scale): Ditto.
767         (WebCore::ImageDocument::resizeImageToFit): Ditto.
768         (WebCore::ImageDocument::imageUpdated): Ditto.
769         (WebCore::ImageDocument::restoreImageSize): Ditto.
770         (WebCore::ImageDocument::imageFitsInWindow): Ditto.
771         * html/canvas/CanvasRenderingContext.cpp:
772         (WebCore::CanvasRenderingContext::wouldTaintOrigin): Use new CachedImage::imageForRenderer(RenderObject*) method.
773         * html/canvas/CanvasRenderingContext2D.cpp:
774         (WebCore::isOriginClean): Ditto.
775         (WebCore::size): Ditto (for CachedImage::imageSizeForRenderer()).
776         (WebCore::CanvasRenderingContext2D::drawImage): Ditto.
777         (WebCore::CanvasRenderingContext2D::createPattern): Ditto.
778         * html/canvas/WebGLRenderingContext.cpp:
779         (WebCore::WebGLRenderingContext::texImage2D): Ditto.
780         (WebCore::WebGLRenderingContext::texSubImage2D): Ditto.
781         * loader/cache/CachedImage.cpp: Add currently _disabled_ cache for SVGImages. The intrinsic size negotiation will need to use multiple SVGImages
782         for each requested size (equal to the size of the embedding place for the image) - make it possible to cache these SVGImages, and maintain a cache
783         for them. The hash code is a 1:1 refactoring from the already present code in CSSImageGeneratorValue, now named 'ImageBySizeCache'.
784         (WebCore::CachedImage::lookupImageForSize): Looks up an Image from the cache for a given IntSize. Currently turned off.
785         (WebCore::CachedImage::lookupImageForRenderer): Looks up an Image from the cache for a given renderer. Currently turned off.
786         (WebCore::CachedImage::lookupOrCreateImageForRenderer): Looks up an Image from the cache or creates a new SVGImage for a given size and caches it, if possible. Currently turned off.
787         All following changes share this: Don't operate on m_image directly, instead always look up one from the cache for a given size or renderer - if that's not present fallback to m_image.
788         When an SVGImage is first created by CachedImage::createImage() and stored in m_image, the cache remains empty.
789
790         If eg. <img width="30" height="70" src="foo.svg"> is used which implies a container size of 30x70 a new SVGImage is created with the additional information of a 30x70 container size
791         which is immediately passed to the SVGImage after its creation. This SVGImage is put in the ImageBySizeCache associated with a container size of 30x70.
792         We now have two SVGImage objects present, one living in CachedImage::m_image, created by createImage() during data decoding, and one living in the ImageBySizeCache
793         created by lookupOrCreateImageForRenderer() associated with the 30x70 container. The first SVGImage::size() will return a value as defined in the referenced foo.svg,
794         whereas the SVGImage::size() call of the new SVGImage living in the cache reports 30x70 and renders according to that.
795
796         Whenever any method of CachedImage is called with a RenderObject* or IntSize, we can't just operate on m_image anymore but instead have to lookup the right
797         images for a certain renderer/size from the cache and operate on these. When calling eg. CachedImage::image() with a null renderer, m_image is returned.
798         When passing with a valid renderer only cache lookups are done if the m_image is actually a SVGImage, otherwhise lookupImageForSize/Renderer will just return the m_image.
799         There is no logical change induced for non-SVGImage derived images.
800
801         CachedImage::image() of course needs a RenderObject* parameter now, to identify which of the images from the cache to use, if the underlying image is a SVGImage.
802         Luckily these information are already present in StyleCachedImage/StyleImage & friends and only need to be added for some additional methods.
803         (WebCore::CachedImage::image): FIXME
804         (WebCore::CachedImage::imageForRenderer): Call lookupOrCreateImageForRenderer() instead of returning m_image, if it's not null. Its a no-op for non SVGImage derived objects.
805         (WebCore::CachedImage::setContainerSizeForRenderer): For non-SVGImages, just pass on the size to the m_image. For SVGImages, associate the passed in renderer with the IntSize in the cache.
806                                                              This does NOT create the SVGImage yet, this is delayed until imageForRenderer() is called for a given renderer that wants this size.
807         (WebCore::CachedImage::imageSize): Don't operate on m_image, ask lookupImageForRenderer() with the incoming renderer.
808         (WebCore::CachedImage::imageRect): Ditto.
809         (WebCore::CachedImage::clear): Force clearing the m_svgImageCache.
810         (WebCore::CachedImage::data): Call m_image->size() instead of imageSize(), to avoid having to pass a null renderer to imageSize() as here no renderer is available yet.
811         (WebCore::CachedImage::destroyDecodedData): Don't destroy decoded data for SVG images, as m_data needs to be accessable at any time to construct a cloned SVGImage.
812                                                     In future we don't need this anymore if we make sure multiple SVGImages share the same trees, but that's for a follow-up patch.
813         (WebCore::CachedImage::decodedSizeChanged): Don't operate on m_image, ask lookupImageForRenderer() with the incoming renderer.
814         (WebCore::CachedImage::didDraw): Ditto.
815         (WebCore::CachedImage::shouldPauseAnimation): Ditto.
816         (WebCore::CachedImage::animationAdvanced): Ditto.
817         (WebCore::CachedImage::changedInRect): Ditto. (eg. when leaving out this change animated SVG images wouldn't update anymore, as the animation didn't happen on m_image!)
818         * loader/cache/CachedImage.h: imageForRenderer/canRender/setContainerSizeForRenderer/imageSizeForRenderer now all take a RenderObject* parameter to identifiy the current user of the image.
819         (WebCore::CachedImage::canRender): Pass on the incoming renderer to imageSizeForRenderer().
820         * page/DragController.cpp:
821         (WebCore::getImage): Use new CachedImage::imageForRenderer(RenderObject*) method.
822         * page/EventHandler.cpp:
823         (WebCore::EventHandler::selectCursor): Ditto.
824         * page/PageSerializer.cpp:
825         (WebCore::PageSerializer::serializeFrame): Ditto.
826         (WebCore::PageSerializer::addImageToResources): Ditto.
827         (WebCore::PageSerializer::retrieveResourcesForCSSDeclaration): Ditto.
828         * page/PageSerializer.h:
829         * platform/chromium/ClipboardChromium.cpp:
830         (WebCore::writeImageToDataObject): Ditto.
831         * platform/chromium/PasteboardChromium.cpp:
832         (WebCore::Pasteboard::writeImage): Ditto.
833         * platform/graphics/Image.h:
834         (WebCore::Image::isSVGImage): Add boolean helper to identify SVGImages, just like isBitmapImage().
835         * platform/gtk/ClipboardGtk.cpp:
836         (WebCore::ClipboardGtk::declareAndWriteDragImage): Use new CachedImage::imageForRenderer(RenderObject*) method.
837         * platform/gtk/PasteboardGtk.cpp:
838         (WebCore::Pasteboard::writeImage): Ditto.
839         * platform/mac/HTMLConverter.mm:
840         (fileWrapperForElement): Ditto.
841         * platform/mac/PasteboardMac.mm:
842         (WebCore::Pasteboard::writeImage): Ditto.
843         * platform/qt/ClipboardQt.cpp:
844         (WebCore::ClipboardQt::declareAndWriteDragImage): Ditto.
845         * platform/qt/PasteboardQt.cpp:
846         (WebCore::Pasteboard::writeImage): Ditto.
847         * platform/win/ClipboardWin.cpp:
848         (WebCore::writeImageToDataObject): Ditto.
849         * platform/win/PasteboardWin.cpp:
850         (WebCore::Pasteboard::writeImage): Ditto.
851         * platform/wince/PasteboardWinCE.cpp:
852         (WebCore::Pasteboard::writeImage): Ditto.
853         * rendering/HitTestResult.cpp:
854         (WebCore::HitTestResult::image): Ditto.
855         * rendering/ImageBySizeCache.cpp: Copied from WebCore/css/CSSImageGeneratorValue.cpp, to preserve history for the original cache code.
856         (WebCore::ImageBySizeCache::ImageBySizeCache): Straight copy from CSSImageGeneratorValue, renamed to ImageBySizeCache, removing all but the cache relevant code.
857         (WebCore::ImageBySizeCache::addClient): Ditto.
858         (WebCore::ImageBySizeCache::removeClient): Ditto.
859         (WebCore::ImageBySizeCache::getImage): Ditto.
860         (WebCore::ImageBySizeCache::putImage): Ditto.
861         (WebCore::ImageBySizeCache::clear): New function, that clears the cache, introduced for the needs of CachedImage.
862         (WebCore::ImageBySizeCache::imageForSize): New function to query an Image* for a given IntSize, introduced for the needs of CachedImage.
863         (WebCore::ImageBySizeCache::sizeForClient): New function to query an IntSize for a given renderer.
864         * rendering/ImageBySizeCache.h: Copied from WebCore/css/CSSImageGeneratorValue.h.
865         (WebCore::ImageBySizeCache::clients):
866         * rendering/InlineFlowBox.cpp:
867         (WebCore::InlineFlowBox::paintFillLayer): CachedImage::canRender() now takes a RenderObject* parameter.
868         (WebCore::InlineFlowBox::paintBoxDecorations): Ditto.
869         (WebCore::InlineFlowBox::paintMask): Ditto.
870         * rendering/RenderBox.cpp:
871         (WebCore::RenderBox::paintMaskImages): Ditto.
872         (WebCore::RenderBox::repaintLayerRectsForImage): Ditto.
873         * rendering/RenderBoxModelObject.cpp:
874         (WebCore::RenderBoxModelObject::paintFillLayerExtended): Ditto.
875         (WebCore::RenderBoxModelObject::calculateFillTileSize): Ditto (for CachedImage::setContainerSizeForRenderer()).
876         (WebCore::RenderBoxModelObject::paintNinePieceImage): Ditto.
877         * rendering/RenderImage.cpp:
878         (WebCore::RenderImage::imageSizeForError): Use new CachedImage::imageForRenderer(RenderObject*) method.
879         (WebCore::RenderImage::setImageSizeForAltText): Ditto.
880         (WebCore::RenderImage::computeReplacedLogicalWidth): FIXME
881         * rendering/RenderImageResource.cpp:
882         (WebCore::RenderImageResource::setContainerSizeForRenderer): Pass on m_renderer to CachedImage::setContainerSizeForRenderer().
883         * rendering/RenderImageResource.h: Remove constness from setContainerSizeForRenderer.
884         (WebCore::RenderImageResource::image): Pass on m_renderer to CachedImage::image().
885         (WebCore::RenderImageResource::imageSize): Pass on m_renderer to CachedImage::imageSizeForRenderer().
886         * rendering/RenderImageResourceStyleImage.h:
887         (WebCore::RenderImageResourceStyleImage::setContainerSizeForRenderer): Remove constness, pass on m_renderer to StyleImage::setContainerSizeForRenderer().
888         * rendering/RenderLayerBacking.cpp:
889         (WebCore::RenderLayerBacking::isDirectlyCompositedImage): Use new CachedImage::imageForRenderer(RenderObject*) method.
890         (WebCore::RenderLayerBacking::updateImageContents): Ditto.
891         * rendering/RenderListMarker.cpp:
892         (WebCore::RenderListMarker::computePreferredLogicalWidths): CachedImage::setContainerSizeForRenderer() now takes a RenderObject* parameter.
893         * rendering/RenderObject.cpp:
894         (WebCore::mustRepaintFillLayers): CachedImage::canRender() now takes a RenderObject* parameter.
895         (WebCore::RenderObject::borderImageIsLoadedAndCanBeRendered): Ditto.
896         * rendering/style/StyleCachedImage.cpp:
897         (WebCore::StyleCachedImage::canRender): Pass on incoming renderer to CachedImage::canRender().
898         (WebCore::StyleCachedImage::imageSize): Pass on incoming renderer to CachedImage::imageSizeForRenderer().
899         (WebCore::StyleCachedImage::setContainerSizeForRenderer): Pass on incoming renderer to CachedImage::setContainerSizeForRenderer().
900         (WebCore::StyleCachedImage::addClient): Remove unneeded return statment in void method.
901         (WebCore::StyleCachedImage::removeClient): Ditto.
902         (WebCore::StyleCachedImage::image): Pass on incoming renderer to CachedImage::image().
903         * rendering/style/StyleCachedImage.h: Add RenderObject* parameter to canRender()/setContainerSizeForRenderer(). image() already has one, that was unused so far.
904         * rendering/style/StyleGeneratedImage.cpp: Inlined setContainerSizeForRenderer.
905         * rendering/style/StyleGeneratedImage.h: 
906         (WebCore::StyleGeneratedImage::setContainerSizeForRenderer): Add RenderObject* parameter.
907         * rendering/style/StyleImage.h:
908         (WebCore::StyleImage::canRender): Ditto.
909         * rendering/style/StylePendingImage.h:
910         (WebCore::StylePendingImage::setContainerSizeForRenderer): Ditto.
911         * svg/SVGFEImageElement.cpp:
912         (WebCore::SVGFEImageElement::build): Use new CachedImage::imageForRenderer(RenderObject*) method.
913         * svg/graphics/SVGImage.cpp: Cleanup file, the include hack seems not needed anymore.
914         (WebCore::SVGImage::setContainerSize): s/LayoutSize/IntSize/ to match the code in platform/.
915         * svg/graphics/SVGImage.h: Ditto.
916         (WebCore::SVGImage::isSVGImage): Return true.
917
918 2011-10-13  Kenichi Ishibashi  <bashi@chromium.org>
919
920         [Chromium] Uninitialized read in WebCore::*Font* / HB_GSUB_Select_Feature
921         https://bugs.webkit.org/show_bug.cgi?id=70087
922
923         Reviewed by Kent Tamura.
924
925         Initialize local variables in ComplexTextControllerLinux::setupfontFeatures.
926
927         No new tests because there is no behavior change. Manually tested with valgrind.
928
929         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
930         (WebCore::setupFontFeatures):
931
932 2011-10-13  Csaba Osztrogonác  <ossy@webkit.org>
933
934         [Qt][Win] Unreviewed buildfix after r97433.
935
936         * platform/MemoryPressureHandler.h: Add a missing include.
937
938 2011-10-13  Adam Barth  <abarth@webkit.org>
939
940         Spelling error in v8WebSocket::constructorCallback error
941         https://bugs.webkit.org/show_bug.cgi?id=63943
942
943         Reviewed by Kent Tamura.
944
945         Fix typo.
946
947         * bindings/v8/custom/V8WebSocketCustom.cpp:
948         (WebCore::V8WebSocket::constructorCallback):
949
950 2011-10-13  Mark Hahnenberg  <mhahnenberg@apple.com>
951
952         Rename virtual getConstructData to getConstructDataVirtual
953         https://bugs.webkit.org/show_bug.cgi?id=69872
954
955         Reviewed by Geoffrey Garen.
956
957         No new tests.
958
959         Renamed virtual getConstructData functions to getConstructDataVirtual to 
960         avoid conflicts when we add static getConstructData to the MethodTable.
961
962         * WebCore.exp.in:
963         * bindings/js/JSAudioConstructor.cpp:
964         (WebCore::JSAudioConstructor::getConstructDataVirtual):
965         * bindings/js/JSAudioConstructor.h:
966         * bindings/js/JSImageConstructor.cpp:
967         (WebCore::JSImageConstructor::getConstructDataVirtual):
968         * bindings/js/JSImageConstructor.h:
969         * bindings/js/JSOptionConstructor.cpp:
970         (WebCore::JSOptionConstructor::getConstructDataVirtual):
971         * bindings/js/JSOptionConstructor.h:
972         * bindings/js/ScriptFunctionCall.cpp:
973         (WebCore::ScriptFunctionCall::construct):
974         * bindings/scripts/CodeGeneratorJS.pm:
975         (GenerateConstructorDeclaration):
976         (GenerateConstructorDefinition):
977         * bindings/scripts/test/JS/JSTestInterface.cpp:
978         (WebCore::JSTestInterfaceConstructor::getConstructDataVirtual):
979         * bridge/runtime_object.cpp:
980         (JSC::Bindings::RuntimeObject::getConstructDataVirtual):
981         * bridge/runtime_object.h:
982
983 2011-10-13  Simon Fraser  <simon.fraser@apple.com>
984
985         Remove #include of <QuartzCore/QuartzCore.h> in a widely-used header.
986
987         Reviewed by Sam Weinig.
988
989         * platform/PlatformScreen.h: Typedef PlatformDisplayID to a uint32_t.
990         * platform/graphics/DisplayRefreshMonitor.h: Typedef CVDisplayLinkRef as
991         an opaque type to avoid bringing in QuartzCore.h, and move displayLinkCallback
992         to the .cpp file since it uses Core Video types.
993         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
994         (WebCore::displayLinkCallback): Make this a local static function, that
995         calls a member fuction on the object.
996         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
997         (WebCore::DisplayRefreshMonitor::displayLinkFired):
998
999 2011-10-13  Michael Saboff  <msaboff@apple.com>
1000
1001         REGRESSION: High frequency memory warnings cause Safari to hog the CPU doing useless garbage collection
1002         https://bugs.webkit.org/show_bug.cgi?id=69774
1003
1004         Throttle the processing of memory pressure events to no more often than once every 5 seconds.
1005
1006         Reviewed by Geoffrey Garen.
1007
1008         No new tests.
1009
1010         * platform/MemoryPressureHandler.cpp:
1011         (WebCore::MemoryPressureHandler::MemoryPressureHandler):
1012         * platform/MemoryPressureHandler.h:
1013         * platform/mac/MemoryPressureHandlerMac.mm:
1014         (WebCore::MemoryPressureHandler::respondToMemoryPressure):
1015
1016 2011-10-13  Kentaro Hara  <haraken@chromium.org>
1017
1018         Implement an OverflowEvent constructor for V8
1019         https://bugs.webkit.org/show_bug.cgi?id=70017
1020
1021         Reviewed by Adam Barth.
1022
1023         Test: fast/events/constructors/overflow-event-constructor.html
1024
1025         * bindings/v8/custom/V8EventConstructors.cpp: Added an OverflowEvent constructor.
1026         * dom/OverflowEvent.idl: Replaced 'JSCustomConstructor' with 'CustomConstructor'.
1027
1028 2011-10-13  Anantanarayanan G Iyengar  <ananta@chromium.org>
1029
1030         https://bugs.webkit.org/show_bug.cgi?id=70064
1031         
1032         The NPObjectWrapper class used by V8 bindings in Chromium to wrap the window
1033         script object was allocating an instance of itself in the NPAllocate
1034         implementation and returning this pointer. It should be returning a pointer
1035         to the wrapped NPObject structure (NPProxyObject). The member function
1036         getUnderlyingNPObject should return 0 if we fail to find the underlying NPObject
1037         for the call. It was incorrectly returning a pointer to the same NPObject in
1038         this case which could cause recursion. 
1039
1040         Reviewed by Nate Chapin.
1041
1042         No new tests as there is no change in functionality.
1043
1044         * bindings/v8/NPObjectWrapper.cpp:
1045         (WebCore::NPObjectWrapper::getObjectForCall):
1046         (WebCore::NPObjectWrapper::NPAllocate):
1047         * bindings/v8/NPObjectWrapper.h:
1048
1049 2011-10-13  Arthur Hsu  <arthurhsu@chromium.org>
1050
1051         Ensure font loaded before calling Skia to drawPosText in Chrome sandbox
1052         https://bugs.webkit.org/show_bug.cgi?id=69370
1053
1054         Reviewed by James Robinson.
1055
1056         * platform/graphics/chromium/FontChromiumWin.cpp:
1057         (WebCore::Font::drawGlyphs):
1058
1059 2011-10-13  Kentaro Hara  <haraken@chromium.org>
1060
1061         Regarding constructor, replace [ConstructorWith=...] IDL with [CallWith=...] IDL
1062         https://bugs.webkit.org/show_bug.cgi?id=69801
1063
1064         As for constructors, [ConstructorWith=...] has the same meaning as [CallWith=...].
1065         We should deprecate [ConstructorWith=...]. This is a clean-up bug for the bug 65839.
1066
1067         Reviewed by Adam Barth.
1068
1069         No new tests, since no change in behavior.
1070
1071         * bindings/scripts/CodeGeneratorV8.pm: Replaced [ConstructorWith=...] IDL with [CallWith=...] IDL.
1072         (GenerateConstructorCallback):
1073         * bindings/scripts/test/TestInterface.idl: Ditto.
1074         * fileapi/FileReader.idl: Ditto.
1075         * p2p/PeerConnection.idl: Ditto.
1076         * page/EventSource.idl: Ditto.
1077         * workers/Worker.idl: Ditto.
1078
1079 2011-10-13  Kentaro Hara  <haraken@chromium.org>
1080
1081         Constructor should not be called if the object is being constructed inside WebCore
1082         https://bugs.webkit.org/show_bug.cgi?id=70015
1083
1084         Reviewed by Adam Barth.
1085
1086         Summary: A DOM object can be created from the JS context and from the WebCore context.
1087         Constructor should be called if the object is created from the JS context,
1088         but should not be called if the object is created from the WebCore context.
1089
1090         Details:
1091         - Expected behavior when the object is created from the JS context (e.g. "new Event()"):
1092         (1) V8XXXX::constructorCallback() is called.
1093         (2) V8XXXX::constructorCallback() calls XXXX::create().
1094         (3) XXXX::create() creates a C++ object.
1095         (4) V8XXXX::constructorCallback() calls toV8() for the C++ object.
1096         (5) toV8() wraps the C++ object and returns the wrapped JS object.
1097
1098         - Actual behavior when the object is created from the JS context (e.g. "new Event()"):
1099         As described above (1) - (5). That's fine!!
1100
1101         - Expected behavior when the object is created from the WebCore context.
1102         (e.g. "window.addEventListener("load", function (event) { ... });". In this case,
1103         the Event object is created inside the WebCore context):
1104         (1) WebCore calls XXXX::create().
1105         (2) XXXX::create() creates a C++ object.
1106         (3) WebCore calls toV8() for the C++ object.
1107         (4) toV8() wraps the C++ object and returns the wrapped JS object.
1108
1109         - Actual behavior when the object is created from the WebCore context.
1110         (e.g. "window.addEventListener("load", function (event) { ... });"):
1111         (1) WebCore calls XXXX::create().
1112         (2) XXXX::create() creates a C++ object.
1113         (3) WebCore calls toV8() for the C++ object.
1114         (4) toV8() can call XXXX::constructorCallback(). (Whether or not toV8() calls
1115         XXXX::constructorCallback() depends on the implementation of toV8().)
1116         (5) V8XXXX::constructorCallback() calls XXXX::create().
1117         (6) XXXX::create() creates __another__ C++ object.
1118         (7) V8XXXX::constructorCallback() calls toV8() for the C++ object.
1119         (8) toV8() wraps the C++ object and returns the wrapped JS object.
1120
1121         This actual behavior definitely causes the following problems:
1122
1123         - Problem1: The object returned to JS is not the object created in (2)
1124         but the object created in (6). However, I do not yet know a test case that causes
1125         some visible bug because of this problem.
1126
1127         - Problem2: In (4), XXXX::constructorCallback() can be called with no argument.
1128         If XXXX::constructorCallback() expects at least one argument, XXXX::constructorCallback()
1129         throws TypeError, resulting in crash. For example, Event caused this problem
1130         when I implemented constructor for Event. Based on the discussion with Dominicc,
1131         we solved this problem by adding the following two lines of code to Event::constructorCallback()
1132         (See here: http://codesearch.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/bindings/v8/custom/V8EventConstructors.cpp&exact_package=chromium&q=allowallocation&type=cs):
1133
1134         XXXX::constructorCallback(...) {
1135             ...;
1136             if (AllowAllocation::current())
1137                 return args.Holder();
1138             ...;
1139         }
1140
1141         This if check means "XXXX::constructorCallback() returns immediately if it is called
1142         from the WebCore context".
1143
1144         With these observations, we think that all constructorCallback() should have the above
1145         if check. This patch adds the if check to CodeGeneratorV8.pm. After this patch is landed,
1146         I would like to add the if check to all existing custom V8 constructors.
1147
1148         No new tests, since we could not find a test case that causes some visible bug without the if check.
1149
1150         * bindings/scripts/CodeGeneratorV8.pm:
1151         (GenerateConstructorCallback): Generates a constructor so that it returns immediately without doing anything if the constructor is called from the WebCore context.
1152         * bindings/scripts/test/V8/V8TestInterface.cpp: Updated the result.
1153         (WebCore::V8TestInterface::constructorCallback):
1154         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
1155         (WebCore::V8TestObj::constructorCallback):
1156
1157 2011-10-13  Kentaro Hara  <haraken@chromium.org>
1158
1159         Implement a BeforeLoadEvent constructor for V8
1160         https://bugs.webkit.org/show_bug.cgi?id=69980
1161
1162         Reviewed by Adam Barth.
1163
1164         Test: fast/events/constructors/before-load-event-constructor.html
1165
1166         * bindings/v8/custom/V8EventConstructors.cpp: Added a BeforeLoadEvent constructor.
1167         * dom/BeforeLoadEvent.idl: Replaced 'JSCustomConstructor' with 'CustomConstructor'.
1168
1169 2011-10-13  Joshua Bell  <jsbell@chromium.org>
1170
1171         make IDBFactory.open wait for pending setVersion transactions to complete
1172         https://bugs.webkit.org/show_bug.cgi?id=69307
1173
1174         Reviewed by Tony Chang.
1175
1176         Added a queue of pending open calls, similar to the queue of pending
1177         setVersion calls. Ensure pending calls are processed in the correct
1178         order when transactions complete.
1179
1180         Tests: storage/indexeddb/open-close-version.html
1181                storage/indexeddb/two-version-changes.html
1182                storage/indexeddb/version-change-exclusive.html
1183
1184         * storage/IDBDatabaseBackendImpl.cpp:
1185         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
1186         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::callbacks):
1187         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::PendingOpenCall):
1188         (WebCore::IDBDatabaseBackendImpl::setVersion):
1189         (WebCore::IDBDatabaseBackendImpl::transactionStarted):
1190         (WebCore::IDBDatabaseBackendImpl::transactionFinished):
1191         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1192         (WebCore::IDBDatabaseBackendImpl::openConnection):
1193         (WebCore::IDBDatabaseBackendImpl::close):
1194         * storage/IDBDatabaseBackendImpl.h:
1195         * storage/IDBFactoryBackendImpl.cpp:
1196         (WebCore::IDBFactoryBackendImpl::open):
1197         * storage/IDBTransactionBackendImpl.cpp:
1198         (WebCore::IDBTransactionBackendImpl::abort):
1199         (WebCore::IDBTransactionBackendImpl::start):
1200         (WebCore::IDBTransactionBackendImpl::commit):
1201
1202 2011-10-13  Chris Marrin  <cmarrin@apple.com>
1203
1204         Fix Leopard build
1205
1206         Unreviewed.
1207
1208         * platform/graphics/DisplayRefreshMonitor.h: Added.
1209
1210 2011-10-12  Chris Marrin  <cmarrin@apple.com>
1211
1212         Sync requestAnimationFrame callback to CVDisplayLink on Mac
1213         https://bugs.webkit.org/show_bug.cgi?id=68911
1214
1215         Reviewed by Simon Fraser.
1216
1217         Test: fast/animation/request-animation-frame-iframe.html
1218
1219         Implement CVDisplayLink which checks to see if any scheduleAnimation requests
1220         have come in. If so, remember the timestamp and do a callOnMainThread to fire
1221         the callbacks. A DisplayRefreshMonitorManager is a singleton which has a list
1222         of DisplayRefreshMonitors, one for each display. Each monitor has one or more
1223         DisplayRefreshMonitorClients, which is a abstract virtual class implemented
1224         by ScriptAnimationController. When an animation is scheduled, the
1225         displayRefreshFired method is called on the client, which in turn calls the
1226         requestAnimationFrame callbacks. 
1227
1228         DisplayRefreshMonitor and therefore the CVDisplayLink it owns is discarded
1229         when it no longer has any clients. This minimizes the number of concurrent
1230         CVDisplayLink threads.
1231
1232         * WebCore.exp.in:
1233         * WebCore.xcodeproj/project.pbxproj:
1234         * dom/Document.cpp:
1235         (WebCore::Document::windowScreenDidChange):
1236         (WebCore::Document::webkitRequestAnimationFrame):
1237         * dom/Document.h:
1238         * dom/ScriptedAnimationController.cpp:
1239         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
1240         (WebCore::ScriptedAnimationController::windowScreenDidChange):
1241         (WebCore::ScriptedAnimationController::scheduleAnimation):
1242         * dom/ScriptedAnimationController.h:
1243         (WebCore::ScriptedAnimationController::displayRefreshFired):
1244         * page/Page.cpp:
1245         (WebCore::Page::Page):
1246         (WebCore::Page::windowScreenDidChange):
1247         * page/Page.h:
1248         (WebCore::Page::displayID):
1249         * platform/PlatformScreen.h:
1250         * platform/graphics/DisplayRefreshMonitor.cpp: Added.
1251         (WebCore::DisplayRefreshMonitorClient::DisplayRefreshMonitorClient):
1252         (WebCore::DisplayRefreshMonitorClient::~DisplayRefreshMonitorClient):
1253         (WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded):
1254         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
1255         (WebCore::DisplayRefreshMonitor::refreshDisplayOnMainThread):
1256         (WebCore::DisplayRefreshMonitorManager::sharedManager):
1257         (WebCore::DisplayRefreshMonitorManager::findMonitor):
1258         (WebCore::DisplayRefreshMonitorManager::registerClient):
1259         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
1260         (WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
1261         (WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
1262         * platform/graphics/DisplayRefreshMonitor.h: Added.
1263         (WebCore::DisplayRefreshMonitorClient::scheduleAnimation):
1264         (WebCore::DisplayRefreshMonitor::hasClients):
1265         (WebCore::DisplayRefreshMonitor::addClient):
1266         (WebCore::DisplayRefreshMonitor::removeClient):
1267         (WebCore::DisplayRefreshMonitor::displayID):
1268         (WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager):
1269         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp: Added.
1270         (WebCore::DisplayRefreshMonitor::displayLinkCallback):
1271         (WebCore::DisplayRefreshMonitor::~DisplayRefreshMonitor):
1272         (WebCore::DisplayRefreshMonitor::scheduleAnimation):
1273
1274 2011-10-13  Abhishek Arya  <inferno@chromium.org>
1275
1276         Unreviewed. Qt compile fix.
1277
1278         * css/CSSFontFaceSource.cpp: include Document.h.
1279
1280 2011-10-12  Abhishek Arya  <inferno@chromium.org>
1281
1282         Register custom fonts at their creation time,  
1283         rather than at retirement time.
1284         https://bugs.webkit.org/show_bug.cgi?id=68929
1285
1286         Reviewed by Dan Bernstein.
1287
1288         Test: fast/text/custom-font-data-crash2.html
1289
1290         * css/CSSFontFace.cpp:
1291         * css/CSSFontFace.h: remove function added in r94508,
1292         which is no longer needed. We now register custom fonts
1293         at creation time.
1294         * css/CSSFontFaceSource.cpp:
1295         (WebCore::CSSFontFaceSource::pruneTable): no longer need
1296         to delete/retire font data here, it will be handled in ~Document.
1297         (WebCore::CSSFontFaceSource::getFontData): register custom
1298         font to document's m_customFonts.
1299         * css/CSSFontSelector.cpp:
1300         * css/CSSFontSelector.h: remove function added in r94508,
1301         which is no longer needed. We now register custom fonts
1302         at creation time.
1303         * css/CSSSegmentedFontFace.cpp:
1304         (WebCore::CSSSegmentedFontFace::pruneTable): no longer need
1305         to delete/retire font data here, it will be handled in ~Document.
1306         (WebCore::CSSSegmentedFontFace::getFontData): register custom
1307         font to document's m_customFonts.
1308         * dom/Document.cpp: Change function names to registerCustomFont
1309         , deleteCustomFonts and local to m_customFont.
1310         (WebCore::Document::~Document):
1311         (WebCore::Document::recalcStyle): yanking out the comment. We
1312         no longer keep retired custom fonts. We clear all custom fonts
1313         on Document destruction.
1314         (WebCore::Document::registerCustomFont): 
1315         (WebCore::Document::deleteCustomFonts):
1316         * dom/Document.h:
1317
1318 2011-10-13  Ryosuke Niwa  <rniwa@webkit.org>
1319
1320         Crash in DeleteSelectionCommand::handleGeneralDelete
1321         https://bugs.webkit.org/show_bug.cgi?id=70045
1322
1323         Reviewed by Darin Adler.
1324
1325         Exit early when m_upstreamStart is null.
1326
1327         No new tests because we don't have a reduction.
1328
1329         * editing/DeleteSelectionCommand.cpp:
1330         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
1331
1332 2011-10-13  David Hyatt  <hyatt@apple.com>
1333
1334         https://bugs.webkit.org/show_bug.cgi?id=70049
1335         
1336         [CSS Regions] Add a test of a float being pushed down because it can't fit
1337         next to another float and make sure it re-evaluates its position when it changes
1338         regions as a result of the push.
1339
1340         Reviewed by Sam Weinig.
1341
1342         Added new test in fast/regions.
1343
1344         * rendering/RenderBlock.cpp:
1345         (WebCore::RenderBlock::computeLogicalLocationForFloat):
1346
1347 2011-10-13  Adam Barth  <abarth@webkit.org>
1348
1349         Move XSTL to script-src in Content-Security-Policy
1350         https://bugs.webkit.org/show_bug.cgi?id=63637
1351
1352         Reviewed by Eric Seidel.
1353
1354         The spec was unclear about how to treat XSLT.  My reading was that they
1355         should fall under style-src, but further discussion on the mailing list
1356         settled on using script-src because an XSLT can inject arbitrary DOM
1357         and script into a page, which is more risky than including style.
1358
1359         Tests: http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-1.php
1360                http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-2.php
1361
1362         * loader/cache/CachedResourceLoader.cpp:
1363         (WebCore::CachedResourceLoader::canRequest):
1364
1365 2011-10-13  Zeno Albisser  <zeno.albisser@nokia.com>
1366
1367         [Qt] QtWebKit build error for Mac 32bit
1368         https://bugs.webkit.org/show_bug.cgi?id=69914
1369
1370         In WebCore.pro and QtWebKit.pro we define NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES
1371         when compiling with ENABLE_VIDEO and with WTF_USE_QTKIT.
1372         But this is meant to be defined in NSGeometry.h under certain preconditions.
1373         Without setting NS_BUILD_32_LIKE_64 none of these preconditions is
1374         met and therefore NSGeometry.h will create several conflicting type definitions.
1375
1376         With this patch we create consistent definitions again.
1377         Due to the order of include files we cannot remove
1378         NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES from WebCore.pro.
1379
1380         Reviewed by Andreas Kling.
1381
1382         * WebCore.pro:
1383
1384 2011-10-13  Tom Hudson  <tomhudson@google.com>
1385
1386         Revert border radius clips (r95239) for Chromium due to performance issues. Update test expectations to skip border radius clip layout tests.
1387         https://bugs.webkit.org/show_bug.cgi?id=69844
1388
1389         Reviewed by Simon Fraser.
1390
1391         * rendering/RenderLayer.cpp:
1392         (WebCore::RenderLayer::clipToRect): Only process border radius clips #if !PLATFORM(CHROMIUM)
1393
1394 2011-10-13  Julien Chaffraix  <jchaffraix@webkit.org>
1395
1396         Deprecate event.layerX and event.layerY in WebKit
1397         https://bugs.webkit.org/show_bug.cgi?id=69951
1398
1399         Reviewed by Darin Adler.
1400
1401         layerX and layerY were concepts of the old Netscape code that stayed
1402         in WebKit for a long time without changes. Now the code is completely
1403         wrong and Mozilla has expressed some interest in removing it from their
1404         API too.
1405
1406         This is a first step in the removal as layerX and layerY are exposed
1407         in some APIs. Chromium and Win are fine with removing the property
1408         directly, but ObjC needs to deprecate them first.
1409
1410         * bindings/objc/PublicDOMInterfaces.h: Mark the API as deprecated.
1411
1412         * dom/MouseRelatedEvent.cpp:
1413         (WebCore::MouseRelatedEvent::layerX):
1414         (WebCore::MouseRelatedEvent::layerY):
1415         * dom/UIEvent.cpp:
1416         (WebCore::UIEvent::layerX):
1417         (WebCore::UIEvent::layerY):
1418         Added a call to warnDeprecatedLayerXYUsage in the previous functions.
1419
1420         (WebCore::UIEvent::warnDeprecatedLayerXYUsage): Print a warning in the
1421         console about the removal of event.layerX and event.layerY in the near future.
1422
1423         * dom/UIEvent.h: Added warnDeprecatedLayerXYUsage.
1424
1425 2011-10-03  Robert Hogan  <robert@webkit.org>
1426
1427         CSS 2.1 failure: inline-replaced-height-008.htm
1428         https://bugs.webkit.org/show_bug.cgi?id=69273
1429
1430         Reviewed by Simon Fraser.
1431
1432         Test: css2.1/20110323/inline-block-replaced-height-008.html
1433
1434         Per http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height,  if 'height' has computed value of 
1435         'auto', the replaced element has an intrinsic ratio and its used width is known or resolved, then 
1436         the used value of 'height' is determined by the equation (used width) / (intrinsic ratio).
1437
1438         * rendering/RenderImage.cpp:
1439         (WebCore::RenderImage::computeReplacedLogicalHeight):
1440         * rendering/RenderReplaced.h:
1441
1442 2011-10-13  Sheriff Bot  <webkit.review.bot@gmail.com>
1443
1444         Unreviewed, rolling out r97362.
1445         http://trac.webkit.org/changeset/97362
1446         https://bugs.webkit.org/show_bug.cgi?id=70039
1447
1448         Relies on V8 APIs that have been reverted upstream. (Requested
1449         by dglazkov on #webkit).
1450
1451         * English.lproj/localizedStrings.js:
1452         * bindings/js/ScriptProfiler.cpp:
1453         * bindings/js/ScriptProfiler.h:
1454         * bindings/v8/ScriptProfiler.cpp:
1455         * bindings/v8/ScriptProfiler.h:
1456         * inspector/Inspector.json:
1457         * inspector/InspectorController.cpp:
1458         (WebCore::InspectorController::InspectorController):
1459         * inspector/InspectorProfilerAgent.cpp:
1460         (WebCore::InspectorProfilerAgent::create):
1461         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1462         * inspector/InspectorProfilerAgent.h:
1463         * inspector/front-end/DetailedHeapshotGridNodes.js:
1464         (WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.hoverMessage):
1465         (WebInspector.HeapSnapshotGenericObjectNode):
1466         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
1467         (WebInspector.HeapSnapshotGenericObjectNode.prototype.hoverMessage):
1468         (WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
1469         * inspector/front-end/DetailedHeapshotView.js:
1470         (WebInspector.DetailedHeapshotView.prototype._showStringContentPopover):
1471         * inspector/front-end/HeapSnapshot.js:
1472         (WebInspector.HeapSnapshot.prototype._init):
1473         (WebInspector.HeapSnapshot.prototype.dispose):
1474         (WebInspector.HeapSnapshot.prototype.updateStaticData):
1475         (WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
1476         * inspector/front-end/HeapSnapshotProxy.js:
1477         * inspector/front-end/RemoteObject.js:
1478         * inspector/front-end/heapProfiler.css:
1479
1480 2011-10-13  David Hyatt  <hyatt@apple.com>
1481
1482         https://bugs.webkit.org/show_bug.cgi?id=69932
1483         
1484         Layout repainting messed up for objects in regions. There were two bugs here.
1485         The first is that the regionOverflowRect needs to at least be the size of the 
1486         region's rect. When you're in the middle of layout, you haven't computed the
1487         overflow rect for the flow thread yet (the flow thread's height could even be 0),
1488         and so you just need to enforce a minimum size. Also removed the region-overflow:break
1489         clipping behavior, since it was established that was wrong.
1490         
1491         The second bug is that when you tell a region to repaint, you need to disable layout state,
1492         since applying layout deltas from the flow thread makes no sense. The region is in a totally
1493         different place in the render tree, so the current flow thread layout state can't be used
1494         to determine your coordinate offset.
1495
1496         Reviewed by Dan Bernstein.
1497
1498         Added fast/repaint test.
1499
1500         * rendering/RenderFlowThread.cpp:
1501         (WebCore::RenderFlowThread::repaintRectangleInRegions):
1502         * rendering/RenderRegion.cpp:
1503         (WebCore::RenderRegion::regionOverflowRect):
1504
1505 2011-10-13  Renata Hodovan  <reni@webkit.org>
1506
1507         FEComponentTransfer element doesn't support dynamic invalidation
1508         https://bugs.webkit.org/show_bug.cgi?id=69747
1509
1510         The dynamic changes are captured by the svgAttributeChange() function, and
1511         invalidate the filter primitive if necessary.
1512         invalidateFilterPrimitiveParent() is a new free function in
1513         SVGFilterPrimitiveStanardAttributes what makes the invalidation possible
1514         by objects not inherited from SVGFilterPrimitiveStanardAttributes too.
1515         This solution was used in SVGFEMergeNodeElement::svgAttributeChanged()
1516         previously and now it can use this new function too.
1517
1518         Reviewed by Nikolas Zimmermann.
1519
1520         Tests: svg/dynamic-updates/SVGFEComponentTransferElement-dom-amplitude-attr.html
1521                svg/dynamic-updates/SVGFEComponentTransferElement-dom-exponent-attr.html
1522                svg/dynamic-updates/SVGFEComponentTransferElement-dom-intercept-attr.html
1523                svg/dynamic-updates/SVGFEComponentTransferElement-dom-offset-attr.html
1524                svg/dynamic-updates/SVGFEComponentTransferElement-dom-slope-attr.html
1525                svg/dynamic-updates/SVGFEComponentTransferElement-dom-tableValues-attr.html
1526                svg/dynamic-updates/SVGFEComponentTransferElement-dom-type-attr.html
1527                svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-amplitude-prop.html
1528                svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-exponent-prop.html
1529                svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-intercept-prop.html
1530                svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-offset-prop.html
1531                svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-slope-prop.html
1532                svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-tableValues-prop.html
1533                svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop.html
1534
1535         * svg/SVGComponentTransferFunctionElement.cpp:
1536         (WebCore::SVGComponentTransferFunctionElement::svgAttributeChanged):
1537         * svg/SVGComponentTransferFunctionElement.h:
1538         * svg/SVGFEComponentTransferElement.cpp:
1539         (WebCore::SVGFEComponentTransferElement::build):
1540         * svg/SVGFEMergeNodeElement.cpp:
1541         (WebCore::SVGFEMergeNodeElement::svgAttributeChanged):
1542         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1543         (WebCore::invalidateFilterPrimitiveParent):
1544         * svg/SVGFilterPrimitiveStandardAttributes.h:
1545
1546 2011-10-13  Deepak Sherveghar  <bpwv64@motorola.com>
1547
1548         REGRESSION (r95381): Standalone video can be focused and draws a focus ring.
1549         https://bugs.webkit.org/show_bug.cgi?id=69097
1550
1551         Reviewed by Eric Carlson.
1552
1553         We don't want to focus a media element in a standalone document.
1554
1555         Test: fast/events/media-focus-in-standalone-media-document.html
1556
1557         * html/HTMLMediaElement.cpp:
1558         (WebCore::HTMLMediaElement::supportsFocus): return false if media element is in a standalone media document.
1559
1560 2011-10-13  Mikhail Naganov  <mnaganov@chromium.org>
1561
1562         Web Inspector: [Chromium] Add an ability to look up and explore an object from a heap profile.
1563         https://bugs.webkit.org/show_bug.cgi?id=61179
1564
1565         This is exteremely helpful when dealing with DOM wrappers, as
1566         their properties are mostly implemented with getters and thus not
1567         stored in heap snapshots.
1568
1569         Reviewed by Pavel Feldman.
1570
1571         * English.lproj/localizedStrings.js:
1572         * bindings/js/ScriptProfiler.cpp:
1573         (WebCore::ScriptProfiler::objectByHeapObjectId):
1574         * bindings/js/ScriptProfiler.h:
1575         * bindings/v8/ScriptProfiler.cpp:
1576         (WebCore::ScriptProfiler::objectByHeapObjectId):
1577         * bindings/v8/ScriptProfiler.h:
1578         * inspector/Inspector.json:
1579         * inspector/InspectorController.cpp:
1580         (WebCore::InspectorController::InspectorController):
1581         * inspector/InspectorProfilerAgent.cpp:
1582         (WebCore::InspectorProfilerAgent::create):
1583         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1584         (WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
1585         * inspector/InspectorProfilerAgent.h:
1586         * inspector/front-end/DetailedHeapshotGridNodes.js:
1587         (WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.queryObjectContent):
1588         (WebInspector.HeapSnapshotGenericObjectNode):
1589         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
1590         (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent.else.formatResult):
1591         (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
1592         (WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
1593         * inspector/front-end/DetailedHeapshotView.js:
1594         (WebInspector.DetailedHeapshotView.prototype._showObjectPopover):
1595         * inspector/front-end/HeapSnapshot.js:
1596         (WebInspector.HeapSnapshotNode.prototype.get canBeQueried):
1597         (WebInspector.HeapSnapshotNode.prototype.get flags):
1598         (WebInspector.HeapSnapshotNode.prototype.get isDOMWindow):
1599         (WebInspector.HeapSnapshot.prototype._init):
1600         (WebInspector.HeapSnapshot.prototype.dispose):
1601         (WebInspector.HeapSnapshot.prototype._flagsOfNode):
1602         (WebInspector.HeapSnapshot.prototype._calculateFlags):
1603         (WebInspector.HeapSnapshot.prototype.updateStaticData):
1604         (WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
1605         * inspector/front-end/HeapSnapshotProxy.js:
1606         (WebInspector.HeapSnapshotProxy.prototype.get nodeFlags):
1607         * inspector/front-end/RemoteObject.js:
1608         (WebInspector.RemoteObject.fromError):
1609         * inspector/front-end/heapProfiler.css:
1610         (.detailed-heapshot-view tr:not(.selected) td.object-column span.highlight):
1611
1612 2011-10-13  Adam Barth  <abarth@webkit.org>
1613
1614         script-src * should allow all URLs
1615         https://bugs.webkit.org/show_bug.cgi?id=70011
1616
1617         Reviewed by Eric Seidel.
1618
1619         This patch gets us slightly ahead of the spec.  Technically, script-src
1620         means "any host" and inherits the current scheme.  However, that's not
1621         what developers expect and it's even contradicted by examples in the
1622         spec itself.  After this patch, * matches all URLs.
1623
1624         Test: http/tests/security/contentSecurityPolicy/script-src-star-cross-scheme.html
1625
1626         * page/ContentSecurityPolicy.cpp:
1627         (WebCore::CSPSourceList::CSPSourceList):
1628         (WebCore::CSPSourceList::matches):
1629         (WebCore::CSPSourceList::parseSource):
1630         (WebCore::CSPSourceList::addSourceStar):
1631
1632 2011-10-13  Kentaro Hara  <haraken@chromium.org>
1633
1634         Implement an OverflowEvent constructor for JSC
1635         https://bugs.webkit.org/show_bug.cgi?id=69907
1636
1637         Reviewed by Adam Barth.
1638
1639         There is no spec for the OverflowEvent constructor
1640         since it is WebKit-specific. However, judging from the current
1641         IDL of initOverflowEvent(), the constructor IDL should be as follows.
1642
1643         [Constructor(DOMString type, optional OverflowEventInit eventInitDict)]
1644         interface OverflowEvent : Event {
1645             ...;
1646         }
1647
1648         dictionary OverflowEventInit : EventInit {
1649             unsigned short orient;
1650             boolean horizontalOverflow;
1651             boolean verticalOverflow;
1652         }
1653
1654         Note: In initOverflowEvent(), we cannot specify |bubbles| and |cancelable|.
1655         I do not know why, but we can find a comment in fast/events/script-tests/init-events.js
1656         that says "initOverflowEvent has an interface that has a design that's
1657         inconsistent with the init functions from other events".
1658         On the other hand, the above constructor enables to specify |bubbles| and |cancelable|,
1659         which is consistent with other constructors.
1660
1661         Test: fast/events/constructors/overflow-event-constructor.html
1662
1663         * bindings/generic/EventConstructors.h: Added a definition for the OverflowEvent constructor.
1664         * bindings/js/JSEventConstructors.cpp: Added #includes for OverflowEvent.
1665         * dom/OverflowEvent.cpp:
1666         (WebCore::OverflowEventInit::OverflowEventInit):
1667         (WebCore::OverflowEvent::OverflowEvent):
1668         (WebCore::OverflowEvent::initOverflowEvent):
1669         * dom/OverflowEvent.h: Added a definition for OverflowEventInit.
1670         (WebCore::OverflowEvent::create):
1671         (WebCore::OverflowEvent::orient):
1672         (WebCore::OverflowEvent::horizontalOverflow):
1673         (WebCore::OverflowEvent::verticalOverflow):
1674         * dom/OverflowEvent.idl: Makes OverflowEvent constructible.
1675
1676 2011-10-13  Kent Tamura  <tkent@chromium.org>
1677
1678         Cleanup of HTMLSelectElement
1679         https://bugs.webkit.org/show_bug.cgi?id=69908
1680
1681         Reviewed by Darin Adler.
1682
1683         - Change the m_listItems type: Vector<Element*> -> Vector<HTMLElement*>
1684         - Rename a member: m_recalcListItems -> m_shouldRecalcListItems
1685         - Fold checkListItems() into listItems()
1686         - Style fixes
1687
1688         No new tests, just a cleanup.
1689
1690         * accessibility/AccessibilityListBox.cpp:
1691         (WebCore::AccessibilityListBox::addChildren):
1692         * accessibility/AccessibilityListBoxOption.cpp:
1693         (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
1694         * accessibility/AccessibilityMenuListPopup.cpp:
1695         (WebCore::AccessibilityMenuListPopup::addChildren):
1696         * accessibility/AccessibilityRenderObject.cpp:
1697         (WebCore::AccessibilityRenderObject::stringValue):
1698         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1699         (optionFromSelection):
1700         (webkit_accessible_selection_get_selection_count):
1701         * dom/OptionElement.cpp:
1702         (WebCore::OptionElement::optionIndex):
1703         * html/HTMLSelectElement.cpp:
1704         (WebCore::HTMLSelectElement::HTMLSelectElement):
1705         (WebCore::HTMLSelectElement::add):
1706         (WebCore::HTMLSelectElement::value):
1707         (WebCore::HTMLSelectElement::setValue):
1708         (WebCore::HTMLSelectElement::parseMappedAttribute):
1709         (WebCore::HTMLSelectElement::recalcListItemsIfNeeded):
1710         (WebCore::HTMLSelectElement::setOption):
1711         (WebCore::HTMLSelectElement::setLength):
1712         (WebCore::HTMLSelectElement::nextValidIndex):
1713         (WebCore::HTMLSelectElement::firstSelectableListIndex):
1714         (WebCore::HTMLSelectElement::nextSelectableListIndexPageAway):
1715         (WebCore::HTMLSelectElement::selectAll):
1716         (WebCore::HTMLSelectElement::saveLastSelection):
1717         (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
1718         (WebCore::HTMLSelectElement::updateListBoxSelection):
1719         (WebCore::HTMLSelectElement::listBoxOnChange):
1720         (WebCore::HTMLSelectElement::listItems):
1721         (WebCore::HTMLSelectElement::setRecalcListItems):
1722         (WebCore::HTMLSelectElement::recalcListItemsInternal):
1723         (WebCore::HTMLSelectElement::selectedIndex):
1724         (WebCore::HTMLSelectElement::setSelectedIndexInternal):
1725         (WebCore::HTMLSelectElement::optionToListIndex):
1726         (WebCore::HTMLSelectElement::listToOptionIndex):
1727         (WebCore::HTMLSelectElement::dispatchFocusEvent):
1728         (WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
1729         (WebCore::HTMLSelectElement::saveFormControlState): Use StringBuilder.
1730         (WebCore::HTMLSelectElement::restoreFormControlState):
1731         (WebCore::HTMLSelectElement::appendFormData):
1732         (WebCore::HTMLSelectElement::reset):
1733         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
1734         (WebCore::HTMLSelectElement::updateSelectedState):
1735         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
1736         (WebCore::HTMLSelectElement::lastSelectedListIndex):
1737         Optimize the code by iterating in the reverse order.
1738         (WebCore::HTMLSelectElement::typeAheadFind):
1739         (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
1740         (WebCore::HTMLSelectElement::length):
1741         (WebCore::toSelectElement):
1742         * html/HTMLSelectElement.h:
1743         * rendering/RenderListBox.cpp:
1744         (WebCore::RenderListBox::updateFromElement):
1745         (WebCore::RenderListBox::addFocusRingRects):
1746         (WebCore::RenderListBox::paintItemForeground):
1747         (WebCore::RenderListBox::paintItemBackground):
1748         (WebCore::RenderListBox::nodeAtPoint):
1749         * rendering/RenderMenuList.cpp:
1750         (WebCore::RenderMenuList::updateOptionsWidth):
1751         (WebCore::RenderMenuList::setTextFromOption):
1752         (WebCore::RenderMenuList::itemText):
1753         (WebCore::RenderMenuList::itemAccessibilityText):
1754         (WebCore::RenderMenuList::itemToolTip):
1755         (WebCore::RenderMenuList::itemIsEnabled):
1756         (WebCore::RenderMenuList::itemStyle):
1757         (WebCore::RenderMenuList::itemBackgroundColor):
1758         (WebCore::RenderMenuList::itemIsSeparator):
1759         (WebCore::RenderMenuList::itemIsLabel):
1760         (WebCore::RenderMenuList::itemIsSelected):
1761
1762 2011-10-13  Adam Barth  <abarth@webkit.org>
1763
1764         DOMWindow subobjects can be re-created after navigation
1765         https://bugs.webkit.org/show_bug.cgi?id=68849
1766
1767         Reviewed by Sam Weinig.
1768
1769         Test: http/tests/security/xss-DENIED-getSelection-from-inactive-domwindow.html
1770
1771         * page/DOMWindow.cpp:
1772         (WebCore::DOMWindow::~DOMWindow):
1773             - Add ASSERTs to show that we're not recreating these objects.
1774             - Add a call to clear() as defense in depth in case we have any of
1775               these objects hanging around.
1776         (WebCore::DOMWindow::clear):
1777             - Clear out a couple of objects that weren't getting cleared.
1778               These are actually not likely to cause problems, but clearing
1779               them out is the safe thing to do.
1780         (WebCore::DOMWindow::isActive):
1781             - Add a concept of whether the DOMWindow is "active" in its frame.
1782               We had this concept in a couple places already, but centralizing
1783               it into a helper function make it easier to use and talk about.
1784         (WebCore::DOMWindow::orientation):
1785             - Whitespace nit.
1786         (WebCore::DOMWindow::screen):
1787         (WebCore::DOMWindow::history):
1788         (WebCore::DOMWindow::crypto):
1789         (WebCore::DOMWindow::locationbar):
1790         (WebCore::DOMWindow::menubar):
1791         (WebCore::DOMWindow::personalbar):
1792         (WebCore::DOMWindow::scrollbars):
1793         (WebCore::DOMWindow::statusbar):
1794         (WebCore::DOMWindow::toolbar):
1795         (WebCore::DOMWindow::console):
1796         (WebCore::DOMWindow::applicationCache):
1797         (WebCore::DOMWindow::navigator):
1798         (WebCore::DOMWindow::performance):
1799         (WebCore::DOMWindow::location):
1800         (WebCore::DOMWindow::sessionStorage):
1801         (WebCore::DOMWindow::localStorage):
1802         (WebCore::DOMWindow::webkitNotifications):
1803         (WebCore::DOMWindow::webkitIndexedDB):
1804         (WebCore::DOMWindow::getSelection):
1805         (WebCore::DOMWindow::styleMedia):
1806         (WebCore::DOMWindow::webkitURL):
1807         (WebCore::DOMWindow::webkitStorageInfo):
1808             - Avoid creating these objects when we're not active.  That can
1809               only lead to sadness.
1810         (WebCore::DOMWindow::webkitRequestFileSystem):
1811         (WebCore::DOMWindow::webkitResolveLocalFileSystemURL):
1812         (WebCore::DOMWindow::openDatabase):
1813         (WebCore::DOMWindow::postMessage):
1814             - While not techincally creating subobjects, these functions also
1815               seem unwise when the DOMWindow is inactive.
1816         (WebCore::DOMWindow::find):
1817         (WebCore::DOMWindow::length):
1818         (WebCore::DOMWindow::getMatchedCSSRules):
1819             - These functions operate on the active Document.  When we're not
1820               active, that's not us!
1821         (WebCore::DOMWindow::document):
1822             - Update to use the new concept of being active rather than having
1823               this function roll its own implementation.
1824         (WebCore::DOMWindow::webkitConvertPointFromNodeToPage):
1825         (WebCore::DOMWindow::webkitConvertPointFromPageToNode):
1826         (WebCore::DOMWindow::scrollBy):
1827         (WebCore::DOMWindow::scrollTo):
1828             - These functions also look unwise to run when inactive because
1829               they're reading information from the active document.
1830             - I added a RefPtr for node because the call to
1831               updateLayoutIgnorePendingStylesheets() seems likely to be able to
1832               run script somehow.
1833         (WebCore::DOMWindow::addEventListener):
1834         (WebCore::DOMWindow::removeEventListener):
1835         (WebCore::DOMWindow::dispatchLoadEvent):
1836         (WebCore::DOMWindow::dispatchEvent):
1837             - I don't think these functions worked when inactive anyway, but
1838               explicitly blocking them seems wise.
1839         (WebCore::DOMWindow::setLocation):
1840         (WebCore::DOMWindow::isInsecureScriptAccess):
1841         (WebCore::DOMWindow::open):
1842         (WebCore::DOMWindow::showModalDialog):
1843             - These already have checks for being active, but it can't hurt to
1844               be explicit at the top of the function.
1845         * page/DOMWindow.h:
1846
1847 2011-10-13  Kent Tamura  <tkent@chromium.org>
1848
1849         REGRESSION(r89915): <input type=email multiple> don't show the default value
1850         https://bugs.webkit.org/show_bug.cgi?id=69895
1851
1852         Reviewed by Hajime Morita.
1853
1854         m_valueIfDirty became unexpectedly empty because
1855         EmailInputType::sanitizeValue() returned an empty string for a
1856         null input string.
1857
1858         To solve this issue, HTMLInputElement::sanitizeValue() checks
1859         nullness, and remove the null check of sanitizeValue() of
1860         InputType subclasses.
1861         Also, we make InputType::sanitizeValue() const.
1862
1863         * html/ColorInputType.cpp:
1864         (WebCore::ColorInputType::sanitizeValue):
1865         - Make this const.
1866         - Remove null check.
1867         * html/ColorInputType.h: Make sanitizeValue() const.
1868         * html/EmailInputType.cpp:
1869         (WebCore::EmailInputType::sanitizeValue): Make this const.
1870         * html/EmailInputType.h: Make sanitizeValue() const.
1871         * html/HTMLInputElement.cpp:
1872         (WebCore::HTMLInputElement::sanitizeValue):
1873         (WebCore::HTMLInputElement::updateValueIfNeeded):
1874         * html/InputType.cpp:
1875         (WebCore::InputType::sanitizeValue):
1876         Returns a null string if the input string is null, and
1877         don't call InputType::sanitizeValue() in this case.
1878         * html/InputType.h: Make sanitizeValue() const.
1879         * html/NumberInputType.cpp:
1880         (WebCore::NumberInputType::sanitizeValue): Make this const.
1881         * html/NumberInputType.h: Make sanitizeValue() const.
1882         * html/RangeInputType.cpp:
1883         (WebCore::RangeInputType::sanitizeValue):
1884         - Make this const.
1885         - Remove null check.
1886         * html/RangeInputType.h: Make sanitizeValue() const.
1887         * html/TextFieldInputType.cpp:
1888         (WebCore::TextFieldInputType::sanitizeValue): Make this const.
1889         * html/TextFieldInputType.h: Make sanitizeValue() const.
1890
1891 2011-10-12  Joseph Pecoraro  <joepeck@webkit.org>
1892
1893         Pass Parsed Accept Attribute MIME Types to WebKit Clients
1894         https://bugs.webkit.org/show_bug.cgi?id=69598
1895
1896         Reviewed by David Kilzer.
1897
1898         No new tests. No new functionality in WebCore, just
1899         exposing more information to the WebKit port.
1900
1901         * html/FileInputType.cpp:
1902         (WebCore::FileInputType::handleDOMActivateEvent):
1903         (WebCore::FileInputType::receiveDropForDirectoryUpload):
1904         Set the MIME type list on the FileChooser settings.
1905
1906         * html/HTMLInputElement.h:
1907         * html/HTMLInputElement.cpp:
1908         (WebCore::HTMLInputElement::acceptMIMETypes):
1909         Accessor for a parsed list of MIME types from the accept attribute.
1910         
1911         * platform/FileChooser.h:
1912         Add a slot for a MIME type list on the chooser settings.
1913
1914 2011-10-12  Joseph Pecoraro  <joepeck@webkit.org>
1915
1916         Pass Parsed Accept Attribute MIME Types to WebKit Clients
1917         https://bugs.webkit.org/show_bug.cgi?id=69598
1918
1919         Reviewed by Kent Tamura.
1920
1921         Deprecate the old String version of getting the "accept"
1922         mime type values. Instead we will change to include a
1923         list of MIME types.
1924
1925         * html/FileInputType.cpp:
1926         (WebCore::FileInputType::handleDOMActivateEvent):
1927         (WebCore::FileInputType::receiveDropForDirectoryUpload):
1928         * platform/FileChooser.h:
1929
1930 2011-10-12  Adam Barth  <abarth@webkit.org>
1931
1932         Remove ENABLE(XHTMLMP) and associated code
1933         https://bugs.webkit.org/show_bug.cgi?id=69729
1934
1935         Reviewed by David Levin.
1936
1937         As discussed on webkit-dev, we are removing this feature as part of our
1938         cleanup of unmaintained code in WebKit.
1939
1940         * Configurations/FeatureDefines.xcconfig:
1941         * GNUmakefile.am:
1942         * GNUmakefile.list.am:
1943         * WebCore.gypi:
1944         * WebCore.pro:
1945         * WebCore.vcproj/WebCore.vcproj:
1946         * WebCore.xcodeproj/project.pbxproj:
1947         * dom/DOMImplementation.cpp:
1948         (WebCore::DOMImplementation::createDocument):
1949         * dom/Document.cpp:
1950         (WebCore::Document::Document):
1951         * dom/Document.h:
1952         (WebCore::Document::isMediaDocument):
1953         * dom/Node.cpp:
1954         * dom/make_names.pl:
1955         (usesDefaultJSWrapper):
1956         * features.pri:
1957         * html/HTMLElement.cpp:
1958         (WebCore::HTMLElement::rendererIsNeeded):
1959         * html/HTMLElementsAllInOne.cpp:
1960         * html/HTMLNoScriptElement.cpp: Removed.
1961         * html/HTMLNoScriptElement.h: Removed.
1962         * html/HTMLTagNames.in:
1963         * html/HTMLViewSourceDocument.cpp:
1964         (WebCore::HTMLViewSourceDocument::createParser):
1965         * loader/FrameLoader.cpp:
1966         * platform/wince/MIMETypeRegistryWinCE.cpp:
1967         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1968         * xml/parser/XMLDocumentParser.h:
1969         (WebCore::XMLDocumentParser::isXHTMLDocument):
1970         * xml/parser/XMLDocumentParserLibxml2.cpp:
1971         (WebCore::XMLDocumentParser::XMLDocumentParser):
1972         (WebCore::XMLDocumentParser::startElementNs):
1973         (WebCore::XMLDocumentParser::endElementNs):
1974         (WebCore::XMLDocumentParser::endDocument):
1975         (WebCore::XMLDocumentParser::internalSubset):
1976         (WebCore::getEntityHandler):
1977         (WebCore::externalSubsetHandler):
1978         * xml/parser/XMLDocumentParserQt.cpp:
1979         (WebCore::XMLDocumentParser::XMLDocumentParser):
1980         (WebCore::XMLDocumentParser::parse):
1981         (WebCore::XMLDocumentParser::parseStartElement):
1982         (WebCore::XMLDocumentParser::parseEndElement):
1983         (WebCore::XMLDocumentParser::endDocument):
1984         (WebCore::XMLDocumentParser::parseDtd):
1985
1986 2011-10-12  Kentaro Hara  <haraken@chromium.org>
1987
1988         Implement a WebKitTransitionEvent constructor for V8
1989         https://bugs.webkit.org/show_bug.cgi?id=69911
1990
1991         Reviewed by Adam Barth.
1992
1993         Test: fast/events/constructors/webkit-transition-event-constructor.html
1994
1995         * bindings/v8/custom/V8EventConstructors.cpp: Added a WebKitTransitionEvent constructor.
1996         * dom/WebKitTransitionEvent.idl: Replaced 'JSCustomConstructor' with 'CustomConstructor'.
1997
1998 2011-10-12  Kentaro Hara  <haraken@chromium.org>
1999
2000         Implement a BeforeLoadEvent constructor for JSC
2001         https://bugs.webkit.org/show_bug.cgi?id=69893
2002
2003         Reviewed by Adam Barth.
2004
2005         There is no spec for the BeforeLoadEvent constructor
2006         since it is WebKit-specific. However, judging from the current
2007         IDL of initBeforeLoadEvent(), the constructor IDL
2008         should be as follows.
2009
2010         [Constructor(DOMString type, optional BeforeLoadEventInit eventInitDict)]
2011         interface BeforeLoadEvent : Event {
2012             ...;
2013         }
2014
2015         dictionary BeforeLoadEventInit : EventInit {
2016             DOMString url;
2017         }
2018
2019         Test: fast/events/constructors/before-load-event-constructor.html
2020
2021         * bindings/generic/EventConstructors.h: Added a definition for the BeforeLoadEvent constructor.
2022         * bindings/js/JSEventConstructors.cpp: Added #includes for BeforeLoadEvent.
2023         * dom/BeforeLoadEvent.h: Added a definition for BeforeLoadEventInit.
2024         (WebCore::BeforeLoadEventInit::BeforeLoadEventInit):
2025         (WebCore::BeforeLoadEvent::create):
2026         (WebCore::BeforeLoadEvent::initBeforeLoadEvent):
2027         (WebCore::BeforeLoadEvent::BeforeLoadEvent):
2028         * dom/BeforeLoadEvent.idl: Makes BeforeLoadEvent constructible.
2029
2030 2011-10-12  Ben Wells  <benwells@chromium.org>
2031
2032         [skia] Implement Path.currentPoint for skia
2033         https://bugs.webkit.org/show_bug.cgi?id=69817
2034
2035         Replace FIXME with implementation.
2036
2037         Reviewed by Kenneth Russell.
2038
2039         * platform/graphics/skia/PathSkia.cpp:
2040         (WebCore::Path::currentPoint):
2041
2042 2011-10-12  Ben Wells  <benwells@chromium.org>
2043
2044         Incorrect rendering with one-sided thick border and border-radius
2045         https://bugs.webkit.org/show_bug.cgi?id=38787
2046
2047         Reviewed by Simon Fraser.
2048
2049         Incorrect rendering resulted when the inner border could not be properly represented as a rounded
2050         rectangle. When this happens, and the inner border is clipped out, the clipping code clips out the
2051         enclosing rectangle instead.
2052
2053         This change addresses this by clipping in a different way in this case only. The inside is clipped
2054         out one side at a time with a rounded rect created by adjusting the unrenderable inner border
2055         rounded rectangle. The side polygon which is clipped to is also increased in this case to include
2056         the inside of the border so that no areas are missing.
2057
2058         Test: fast/borders/border-radius-complex-inner.html
2059
2060         * rendering/RenderBoxModelObject.cpp:
2061         (WebCore::RenderBoxModelObject::paintOneBorderSide):
2062         (WebCore::RenderBoxModelObject::paintBorder):
2063         (WebCore::calculateSideRectIncludingInner):
2064         (WebCore::calculateAdjustedInnerBorder):
2065         (WebCore::RenderBoxModelObject::clipBorderSideForComplexInnerPath):
2066         * rendering/RenderBoxModelObject.h:
2067
2068 2011-10-12  Luke Macpherson   <macpherson@chromium.org>
2069
2070         Clean up CSSPropertyTextDecoration implementation and ETextDecoration usage.
2071         https://bugs.webkit.org/show_bug.cgi?id=67625
2072
2073         Reviewed by Eric Seidel.
2074
2075         No new tests - no functionality changed.
2076
2077         The implementation of CSSPropertyTextDecoration is simlified because
2078         1) CSSValueListIterator produces a valid iterator when no results available.
2079         2) CSSParser only allows CSSValueNone or a list of appropriate idents.
2080         3) CSSParser will treat a zero-length list as invalid at parse time.
2081
2082         * css/CSSPrimitiveValueMappings.h:
2083         (WebCore::CSSPrimitiveValue::operator ETextDecoration):
2084         Implement cast from CSSPrimitiveValue to ETextDecoration.
2085         * css/CSSStyleSelector.cpp:
2086         (WebCore::CSSStyleSelector::applyProperty):
2087         * rendering/style/RenderStyle.h:
2088         Use ETextDecoration enum instead of int throughout.
2089         (WebCore::InheritedFlags::textDecorationsInEffect):
2090         (WebCore::InheritedFlags::textDecoration):
2091         (WebCore::InheritedFlags::addToTextDecorationsInEffect):
2092         (WebCore::InheritedFlags::setTextDecorationsInEffect):
2093         (WebCore::InheritedFlags::setTextDecoration):
2094         * rendering/style/RenderStyleConstants.h:
2095         Introduce constant for number of bits required to represent enum.
2096         (WebCore::operator|):
2097         Implement | operator for bitfield enum.
2098         (WebCore::operator|=):
2099         Implement |= operator for bitfield enum.
2100         * rendering/style/StyleVisualData.h:
2101         Use ETextDecoration instead of int.
2102
2103 2011-10-12  Tony Chang  <tony@chromium.org>
2104
2105         Implement -webkit-flex-align for cross axis alignment in flex-flow: row
2106         https://bugs.webkit.org/show_bug.cgi?id=69808
2107
2108         Reviewed by David Hyatt.
2109
2110         Tests: css3/flexbox/flex-align-percent-height.html
2111                css3/flexbox/flex-align-vertical-writing-mode.html
2112                css3/flexbox/flex-align.html
2113
2114         * rendering/RenderFlexibleBox.cpp:
2115         (WebCore::RenderFlexibleBox::isFlowAwareLogicalHeightAuto):
2116         (WebCore::RenderFlexibleBox::flowAwareContentLogicalHeight):
2117         (WebCore::RenderFlexibleBox::flowAwareBorderAndPaddingLogicalHeight):
2118         (WebCore::RenderFlexibleBox::flowAwareMarginLogicalHeightForChild):
2119         (WebCore::RenderFlexibleBox::flowAwareLogicalLocationForChild):
2120         (WebCore::RenderFlexibleBox::layoutInlineDirection):
2121         (WebCore::RenderFlexibleBox::availableLogicalHeightForChild):
2122         (WebCore::RenderFlexibleBox::marginBoxAscent):
2123         (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
2124         (WebCore::RenderFlexibleBox::adjustLocationLogicalTopForChild):
2125         (WebCore::RenderFlexibleBox::alignChildrenBlockDirection):
2126         * rendering/RenderFlexibleBox.h:
2127
2128 2011-10-12  Mihnea Ovidenie  <mihnea@adobe.com>
2129
2130         [CSS Regions]Remove -webkit-content-order property
2131         https://bugs.webkit.org/show_bug.cgi?id=69848
2132
2133         Reviewed by Tony Chang.
2134
2135         -webkit-content-order property is removed from latest CSS Regions spec.
2136
2137         * css/CSSComputedStyleDeclaration.cpp:
2138         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2139         * css/CSSParser.cpp:
2140         (WebCore::CSSParser::parseValue):
2141         * css/CSSPropertyNames.in:
2142         * css/CSSStyleSelector.cpp:
2143         (WebCore::CSSStyleSelector::applyProperty):
2144         * dom/Node.cpp:
2145         (WebCore::Node::diff):
2146         * rendering/RenderFlowThread.cpp:
2147         (WebCore::compareRenderRegions):
2148         * rendering/RenderTreeAsText.cpp:
2149         (WebCore::writeRenderFlowThreads):
2150         * rendering/style/RenderStyle.h:
2151         * rendering/style/StyleRareNonInheritedData.cpp:
2152         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2153         (WebCore::StyleRareNonInheritedData::operator==):
2154         * rendering/style/StyleRareNonInheritedData.h:
2155
2156 2011-10-12  Adam Bergkvist  <adam.bergkvist@ericsson.com>
2157
2158         Update PeerConnection to use WebCore platform interfaces
2159         https://bugs.webkit.org/show_bug.cgi?id=68462
2160
2161         Reviewed by Adam Barth.
2162
2163         Currently not testable.
2164
2165         * WebCore.gypi:
2166         * WebCore.pro:
2167         * bindings/js/JSPeerConnectionCustom.cpp:
2168         (WebCore::JSPeerConnectionConstructor::constructJSPeerConnection):
2169         * bindings/v8/custom/V8PeerConnectionCustom.cpp: Removed.
2170         * dom/MediaStreamList.cpp:
2171         (WebCore::MediaStreamList::item):
2172         (WebCore::MediaStreamList::append):
2173         (WebCore::MediaStreamList::remove):
2174         (WebCore::MediaStreamList::contains):
2175         * dom/MediaStreamList.h:
2176         * p2p/PeerConnection.cpp:
2177         (WebCore::PeerConnection::create):
2178         (WebCore::PeerConnection::PeerConnection):
2179         (WebCore::PeerConnection::processSignalingMessage):
2180         (WebCore::PeerConnection::readyState):
2181         (WebCore::PeerConnection::send):
2182         (WebCore::PeerConnection::addStream):
2183         (WebCore::PeerConnection::removeStream):
2184         (WebCore::PeerConnection::localStreams):
2185         (WebCore::PeerConnection::remoteStreams):
2186         (WebCore::PeerConnection::close):
2187         (WebCore::PeerConnection::iceProcessingCompleted):
2188         (WebCore::PeerConnection::sdpGenerated):
2189         (WebCore::PeerConnection::dataStreamMessageReceived):
2190         (WebCore::PeerConnection::remoteStreamAdded):
2191         (WebCore::PeerConnection::remoteStreamRemoved):
2192         (WebCore::PeerConnection::scriptExecutionContext):
2193         (WebCore::PeerConnection::stop):
2194         (WebCore::PeerConnection::scheduleInitialNegotiation):
2195         (WebCore::PeerConnection::initialNegotiationTimerFired):
2196         (WebCore::PeerConnection::ensureStreamChangeScheduled):
2197         (WebCore::PeerConnection::streamChangeTimerFired):
2198         (WebCore::PeerConnection::scheduleReadyStateChange):
2199         (WebCore::PeerConnection::readyStateChangeTimerFired):
2200         (WebCore::PeerConnection::changeReadyState):
2201         * p2p/PeerConnection.h:
2202         (WebCore::PeerConnection::refEventTarget):
2203         (WebCore::PeerConnection::derefEventTarget):
2204         * p2p/PeerConnection.idl:
2205         * page/MediaStreamClient.h:
2206         * page/MediaStreamController.cpp:
2207         (WebCore::MediaStreamController::MediaStreamController):
2208         * page/MediaStreamController.h:
2209         * page/MediaStreamFrameController.cpp:
2210         * page/MediaStreamFrameController.h:
2211
2212 2011-10-12  Chris Fleizach  <cfleizach@apple.com>
2213
2214         AX: CrashTracer: [USER] 296 crashes in WebProcess at com.apple.WebCore: WebCore::AccessibilityScrollbar::document const + 29
2215         https://bugs.webkit.org/show_bug.cgi?id=69936
2216
2217         AX Scrollbars have a weak pointer to their parent. They need to become AccessibilityMockObjects, so that they can
2218         participate in the detachFromParent() methods that happens when those parents go away.
2219         Could not reproduce the crash, but the backtrace is unequivocal.
2220
2221         Reviewed by Darin Adler.
2222
2223         * accessibility/AccessibilityScrollView.cpp:
2224         (WebCore::AccessibilityScrollView::removeChildScrollbar):
2225         * accessibility/AccessibilityScrollbar.cpp:
2226         (WebCore::AccessibilityScrollbar::AccessibilityScrollbar):
2227         * accessibility/AccessibilityScrollbar.h:
2228         (WebCore::AccessibilityScrollbar::scrollbar):
2229         (WebCore::AccessibilityScrollbar::isAccessibilityScrollbar):
2230
2231 2011-10-12  David Hyatt  <hyatt@apple.com>
2232
2233         https://bugs.webkit.org/show_bug.cgi?id=69950
2234         
2235         REGRESSION: Printing broken because of the isWritingModeRoot addition for unsplittable
2236         paginated content. Make sure not to include the RenderView when checking for writing mode
2237         roots. We only care about children that differ from their parents.
2238
2239         Reviewed by Dimitri Glazkov.
2240
2241         * rendering/LayoutState.cpp:
2242         (WebCore::LayoutState::LayoutState):
2243         * rendering/RenderBlock.cpp:
2244         (WebCore::RenderBlock::adjustForUnsplittableChild):
2245         * rendering/RenderBox.cpp:
2246         (WebCore::RenderBox::isUnsplittableForPagination):
2247         * rendering/RenderBox.h:
2248
2249 2011-10-12  Anna Cavender  <annacc@chromium.org>
2250
2251         Moving ScriptExecutionContext to the front of the argument list for
2252         IDL constructors that use ConstructorWith=ScriptExecutionContext.
2253         https://bugs.webkit.org/show_bug.cgi?id=69799
2254
2255         Reviewed by Adam Barth.
2256
2257         Tests:
2258         - http/tests/eventsource/* (for EventSource)
2259         - fast/filesystem/* (for Worker)
2260
2261         * bindings/js/JSEventSourceCustom.cpp:
2262         (WebCore::JSEventSourceConstructor::constructJSEventSource):
2263         * bindings/js/JSWorkerCustom.cpp:
2264         (WebCore::JSWorkerConstructor::constructJSWorker):
2265         * bindings/scripts/CodeGeneratorV8.pm:
2266         (GenerateConstructorCallback):
2267         * bindings/scripts/test/V8/V8TestInterface.cpp:
2268         (WebCore::V8TestInterface::constructorCallback):
2269         * page/EventSource.cpp:
2270         (WebCore::EventSource::create):
2271         * page/EventSource.h:
2272         * workers/Worker.cpp:
2273         (WebCore::Worker::create):
2274         * workers/Worker.h:
2275
2276 2011-10-11  David Hyatt  <hyatt@apple.com>
2277
2278         https://bugs.webkit.org/show_bug.cgi?id=69896
2279         
2280         [CSS Regions] Make positioned blocks work with variable width regions.
2281         
2282         Make positioned objects able to position and size independently in each region. This involves
2283         lifting the restriction in renderBoxRegionInfo for positioned objects and passing in region
2284         information to computeLogicalWidthForPositioned so that it can compute answers for a given
2285         region.
2286
2287         In order to make mixed writing modes work with positioned objects, this patch also takes some
2288         baby steps towards fixing differing writing modes in paginated environments.
2289
2290         Reviewed by Sam Weinig.
2291
2292         Added many new tests in fast/regions.
2293
2294         * rendering/LayoutState.cpp:
2295         (WebCore::LayoutState::LayoutState):
2296         Disable pagination whenever differing writing modes are encountered. The block effectively becomes
2297         unsplittable (as though it was an image).
2298
2299         * rendering/RenderBlock.cpp:
2300         (WebCore::RenderBlock::layoutBlock):
2301         Remove a FIXME that looks incorrect now.
2302
2303         (WebCore::RenderBlock::adjustPositionedBlock):
2304         Patch static inline position caching to call a new method that unshifts the position to put it back
2305         in the overall block's space rather than having it be per-region.
2306
2307         (WebCore::RenderBlock::layoutPositionedObjects):
2308         Make sure to attempt to set a logicalTop for positioned objects before they lay out so that they
2309         have a chance of paginating correctly the first time around. If for some reason the top estimate proves
2310         to be incorrect, we lay out again. Technically this bug exists for multi-column and printing as well, but
2311         for now just fixing it for regions.
2312
2313         (WebCore::RenderBlock::adjustForUnsplittableChild):
2314         Add writing mode roots to the set of objects we consider to be unsplittable.
2315
2316         (WebCore::RenderBlock::setStaticInlinePositionForChild):
2317         New helper function that handles shifting the inline static position back into the overall block's space
2318         rather than leaving it in a translated region-specific space.
2319
2320         * rendering/RenderBlock.h:
2321         (WebCore::RenderBlock::startOffsetForContent):
2322         New helper function for computing the start offset when no regions are involved.
2323
2324         * rendering/RenderBlockLineLayout.cpp:
2325         (WebCore::setStaticPositions):
2326         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
2327         Patched to call the new helper function, setStaticInlinePositionForChild.
2328
2329         * rendering/RenderBox.cpp:
2330         (WebCore::RenderBox::positionLineBox):
2331         Patched to call the new helper function, setStaticInlinePositionForChild.
2332
2333         (WebCore::RenderBox::computeLogicalWidthInRegion):
2334         Pass region information into the positioning logical width computation function.
2335
2336         (WebCore::RenderBox::renderBoxRegionInfo):
2337         Remove the positioning restriction and properly compute shifting and left/right offsets for positioned
2338         objects.
2339
2340         (WebCore::RenderBox::computeLogicalHeight):
2341         Add code for perpendicular flows that just positions the object within the first region it is encountered
2342         in. Since the object is unsplittable, this will work out. Should the object be so tall that it can't fit
2343         in any region, then the resulting rendering will potentially be terrible, but the expectation is that authors should
2344         avoid having perpendicular flows break across pages.
2345
2346         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
2347         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
2348         Patched to handle regions when they are passed in. Also makes sure that the pagination direction axis computation uses
2349         the flow thread's first region when the flow thread is the positioned object's containing block.
2350
2351         (WebCore::computeInlineStaticDistance):
2352         Patched to examine regions and to modify the static distance computation accordingly so that it is per-region.
2353
2354         (WebCore::RenderBox::computePositionedLogicalWidth):
2355         Pass along the region information when computing the positioned logical width.
2356
2357         (WebCore::computeLogicalLeftPositionedOffset):
2358         Handle the adjustment of the logical left offset for differing writing modes (in this case when the writing mode
2359         is flipped relative to us).
2360
2361         (WebCore::RenderBox::computePositionedLogicalHeight):
2362         Deal with perpendicular writing modes and make sure the object is placed properly using the first region it 
2363         occurs in.
2364
2365         (WebCore::computeLogicalTopPositionedOffset):
2366         Remove code that is no longer needed.
2367
2368         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
2369         Patched to pass in 0 instead of a region since replaced elements aren't handled yet.
2370
2371         * rendering/RenderBox.h:
2372         Changing the computePositionedLogicalWidth method to take region information.
2373
2374         * rendering/RenderDeprecatedFlexibleBox.cpp:
2375         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
2376         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
2377         Didn't bother fixing deprecated flexible box, and the new flexbox still can't handle positioned objects. When it does,
2378         it will use the new method. Put in some FIXMEs to help the flexbox coders see the issue when they port the code over
2379         to the new flexbox.
2380
2381         * rendering/RenderLayer.h:
2382         (WebCore::RenderLayer::staticInlinePosition):
2383         (WebCore::RenderLayer::staticBlockPosition):
2384         (WebCore::RenderLayer::setStaticInlinePosition):
2385         (WebCore::RenderLayer::setStaticBlockPosition):
2386         Patched to take LayoutUnits instead of ints.
2387
2388 2011-10-12  Nate Chapin  <japhet@chromium.org>
2389
2390         Remove logging to determine how null v8::Contexts are happening,
2391         and check the return value of V8DOMWindowShell::initContextIfNeeded()
2392         before using the context it initialized.
2393         https://bugs.webkit.org/show_bug.cgi?id=68099
2394
2395         Reviewed by Adam Barth.
2396
2397         No new tests, the only symptom is a crash without a known repro.
2398
2399         * bindings/v8/ScriptController.cpp:
2400         * bindings/v8/V8DOMWindowShell.cpp:
2401         (WebCore::V8DOMWindowShell::initContextIfNeeded): Return true
2402             if a context already existed.
2403         (WebCore::V8DOMWindowShell::namedItemAdded): Remove logging.
2404         * bindings/v8/V8Proxy.cpp:
2405
2406 2011-10-06  Robert Hogan  <robert@webkit.org>
2407
2408         CSS 2.1 failure: border-conflict-style-079
2409         https://bugs.webkit.org/show_bug.cgi?id=69551
2410
2411         Reviewed by Antonio Gomes.
2412
2413         * css/CSSValueKeywords.in: ridge and outset were the wrong way round
2414         * rendering/style/RenderStyleConstants.h: ditto
2415
2416
2417 2011-10-12  Jian Li  <jianli@chromium.org>
2418
2419         Support passing optional filename when FormData.append() is used to
2420         append a blob
2421         https://bugs.webkit.org/show_bug.cgi?id=69885
2422
2423         Reviewed by David Levin.
2424
2425         Covered by existing test with new test case added:
2426         http/tests/local/formdata/send-form-data-with-sliced-file.html
2427
2428         * bindings/js/JSDOMFormDataCustom.cpp:
2429         (WebCore::JSDOMFormData::append):
2430         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
2431         (WebCore::V8DOMFormData::appendCallback):
2432         * html/DOMFormData.cpp:
2433         (WebCore::DOMFormData::append):
2434         * html/DOMFormData.h:
2435         * html/DOMFormData.idl:
2436         * html/FormDataList.cpp:
2437         (WebCore::FormDataList::appendBlob):
2438         * html/FormDataList.h:
2439         (WebCore::FormDataList::Item::Item):
2440         (WebCore::FormDataList::Item::filename):
2441         (WebCore::FormDataList::appendBlob):
2442         * platform/network/FormData.cpp:
2443         (WebCore::FormData::appendKeyValuePairItems):
2444
2445 2011-10-12  Sergey Glazunov  <serg.glazunov@gmail.com>
2446
2447         ScriptController::executeIfJavaScriptURL gets confused by synchronous frame loads
2448         https://bugs.webkit.org/show_bug.cgi?id=69777
2449
2450         Reviewed by Adam Barth.
2451
2452         Test: http/tests/security/xss-DENIED-synchronous-frame-load-in-javascript-url.html
2453
2454         * bindings/ScriptControllerBase.cpp:
2455         (WebCore::ScriptController::executeIfJavaScriptURL):
2456         * loader/DocumentWriter.cpp:
2457         (WebCore::DocumentWriter::replaceDocument):
2458         (WebCore::DocumentWriter::begin):
2459         * loader/DocumentWriter.h:
2460
2461 2011-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
2462
2463         Web Inspector: Searching in multiple scripts in the scripts tab
2464         https://bugs.webkit.org/show_bug.cgi?id=38807
2465
2466         Reviewed by Pavel Feldman.
2467
2468         Added support for advanced search capabilities in inspector by means
2469         of showing the new SearchView in Drawer. Advanced search is activated
2470         with Ctrl+Shift+F (Cmd+Shift+F) shortcut.
2471
2472         * English.lproj/localizedStrings.js:
2473         * WebCore.gypi:
2474         * WebCore.vcproj/WebCore.vcproj:
2475         * inspector/compile-front-end.sh:
2476         * inspector/front-end/AdvancedSearchController.js: Added.
2477         * inspector/front-end/DebuggerPresentationModel.js:
2478         (WebInspector.DebuggerPresentationModel.prototype.uiSourceCodes):
2479         * inspector/front-end/ScriptsPanel.js:
2480         * inspector/front-end/ScriptsSearchScope.js: Added.
2481         * inspector/front-end/UISourceCode.js:
2482         (WebInspector.UISourceCode.prototype.searchInContent):
2483         * inspector/front-end/WebKit.qrc:
2484         * inspector/front-end/externs.js:
2485         (WebInspector.showViewInDrawer):
2486         * inspector/front-end/inspector.css:
2487         (.search-view):
2488         (.search-view .search-panel):
2489         (.search-view .search-results):
2490         (#search-results-pane-file-based .search-result):
2491         (#search-results-pane-file-based .search-result:first-child):
2492         (#search-results-pane-file-based .search-result .search-result-file-name):
2493         (#search-results-pane-file-based .search-result .search-result-matches-count):
2494         (#search-results-pane-file-based .search-match):
2495         (#search-results-pane-file-based .search-match .webkit-line-number.search-match-line-number):
2496         (#search-results-pane-file-based .search-match:not(:hover) .webkit-line-number.search-match-line-number):
2497         (#search-results-pane-file-based .search-match:hover):
2498         (#search-results-pane-file-based .search-match .highlighted-match):
2499         (#search-results-pane-file-based a):
2500         (#search-results-pane-file-based .search-match .search-match-content):
2501         * inspector/front-end/inspector.html:
2502         * inspector/front-end/inspector.js:
2503         (WebInspector.documentKeyDown):
2504         * inspector/front-end/utilities.js:
2505         ():
2506
2507 2011-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
2508
2509         Web Inspector: Fix Drawer to make it possible to show views other than Console.
2510         https://bugs.webkit.org/show_bug.cgi?id=69831
2511
2512         Reviewed by Pavel Feldman.
2513
2514         Animation type extracted to distinguish between slow and normal
2515         animation and immediate show/hide.
2516         Implemented correct console toggle button behavior on showing views
2517         other than console in Drawer.
2518         View shown in Drawer is now shown in drawer-contents div with common
2519         styles moved there.
2520         Removed unused "_safelyRemoveChildren" method from Drawer.
2521
2522         * inspector/front-end/ConsolePanel.js:
2523         (WebInspector.ConsolePanel.prototype.show):
2524         (WebInspector.ConsolePanel.prototype.hide):
2525         * inspector/front-end/Drawer.js:
2526         (WebInspector.Drawer):
2527         (WebInspector.Drawer.prototype.show):
2528         (WebInspector.Drawer.prototype.hide):
2529         (WebInspector.Drawer.prototype._animationDuration):
2530         * inspector/front-end/inspector.css:
2531         (body.drawer-visible #drawer-contents):
2532         * inspector/front-end/inspector.js:
2533         (WebInspector._toggleConsoleButtonClicked):
2534         (WebInspector._escPressed):
2535         (WebInspector.showViewInDrawer):
2536         (WebInspector.documentKeyDown):
2537
2538 2011-10-12  Yury Semikhatsky  <yurys@chromium.org>
2539
2540         [v8] Use V8DOMWrapper::isWrapperOfType for determining global object type
2541         https://bugs.webkit.org/show_bug.cgi?id=69923
2542
2543         Get rid of globalObjectPrototypeIsDOMWindow, use V8DOMWrapper::isWrapperOfType instead.
2544
2545         Reviewed by Pavel Feldman.
2546
2547         * bindings/v8/V8DOMWrapper.cpp:
2548         (WebCore::V8DOMWrapper::instantiateV8Object):
2549         (WebCore::V8DOMWrapper::getEventListener):
2550
2551 2011-10-12  Yury Semikhatsky  <yurys@chromium.org>
2552
2553         [Chromium] Web Inspector: assertion failure when evaluating expression in worker inspector console
2554         https://bugs.webkit.org/show_bug.cgi?id=69922
2555
2556         Check that the global object is a DOMWindow wrapper befor casting it to V8DOMWindow.
2557
2558         Reviewed by Pavel Feldman.
2559
2560         * bindings/v8/ScriptState.cpp:
2561         (WebCore::ScriptState::domWindow):
2562
2563 2011-10-12  Yuta Kitamura  <yutak@chromium.org>
2564
2565         WebSocket: Update WebSocket protocol to hybi-17
2566         https://bugs.webkit.org/show_bug.cgi?id=69910
2567
2568         Reviewed by Kent Tamura.
2569
2570         Essential changes between hybi-10 and hybi-17 are:
2571         - Sec-WebSocket-Origin header has been renamed to "Origin".
2572         - Sec-WebSocket-Version header value has been bumped to 13.
2573
2574         No new tests are necessary. pywebsocket has already been updated to the latest version
2575         which understands the new protocol. Tests under http/tests/websocket/ should keep
2576         passing.
2577
2578         * websockets/WebSocketHandshake.cpp:
2579         (WebCore::WebSocketHandshake::clientHandshakeMessage):
2580         (WebCore::WebSocketHandshake::clientHandshakeRequest):
2581
2582 2011-10-11  Antti Koivisto  <antti@apple.com>
2583
2584         Resolve regular and visited link style in a single pass
2585         https://bugs.webkit.org/show_bug.cgi?id=69838
2586
2587         Reviewed by Darin Adler
2588         
2589         We can simplify and speed up selector matching by removing the recursive matching done
2590         to generate the style for the :visited pseudo selector. Both regular and visited link style
2591         can be generated in a single pass through the style selector.
2592         
2593         - Make SelectorChecker::checkSelector to return both :visited and :link matches for all links.
2594         - For each selector statically determine and cache the link states it may match.
2595         - When applying the matched style declarations, apply them to the right RenderStyle
2596           (regular, visited, or both).
2597
2598         Statically determining which link state will be matched works since we only support :visited matching
2599         based on the current element state (not ancestors or siblings).
2600         
2601         A later patch will eliminate the separate RenderStyle for visited style completely and include the
2602         few allowed properties to the regular RenderStyle.
2603
2604         * css/CSSStyleSelector.cpp:
2605         (WebCore::RuleData::linkMatchType):
2606         (WebCore::RuleSet::linkPseudoClassRules):
2607         (WebCore::CSSStyleSelector::addMatchedDeclaration):
2608         (WebCore::CSSStyleSelector::matchRules):
2609         (WebCore::CSSStyleSelector::styleForElement):
2610         (WebCore::CSSStyleSelector::pseudoStyleForElement):
2611         (WebCore::CSSStyleSelector::updateFont):
2612         (WebCore::CSSStyleSelector::checkSelector):
2613         (WebCore::RuleData::RuleData):
2614         (WebCore::RuleSet::addRule):
2615         (WebCore::RuleSet::collectFeatures):
2616         (WebCore::RuleSet::shrinkToFit):
2617         (WebCore::CSSStyleSelector::applyDeclaration):
2618         (WebCore::CSSStyleSelector::applyDeclarations):
2619         (WebCore::CSSStyleSelector::applyProperty):
2620         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
2621         * css/CSSStyleSelector.h:
2622         (WebCore::CSSStyleSelector::MatchedStyleDeclaration::MatchedStyleDeclaration):
2623         * css/SelectorChecker.cpp:
2624         (WebCore::SelectorChecker::SelectorChecker):
2625         (WebCore::SelectorChecker::checkSelector):
2626         (WebCore::SelectorChecker::fastCheckRightmostSelector):
2627         (WebCore::SelectorChecker::fastCheckSelector):
2628         (WebCore::SelectorChecker::checkOneSelector):
2629         (WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
2630         (WebCore::SelectorChecker::determineLinkMatchType):
2631         * css/SelectorChecker.h:
2632         * rendering/style/RenderStyle.cpp:
2633         (WebCore::RenderStyle::addCachedPseudoStyle):
2634
2635 2011-10-12  Kent Tamura  <tkent@chromium.org>
2636
2637         REGRESSION(r94836): An assertion fails in HTMLFormControlElement::isValidFormControlElement
2638         when HTMLInputElement::setValue() is called while the element is focused.
2639         https://bugs.webkit.org/show_bug.cgi?id=69909
2640
2641         Reviewed by Ryosuke Niwa.
2642
2643         setNeedsValidityCheck() should be called after the value update
2644         and before any style recalculation. r94836 moved
2645         setSelectionRange() call, and it recalculates the element style.
2646
2647         * html/HTMLInputElement.cpp:
2648         (WebCore::HTMLInputElement::setValue): Move setNeedsValidityCheck() to setValueInternal().
2649         (WebCore::HTMLInputElement::setValueInternal): Move setNeedsValidityCheck() from setValue().
2650
2651 2011-10-12  Kent Tamura  <tkent@chromium.org>
2652
2653         Build fixes for r97238.
2654         https://bugs.webkit.org/show_bug.cgi?id=69828
2655
2656         * GNUmakefile.list.am: Remove SelectElement.{cpp,h}.
2657         * dom/DOMAllInOne.cpp: Remove SelectElement.cpp.
2658
2659 2011-10-12  Kent Tamura  <tkent@chromium.org>
2660
2661         Move the content of SelectElementData into HTMLSelectElement, and remove SelectElement.{cpp,h}
2662         https://bugs.webkit.org/show_bug.cgi?id=69828
2663
2664         Reviewed by Darin Adler.
2665
2666         - Move all of the data members of SelectElementData to
2667         HTMLSelectElement, and their accessor functions are not needed
2668         anymore.
2669         - Move SelectElementData::useMenuList() to HTMLSelectElement.
2670
2671         No new tests, just a refactoring.
2672
2673         * CMakeLists.txt: Remove SelectElement.cpp.
2674         * WebCore.gypi: Remove SelectElement.{cpp,h}.
2675         * WebCore.pro: ditto.
2676         * WebCore.vcproj/WebCore.vcproj: ditto.
2677         * WebCore.xcodeproj/project.pbxproj: ditto.
2678         * dom/OptionElement.cpp: Remove a reference to SelectElement.h.
2679         * dom/SelectElement.cpp: Removed.
2680         * dom/SelectElement.h: Removed.
2681         * html/HTMLSelectElement.cpp:
2682         (WebCore::HTMLSelectElement::HTMLSelectElement):
2683         Initializes the moved data members.
2684         (WebCore::HTMLSelectElement::formControlType):
2685         (WebCore::HTMLSelectElement::setSelectedIndexByUser):
2686         (WebCore::HTMLSelectElement::activeSelectionStartListIndex):
2687         (WebCore::HTMLSelectElement::activeSelectionEndListIndex):
2688         (WebCore::HTMLSelectElement::parseMappedAttribute):
2689         (WebCore::HTMLSelectElement::canSelectAll):
2690         (WebCore::HTMLSelectElement::createRenderer):
2691         (WebCore::HTMLSelectElement::setOption):
2692         (WebCore::HTMLSelectElement::selectAll):
2693         (WebCore::HTMLSelectElement::saveLastSelection):
2694         (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
2695         (WebCore::HTMLSelectElement::setActiveSelectionEndIndex):
2696         (WebCore::HTMLSelectElement::updateListBoxSelection):
2697         (WebCore::HTMLSelectElement::listBoxOnChange):
2698         (WebCore::HTMLSelectElement::menuListOnChange):
2699         (WebCore::HTMLSelectElement::scrollToSelection):
2700         (WebCore::HTMLSelectElement::setOptionsChangedOnRenderer):
2701         (WebCore::HTMLSelectElement::setRecalcListItems):
2702         (WebCore::HTMLSelectElement::recalcListItemsInternal):
2703         (WebCore::HTMLSelectElement::setSelectedIndexInternal):
2704         (WebCore::HTMLSelectElement::dispatchFocusEvent):
2705         (WebCore::HTMLSelectElement::dispatchBlurEvent):
2706         (WebCore::HTMLSelectElement::parseMultipleAttribute):
2707         (WebCore::HTMLSelectElement::reset):
2708         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
2709         (WebCore::HTMLSelectElement::updateSelectedState):
2710         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
2711         (WebCore::HTMLSelectElement::defaultEventHandler):
2712         (WebCore::HTMLSelectElement::typeAheadFind):
2713         (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
2714         * html/HTMLSelectElement.h:
2715         (WebCore::HTMLSelectElement::size):
2716         (WebCore::HTMLSelectElement::multiple):
2717         (WebCore::HTMLSelectElement::usesMenuList):
2718
2719 2011-10-12  Ryosuke Niwa  <rniwa@webkit.org>
2720
2721         Chromium Mac build fix after r97227.
2722
2723         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2724         (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
2725
2726 2011-10-11  Antoine Labour  <piman@chromium.org>
2727
2728         Separate compositor client thread from webkit's main thread.
2729         https://bugs.webkit.org/show_bug.cgi?id=69048
2730
2731         Reviewed by Darin Fisher.
2732
2733         Covered by compositing tests.
2734
2735         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2736         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2737         * platform/graphics/chromium/cc/CCMainThread.cpp:
2738         * platform/graphics/chromium/cc/CCMainThread.h:
2739         * platform/graphics/chromium/cc/CCProxy.cpp:
2740         (WebCore::CCProxy::isMainThread):
2741         (WebCore::CCProxy::setMainThread):
2742         (WebCore::CCProxy::CCProxy):
2743         * platform/graphics/chromium/cc/CCProxy.h:
2744
2745 2011-10-11  Simon Fraser  <simon.fraser@apple.com>
2746
2747         Fix Leopard and Snow Leopard builds, which don't use the scrollbar painter.
2748         
2749         * platform/mac/ScrollAnimatorMac.mm:
2750
2751 2011-10-11  Simon Fraser  <simon.fraser@apple.com>
2752
2753         Make custom scrollbar theme for use in DRT, to reduce pixel diffs between platforms
2754         https://bugs.webkit.org/show_bug.cgi?id=68134
2755
2756         Reviewed by Darin Adler.
2757
2758         Use ScrollbarThemeMock when the setting to use mock scrollbars is enabled.
2759         
2760         Make ScrollbarTheme::nativeTheme() private, and add a new static theme() method
2761         that reads the setting, and returns the mock theme if set. All callers now use
2762         theme() rther than nativeTheme(). Add the new ScrollbarTheme.cpp file to the build.
2763         
2764         Fix scroll animator code for Mac and Chromium that was casting the ScrollbarTheme
2765         without type-checking it to test whether it's the mock theme.
2766
2767         * CMakeLists.txt:
2768         * GNUmakefile.list.am:
2769         * WebCore.exp.in:
2770         * WebCore.gypi:
2771         * WebCore.pro:
2772         * WebCore.vcproj/WebCore.vcproj:
2773         * WebCore.xcodeproj/project.pbxproj:
2774         * html/shadow/TextControlInnerElements.cpp:
2775         (WebCore::SpinButtonElement::startRepeatingTimer):
2776         * platform/ScrollAnimatorWin.cpp:
2777         (WebCore::ScrollAnimatorWin::scroll):
2778         (WebCore::ScrollAnimatorWin::accelerationTime):
2779         (WebCore::ScrollAnimatorWin::animateScroll):
2780         * platform/ScrollView.cpp:
2781         (WebCore::ScrollView::wheelEvent):
2782         * platform/ScrollableArea.cpp:
2783         (WebCore::ScrollableArea::setScrollbarOverlayStyle):
2784         * platform/Scrollbar.cpp:
2785         (WebCore::Scrollbar::maxOverlapBetweenPages):
2786         (WebCore::Scrollbar::Scrollbar):
2787         * platform/ScrollbarTheme.cpp: Copied from Source/WebCore/platform/mock/ScrollbarThemeMock.h.
2788         (WebCore::ScrollbarTheme::theme):
2789         * platform/ScrollbarTheme.h:
2790         (WebCore::ScrollbarTheme::isMockTheme):
2791         * platform/chromium/PopupListBox.cpp:
2792         (WebCore::PopupListBox::layout):
2793         * platform/chromium/ScrollAnimatorChromiumMac.mm:
2794         (WebCore::chromiumScrollbarTheme):
2795         (WebCore::ScrollAnimatorChromiumMac::didAddVerticalScrollbar):
2796         (WebCore::ScrollAnimatorChromiumMac::willRemoveVerticalScrollbar):
2797         (WebCore::ScrollAnimatorChromiumMac::didAddHorizontalScrollbar):
2798         (WebCore::ScrollAnimatorChromiumMac::willRemoveHorizontalScrollbar):
2799         (WebCore::ScrollAnimatorChromiumMac::updateScrollerStyle):
2800         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2801         (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
2802         (+[ScrollbarPrefsObserver behaviorPrefsChanged:]):
2803         * platform/mac/ScrollAnimatorMac.mm:
2804         (WebCore::macScrollbarTheme):
2805         (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
2806         (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
2807         (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
2808         (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
2809         (WebCore::ScrollAnimatorMac::updateScrollerStyle):
2810         * platform/mac/ScrollbarThemeMac.mm:
2811         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
2812         (+[WebScrollbarPrefsObserver behaviorPrefsChanged:]):
2813         * platform/mock/ScrollbarThemeMock.h:
2814         (WebCore::ScrollbarThemeMock::isMockTheme):
2815         * platform/qt/RenderThemeQt.cpp:
2816         (WebCore::RenderThemeQt::adjustInnerSpinButtonStyle):
2817         * platform/win/PopupMenuWin.cpp:
2818         (WebCore::PopupMenuWin::calculatePositionAndSize):
2819         * rendering/RenderLayer.cpp:
2820         (WebCore::cornerRect):
2821         * rendering/RenderScrollbarPart.cpp:
2822         (WebCore::calcScrollbarThicknessUsing):
2823         * rendering/RenderScrollbarTheme.h:
2824         (WebCore::RenderScrollbarTheme::scrollbarThickness):
2825         (WebCore::RenderScrollbarTheme::buttonsPlacement):
2826         (WebCore::RenderScrollbarTheme::shouldCenterOnThumb):
2827         (WebCore::RenderScrollbarTheme::initialAutoscrollTimerDelay):
2828         (WebCore::RenderScrollbarTheme::autoscrollTimerDelay):
2829         (WebCore::RenderScrollbarTheme::registerScrollbar):
2830         (WebCore::RenderScrollbarTheme::unregisterScrollbar):
2831         * rendering/RenderTextControl.cpp:
2832         (WebCore::RenderTextControl::scrollbarThickness):
2833         * rendering/RenderThemeChromiumSkia.cpp:
2834         (WebCore::RenderThemeChromiumSkia::menuListInternalPadding):
2835         * rendering/RenderThemeChromiumWin.cpp:
2836         (WebCore::RenderThemeChromiumWin::adjustInnerSpinButtonStyle):
2837
2838 2011-10-11  Kentaro Hara  <haraken@chromium.org>
2839
2840         Implement a WebKitTransitionEvent constructor for JSC
2841         https://bugs.webkit.org/show_bug.cgi?id=69829
2842
2843         Reviewed by Adam Barth.
2844
2845         There is no spec for the WebKitTransitionEvent constructor
2846         since it is WebKit-specific. However, judging from the current
2847         IDL of initWebKitTransitionEvent(), the constructor IDL
2848         should be as follows.
2849
2850         [Constructor(DOMString type, optional WebKitTransitionEventInit eventInitDict)]
2851         interface WebKitTransitionEvent : Event {
2852             ...;
2853         }
2854
2855         dictionary WebKitTransitionEventInit : EventInit {
2856             DOMString propertyName;
2857             double elapsedTime;
2858         }
2859
2860         Test: fast/events/constructors/webkit-transition-event-constructor.html
2861
2862         * bindings/generic/EventConstructors.h: Added a definition for the WebKitTransitionEvent constructor.
2863         * bindings/js/JSEventConstructors.cpp: Added #includes for WebKitTransitionEvent.
2864         * dom/WebKitTransitionEvent.cpp:
2865         (WebCore::WebKitTransitionEventInit::WebKitTransitionEventInit):
2866         (WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
2867         (WebCore::WebKitTransitionEvent::initWebKitTransitionEvent):
2868         * dom/WebKitTransitionEvent.h: Added a definition for WebKitTransitionEventInit.
2869         (WebCore::WebKitTransitionEvent::create):
2870         (WebCore::WebKitTransitionEvent::isWebKitTransitionEvent):
2871         * dom/WebKitTransitionEvent.idl: Makes WebKitTransitionEvent constructible.
2872
2873 2011-10-11  Sameer Patil  <mkrp87@motorola.com>
2874
2875         :checked pseudo selector not matching selected option 
2876         https://bugs.webkit.org/show_bug.cgi?id=63192
2877
2878         Reviewed by Kent Tamura.
2879
2880         Test: fast/css/checked-pseudo-selector.html
2881
2882         Option element selected state need to be checked in checkOneSelector, 
2883         so that it can be considered as checked on querySelectorAll(':checked').
2884
2885         * css/SelectorChecker.cpp:
2886         (WebCore::SelectorChecker::checkOneSelector):
2887
2888 2011-10-11  Ryuan Choi  <ryuan.choi@samsung.com>
2889
2890         StorageAreaSync::sync needs a transaction for better performance.
2891         https://bugs.webkit.org/show_bug.cgi?id=57694
2892
2893         Reviewed by Darin Adler.
2894
2895         For now, StorageAreaSync::sync execute SQLite operations for all items outside
2896         a transaction.
2897         However, SQLite operations outside a transaction are all atomic and thus
2898         writes will block on I/O, which makes the process slow during heavy I/O.
2899         This wrapped them with BEGIN TRANSACTION and END TRANSACTION for the better
2900         performance.
2901
2902         No new tests required.
2903         No functional changes if transaction doesn't fail.
2904         And also, it is difficult to test the case of transaction fails.
2905
2906         * storage/StorageAreaSync.cpp:
2907         (WebCore::StorageAreaSync::sync):
2908
2909 2011-10-11  Ojan Vafai  <ojan@chromium.org>
2910
2911         margin-right is ignored with vertical writing mode
2912         https://bugs.webkit.org/show_bug.cgi?id=69686
2913
2914         Reviewed by Darin Adler.
2915
2916         We need to use the parent's writing mode when grabbing
2917         the margin start/end for the purposes of computing the parent's
2918         preferred widths.
2919
2920         Test: fast/writing-mode/margins.html
2921
2922         * rendering/RenderBlock.cpp:
2923         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
2924         * rendering/RenderBlock.h:
2925
2926 2011-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
2927
2928         Unreviewed, rolling out r97202, r97207, and r97215.
2929         http://trac.webkit.org/changeset/97202
2930         http://trac.webkit.org/changeset/97207
2931         http://trac.webkit.org/changeset/97215
2932         https://bugs.webkit.org/show_bug.cgi?id=69894
2933
2934         Broke builds (Requested by rniwa on #webkit).
2935
2936         * platform/PopupMenuClient.h:
2937         * rendering/RenderMenuList.cpp:
2938         (WebCore::RenderMenuList::showPopup):
2939         * rendering/RenderMenuList.h:
2940         * rendering/RenderObject.h:
2941         * rendering/RenderTextControlSingleLine.cpp:
2942         (WebCore::RenderTextControlSingleLine::showPopup):
2943         * rendering/RenderTextControlSingleLine.h:
2944         * testing/Internals.cpp:
2945         * testing/Internals.h:
2946         * testing/Internals.idl:
2947
2948 2011-10-11  Martin Robinson  <mrobinson@igalia.com>
2949
2950         [Soup] ResourceHandleSoup does not handle encodedBlobData
2951         https://bugs.webkit.org/show_bug.cgi?id=52092
2952
2953         Reviewed by Gustavo Noronha Silva.
2954
2955         Add support for sending encoded blob data during requests.
2956
2957         * platform/network/soup/ResourceHandleSoup.cpp:
2958         (WebCore::addFileToSoupMessageBody): Added this helper.
2959         (WebCore::blobIsOutOfDate): Ditto.
2960         (WebCore::addEncodedBlobItemToSoupMessageBody): Ditto.
2961         (WebCore::addEncodedBlobToSoupMessageBody): Ditto.
2962         (WebCore::addFormElementsToSoupMessage): No longer flatten form data, as we
2963         cannot do this in the case where the form data contains blobs. Now handle
2964         the blob case.
2965         (WebCore::loadResourceSynchronously): Add blob support for synchronous loading.
2966
2967 2011-10-11  Chris Rogers  <crogers@google.com>
2968
2969         Heap buffer overflow in Webaudio FFTFrame::doFFT
2970         https://bugs.webkit.org/show_bug.cgi?id=69447
2971
2972         Reviewed by Kenneth Russell.
2973
2974         No new tests. This only changes internal implementation details.
2975
2976         * platform/audio/HRTFKernel.cpp:
2977         (WebCore::extractAverageGroupDelay):
2978         * platform/audio/HRTFPanner.cpp:
2979         (WebCore::HRTFPanner::fftSizeForSampleRate):
2980
2981 2011-10-11  Ryosuke Niwa  <rniwa@webkit.org>
2982
2983         Second Qt minimum release build fix attempt after r97163.
2984
2985         * platform/graphics/texmap/TextureMapperNode.cpp:
2986         (WebCore::TextureMapperNode::syncCompositingStateSelf):
2987
2988 2011-10-11  Ryosuke Niwa  <rniwa@webkit.org>
2989
2990         Qt minimum release build fix attempt after r97163.
2991
2992         * platform/graphics/texmap/TextureMapperNode.cpp:
2993         (WebCore::TextureMapperNode::syncCompositingStateSelf):
2994
2995 2011-10-11  Oliver Hunt  <oliver@apple.com>
2996
2997         Clang build broken
2998         https://bugs.webkit.org/show_bug.cgi?id=69891
2999
3000         Reviewed by Darin Adler.
3001
3002         Rename CachedResourceClient::type to CachedResourceClient::resourceClientType
3003         to avoid conflict in CSSImportRule.
3004
3005         * loader/cache/CachedCSSStyleSheet.cpp:
3006         (WebCore::CachedCSSStyleSheet::didAddClient):
3007         * loader/cache/CachedFont.cpp:
3008         (WebCore::CachedFont::didAddClient):
3009         * loader/cache/CachedFont.h:
3010         (WebCore::CachedFontClient::resourceClientType):
3011         * loader/cache/CachedImage.cpp:
3012         (WebCore::CachedImage::didAddClient):
3013         * loader/cache/CachedImage.h:
3014         (WebCore::CachedImageClient::resourceClientType):
3015         * loader/cache/CachedResourceClient.h:
3016         (WebCore::CachedResourceClient::resourceClientType):
3017         * loader/cache/CachedResourceClientWalker.h:
3018         (WebCore::CachedResourceClientWalker::next):
3019         * loader/cache/CachedStyleSheetClient.h:
3020         (WebCore::CachedStyleSheetClient::resourceClientType):
3021         * loader/cache/CachedXSLStyleSheet.cpp:
3022         (WebCore::CachedXSLStyleSheet::didAddClient):
3023
3024 2011-10-11  Ryosuke Niwa  <rniwa@webkit.org>
3025
3026         Dir attribute is converted into direction property when merging paragraphs
3027         https://bugs.webkit.org/show_bug.cgi?id=69680
3028
3029         Reviewed by Enrica Casucci.
3030
3031         Don't include direction and unicode-bidi properties in the wrapping style.
3032
3033         Tests: editing/deleting/merge-paragraph-into-h1-with-dir-2.html
3034                editing/deleting/merge-paragraph-into-h1-with-dir.html
3035
3036         * editing/EditingStyle.cpp:
3037         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement): Skip unicode-bidi and direction properties.
3038         (WebCore::EditingStyle::wrappingStyleForSerialization): Extracted from StyledMarkupAccumulator::serializeNodes.
3039         * editing/EditingStyle.h:
3040         * editing/markup.cpp:
3041         (WebCore::StyledMarkupAccumulator::serializeNodes): Calls wrappingStyleForSerialization.
3042
3043 2011-10-11  Nico Weber  <thakis@chromium.org>
3044
3045         [chromium] Let rule_binding use os.execvp() instead of subprocess.call() to spawn fewer processes.
3046         https://bugs.webkit.org/show_bug.cgi?id=69589
3047
3048         Reviewed by Dirk Pranke.
3049
3050         When building with `make -j40`, all the binding rules are built en bloc. Since this script currently
3051         uses subprocess.call(), that actually spawns 80 processes at once. OS X has a max process limit of
3052         255 by default, so the build used to fail with
3053         "open2: fork failed: Resource temporarily unavailable at ../bindings/scripts/preprocessor.pm line 60"
3054         As a fix, use execvp() instead, which replaces the current process instead of spawning a new one.
3055
3056         * WebCore.gyp/scripts/rule_binding.py:
3057
3058 2011-10-11  Fady Samuel  <fsamuel@chromium.org>
3059
3060         Towards making PopupMenuClient more testable
3061         https://bugs.webkit.org/show_bug.cgi?id=69631
3062
3063         Reviewed by Simon Fraser.
3064
3065         Added some functions to window.internals to allow testing of parts of PopupMenuClient.
3066
3067         Test: fast/dom/popup-menu-client-test.html
3068
3069         * platform/PopupMenuClient.h:
3070         * rendering/RenderMenuList.cpp:
3071         (WebCore::RenderMenuList::showPopup):
3072         (WebCore::RenderMenuList::boundingBoxRect):
3073         * rendering/RenderMenuList.h:
3074         (WebCore::RenderMenuList::RenderMenuList::isPopupMenuClient):
3075         * rendering/RenderObject.h:
3076         (WebCore::RenderObject::isPopupMenuClient):
3077         * rendering/RenderTextControlSingleLine.cpp:
3078         (WebCore::RenderTextControlSingleLine::showPopup):
3079         (WebCore::RenderTextControlSingleLine::boundingBoxRect):
3080         * rendering/RenderTextControlSingleLine.h:
3081         (WebCore::RenderTextControlSingleLine::isPopupMenuClient):
3082         * testing/Internals.cpp:
3083         (WebCore::Internals::toPopupMenuClient):
3084         (WebCore::Internals::popupClientPaddingLeft):
3085         (WebCore::Internals::popupClientPaddingRight):
3086         (WebCore::Internals::popupClientBoundingBoxRect):
3087         * testing/Internals.h:
3088         * testing/Internals.idl:
3089
3090 2011-10-11  Nate Chapin  <japhet@chromium.org>
3091
3092         Make CachedResourceClientWalker templates, and
3093         have it check and filter out bad casts when iterating
3094         (currently we rely on CachedResourceClients being careful
3095         to inherit from the right subclass for the type of resource
3096         they want to load).
3097         https://bugs.webkit.org/show_bug.cgi?id=69877
3098
3099         Reviewed by Adam Barth.
3100
3101         No new tests, no functionality change.
3102
3103         * CMakeLists.txt:
3104         * GNUmakefile.list.am:
3105         * WebCore.gypi:
3106         * WebCore.pro:
3107         * WebCore.vcproj/WebCore.vcproj:
3108         * WebCore.xcodeproj/project.pbxproj:
3109         * loader/cache/CachedCSSStyleSheet.cpp:
3110         * loader/cache/CachedFont.cpp:
3111         * loader/cache/CachedFont.h:
3112         * loader/cache/CachedImage.cpp:
3113         * loader/cache/CachedImage.h:
3114         * loader/cache/CachedResource.cpp:
3115         * loader/cache/CachedResourceClient.h:
3116         * loader/cache/CachedResourceClientWalker.cpp: Removed.
3117         * loader/cache/CachedResourceClientWalker.h:
3118         * loader/cache/CachedStyleSheetClient.h:
3119         * loader/cache/CachedXSLStyleSheet.cpp:
3120
3121 2011-10-11  W. James MacLean  <wjmaclean@chromium.org>
3122
3123         [chromium] Fix compilation guards in ScrollAnimatorNone (GESTURE_EVENTS).
3124         https://bugs.webkit.org/show_bug.cgi?id=69853
3125
3126         Reviewed by Kenneth Russell.
3127
3128         Adding missing guards ENABLE(GESTURE_EVENTS) in ScrollAnimatorNone. So
3129         far this hasn't been a problem since GESTURE_EVENTS are usually turned on
3130         whenever SMOOTH_SCROLLING is, but it could be a problem if this changes.
3131
3132         No new tests (compilation without errors is the test).
3133
3134         * platform/ScrollAnimatorNone.cpp:
3135         * platform/ScrollAnimatorNone.h:
3136
3137 2011-10-11  Kenneth Russell  <kbr@google.com>
3138
3139         [chromium] Check for lost context at beginning of compositor's execution
3140         https://bugs.webkit.org/show_bug.cgi?id=69776
3141
3142         Reviewed by James Robinson.
3143
3144         Test: platform/chromium/compositing/webgl-loses-compositor-context.html
3145
3146         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
3147         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
3148
3149 2011-10-11  W. James MacLean  <wjmaclean@chromium.org>
3150
3151         Loss of precision when converting from double to int and double to float in FrameView::zoomAnimatorTransformChanged()
3152         https://bugs.webkit.org/show_bug.cgi?id=69739
3153
3154         Reviewed by Simon Fraser.
3155
3156         Change 'double' parameters in FrameView:: & ScrollableArea::zoomAnimatorTransformChanged()
3157         to 'float' to avoid loss of precision warnings when invoking setPageScalefactor.
3158
3159         Test coverage provided by existing zoom-animator tests.
3160
3161         * page/FrameView.cpp:
3162         (WebCore::FrameView::zoomAnimatorTransformChanged):
3163         * page/FrameView.h:
3164         * platform/ScrollableArea.cpp:
3165         (WebCore::ScrollableArea::zoomAnimatorTransformChanged):
3166         * platform/ScrollableArea.h:
3167
3168 2011-10-11  No'am Rosenthal  <noam.rosenthal@nokia.com>
3169
3170         Unreviewed build fix, unbreaking the Qt minimal bot.
3171         Some #ifdef ENABLED(TILED_BACKING_STORE) clauses were missing.
3172
3173         * platform/graphics/texmap/TextureMapperNode.cpp:
3174         (WebCore::TextureMapperNode::computeTiles):
3175         (WebCore::TextureMapperNode::renderContent):
3176         (WebCore::TextureMapperNode::paintSelf):
3177
3178 2011-10-11  Abhishek Arya  <inferno@chromium.org>
3179
3180         Generalize r95461 change to include table-cell and 
3181         allow splitting between :before, :after content.
3182         https://bugs.webkit.org/show_bug.cgi?id=69854
3183
3184         Reviewed by Eric Seidel.
3185
3186         Test: fast/table/table-row-before-after-content-around-table-cell.html
3187
3188         * rendering/RenderObject.cpp:
3189         (WebCore::RenderObject::addChild):
3190
3191 2011-10-11  Dominic Mazzoni  <dmazzoni@google.com>
3192
3193         AccessibilityMenuList should fire change notification when popup is not open.
3194         https://bugs.webkit.org/show_bug.cgi?id=69440
3195
3196         Reviewed by Chris Fleizach.
3197
3198         Test: accessibility/menu-list-sends-change-notification.html
3199
3200         * accessibility/AccessibilityMenuList.cpp:
3201         (WebCore::AccessibilityMenuList::didUpdateActiveOption):
3202
3203 2011-10-11  Joshua Bell  <jsbell@chromium.org>
3204
3205         IndexedDB: implement IDBFactory.cmp method
3206         https://bugs.webkit.org/show_bug.cgi?id=62293
3207
3208         Reviewed by Tony Chang.
3209
3210         * storage/IDBFactory.cpp:
3211         (WebCore::IDBFactory::cmp):
3212         * storage/IDBFactory.h:
3213         * storage/IDBFactory.idl:
3214         * storage/IDBKey.cpp:
3215         (WebCore::IDBKey::compare):
3216         (WebCore::IDBKey::isLessThan):
3217         (WebCore::IDBKey::isEqual):
3218         * storage/IDBKey.h:
3219
3220 2011-10-11  No'am Rosenthal  <noam.rosenthal@nokia.com>
3221
3222         [Texmap] TextureMapperGL leaves GL in a modified state.
3223         https://bugs.webkit.org/show_bug.cgi?id=68983
3224
3225         Reviewed by Andreas Kling.
3226
3227         Disable the vertexAttribArray after clipping.
3228
3229         No new functionality so no new tests.
3230
3231         * platform/graphics/opengl/TextureMapperGL.cpp:
3232         (WebCore::TextureMapperGL::beginClip):
3233
3234 2011-10-11  No'am Rosenthal  <noam.rosenthal@nokia.com>
3235
3236         [Qt][WK2] Synchronize tiling with accelerated compositing
3237         https://bugs.webkit.org/show_bug.cgi?id=69151
3238
3239         Reviewed by Kenneth Rohde Christiansen.
3240
3241         Enable "externally managed" tiles in TextureMapperNodes.
3242         Currently, TextureMapperNodes manage tiles themselves, the tiles being there only to
3243         overcome the 2k texture size limitation. For WebKit2, we want those tiles to be managed
3244         externally, namely through the web process via the remote tile backend for
3245         TiledBackingStore.
3246
3247         This patch adds a store for those externally managed tiles, and adds the necessary code to
3248         paint them instead of the owned tiles when appropriate.
3249
3250         In addition, in order to support externally managed remote tiles, we have to calculate per-
3251         layer visible rects and pass them to the web process. The new collectVisibleContentRects
3252         does this - and is directly tied to the externally-managed tile approach.
3253
3254         Code is disabled for now, but covered by existing compositing tests.
3255
3256         * platform/graphics/texmap/TextureMapperNode.cpp:
3257         (WebCore::TextureMapperNode::computeTiles):
3258         (WebCore::clampRect):
3259         (WebCore::TextureMapperNode::collectVisibleContentRects):
3260         (WebCore::TextureMapperNode::renderContent):
3261         (WebCore::TextureMapperNode::targetRectForTileRect):
3262         (WebCore::TextureMapperNode::paintSelf):
3263         (WebCore::TextureMapperNode::createContentsTile):
3264         (WebCore::TextureMapperNode::removeContentsTile):
3265         (WebCore::TextureMapperNode::setTileBackBufferTextureForDirectlyCompositedImage):
3266         (WebCore::TextureMapperNode::clearAllDirectlyCompositedImageTiles):
3267         (WebCore::TextureMapperNode::setContentsTileBackBuffer):
3268         (WebCore::TextureMapperNode::swapContentsBuffers):
3269         (WebCore::TextureMapperNode::syncCompositingStateSelf):
3270         (WebCore::TextureMapperNode::syncCompositingState):
3271         * platform/graphics/texmap/TextureMapperNode.h:
3272         (WebCore::TextureMapperNode::size):
3273         (WebCore::TextureMapperNode::setTileOwnership):
3274         (WebCore::TextureMapperNode::setID):
3275         (WebCore::TextureMapperNode::id):
3276         (WebCore::TextureMapperNode::texture):
3277         (WebCore::TextureMapperNode::ExternallyManagedTile::ExternallyManagedTile):
3278         (WebCore::TextureMapperNode::State::State):
3279
3280 2011-10-11  Claudio Saavedra  <csaavedra@igalia.com>
3281
3282         [GTK] GtkAuthenticationDialog: use GtkGrid instead of GtkTable
3283         https://bugs.webkit.org/show_bug.cgi?id=69749
3284
3285         Reviewed by Martin Robinson.
3286
3287         * platform/gtk/GtkAuthenticationDialog.cpp:
3288         (WebCore::addEntryToGrid): Migrate to GtkGrid when using GTK+ 3
3289         (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog):
3290         Ditto.
3291
3292 2011-10-11  Alexey Proskuryakov  <ap@apple.com>
3293
3294         Build fix.
3295
3296         * WebCore.exp.in: Export GraphicsContext::clearShadow().
3297
3298 2011-10-10  Adam Klein  <adamk@chromium.org>
3299
3300         [MutationObservers] Add stub implementation of WebKitMutationObserver
3301         https://bugs.webkit.org/show_bug.cgi?id=68949
3302
3303         Reviewed by Ryosuke Niwa, Oliver Hunt, and Dimitri Glazkov.
3304
3305         See https://bugs.webkit.org/show_bug.cgi?id=68729 for the metabug.
3306
3307         This patch adds a stub WebKitMutationObserver and its supporting classes
3308         MutationCallback and MutationObserverOptions.
3309         No implementation is provided for the all-important observe() and
3310         disconnect() methods.
3311
3312         Note that WebKitMutationObserver is vendor-prefixed since it has a
3313         constructor exposed on DOMWindow.  None of the rest of the API needs
3314         prefixing, as it's only available via a call through a MutationObserver
3315         callback (created by instantiating WebKitMutationObserver).
3316
3317         Given the number of files required to get just the stub up and running,
3318         it seems reasonable to leave the actual implementation for the next
3319         patch (or more likely several patches).  I've left FIXMEs in all the places
3320         that'll need augmentation.
3321
3322         Tests: fast/mutation/mutation-observer-constructor.html
3323                fast/mutation/observe-exceptions.html
3324
3325         * CMakeLists.txt:
3326         * DerivedSources.cpp:
3327         * DerivedSources.make:
3328         * GNUmakefile.list.am:
3329         * UseJSC.cmake:
3330         * WebCore.gypi:
3331         * WebCore.pro:
3332         * WebCore.vcproj/WebCore.vcproj:
3333         * WebCore.xcodeproj/project.pbxproj:
3334         * bindings/js/JSDictionary.h:
3335         (WebCore::JSDictionary::tryGetProperty):
3336         * bindings/js/JSMutationCallbackCustom.cpp: Added.
3337         (WebCore::JSMutationCallback::handleEvent):
3338         * bindings/js/JSWebKitMutationObserverCustom.cpp: Added.
3339         (WebCore::JSWebKitMutationObserverConstructor::constructJSWebKitMutationObserver):
3340         (WebCore::JSWebKitMutationObserver::observe):
3341         * bindings/v8/custom/V8MutationCallbackCustom.cpp: Added.
3342         (WebCore::V8MutationCallback::handleEvent):
3343         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp: Added.
3344         (WebCore::V8WebKitMutationObserver::constructorCallback):
3345         (WebCore::V8WebKitMutationObserver::observeCallback):
3346         * dom/MutationCallback.h: Added.
3347         (WebCore::MutationCallback::~MutationCallback):
3348         * dom/MutationCallback.idl: Added.
3349         * dom/MutationObserverOptions.h: Added.
3350         (WebCore::MutationObserverOptions::create):
3351         (WebCore::MutationObserverOptions::childList):
3352         (WebCore::MutationObserverOptions::setChildList):
3353         (WebCore::MutationObserverOptions::attributes):
3354         (WebCore::MutationObserverOptions::setAttributes):
3355         (WebCore::MutationObserverOptions::characterData):
3356         (WebCore::MutationObserverOptions::setCharacterData):
3357         (WebCore::MutationObserverOptions::subtree):
3358         (WebCore::MutationObserverOptions::setSubtree):
3359         (WebCore::MutationObserverOptions::attributeOldValue):
3360         (WebCore::MutationObserverOptions::setAttributeOldValue):
3361         (WebCore::MutationObserverOptions::characterDataOldValue):
3362         (WebCore::MutationObserverOptions::setCharacterDataOldValue):
3363         (WebCore::MutationObserverOptions::MutationObserverOptions):
3364         * dom/WebKitMutationObserver.cpp: Added.
3365         (WebCore::WebKitMutationObserver::create):
3366         (WebCore::WebKitMutationObserver::WebKitMutationObserver):
3367         (WebCore::WebKitMutationObserver::~WebKitMutationObserver):
3368         (WebCore::WebKitMutationObserver::observe):
3369         (WebCore::WebKitMutationObserver::disconnect):
3370         * dom/WebKitMutationObserver.h: Added.
3371         * dom/WebKitMutationObserver.idl: Added.
3372         * page/DOMWindow.idl:
3373
3374 2011-10-11  Arun Patole  <BMF834@motorola.com>
3375
3376         Need more efficient ways to set inline CSS styles
3377         https://bugs.webkit.org/show_bug.cgi?id=58157
3378
3379         Reviewed by Dimitri Glazkov.
3380
3381         No new tests added as this is just a code optimization.
3382
3383         Code optimization:
3384           -Used CSSPropertyNames, CSSValues and CSSPrimitiveValues instead of Strings.
3385           -Removed displayString(), webkitTransitionString(), opacityString() functions as they will no longer be needed after this change.
3386           -Moved makeOpaque and makeTransparent functionality to MediaControlPanelElement from MediaControlRootElement.
3387
3388         * html/HTMLMediaElement.cpp:
3389         (WebCore::HTMLMediaElement::mediaPlayerRateChanged):
3390         * html/shadow/MediaControlElements.cpp:
3391         (WebCore::MediaControlElement::show):
3392         (WebCore::MediaControlElement::hide):
3393         (WebCore::MediaControlPanelElement::MediaControlPanelElement):
3394         (WebCore::MediaControlPanelElement::makeOpaque):
3395         (WebCore::MediaControlPanelElement::makeTransparent):
3396         (WebCore::MediaControlInputElement::show):
3397         (WebCore::MediaControlInputElement::hide):
3398         * html/shadow/MediaControlElements.h:
3399         * html/shadow/MediaControlRootElement.cpp:
3400         (WebCore::MediaControlRootElement::MediaControlRootElement):
3401         (WebCore::MediaControlRootElement::makeOpaque):
3402         (WebCore::MediaControlRootElement::makeTransparent):
3403         * html/shadow/MediaControlRootElement.h:
3404         * html/shadow/MediaControlRootElementChromium.cpp:
3405         (WebCore::MediaControlRootElementChromium::makeOpaque):
3406         (WebCore::MediaControlRootElementChromium::makeTransparent):
3407
3408 2011-10-11  Pavel Feldman  <pfeldman@google.com>
3409
3410         Web Inspector: make Extensions component compile.
3411         https://bugs.webkit.org/show_bug.cgi?id=69833
3412
3413         Reviewed by Yury Semikhatsky.
3414
3415         * inspector/compile-front-end.sh:
3416         * inspector/front-end/BinarySearch.js:
3417         * inspector/front-end/ConsoleModel.js:
3418         * inspector/front-end/ExtensionAPI.js:
3419         (injectedExtensionAPI.Network.prototype.addRequestHeaders):
3420         (injectedExtensionAPI.AuditResultImpl.prototype.addResult):
3421         (injectedExtensionAPI.AuditResultNode.prototype.addChild):
3422         * inspector/front-end/ExtensionAuditCategory.js:
3423         * inspector/front-end/ExtensionPanel.js:
3424         (WebInspector.ExtensionSidebarPane.prototype.setExpression):
3425         * inspector/front-end/ExtensionRegistryStub.js: