675ddfefea909cb0686bec93736c7c8a65b1e18a
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-11-13  Marja Hölttä  <marja@chromium.org>
2
3         Add initiator to CachedResourceRequest.
4         https://bugs.webkit.org/show_bug.cgi?id=101935
5
6         Reviewed by Adam Barth.
7
8         Motivation: Chromium needs to know which elements request a
9         resource (such as an image or a script) (bug 92761). In addition,
10         for exposing resource timing information (bug 84883) we need to
11         store the initiator, and this is the first step towards it.
12
13         No new tests: No visible change in behavior.
14
15         * CMakeLists.txt:
16         * GNUmakefile.list.am:
17         * Target.pri:
18         * WebCore.gypi:
19         * WebCore.vcproj/WebCore.vcproj:
20         * WebCore.xcodeproj/project.pbxproj:
21         * css/CSSCrossfadeValue.cpp:
22         (WebCore::cachedImageForCSSValue):
23         * css/CSSCursorImageValue.cpp:
24         (WebCore::CSSCursorImageValue::cachedImage):
25         * css/CSSFontFaceSrcValue.cpp:
26         (WebCore::CSSFontFaceSrcValue::cachedFont):
27         * css/CSSImageSetValue.cpp:
28         (WebCore::CSSImageSetValue::cachedImageSet):
29         * css/CSSImageValue.cpp:
30         (WebCore::CSSImageValue::cachedImage):
31         * css/CSSImageValue.h:
32         (WebCore):
33         (CSSImageValue):
34         * css/StyleResolver.cpp:
35         (WebCore::StyleResolver::loadPendingImage):
36         * css/StyleRuleImport.cpp:
37         (WebCore::StyleRuleImport::requestStyleSheet):
38         * css/WebKitCSSSVGDocumentValue.cpp:
39         (WebCore::WebKitCSSSVGDocumentValue::load):
40         * css/WebKitCSSShaderValue.cpp:
41         (WebCore::WebKitCSSShaderValue::cachedShader):
42         * dom/ScriptElement.cpp:
43         (WebCore::ScriptElement::requestScript):
44         * html/HTMLLinkElement.cpp:
45         (WebCore::HTMLLinkElement::process):
46         * html/parser/CSSPreloadScanner.cpp:
47         (WebCore::CSSPreloadScanner::emitRule):
48         * html/parser/CSSPreloadScanner.h:
49         (CSSPreloadScanner):
50         * html/parser/HTMLPreloadScanner.cpp:
51         (WebCore::PreloadTask::preload):
52         * loader/ImageLoader.cpp:
53         (WebCore::ImageLoader::updateFromElement):
54         * loader/cache/CachedResourceLoader.cpp:
55         (WebCore::CachedResourceLoader::requestImage):
56         (WebCore::CachedResourceLoader::requestResource):
57         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
58         (WebCore):
59         (WebCore::CachedResourceLoader::preload):
60         * loader/cache/CachedResourceLoader.h:
61         (WebCore):
62         (CachedResourceLoader):
63         * loader/cache/CachedResourceRequest.cpp:
64         (WebCore::CachedResourceRequest::CachedResourceRequest):
65         (WebCore):
66         (WebCore::CachedResourceRequest::~CachedResourceRequest):
67         (WebCore::CachedResourceRequest::setInitiator):
68         (WebCore::CachedResourceRequest::initiatorName):
69         (WebCore::CachedResourceRequest::initiatorDocument):
70         (WebCore::CachedResourceRequest::initiatorElement):
71         * loader/cache/CachedResourceRequest.h:
72         (WebCore):
73         (WebCore::CachedResourceRequest::setOptions):
74         (WebCore::CachedResourceRequest::defer):
75         (WebCore::CachedResourceRequest::setDefer):
76         (CachedResourceRequest):
77         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
78         (WebCore):
79         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
80         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
81         (WebCore):
82         (CachedResourceRequestInitiators):
83         (WebCore::cachedResourceRequestInitiators):
84         * loader/icon/IconLoader.cpp:
85         (WebCore::IconLoader::startLoading):
86         * platform/ThreadGlobalData.cpp:
87         (WebCore::ThreadGlobalData::ThreadGlobalData):
88         * platform/ThreadGlobalData.h:
89         (WebCore):
90         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
91         (ThreadGlobalData):
92         * svg/SVGFEImageElement.cpp:
93         (WebCore::SVGFEImageElement::requestImageResource):
94         * svg/SVGFontFaceUriElement.cpp:
95         (WebCore::SVGFontFaceUriElement::loadFont):
96         * svg/SVGUseElement.cpp:
97         (WebCore::SVGUseElement::svgAttributeChanged):
98
99 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
100
101         Unreviewed, rolling out r134345.
102         http://trac.webkit.org/changeset/134345
103         https://bugs.webkit.org/show_bug.cgi?id=102106
104
105         Incomplete support for NATIVE_TYPE_ERR in objc and other
106         bindings (Requested by jsbell on #webkit).
107
108         * Modules/mediastream/MediaConstraintsImpl.cpp:
109         (WebCore::MediaConstraintsImpl::create):
110         * Modules/mediastream/MediaStreamTrackList.cpp:
111         (WebCore::MediaStreamTrackList::add):
112         (WebCore::MediaStreamTrackList::remove):
113         * Modules/mediastream/RTCDataChannel.cpp:
114         (WebCore::RTCDataChannel::setBinaryType):
115         * Modules/mediastream/RTCIceCandidate.cpp:
116         (WebCore::RTCIceCandidate::create):
117         * Modules/mediastream/RTCPeerConnection.cpp:
118         (WebCore::RTCPeerConnection::parseConfiguration):
119         (WebCore::RTCPeerConnection::createOffer):
120         (WebCore::RTCPeerConnection::createAnswer):
121         (WebCore::RTCPeerConnection::setLocalDescription):
122         (WebCore::RTCPeerConnection::setRemoteDescription):
123         (WebCore::RTCPeerConnection::addIceCandidate):
124         (WebCore::RTCPeerConnection::addStream):
125         (WebCore::RTCPeerConnection::removeStream):
126         * Modules/mediastream/RTCSessionDescription.cpp:
127         (WebCore::RTCSessionDescription::create):
128         (WebCore::RTCSessionDescription::setType):
129         * bindings/js/CallbackFunction.cpp:
130         (WebCore::checkFunctionOnlyCallback):
131         * bindings/js/JSCustomXPathNSResolver.cpp:
132         (WebCore::JSCustomXPathNSResolver::create):
133         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
134         (WebCore::JSHTMLOptionsCollection::add):
135         * bindings/js/JSHTMLSelectElementCustom.cpp:
136         (WebCore::selectIndexSetter):
137         * bindings/js/JSMutationObserverCustom.cpp:
138         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
139         * bindings/js/JSSQLResultSetRowListCustom.cpp:
140         (WebCore::JSSQLResultSetRowList::item):
141         * bindings/js/JSSQLTransactionCustom.cpp:
142         (WebCore::JSSQLTransaction::executeSql):
143         * bindings/js/JSSQLTransactionSyncCustom.cpp:
144         (WebCore::JSSQLTransactionSync::executeSql):
145         * bindings/scripts/CodeGeneratorJS.pm:
146         (GenerateParametersCheck):
147         * bindings/scripts/CodeGeneratorObjC.pm:
148         (GenerateImplementation):
149         * bindings/scripts/CodeGeneratorV8.pm:
150         (GenerateFunctionCallString):
151         * bindings/v8/V8Callback.h:
152         (WebCore::createFunctionOnlyCallback):
153         * bindings/v8/V8Collection.cpp:
154         (WebCore::toOptionsCollectionSetter):
155         * bindings/v8/custom/V8DocumentCustom.cpp:
156         (WebCore::V8Document::evaluateCallback):
157         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
158         (WebCore::V8HTMLOptionsCollection::addCallback):
159         * bindings/v8/custom/V8MutationObserverCustom.cpp:
160         (WebCore::V8MutationObserver::constructorCallback):
161         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
162         (WebCore::V8SQLTransaction::executeSqlCallback):
163         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
164         (WebCore::V8SQLTransactionSync::executeSqlCallback):
165         * dom/DOMCoreException.idl:
166         * html/HTMLElement.cpp:
167         (WebCore::HTMLElement::insertAdjacentElement):
168         * html/HTMLMediaElement.cpp:
169         (WebCore::HTMLMediaElement::webkitAddKey):
170         * html/HTMLOptionsCollection.cpp:
171         (WebCore::HTMLOptionsCollection::add):
172         * html/canvas/CanvasRenderingContext2D.cpp:
173         (WebCore::CanvasRenderingContext2D::drawImage):
174         (WebCore::CanvasRenderingContext2D::createPattern):
175         (WebCore::CanvasRenderingContext2D::putImageData):
176         (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
177         * page/Crypto.cpp:
178         (WebCore::Crypto::getRandomValues):
179         * page/DOMSelection.cpp:
180         (WebCore::DOMSelection::extend):
181         * svg/properties/SVGTransformListPropertyTearOff.h:
182         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
183
184 2012-11-13  Erik Arvidsson  <arv@chromium.org>
185
186         Update DOMException name: HierarchyRequestError
187         https://bugs.webkit.org/show_bug.cgi?id=102092
188
189         Reviewed by Ojan Vafai.
190
191         Patch 3 of 25 to update DOMException name to match the spec and Firefox.
192
193         Updated existing tests.
194
195         * dom/DOMCoreException.cpp:
196
197 2012-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
198
199         Clean up use of adjustWindowRect
200         https://bugs.webkit.org/show_bug.cgi?id=102072
201
202         Reviewed by Alexis Menard.
203
204         Tested by fast/dom/Window/open-window-min-size.html
205
206         * loader/FrameLoader.cpp:
207         (WebCore::createWindow):
208
209             Validate the window size here so that it is not just done for
210             .open, but also for .showModalDialog. This is compatible with
211             other browsers such as IE and Firefox (though IE > 6, enforces
212             a minimum width of 250 instead of 100 as Firefox and us.)
213
214         * page/DOMWindow.cpp:
215         (WebCore):
216         (WebCore::DOMWindow::adjustWindowRect):
217
218             Make it a static method which only takes page. It was never
219             called from anywhere without a valid page, so the page check
220             has been turned into an assert, and two of the arguments have
221             been removed as they can be accessed via the page.
222
223         (WebCore::DOMWindow::moveBy):
224         (WebCore::DOMWindow::moveTo):
225         (WebCore::DOMWindow::resizeBy):
226         (WebCore::DOMWindow::resizeTo):
227
228             Update use of adjustWindowRect.
229
230         (WebCore::DOMWindow::open):
231
232             Avoid modifying the WindowFeatures as the WebCore::createWindow
233             validates and adjusts the arguments.
234
235         * page/DOMWindow.h:
236         (DOMWindow):
237
238 2012-11-13  Bem Jones-Bey  <bjonesbe@adobe.com>
239
240         [CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
241         https://bugs.webkit.org/show_bug.cgi?id=97736
242
243         Reviewed by Andreas Kling.
244
245         Rename properties to match updated spec.
246
247         Tests: fast/exclusions/shape-margin-parsing.html
248                fast/exclusions/shape-padding-parsing.html
249
250         * css/CSSComputedStyleDeclaration.cpp:
251         (WebCore):
252         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
253         * css/CSSParser.cpp:
254         (WebCore::isSimpleLengthPropertyID):
255         (WebCore::CSSParser::parseValue):
256         * css/CSSProperty.cpp:
257         (WebCore::CSSProperty::isInheritedProperty):
258         * css/CSSPropertyNames.in:
259         * css/StyleBuilder.cpp:
260         (WebCore::StyleBuilder::StyleBuilder):
261         * css/StylePropertySet.cpp:
262         (WebCore::StylePropertySet::asText):
263         * css/StylePropertyShorthand.cpp:
264         (WebCore::webkitWrapShorthand):
265         * css/StyleResolver.cpp:
266         (WebCore::StyleResolver::applyProperty):
267         * rendering/style/RenderStyle.cpp:
268         (WebCore::RenderStyle::diff):
269         * rendering/style/RenderStyle.h:
270         * rendering/style/StyleRareNonInheritedData.cpp:
271         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
272         (WebCore::StyleRareNonInheritedData::operator==):
273         * rendering/style/StyleRareNonInheritedData.h:
274         (StyleRareNonInheritedData):
275
276 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
277
278         Unreviewed, rolling out r134418.
279         http://trac.webkit.org/changeset/134418
280         https://bugs.webkit.org/show_bug.cgi?id=101903
281
282         The newly added test is crashing on cr-win.
283
284         * dom/ElementShadow.cpp:
285         * dom/ElementShadow.h:
286         * html/HTMLInputElement.cpp:
287         (WebCore::HTMLInputElement::updateType):
288         (WebCore::HTMLInputElement::setIndeterminate):
289         * html/HTMLProgressElement.cpp:
290         (WebCore::HTMLProgressElement::didElementStateChange):
291         * html/shadow/SelectRuleFeatureSet.cpp:
292         (WebCore::SelectRuleFeatureSet::add):
293         (WebCore::SelectRuleFeatureSet::clear):
294         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
295         * html/shadow/SelectRuleFeatureSet.h:
296         (SelectRuleFeatureSet):
297
298 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
299
300         Unreviewed, rolling out r134391.
301         http://trac.webkit.org/changeset/134391
302         https://bugs.webkit.org/show_bug.cgi?id=99660
303
304         Speculative rollout, trying to fix browser_tests failure.
305
306         * English.lproj/localizedStrings.js:
307         * inspector/Inspector.json:
308         * inspector/InspectorClient.h:
309         * inspector/InspectorPageAgent.cpp:
310         (PageAgentState):
311         (WebCore::InspectorPageAgent::enable):
312         (WebCore::InspectorPageAgent::disable):
313         * inspector/InspectorPageAgent.h:
314         * inspector/front-end/Settings.js:
315         * inspector/front-end/SettingsScreen.js:
316         (WebInspector.GenericSettingsTab):
317         * inspector/front-end/inspector.js:
318         (WebInspector.doLoadedDone):
319
320 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
321
322         Unreviewed, rolling out r134205.
323         http://trac.webkit.org/changeset/134205
324         https://bugs.webkit.org/show_bug.cgi?id=102093
325
326         Broke webkit-flow-inlines-dynamic.html on several ports
327         (Requested by mihnea on #webkit).
328
329         * css/StyleResolver.cpp:
330         (WebCore::StyleResolver::isValidRegionStyleProperty):
331         * rendering/InlineBox.cpp:
332         * rendering/InlineBox.h:
333         (WebCore):
334         (InlineBox):
335         * rendering/InlineFlowBox.cpp:
336         (WebCore::InlineFlowBox::addToLine):
337         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
338         * rendering/RenderRegion.cpp:
339         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
340         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
341         (WebCore::RenderRegion::computeStyleInRegion):
342         (WebCore::RenderRegion::computeChildrenStyleInRegion):
343         (WebCore::RenderRegion::setObjectStyleInRegion):
344         (WebCore::RenderRegion::clearObjectStyleInRegion):
345         * rendering/RenderRegion.h:
346         (RenderRegion):
347         (ObjectRegionStyleInfo):
348
349 2012-11-13  Andreas Kling  <kling@webkit.org>
350
351         Remove the non-const overload of ElementAttributeData::inlineStyle().
352
353         Rubber-stamped by Anders Koivisto.
354
355         No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.
356
357         * dom/ElementAttributeData.h:
358
359 2012-11-13  Keishi Hattori  <keishi@webkit.org>
360
361         [Chromium] Enable input type month/week
362         https://bugs.webkit.org/show_bug.cgi?id=102042
363
364         Reviewed by Kent Tamura.
365
366         Enable input type month/week for Chromium.
367
368         No new tests. Tests will be added later in Bug 102045 and Bug 102046.
369
370         * bindings/generic/RuntimeEnabledFeatures.cpp:
371         (WebCore):
372
373 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
374
375         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
376         https://bugs.webkit.org/show_bug.cgi?id=101906
377
378         Reviewed by Dimitri Glazkov.
379
380         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
381         setPseudo()/pseudo() instead.
382
383         No new tests, covered by existing tests.
384
385         * html/HTMLMeterElement.cpp:
386         (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
387         it anywhere, we have to set it into pseudo attribute here.
388         (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
389         * html/shadow/MeterShadowElement.cpp:
390         (WebCore::MeterInnerElement::MeterInnerElement):
391         (WebCore::MeterValueElement::valuePseudoId):
392         * html/shadow/MeterShadowElement.h:
393         (MeterInnerElement):
394         (WebCore::MeterBarElement::MeterBarElement):
395         (MeterBarElement):
396         (WebCore::MeterValueElement::MeterValueElement):
397         (WebCore::MeterValueElement::updatePseudo):
398         (MeterValueElement):
399
400 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
401
402         Changing pseudoClass (:indeterminate) should cause distribution
403         https://bugs.webkit.org/show_bug.cgi?id=101903
404
405         Reviewed by Dimitri Glazkov.
406
407         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
408         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
409
410         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
411         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
412
413         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
414                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
415
416         * dom/ElementShadow.cpp:
417         (WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
418         have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
419         here.
420         (WebCore):
421         * dom/ElementShadow.h:
422         (WebCore):
423         * html/HTMLInputElement.cpp:
424         (WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
425         (WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
426         * html/HTMLProgressElement.cpp:
427         (WebCore::HTMLProgressElement::didElementStateChange):
428         * html/shadow/SelectRuleFeatureSet.cpp:
429         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
430         (WebCore::SelectRuleFeatureSet::add):
431         (WebCore::SelectRuleFeatureSet::clear):
432         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
433         * html/shadow/SelectRuleFeatureSet.h:
434         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
435         (SelectRuleFeatureSet):
436
437 2012-11-13  Andreas Kling  <kling@webkit.org>
438
439         Exploit ElementAttributeData sharing in Node.cloneNode.
440         <http://webkit.org/b/101374>
441
442         Reviewed by Anders Carlsson.
443
444         Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
445         If the source data is immutable, simply ref it from the new node at virtually no cost.
446
447         If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
448         Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
449         and memory in the long run.
450
451         ~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.
452
453         * dom/Element.cpp:
454         (WebCore::Element::cloneAttributesFromElement):
455
456             Move attribute data cloning logic from ElementAttributeData to Element.
457
458         * dom/ElementAttributeData.cpp:
459         (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
460         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
461         (WebCore::ElementAttributeData::ElementAttributeData):
462         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
463         (WebCore::ElementAttributeData::makeMutableCopy):
464         (WebCore::ElementAttributeData::makeImmutableCopy):
465         * dom/ElementAttributeData.h:
466         (ElementAttributeData):
467         (ImmutableElementAttributeData):
468         (MutableElementAttributeData):
469
470             Add facilities for converting a mutable ElementAttributeData to an immutable one.
471             Share some code in the common base class constructor.
472
473 2012-11-13  Kentaro Hara  <haraken@chromium.org>
474
475         Unreviewed. Build fix of V8 bindings.
476
477         * bindings/v8/V8DOMWrapper.cpp:
478         (WebCore::V8DOMWrapper::maybeDOMWrapper):
479
480 2012-11-13  Andrey Adaikin  <aandrey@chromium.org>
481
482         Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
483         https://bugs.webkit.org/show_bug.cgi?id=102071
484
485         Reviewed by Pavel Feldman.
486
487         * inspector/front-end/CanvasProfileView.js:
488         (WebInspector.CanvasProfileView):
489         (WebInspector.CanvasProfileView.prototype.dispose):
490         (WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
491         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
492         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
493         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
494         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
495         (WebInspector.CanvasProfileView.prototype._createCallNode):
496         * inspector/front-end/canvasProfiler.css:
497         (#canvas-replay-image.wait):
498
499 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
500
501         Web Inspector: Settings screen: some panel shortcuts are missing
502         https://bugs.webkit.org/show_bug.cgi?id=101026
503
504         Reviewed by Pavel Feldman.
505
506         Panels, that have not been loaded by the time shortcuts view was
507         initialized, had no chance to register shortcuts.
508
509         Solution: move shortcut registration (for shortcuts screen) to panel
510         descriptors.
511
512         More changes: add JsDoc annotations to ShortcutScreen and change "key"
513         parameter type for raw string to key descriptor object.
514
515         * WebCore.gypi: Added TimelinePanelDescriptor.js file.
516         * WebCore.vcproj/WebCore.vcproj: Ditto.
517         * inspector/compile-front-end.py: Ditto.
518         * inspector/front-end/WebKit.qrc: Ditto.
519         * inspector/front-end/inspector.html: Ditto.
520         * inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
521         * inspector/front-end/GoToLineDialog.js: Ditto.
522         * inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
523         shortcuts registration.
524         * inspector/front-end/ElementsPanel.js: Ditto.
525         * inspector/front-end/ScriptsPanel.js: Ditto.
526         * inspector/front-end/StylesSidebarPane.js: Ditto.
527         * inspector/front-end/TimelinePanel.js: Ditto.
528         * inspector/front-end/ConsoleView.js: Changes order of lines to increase
529         readability.
530         * inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
531         shortcuts registration and key descriptor constants.
532         * inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
533         * inspector/front-end/TimelinePanelDescriptor.js: Ditto.
534         * inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
535         "registerShortcuts" method accept array of key descriptors.
536         (WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
537         * inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
538         type from string to key descriptor.
539         * inspector/front-end/inspector.js: Register shortcuts using
540         panel descriptors.
541         (WebInspector._panelDescriptors): Removed duplicate line.
542
543 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
544
545         Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
546         https://bugs.webkit.org/show_bug.cgi?id=102060
547
548         Reviewed by Zoltan Herczeg.
549
550         Adding more NEONized packing functions to GraphicsContext3DNEON.h.
551         These functions are three times faster with this intrinsics optimizations.
552
553         * platform/graphics/GraphicsContext3D.cpp:
554         (WebCore):
555         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
556         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
557         (ARM):
558         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
559         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
560         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):
561
562 2012-11-13  Csaba Osztrogonác  <ossy@webkit.org>
563
564         [Qt] Enable Mutation observer
565         https://bugs.webkit.org/show_bug.cgi?id=102066
566
567         Reviewed by Pavel Feldman.
568
569         * DerivedSources.pri: Add missing IDL files.
570
571 2012-11-13  Kentaro Hara  <haraken@chromium.org>
572
573         [V8] Make isValidDOMObject() static
574         https://bugs.webkit.org/show_bug.cgi?id=101914
575
576         Reviewed by Adam Barth.
577
578         isValidDOMObject() is used by DOMWrapper.cpp only.
579
580         No tests. No change in behavior.
581
582         * bindings/v8/V8DOMWrapper.cpp:
583         (WebCore::isValidDOMObject):
584         (WebCore):
585         (WebCore::V8DOMWrapper::maybeDOMWrapper):
586         * bindings/v8/V8DOMWrapper.h:
587         (V8DOMWrapper):
588
589 2012-11-13  Mihnea Ovidenie  <mihnea@adobe.com>
590
591         [CSSRegions] Incorrect computed height for content with region-break-before
592         https://bugs.webkit.org/show_bug.cgi?id=101862
593
594         Reviewed by Julien Chaffraix.
595
596         When processing the region breaks for auto-height regions, we skipped the case
597         when the region-break-before occurred in the first region in the chain which was
598         an auto-height region. Because of that, the region computed height was not 0
599         as it was supposed to be, but rather LayoutUnit::max() / 2.
600
601         Test: fast/regions/autoheight-breakbefore-wrongheight.html
602
603         * rendering/RenderFlowThread.cpp:
604         (WebCore::RenderFlowThread::addForcedRegionBreak):
605         Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
606         and the first region in chain is an auto-height region.
607         * rendering/RenderRegion.cpp:
608         (WebCore::RenderRegion::updateLogicalHeight):
609         Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.
610
611 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
612
613         Memory instrumentation: remove reportMemoryUsage method from ImageObserver
614         https://bugs.webkit.org/show_bug.cgi?id=102058
615
616         Reviewed by Pavel Feldman.
617
618         * bindings/v8/V8PerIsolateData.cpp:
619         (WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
620         each element of the vector as generic vector instrumentation will take care of it.
621         * platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
622         we don't count its by the pointer to the base class which may differ from the actual
623         object address.
624         (WebCore::Image::reportMemoryUsage):
625         * platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
626         (ImageObserver):
627
628 2012-11-13  Eberhard Graether  <egraether@google.com>
629
630         checkbox to toggle FPS counter in the inspector's settings
631         https://bugs.webkit.org/show_bug.cgi?id=99660
632
633         Reviewed by Pavel Feldman.
634
635         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
636
637         No new tests.
638
639         * English.lproj/localizedStrings.js:
640         * inspector/Inspector.json:
641         * inspector/InspectorClient.h:
642         (WebCore::InspectorClient::canShowFPSCounter):
643         (WebCore::InspectorClient::setShowFPSCounter):
644         (InspectorClient):
645         * inspector/InspectorPageAgent.cpp:
646         (PageAgentState):
647         (WebCore::InspectorPageAgent::enable):
648         (WebCore::InspectorPageAgent::disable):
649         (WebCore::InspectorPageAgent::canShowFPSCounter):
650         (WebCore):
651         (WebCore::InspectorPageAgent::setShowFPSCounter):
652         * inspector/InspectorPageAgent.h:
653         * inspector/front-end/Settings.js:
654         * inspector/front-end/SettingsScreen.js:
655         (WebInspector.GenericSettingsTab):
656         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
657         * inspector/front-end/inspector.js:
658         (WebInspector.doLoadedDone):
659
660 2012-11-12  Kent Tamura  <tkent@chromium.org>
661
662         Unable to set valid time value to input[type=time] with user interaction in some cases
663         https://bugs.webkit.org/show_bug.cgi?id=102048
664
665         Reviewed by Kentaro Hara.
666
667         The implementations of shouldMillisecondFieldReadOnly,
668         shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
669         incorrect. We need to check if a part of the minimum value matches to
670         the corresponding part of the current value.
671
672         Also, we had better check hour field editability.
673
674         Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
675
676         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
677         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
678         Fix a problem that hh:mm:00.sss didn't create a seconds field.
679         * html/shadow/DateTimeEditElement.cpp:
680         (DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
681         (WebCore::DateTimeEditBuilder::visitField):
682         Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
683         (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
684         Added. An hour field should be read-only if the step value is a multiple
685         of a day and the hour part of the minimum value matches to the hour part
686         of the value.
687         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
688         A millisecond field should be read-only if the step value is a multiple
689         of one second and the millisecond part of the minimum value matches to
690         the millisecond part of the value.
691         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
692         A minute field should be read-only if the step value is a multiple of
693         one hour and the minute part of the minimum value matches to the minute
694         part of the value.
695         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
696         A second field should be read-only if the step value is a multiple of
697         one minute and the second part of the minimum value matches to the second
698         part of the value.
699         * platform/Decimal.cpp:
700         (WebCore::Decimal::remainder):
701         Fix a bug in case that the fractional part of quotient is >= 0.5. Also
702         make this matches to C99, C++11, ECMAScript behavior.
703
704 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
705
706         Memory instrumentation: MemoryBlock name should not include full path to the block
707         https://bugs.webkit.org/show_bug.cgi?id=102055
708
709         Reviewed by Pavel Feldman.
710
711         * inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
712         intead of fully qualified name.
713
714 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
715
716         Web Inspector: get rid of enter/exitTextChangeMode in the editor
717         https://bugs.webkit.org/show_bug.cgi?id=101845
718
719         Reviewed by Vsevolod Vlasov.
720
721         They seem to do nothing.
722
723         * inspector/front-end/DefaultTextEditor.js:
724         (WebInspector.DefaultTextEditor.prototype._textChanged):
725         (WebInspector.DefaultTextEditor.prototype.editRange):
726         (WebInspector.TextEditorMainPanel):
727         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
728         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
729         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
730         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
731         * inspector/front-end/TextEditorModel.js:
732         (WebInspector.TextEditorModel.endsWithBracketRegex.):
733
734 2012-11-13  Tommy Widenflycht  <tommyw@google.com>
735
736         Remove the custom WebSocket::send for both V8 and JSC
737         https://bugs.webkit.org/show_bug.cgi?id=101936
738
739         Reviewed by Kentaro Hara.
740
741         This patch removes the custom WebSocket::send since it isn't needed anymore.
742
743         Patch covered by existing tests.
744
745         * Modules/websockets/WebSocket.idl:
746         * UseV8.cmake:
747         * WebCore.gypi:
748         * bindings/js/JSWebSocketCustom.cpp:
749         * bindings/v8/custom/V8WebSocketCustom.cpp: Removed.
750
751 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
752
753         Web Inspector: move indentation logic into TextEditorModel
754         https://bugs.webkit.org/show_bug.cgi?id=101842
755
756         Reviewed by Vsevolod Vlasov.
757
758         I'd like to move as much headless logic into the TextEditorModel as possible.
759         Drive by: removed some dead code, converted getter into function and moved undo
760         mark state into the model as well.
761
762         * inspector/front-end/DefaultTextEditor.js:
763         (WebInspector.DefaultTextEditor.prototype.editRange):
764         (WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
765         (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
766         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
767         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
768         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
769         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
770         (WebInspector.TextEditorMainChunk):
771         (WebInspector.TextEditorMainChunk.prototype.isDecorated):
772         (WebInspector.TextEditorMainChunk.prototype.set expanded):
773         * inspector/front-end/TextEditorModel.js:
774         (WebInspector.TextEditorModel.endsWithBracketRegex.):
775
776 2012-11-13  Hayato Ito  <hayato@chromium.org>
777
778         Unreviewed attempt to fix the chromium mac-build after r134348.
779
780         * platform/graphics/mac/FontMac.mm:
781         (WebCore::Font::drawGlyphs):
782         * platform/mac/WebCoreSystemInterface.h:
783         * platform/mac/WebCoreSystemInterface.mm:
784
785 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
786
787         Web Inspector: migrate text editor to mutation observers
788         https://bugs.webkit.org/show_bug.cgi?id=101841
789
790         Reviewed by Vsevolod Vlasov.
791
792         Otherwise, we miss notifications on the removed lines.
793
794         * inspector/front-end/DefaultTextEditor.js:
795         (WebInspector.DefaultTextEditor.prototype.wasShown):
796         (WebInspector.DefaultTextEditor.prototype.willHide):
797         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
798         (WebInspector.TextEditorMainPanel):
799         (WebInspector.TextEditorMainPanel.prototype._wasShown):
800         (WebInspector.TextEditorMainPanel.prototype._willHide):
801         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
802         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
803         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
804         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
805         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
806         (WebInspector.TextEditorMainPanel.prototype._paintLine):
807         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
808         (WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
809         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
810         (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
811         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
812         * inspector/front-end/externs.js:
813         (WebKitMutation):
814         (WebKitMutationObserver.prototype.observe):
815         (WebKitMutationObserver.prototype.disconnect):
816         * inspector/front-end/textEditor.css:
817         (.debug-fadeout):
818         (@-webkit-keyframes debug-fadeout):
819         (to):
820
821 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
822
823         Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
824         https://bugs.webkit.org/show_bug.cgi?id=101473
825
826         Reviewed by Zoltan Herczeg.
827
828         With NEON intrinsics the packing/unpacking functions can be optimized well.
829         This particular function is about 3 times faster with ARM NEON. On top level tests
830         the speed up was 1.18x.
831
832         * CMakeLists.txt:
833         * GNUmakefile.am:
834         * GNUmakefile.list.am:
835         * Target.pri:
836         * WebCore.gyp/WebCore.gyp:
837         * WebCore.gypi:
838         * WebCore.pri:
839         * WebCore.xcodeproj/project.pbxproj:
840         * platform/graphics/GraphicsContext3D.cpp:
841         (WebCore):
842         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
843         (WebCore):
844         (ARM):
845         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
846         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):
847
848 2012-11-13  Takashi Sakamoto  <tasak@google.com>
849
850         Crash when replacing parts of text inputs with content: url(...)
851         https://bugs.webkit.org/show_bug.cgi?id=101133
852
853         Reviewed by Kent Tamura.
854
855         Disable directly setting content of elements in an input element's
856         shadow dom tree, because the setting breaks input element's behavior.
857
858         Tests: fast/forms/number/number-content-url-crash.html
859                fast/forms/search/search-content-url-crash.html
860
861         * css/html.css:
862         (input::-webkit-textfield-decoration-container):
863         Use important to disable overriding an input element's content
864         property.
865         * html/TextFieldInputType.cpp:
866         (WebCore::TextFieldInputType::attach):
867         Added ASSERTION. No content should be applied to
868         input::-webkit-textfield-decoration-container.
869
870 2012-11-12  Huang Dongsung  <luxtella@company100.net>
871
872         [Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
873         https://bugs.webkit.org/show_bug.cgi?id=101918
874
875         Reviewed by Noam Rosenthal.
876
877         Remove TiledBackingStore::rect(), because it is not used anymore.
878
879         * platform/graphics/TiledBackingStore.h:
880         (TiledBackingStore):
881
882 2012-11-12  Adam Barth  <abarth@webkit.org>
883
884         [V8] We should be able to recover the V8DOMWindowShell more quickly
885         https://bugs.webkit.org/show_bug.cgi?id=102020
886
887         Reviewed by Kentaro Hara.
888
889         For isolated worlds, we used to store the V8DOMWindowShell as an
890         internal field of the inner DOM window. This patch moves the pointer to
891         an internal field of the v8::Context, which saves us the work of
892         looking up the inner DOM window.
893
894         Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
895         because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
896         the V8PerContextData when we detach the V8DOMWindowShell from the
897         frame.)
898
899         * bindings/scripts/CodeGeneratorV8.pm:
900         (GetInternalFields):
901         * bindings/v8/V8DOMWindowShell.cpp:
902         (WebCore::V8DOMWindowShell::initializeIfNeeded):
903         * bindings/v8/V8DOMWindowShell.h:
904         (WebCore::V8DOMWindowShell::getEntered):
905         * bindings/v8/V8PerContextData.h:
906
907 2012-11-12  Kentaro Hara  <haraken@chromium.org>
908
909         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
910         https://bugs.webkit.org/show_bug.cgi?id=101054
911
912         Reviewed by Adam Barth.
913
914         I'm investigating a Chromium crash bug:
915         http://code.google.com/p/chromium/issues/detail?id=155942
916
917         I've not yet identified the root cause (because I can't reproduce
918         the crash), but it looks like we are storing NULL pointers to
919         V8 internal fields. Just in case, we can add an ASSERT() to
920         guarantee that NULL pointers are never stored. (Also I'm hoping
921         that this ASSERT() will give me more debug information.)
922
923         No tests. No change in behavior.
924
925         * bindings/v8/V8DOMWrapper.h:
926         (WebCore::V8DOMWrapper::setDOMWrapper):
927
928 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
929
930         Changing id, className, or attribute should invalidate distribution
931         https://bugs.webkit.org/show_bug.cgi?id=100738
932
933         Reviewed by Dimitri Glazkov.
934
935         When id, className, or attribute is changed, we might have to invalidate distribution.
936         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
937         and invalidate distribution only if necessary.
938
939         When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
940         So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
941
942         Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
943         to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.
944
945         DOM/ModifyAttribute.html
946         Before this patch:
947                 median  stdev  min      max    [ms]
948           1st   115.62   0.67  114.75   117.00
949           2nd   115.08   1.13  113.25   117.58
950           3rd   114.75   1.16  113.42   117.83
951
952         After this patch:
953                 median  stdev  min      max    [ms]
954           1st   102.55   0.95  101.25   104.50
955           2nd   103.10   0.86  102.20   100.95
956           3rd   103.30   1.05  102.10   106.65
957
958         Tests: fast/dom/shadow/distribution-attribute-modified.html
959                fast/dom/shadow/distribution-className-modified.html
960                fast/dom/shadow/distribution-id-modified.html
961                fast/dom/shadow/reprojection-attribute-modified.html
962                fast/dom/shadow/reprojection-className-modified.html
963                fast/dom/shadow/reprojection-id-modified.html
964
965         * dom/Element.cpp:
966         (WebCore::Element::attributeChanged):
967         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
968         (HasSelectorForClassStyleFunctor):
969         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
970         (WebCore):
971         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
972         (HasSelectorForClassDistributionFunctor):
973         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
974         (WebCore::checkFunctorForClassChange):
975         (WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
976         (WebCore::checkNeedsDistributionInvalidationForClassChange):
977         (WebCore::Element::classAttributeChanged):
978
979 2012-11-12  Joe Mason  <jmason@rim.com>
980
981         [BlackBerry] NetworkJob should not check if data is received with HEAD
982         https://bugs.webkit.org/show_bug.cgi?id=102034
983
984         Reviewed by George Staikos.
985
986         Internal PR: 241391
987
988         Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
989         have no data.
990
991         Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html
992
993         * platform/network/blackberry/NetworkJob.cpp:
994         (WebCore::NetworkJob::NetworkJob):
995         (WebCore::NetworkJob::initialize):
996         (WebCore::NetworkJob::shouldNotifyClientFailed):
997         * platform/network/blackberry/NetworkJob.h:
998         (NetworkJob):
999
1000 2012-11-12  Adam Barth  <abarth@webkit.org>
1001
1002         [V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
1003         https://bugs.webkit.org/show_bug.cgi?id=102015
1004
1005         Reviewed by Kentaro Hara.
1006
1007         Previously, Nodes had a special path through
1008         V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
1009         could find the V8PerContextData quickly. Now that we can get the
1010         V8PerContextData from the v8::Context quickly, we can move Nodes to the
1011         general case. The net consequence is that creation of all DOM objects
1012         should be as fast as Nodes are.
1013
1014         * bindings/scripts/CodeGeneratorV8.pm:
1015         (GenerateToV8Converters):
1016         * bindings/scripts/test/V8/V8Float64Array.cpp:
1017         (WebCore::V8Float64Array::wrapSlow):
1018         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1019         (WebCore::V8TestActiveDOMObject::wrapSlow):
1020         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1021         (WebCore::V8TestCustomNamedGetter::wrapSlow):
1022         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1023         (WebCore::V8TestEventConstructor::wrapSlow):
1024         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1025         (WebCore::V8TestEventTarget::wrapSlow):
1026         * bindings/scripts/test/V8/V8TestException.cpp:
1027         (WebCore::V8TestException::wrapSlow):
1028         * bindings/scripts/test/V8/V8TestInterface.cpp:
1029         (WebCore::V8TestInterface::wrapSlow):
1030         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1031         (WebCore::V8TestMediaQueryListListener::wrapSlow):
1032         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1033         (WebCore::V8TestNamedConstructor::wrapSlow):
1034         * bindings/scripts/test/V8/V8TestNode.cpp:
1035         (WebCore::V8TestNode::wrapSlow):
1036         * bindings/scripts/test/V8/V8TestObj.cpp:
1037         (WebCore::V8TestObj::wrapSlow):
1038         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
1039         (WebCore::V8TestOverloadedConstructors::wrapSlow):
1040         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1041         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
1042         * bindings/v8/V8Binding.cpp:
1043         * bindings/v8/V8Binding.h:
1044         (WebCore):
1045         * bindings/v8/V8DOMWrapper.cpp:
1046         (WebCore::V8DOMWrapper::instantiateV8Object):
1047         * bindings/v8/V8DOMWrapper.h:
1048         (V8DOMWrapper):
1049
1050 2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
1051
1052         Some CSS properties are not handled on StyleResolver::applyProperty
1053         https://bugs.webkit.org/show_bug.cgi?id=102027
1054
1055         Reviewed by Gyuyoung Kim.
1056
1057         The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
1058         need to be handled on StyleResolver::applyProperty.
1059
1060         * css/StyleResolver.cpp:
1061         (WebCore::StyleResolver::applyProperty):
1062
1063 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
1064
1065         Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
1066         https://bugs.webkit.org/show_bug.cgi?id=102031
1067
1068         Reviewed by Beth Dakin.
1069
1070         RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
1071         and calculateLayerBounds() multiple times for painting a single layer.
1072         
1073         Keep track of whether we've computed the root-relative bounds and do it on demand.
1074         Compute the offset relative to rootLayer once, and pass it around as an optional parameter
1075         to functions that need it.
1076
1077         * rendering/RenderLayer.cpp:
1078         (WebCore::RenderLayer::paintLayerContents):
1079         (WebCore::RenderLayer::hitTestLayer):
1080         (WebCore::RenderLayer::calculateRects):
1081         (WebCore::RenderLayer::intersectsDamageRect):
1082         (WebCore::RenderLayer::boundingBox):
1083         (WebCore::RenderLayer::calculateLayerBounds):
1084         * rendering/RenderLayer.h:
1085         * rendering/RenderLayerCompositor.cpp:
1086         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
1087
1088 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
1089
1090         Change calculateLayerBounds() from a static function to a member function
1091         https://bugs.webkit.org/show_bug.cgi?id=102022
1092
1093         Reviewed by Beth Dakin.
1094
1095         calculateLayerBounds() has grown into a substantial function after
1096         starting live as a little utility function, so make it a member function
1097         of RenderLayer, and adjust callers accordingly.
1098
1099         * rendering/RenderLayer.cpp:
1100         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
1101         (WebCore::RenderLayer::paintLayerContents):
1102         (WebCore::RenderLayer::calculateLayerBounds):
1103         * rendering/RenderLayer.h:
1104         * rendering/RenderLayerCompositor.cpp:
1105         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
1106
1107 2012-11-12  Alexei Filippov  <alph@chromium.org>
1108
1109         Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
1110         https://bugs.webkit.org/show_bug.cgi?id=101601
1111
1112         Reviewed by Yury Semikhatsky.
1113
1114         * English.lproj/localizedStrings.js:
1115         * inspector/front-end/NativeMemorySnapshotView.js:
1116         * inspector/front-end/Settings.js:
1117         * inspector/front-end/SettingsScreen.js:
1118         (WebInspector.GenericSettingsTab):
1119
1120 2012-11-10  Dirk Schulze  <krit@webkit.org>
1121
1122         BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
1123         https://bugs.webkit.org/show_bug.cgi?id=101854
1124
1125         Reviewed by Andreas Kling.
1126
1127         The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
1128         blend with themselves. This patch introduces simple interpolation of BasicShapes for
1129         the -webkit-clip-path property.
1130
1131         Test: css3/masking/clip-path-animation.html
1132
1133         * page/animation/CSSPropertyAnimation.cpp:
1134         (WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
1135             It skips blending on <clipPath> references, polygons and if the shapes are not of
1136             the same type.
1137         (WebCore):
1138         (PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
1139         (WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
1140         (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
1141             properties.
1142         * rendering/style/BasicShapes.cpp:
1143             The blending is done by each shape itself. This is similar to FilterOperations or
1144             TransformOperations.
1145         (WebCore::BasicShapeRectangle::blend):
1146         (WebCore):
1147         (WebCore::BasicShapeCircle::blend):
1148         (WebCore::BasicShapeEllipse::blend):
1149         (WebCore::BasicShapePolygon::blend):
1150         * rendering/style/BasicShapes.h:
1151             Added new blending functions to header.
1152         (BasicShape):
1153         (BasicShapeRectangle):
1154         (BasicShapeCircle):
1155         (BasicShapeEllipse):
1156         (BasicShapePolygon):
1157
1158 2012-11-12  Adam Barth  <abarth@webkit.org>
1159
1160         [V8] We should be able to get V8PerContextData from a v8::Context more quickly
1161         https://bugs.webkit.org/show_bug.cgi?id=102008
1162
1163         Reviewed by Ojan Vafai.
1164
1165         This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
1166         API to get the V8PerContextData associated with a v8::Context much more
1167         quickly. We no longer need to use a hidden property on the inner global
1168         object. This patch will enable future optimizations.
1169
1170         * bindings/v8/V8HiddenPropertyName.h:
1171         (WebCore):
1172         * bindings/v8/V8PerContextData.cpp:
1173         (WebCore::V8PerContextData::dispose):
1174         (WebCore::V8PerContextData::init):
1175         * bindings/v8/V8PerContextData.h:
1176         (WebCore::V8PerContextData::from):
1177
1178 2012-11-12  Elliott Sprehn  <esprehn@chromium.org>
1179
1180         Make Frames and HTMLFrameOwnerElement less friendly
1181         https://bugs.webkit.org/show_bug.cgi?id=102003
1182
1183         Reviewed by Ojan Vafai.
1184
1185         Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
1186         this patch makes it go through a method to allow future hooks when frames
1187         are associated with owners.
1188
1189         No new tests, this is just a refactor.
1190
1191         * html/HTMLFrameOwnerElement.cpp:
1192         (WebCore::HTMLFrameOwnerElement::setContentFrame):
1193         * html/HTMLFrameOwnerElement.h:
1194         (HTMLFrameOwnerElement):
1195         (WebCore::HTMLFrameOwnerElement::clearContentFrame):
1196         * page/Frame.cpp:
1197         (WebCore::Frame::Frame): Use new methods.
1198
1199 2012-11-12  Beth Dakin  <bdakin@apple.com>
1200
1201         Zoomed-in scrolling is very slow when deviceScaleFactor > 1
1202         https://bugs.webkit.org/show_bug.cgi?id=101787
1203
1204         Reviewed by Simon Fraser.
1205
1206         This patch adds a new member to the GraphicsContextState that tracks 
1207         whether or not fonts should be subpixel-quantized. We want to default 
1208         to sibpixel-quantizing, but we'll turn it off if we're scrolling 
1209         content that cannot be scrolled on the scrolling thread.
1210
1211         State has a new bool shouldSubpixelQuantizeFonts. It defaults to true 
1212         since normally we do want to quantize.
1213         * platform/graphics/GraphicsContext.cpp:
1214         (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
1215         (WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
1216         * platform/graphics/GraphicsContext.h:
1217         (WebCore::GraphicsContextState::GraphicsContextState):
1218         (GraphicsContextState):
1219         (GraphicsContext):
1220
1221         wkSetCGFontRenderingMode now takes a BOOL parameter which indicates 
1222         whether or not it should try to subpixel-quantize the fonts.
1223         * platform/graphics/mac/FontMac.mm:
1224         (WebCore::Font::drawGlyphs):
1225         * platform/mac/WebCoreSystemInterface.h:
1226         * platform/mac/WebCoreSystemInterface.mm:
1227
1228         Disable subpixel-quantization for overflow areas, subframes, and 
1229         content that is scrolling on the main thread.
1230         * rendering/RenderLayer.cpp:
1231         (WebCore::RenderLayer::paintLayerContents):
1232
1233 2012-11-12  Timothy Hatcher  <timothy@apple.com>
1234
1235         Expose InspectorFrontendClientLocal::setAttachedWindow as public.
1236
1237         This allows external actions to update the docked state in the frontend.
1238
1239         https://bugs.webkit.org/show_bug.cgi?id=102023
1240
1241         Reviewed by Anders Carlsson.
1242
1243         * inspector/InspectorFrontendClientLocal.h:
1244         Moved InspectorFrontendClientLocal::setAttachedWindow to public section.
1245
1246 2012-11-12  Erik Arvidsson  <arv@chromium.org>
1247
1248         Replace DOMException TYPE_MISMATCH_ERR with TypeError
1249         https://bugs.webkit.org/show_bug.cgi?id=101604
1250
1251         Reviewed by Adam Barth.
1252
1253         DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.
1254
1255         We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
1256         the spec mandates TypeError being thrown.
1257
1258         Updated existing tests.
1259
1260         * Modules/mediastream/MediaConstraintsImpl.cpp:
1261         * Modules/mediastream/MediaStreamTrackList.cpp:
1262         * Modules/mediastream/PeerConnection00.cpp:
1263         * Modules/mediastream/RTCDataChannel.cpp:
1264         * Modules/mediastream/RTCIceCandidate.cpp:
1265         * Modules/mediastream/RTCPeerConnection.cpp:
1266         * Modules/mediastream/RTCSessionDescription.cpp:
1267         * Modules/mediastream/SessionDescription.cpp:
1268         * bindings/js/CallbackFunction.cpp:
1269         * bindings/js/JSCustomXPathNSResolver.cpp:
1270         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
1271         * bindings/js/JSHTMLSelectElementCustom.cpp:
1272         * bindings/js/JSMutationObserverCustom.cpp:
1273         * bindings/js/JSSQLResultSetRowListCustom.cpp:
1274         * bindings/js/JSSQLTransactionCustom.cpp:
1275         * bindings/js/JSSQLTransactionSyncCustom.cpp:
1276         * bindings/scripts/CodeGeneratorJS.pm:
1277         * bindings/scripts/CodeGeneratorObjC.pm:
1278         * bindings/scripts/CodeGeneratorV8.pm:
1279         * bindings/v8/V8Callback.h:
1280         * bindings/v8/V8Collection.cpp:
1281         * bindings/v8/custom/V8DocumentCustom.cpp:
1282         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1283         * bindings/v8/custom/V8MutationObserverCustom.cpp:
1284         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
1285         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
1286         * dom/DOMCoreException.idl:
1287         * html/HTMLElement.cpp:
1288         * html/HTMLMediaElement.cpp:
1289         * html/HTMLOptionsCollection.cpp:
1290         * html/canvas/CanvasRenderingContext2D.cpp:
1291         * page/Crypto.cpp:
1292         * page/DOMSelection.cpp:
1293         * svg/properties/SVGTransformListPropertyTearOff.h:
1294
1295 2012-11-12  Joshua Bell  <jsbell@chromium.org>
1296
1297         IndexedDB: Use sequence<> instead of DOMString[] in IDL
1298         https://bugs.webkit.org/show_bug.cgi?id=100539
1299
1300         Reviewed by Adam Barth.
1301
1302         In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
1303         WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
1304         to that. Note webkit.org/b/100537 which requires sequence<String> instead.
1305
1306         Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
1307
1308         * Modules/indexeddb/IDBDatabase.cpp:
1309         (WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
1310         * Modules/indexeddb/IDBDatabase.h:
1311         (WebCore::IDBDatabase::transaction):
1312         (IDBDatabase):
1313         * Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
1314         * Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
1315         * Modules/indexeddb/IDBObjectStore.h:
1316         (WebCore::IDBObjectStore::createIndex):
1317         * Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>
1318
1319 2012-11-12  Anders Carlsson  <andersca@apple.com>
1320
1321         Remove Leopard only gradient code
1322         https://bugs.webkit.org/show_bug.cgi?id=102033
1323
1324         Reviewed by Dan Bernstein.
1325
1326         USE_CG_SHADING was only ever true on Leopard, so we can remove it now.
1327
1328         * platform/graphics/Gradient.h:
1329         * platform/graphics/cg/GradientCG.cpp:
1330         (WebCore::Gradient::platformDestroy):
1331         (WebCore::Gradient::platformGradient):
1332         (WebCore::Gradient::paint):
1333
1334 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
1335
1336         [BlackBerry] Update BB10 form theme.
1337         https://bugs.webkit.org/show_bug.cgi?id=100760
1338
1339         Reviewed by Rob Buis.
1340
1341         RIM PR 237003
1342         Internally Reviewed by Eli Fidler.
1343         Since we nolonger use small font for form controls, adjust paddingDivisor
1344         ratio to decrease the padding value.
1345
1346         * platform/blackberry/RenderThemeBlackBerry.cpp:
1347         (WebCore):
1348
1349 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
1350
1351         Fix filter dirty rect regression from r134311
1352         https://bugs.webkit.org/show_bug.cgi?id=102002
1353
1354         Reviewed by Beth Dakin.
1355
1356         When rendering with filters, the code can inflate the root-relative
1357         paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
1358         broke this behavior.
1359     
1360         Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
1361         and using it for the rest of the function.
1362
1363         * rendering/RenderLayer.cpp:
1364         (WebCore::RenderLayer::paintLayerContents):
1365
1366 2012-11-12  Kentaro Hara  <haraken@chromium.org>
1367
1368         [V8] V8Event::valueAccessorGetter() in custom binding is not used
1369         https://bugs.webkit.org/show_bug.cgi?id=101893
1370
1371         Reviewed by Adam Barth.
1372
1373         No tests. No change in behavior.
1374
1375         * bindings/v8/custom/V8EventCustom.cpp:
1376
1377 2012-11-12  Roger Fong  <roger_fong@apple.com>
1378
1379         Web Inspector: Fix docking behaviour on Windows.
1380         https://bugs.webkit.org/show_bug.cgi?id=101978
1381
1382         Reviewed by Brian Weinstein.
1383
1384         There are a number of problems with docking behaviour on Windows.
1385         For starters, it does not ever constrain the inspector's size properly while docked.
1386         It also does not properly set the whether or not the inspector can be docked/undocked.
1387         This patch fixes both issues.
1388
1389         * inspector/InspectorFrontendClientLocal.cpp:
1390         (WebCore::InspectorFrontendClientLocal::frontendLoaded):
1391         Switch order of calling bringToFront and setDockingUnavailable.
1392
1393 2012-11-12  Adam Barth  <abarth@webkit.org>
1394
1395         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
1396         https://bugs.webkit.org/show_bug.cgi?id=101519
1397
1398         Reviewed by Ojan Vafai.
1399
1400         There should be no change in behavior.  The new API is slightly faster
1401         than the old API (and apparently works correctly internally in V8).
1402
1403         * bindings/scripts/CodeGeneratorV8.pm:
1404         (GenerateHeader):
1405         * bindings/scripts/test/V8/V8Float64Array.h:
1406         (WebCore::V8Float64Array::toNative):
1407         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1408         (WebCore::V8TestActiveDOMObject::toNative):
1409         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1410         (WebCore::V8TestCustomNamedGetter::toNative):
1411         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1412         (WebCore::V8TestEventConstructor::toNative):
1413         * bindings/scripts/test/V8/V8TestEventTarget.h:
1414         (WebCore::V8TestEventTarget::toNative):
1415         * bindings/scripts/test/V8/V8TestException.h:
1416         (WebCore::V8TestException::toNative):
1417         * bindings/scripts/test/V8/V8TestInterface.h:
1418         (WebCore::V8TestInterface::toNative):
1419         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1420         (WebCore::V8TestMediaQueryListListener::toNative):
1421         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1422         (WebCore::V8TestNamedConstructor::toNative):
1423         * bindings/scripts/test/V8/V8TestNode.h:
1424         (WebCore::V8TestNode::toNative):
1425         * bindings/scripts/test/V8/V8TestObj.h:
1426         (WebCore::V8TestObj::toNative):
1427         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1428         (WebCore::V8TestSerializedScriptValueInterface::toNative):
1429         * bindings/v8/NPV8Object.cpp:
1430         (WebCore::v8ObjectToNPObject):
1431         (WebCore::npCreateV8ScriptObject):
1432         * bindings/v8/V8Collection.h:
1433         (WebCore::toNativeCollection):
1434         * bindings/v8/V8DOMWindowShell.cpp:
1435         (WebCore::setIsolatedWorldField):
1436         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
1437         * bindings/v8/V8DOMWrapper.cpp:
1438         (WebCore::V8DOMWrapper::isWrapperOfType):
1439         * bindings/v8/V8DOMWrapper.h:
1440         (WebCore::V8DOMWrapper::setDOMWrapper):
1441         (WebCore::V8DOMWrapper::clearDOMWrapper):
1442         * bindings/v8/WrapperTypeInfo.h:
1443         (WebCore::toNative):
1444         (WebCore::toWrapperTypeInfo):
1445
1446 2012-11-12  Andreas Kling  <kling@webkit.org>
1447
1448         Rename AttributeStyle => PresentationAttributeStyle across WebCore.
1449         <http://webkit.org/b/101975>
1450
1451         Rubber-stamped by Antti Koivisto.
1452
1453         The completely separate concepts of "attribute style" and "style attribute" were a bit too
1454         easy to confuse in variable and method names. Reconfigure our terminology to call it
1455         "presentation attribute style" instead of "attribute style".
1456
1457         * css/StyleResolver.cpp:
1458         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
1459         (WebCore::StyleResolver::matchAllRules):
1460         (WebCore::StyleResolver::canShareStyleWithElement):
1461         * dom/Attr.cpp:
1462         (WebCore::Attr::style):
1463         * dom/ElementAttributeData.cpp:
1464         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
1465         (WebCore::ElementAttributeData::reportMemoryUsage):
1466         * dom/ElementAttributeData.h:
1467         (WebCore::ElementAttributeData::presentationAttributeStyle):
1468         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
1469         (ElementAttributeData):
1470         * dom/Node.h:
1471         (WebCore::Node::attributeStyleDirty):
1472         (WebCore::Node::setPresentationAttributeStyleDirty):
1473         (WebCore::Node::clearPresentationAttributeStyleDirty):
1474         * dom/StyledElement.cpp:
1475         (WebCore::StyledElement::attributeChanged):
1476         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
1477         (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
1478         * dom/StyledElement.h:
1479         (WebCore::StyledElement::additionalPresentationAttributeStyle):
1480         (StyledElement):
1481         (WebCore::StyledElement::collectStyleForPresentationAttribute):
1482         (WebCore::StyledElement::presentationAttributeStyle):
1483         * html/HTMLBRElement.cpp:
1484         (WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
1485         * html/HTMLBRElement.h:
1486         (HTMLBRElement):
1487         * html/HTMLBodyElement.cpp:
1488         (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
1489         * html/HTMLBodyElement.h:
1490         (HTMLBodyElement):
1491         * html/HTMLDivElement.cpp:
1492         (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
1493         * html/HTMLDivElement.h:
1494         (HTMLDivElement):
1495         * html/HTMLElement.cpp:
1496         (WebCore::HTMLElement::applyBorderAttributeToStyle):
1497         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
1498         (WebCore::HTMLElement::collectStyleForPresentationAttribute):
1499         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
1500         (WebCore::HTMLElement::addHTMLLengthToStyle):
1501         * html/HTMLElement.h:
1502         (HTMLElement):
1503         * html/HTMLEmbedElement.cpp:
1504         (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
1505         * html/HTMLEmbedElement.h:
1506         (HTMLEmbedElement):
1507         * html/HTMLFontElement.cpp:
1508         (WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
1509         * html/HTMLFontElement.h:
1510         (HTMLFontElement):
1511         * html/HTMLFrameSetElement.cpp:
1512         (WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
1513         * html/HTMLFrameSetElement.h:
1514         (HTMLFrameSetElement):
1515         * html/HTMLHRElement.cpp:
1516         (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
1517         * html/HTMLHRElement.h:
1518         (HTMLHRElement):
1519         * html/HTMLIFrameElement.cpp:
1520         (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
1521         * html/HTMLIFrameElement.h:
1522         (HTMLIFrameElement):
1523         * html/HTMLImageElement.cpp:
1524         (WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
1525         * html/HTMLImageElement.h:
1526         (HTMLImageElement):
1527         * html/HTMLInputElement.cpp:
1528         (WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
1529         * html/HTMLInputElement.h:
1530         (HTMLInputElement):
1531         * html/HTMLLIElement.cpp:
1532         (WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
1533         * html/HTMLLIElement.h:
1534         (HTMLLIElement):
1535         * html/HTMLMarqueeElement.cpp:
1536         (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
1537         * html/HTMLMarqueeElement.h:
1538         (HTMLMarqueeElement):
1539         * html/HTMLOListElement.cpp:
1540         (WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
1541         * html/HTMLOListElement.h:
1542         (HTMLOListElement):
1543         * html/HTMLObjectElement.cpp:
1544         (WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
1545         * html/HTMLObjectElement.h:
1546         (HTMLObjectElement):
1547         * html/HTMLParagraphElement.cpp:
1548         (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
1549         * html/HTMLParagraphElement.h:
1550         (HTMLParagraphElement):
1551         * html/HTMLPlugInElement.cpp:
1552         (WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
1553         * html/HTMLPlugInElement.h:
1554         (HTMLPlugInElement):
1555         * html/HTMLPreElement.cpp:
1556         (WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
1557         * html/HTMLPreElement.h:
1558         (HTMLPreElement):
1559         * html/HTMLTableCaptionElement.cpp:
1560         (WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
1561         * html/HTMLTableCaptionElement.h:
1562         (HTMLTableCaptionElement):
1563         * html/HTMLTableCellElement.cpp:
1564         (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
1565         (WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
1566         * html/HTMLTableCellElement.h:
1567         (HTMLTableCellElement):
1568         * html/HTMLTableColElement.cpp:
1569         (WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
1570         (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
1571         * html/HTMLTableColElement.h:
1572         (HTMLTableColElement):
1573         * html/HTMLTableElement.cpp:
1574         (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
1575         (WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
1576         * html/HTMLTableElement.h:
1577         (HTMLTableElement):
1578         * html/HTMLTablePartElement.cpp:
1579         (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
1580         * html/HTMLTablePartElement.h:
1581         (HTMLTablePartElement):
1582         * html/HTMLTableSectionElement.cpp:
1583         (WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
1584         * html/HTMLTableSectionElement.h:
1585         (HTMLTableSectionElement):
1586         * html/HTMLTextAreaElement.cpp:
1587         (WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
1588         * html/HTMLTextAreaElement.h:
1589         (HTMLTextAreaElement):
1590         * html/HTMLUListElement.cpp:
1591         (WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
1592         * html/HTMLUListElement.h:
1593         (HTMLUListElement):
1594         * html/HTMLVideoElement.cpp:
1595         (WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
1596         * html/HTMLVideoElement.h:
1597         (HTMLVideoElement):
1598         * inspector/InspectorCSSAgent.cpp:
1599         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
1600         * mathml/MathMLElement.cpp:
1601         (WebCore::MathMLElement::collectStyleForPresentationAttribute):
1602         * mathml/MathMLElement.h:
1603         (MathMLElement):
1604         * svg/SVGImageElement.cpp:
1605         (WebCore::SVGImageElement::collectStyleForPresentationAttribute):
1606         * svg/SVGImageElement.h:
1607         (SVGImageElement):
1608         * svg/SVGStyledElement.cpp:
1609         (WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
1610         * svg/SVGStyledElement.h:
1611         (SVGStyledElement):
1612         * svg/SVGTextContentElement.cpp:
1613         (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
1614         * svg/SVGTextContentElement.h:
1615         (SVGTextContentElement):
1616
1617 2012-11-12  Adam Barth  <abarth@webkit.org>
1618
1619         [V8] Many things crash when switching to V8's new aligned pointer API
1620         https://bugs.webkit.org/show_bug.cgi?id=101994
1621
1622         Reviewed by Eric Seidel.
1623
1624         When using the aligned pointer API, we need to make sure to initialize
1625         every internal field that we later read because the new API has better
1626         error checks than the old API. This patch explicitly initializes the
1627         enteredIsolatedWorldIndex internal field to zero for main worlds,
1628         fixing the LayoutTest crashes from our previous attempt to move the
1629         aligned pointer API.
1630
1631         * bindings/v8/V8DOMWindowShell.cpp:
1632         (WebCore::V8DOMWindowShell::initializeIfNeeded):
1633
1634 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
1635
1636         Reduce the crazy number of parameters to RenderLayer painting member functions
1637         https://bugs.webkit.org/show_bug.cgi?id=101895
1638
1639         Reviewed by Beth Dakin.
1640
1641         The various RenderLayer::paintLayer* functions took a lot of arguments, most
1642         of which were passed down directly to descendants.
1643         
1644         Gather these arguments into a LayerPaintingInfo struct.
1645
1646         * rendering/RenderLayer.cpp:
1647         (WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
1648         to descendant paint calls.
1649         (WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
1650         (WebCore::RenderLayer::paintLayer): When painting transformed layers, we
1651         make a new LayerPaintingInfo because the root layer is shifted.
1652         (WebCore::RenderLayer::paintLayerContentsAndReflection):
1653         (WebCore::RenderLayer::paintLayerContents):
1654         (WebCore::RenderLayer::paintList):
1655         (WebCore::RenderLayer::paintPaginatedChildLayer):
1656         (WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
1657         struct for column painting.
1658         * rendering/RenderLayer.h:
1659         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
1660         (LayerPaintingInfo):
1661         * rendering/RenderLayerBacking.cpp:
1662         (WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
1663         to enter layer painting.
1664         * rendering/RenderReplica.cpp:
1665         (WebCore::RenderReplica::paint): Ditto.
1666
1667 2012-11-12  Brady Eidson  <beidson@apple.com>
1668
1669         NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
1670         https://bugs.webkit.org/show_bug.cgi?id=101872
1671
1672         Reviewed by Alexey Proskuryakov.
1673
1674         Expose shouldSniffContent to pass it along to the NetworkProcess.
1675
1676         * loader/ResourceLoader.h:
1677         (WebCore::ResourceLoader::shouldSniffContent):
1678
1679 2012-11-12  Christophe Dumez  <christophe.dumez@intel.com>
1680
1681         Fix memory leak in createSurfaceForBackingStore()
1682         https://bugs.webkit.org/show_bug.cgi?id=101941
1683
1684         Reviewed by Kenneth Rohde Christiansen.
1685
1686         Fix memory leak in createSurfaceForBackingStore(),
1687         the RefPtr<cairo_surface_t> should be released
1688         when returned since we pass ownership to the
1689         caller.
1690
1691         No new tests, no behavior change for layout tests.
1692
1693         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
1694         (WebCore::createSurfaceForBackingStore):
1695
1696 2012-11-12  Joe Mason  <jmason@rim.com>
1697
1698         [BlackBerry] Update to new proxyInfo API
1699         https://bugs.webkit.org/show_bug.cgi?id=101945
1700
1701         Reviewed by George Staikos.
1702
1703         Internal PR: 234680
1704         Reviewed internally by: Leo Yang
1705
1706         The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
1707         have been replaced with a single, more efficient proxyInfo method.
1708
1709         No new tests because this is an API update with no behaviour change.
1710
1711         * platform/network/blackberry/NetworkJob.cpp:
1712         (WebCore::NetworkJob::sendRequestWithCredentials):
1713         (WebCore::NetworkJob::storeCredentials):
1714
1715 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
1716
1717         Unreviewed, rolling out r126157.
1718         http://trac.webkit.org/changeset/126157
1719         https://bugs.webkit.org/show_bug.cgi?id=101954
1720
1721         This patch caused (untestable) regression of the volume
1722         property on Mac, Win, and Blackberry ports. (Requested by
1723         jernoble on #webkit).
1724
1725         * platform/graphics/MediaPlayer.cpp:
1726         (WebCore::MediaPlayer::loadWithNextMediaEngine):
1727         (WebCore::MediaPlayer::setVolume):
1728         (WebCore::MediaPlayer::setMuted):
1729         (WebCore::MediaPlayer::setPreservesPitch):
1730         (WebCore::MediaPlayer::setSize):
1731         (WebCore::MediaPlayer::setVisible):
1732         (WebCore::MediaPlayer::setPreload):
1733
1734 2012-11-12  Arpita Bahuguna  <arpitabahuguna@gmail.com>
1735
1736         Specified width CSS tables should not include border and padding as part of that width.
1737         https://bugs.webkit.org/show_bug.cgi?id=77028
1738
1739         Reviewed by Julien Chaffraix.
1740
1741         CSS table width should not include border and padding even though HTML
1742         tables size as though their width includes border/padding.
1743
1744         This is applicable for all CSS tables with specified widths.
1745
1746         The change would also make our rendering of CSS tables with specified
1747         width similar to that of Opera, IE and FF.
1748
1749         Test: fast/table/css-table-width-with-border-padding.html
1750
1751         * rendering/RenderTable.cpp:
1752         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
1753         Added check for all (positive) specified widths for CSS tables to
1754         consider border and padding outside of the specified width.
1755
1756 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1757
1758         Move resolving blob references to FormData.
1759         https://bugs.webkit.org/show_bug.cgi?id=101754
1760
1761         Reviewed by Simon Hausmann.
1762
1763         Resolving Blob-references to a set of just File and Data is done similar by several platforms.
1764         This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
1765         BlackBerry network implementation.
1766
1767         * platform/network/FormData.cpp:
1768         (WebCore::appendBlobResolved):
1769         (WebCore::FormData::resolveBlobReferences):
1770         * platform/network/FormData.h:
1771         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
1772         (WebCore::ResourceRequest::initializePlatformRequest):
1773         * platform/network/cf/FormDataStreamCFNet.cpp:
1774         (WebCore::setHTTPBody):
1775         * platform/network/qt/QNetworkReplyHandler.cpp:
1776         (WebCore::FormDataIODevice::prepareFormElements):
1777
1778 2012-11-12  Zeno Albisser  <zeno@webkit.org>
1779
1780         GraphicsSurfaceGLX does not handle transparency correctly.
1781         https://bugs.webkit.org/show_bug.cgi?id=101943
1782
1783         GraphicsSurfacGLX must consistently use RGBA texture format.
1784         glXCreateWindow must be called after creating the XWindow
1785         that serves as a temporary offscreen texture storage, in order
1786         to allow for transparency.
1787         When creating the offscreen XWindow we must make sure,
1788         that we use a framebuffer configuration that supports
1789         an alpha mask.
1790
1791         Reviewed by Noam Rosenthal.
1792
1793         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
1794         (WebCore):
1795         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
1796         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
1797         (WebCore::GraphicsSurfacePrivate::createSurface):
1798         (GraphicsSurfacePrivate):
1799         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
1800
1801 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
1802
1803         Unreviewed, rolling out r134225.
1804         http://trac.webkit.org/changeset/134225
1805         https://bugs.webkit.org/show_bug.cgi?id=101948
1806
1807         Appears to have broken the EFL and GTK builds (Requested by
1808         abarth on #webkit).
1809
1810         * bindings/js/JSHTMLElementCustom.cpp:
1811         (WebCore):
1812         (WebCore::JSHTMLElement::itemValue):
1813         (WebCore::JSHTMLElement::setItemValue):
1814         * bindings/v8/custom/V8HTMLElementCustom.cpp:
1815         (WebCore):
1816         (WebCore::V8HTMLElement::itemValueAccessorGetter):
1817         (WebCore::V8HTMLElement::itemValueAccessorSetter):
1818         * html/HTMLElement.idl:
1819
1820 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1821
1822         hitTestResultAtPoint does two hit-tests if called on non main frame
1823         https://bugs.webkit.org/show_bug.cgi?id=101915
1824
1825         Reviewed by Antonio Gomes.
1826
1827         Always redirect hitTestResultAtPoint to the main-frame. This used to being
1828         done on every result that hit anything, which caused running the expensive 
1829         hit-tests multiple times in almost all cases.
1830
1831         * page/EventHandler.cpp:
1832         (WebCore::EventHandler::hitTestResultAtPoint):
1833
1834 2012-11-12  Kentaro Hara  <haraken@chromium.org>
1835
1836         [V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
1837         https://bugs.webkit.org/show_bug.cgi?id=101892
1838
1839         Reviewed by Adam Barth.
1840
1841         We can remove [Custom] from callUID in ScriptProfileNode.idl.
1842
1843         No tests. No change in behavior.
1844
1845         * GNUmakefile.list.am:
1846         * Target.pri:
1847         * UseJSC.cmake:
1848         * WebCore.gypi:
1849         * WebCore.vcproj/WebCore.vcproj:
1850         * WebCore.xcodeproj/project.pbxproj:
1851         * bindings/js/JSBindingsAllInOne.cpp:
1852         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
1853         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
1854         * inspector/ScriptProfileNode.idl:
1855
1856 2012-11-12  Kentaro Hara  <haraken@chromium.org>
1857
1858         [V8] Performance::memory getter needs not to be [Custom]
1859         https://bugs.webkit.org/show_bug.cgi?id=101890
1860
1861         Reviewed by Adam Barth.
1862
1863         No tests. No change in behavior.
1864
1865         * UseV8.cmake:
1866         * WebCore.gypi:
1867         * bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
1868         * page/Performance.idl:
1869
1870 2012-11-12  Kentaro Hara  <haraken@chromium.org>
1871
1872         [V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
1873         https://bugs.webkit.org/show_bug.cgi?id=101888
1874
1875         Reviewed by Adam Barth.
1876
1877         We can remove [Custom] from getter. It is possible to remove [Custom]
1878         from setter, but it changes the current behavior.
1879         (I think the current implementation of the setter is wrong.
1880         I'll fix it in another patch.)
1881
1882         No tests. No change in behavior.
1883
1884         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
1885         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1886         * html/HTMLOptionsCollection.idl:
1887
1888 2012-11-12  Yael Aharon  <yael.aharon@intel.com>
1889
1890         [EFL][WK2][AC] Black screen when applications use software backend.
1891         https://bugs.webkit.org/show_bug.cgi?id=101659
1892
1893         Reviewed by Kenneth Rohde Christiansen.
1894
1895         Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.
1896
1897         No new tests. Will be covered when running existing tests without enabling openGL.
1898
1899         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
1900         (WebCore::createSurfaceForImage):
1901         (WebCore):
1902         * platform/graphics/efl/CairoUtilitiesEfl.h:
1903         (WebCore):
1904
1905 2012-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
1906
1907         Unreviewed. Fix make distcheck.
1908
1909         * GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
1910         contain idl files anymore.
1911         * GNUmakefile.list.am: Add missing header files.
1912
1913 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
1914
1915         MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
1916         https://bugs.webkit.org/show_bug.cgi?id=101733
1917
1918         Reviewed by Jochen Eisinger.
1919
1920         This patch adds better verification to MediaConstraintsImpl.
1921
1922         Existing tests expanded to cover this change.
1923
1924         * Modules/mediastream/MediaConstraintsImpl.cpp:
1925         (WebCore::MediaConstraintsImpl::initialize):
1926
1927 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
1928
1929         Unreviewed, rolling out r134223.
1930         http://trac.webkit.org/changeset/134223
1931         https://bugs.webkit.org/show_bug.cgi?id=101939
1932
1933         Breaks inspector tests (Requested by pfeldman on #webkit).
1934
1935         * inspector/front-end/DefaultTextEditor.js:
1936         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
1937         (WebInspector.TextEditorMainPanel):
1938         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
1939         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
1940         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
1941         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
1942         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
1943         (WebInspector.TextEditorMainPanel.prototype._paintLine):
1944         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
1945         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
1946         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
1947         * inspector/front-end/externs.js:
1948         * inspector/front-end/textEditor.css:
1949
1950 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1951
1952         [Qt] Support ResourceRequest's setTimeoutInterval
1953         https://bugs.webkit.org/show_bug.cgi?id=101731
1954
1955         Reviewed by Simon Hausmann.
1956
1957         Establish a timeout and return the correct error when it is triggered.
1958
1959         Tested by existing http/tests/xmlhttprequest/timeout tests.
1960
1961         * platform/network/ResourceRequestBase.cpp:
1962         * platform/network/qt/QNetworkReplyHandler.cpp:
1963         (WebCore::QNetworkReplyHandler::release):
1964         (WebCore::QNetworkReplyHandler::finish):
1965         (WebCore::QNetworkReplyHandler::timeout):
1966         (WebCore::QNetworkReplyHandler::timerEvent):
1967         (WebCore::QNetworkReplyHandler::start):
1968         * platform/network/qt/QNetworkReplyHandler.h:
1969         (QNetworkReplyHandler):
1970
1971 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
1972
1973         Unreviewed, rolling out r134224.
1974         http://trac.webkit.org/changeset/134224
1975         https://bugs.webkit.org/show_bug.cgi?id=101937
1976
1977         asserting on bawts (Requested by kling on #webkit).
1978
1979         * rendering/style/RenderStyle.cpp:
1980         (WebCore::RenderStyle::diff):
1981         (WebCore::RenderStyle::setColor):
1982         (WebCore::RenderStyle::setVisitedLinkColor):
1983         * rendering/style/RenderStyle.h:
1984         * rendering/style/StyleBackgroundData.cpp:
1985         (WebCore::StyleBackgroundData::StyleBackgroundData):
1986         * rendering/style/StyleBackgroundData.h:
1987         (WebCore::StyleBackgroundData::color):
1988         (StyleBackgroundData):
1989         * rendering/style/StyleInheritedData.cpp:
1990         (WebCore::StyleInheritedData::StyleInheritedData):
1991         * rendering/style/StyleInheritedData.h:
1992         (StyleInheritedData):
1993         * rendering/style/StyleMultiColData.cpp:
1994         (WebCore::StyleMultiColData::StyleMultiColData):
1995         * rendering/style/StyleMultiColData.h:
1996         (StyleMultiColData):
1997         * rendering/style/StyleRareInheritedData.cpp:
1998         (SameSizeAsStyleRareInheritedData):
1999         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
2000         (WebCore::StyleRareInheritedData::operator==):
2001         * rendering/style/StyleRareInheritedData.h:
2002         (WebCore):
2003         (StyleRareInheritedData):
2004         * rendering/style/StyleRareNonInheritedData.cpp:
2005         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2006         (WebCore::StyleRareNonInheritedData::operator==):
2007         * rendering/style/StyleRareNonInheritedData.h:
2008         (StyleRareNonInheritedData):
2009
2010 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
2011
2012         [BlackBerry] Update BB10 form theme.
2013         https://bugs.webkit.org/show_bug.cgi?id=100760
2014
2015         Reviewed by Rob Buis.
2016
2017         RIM PR 236993
2018         Internally Reviewed by Jeff Rogers.
2019         Use slide and paint method on slider range and media controls.
2020
2021         * platform/blackberry/RenderThemeBlackBerry.cpp:
2022         (WebCore):
2023         (WebCore::drawThreeSliceHorizontal):
2024         (WebCore::drawThreeSliceVertical):
2025         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
2026         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
2027         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
2028         (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
2029         * platform/blackberry/RenderThemeBlackBerry.h:
2030         (RenderThemeBlackBerry):
2031
2032 2012-11-12  Kent Tamura  <tkent@chromium.org>
2033
2034         Refactoring: set read-only values on layout in DateTimeEditElement
2035         https://bugs.webkit.org/show_bug.cgi?id=101916
2036
2037         Reviewed by Kentaro Hara.
2038
2039         We have always updated read-only values when we set an empty value or
2040         DateTimeFieldsState. It has wasted CPU time because such read-only
2041         values are never updated after layout() essentially. So, we set
2042         read-only values in DateTimeEditBuilder used by layout(), and remove
2043         dateForReadOnlyField arguments of setEmptyValue and
2044         setValueAsDateTimeFieldsState.
2045
2046         No new tests. This should not make behavior changes.
2047
2048         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2049         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
2050         We removed dateForReadOnlyField argument because read-only values are
2051         already set in DateTimeFieldElement::layout().
2052         * html/shadow/DateTimeEditElement.cpp:
2053         (WebCore::DateTimeEditBuilder::visitField):
2054         Set a value to a read-only minute/second/millisecond field while
2055         building UI elements.
2056         Also, changed variable types for millisecond and second fields to
2057         RefPtr<DateTimeNumericFieldElement> because we'd like to call
2058         setValueAsDate, which is private in DateTimeMillisecondFieldElement and
2059         DateTimeSecondFieldElement
2060         (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
2061         We removed dateForReadOnlyField argument because read-only values are
2062         already set in DateTimeFieldElement::layout().
2063         (WebCore::DateTimeEditElement::setEmptyValue): Ditto.
2064         * html/shadow/DateTimeEditElement.h:
2065         (DateTimeEditElement):
2066         Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.
2067
2068         * html/shadow/DateTimeFieldElement.cpp:
2069         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
2070         We removed dateForReadOnlyField argument because read-only values are
2071         already set in DateTimeFieldElement::layout().
2072         * html/shadow/DateTimeFieldElement.h:
2073         (DateTimeFieldElement): Ditto.
2074
2075         * html/shadow/DateTimeFieldElements.cpp: Ditto.
2076         * html/shadow/DateTimeFieldElements.h: Ditto.
2077         * html/shadow/DateTimeNumericFieldElement.cpp:
2078         (WebCore::DateTimeNumericFieldElement::setEmptyValue):
2079         It should do nothing if it is read-only because a read-only value was
2080         already set just after construction.
2081         * html/shadow/DateTimeNumericFieldElement.h:
2082         (DateTimeNumericFieldElement):
2083         Removed dateForReadOnlyField argument of setEmptyValue.
2084         * html/shadow/DateTimeSymbolicFieldElement.cpp:
2085         (WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
2086         * html/shadow/DateTimeSymbolicFieldElement.h:
2087         (DateTimeSymbolicFieldElement): Ditto.
2088
2089 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
2090
2091         [BlackBerry] Update BB10 form theme.
2092         https://bugs.webkit.org/show_bug.cgi?id=100760
2093
2094         Reviewed by Rob Buis.
2095
2096         RIM PR 236993
2097         Internally Reviewed by Jeff Rogers.
2098         Enable GL slider.
2099
2100         * platform/blackberry/RenderThemeBlackBerry.cpp:
2101         (WebCore::drawThreeSlice):
2102         (WebCore):
2103         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
2104         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
2105
2106 2012-11-12  Kentaro Hara  <haraken@chromium.org>
2107
2108         [V8][JSC] HTMLElement::itemValue() needs not to be custom
2109         https://bugs.webkit.org/show_bug.cgi?id=101882
2110
2111         Reviewed by Adam Barth.
2112
2113         We can remove a [Custom] IDL attribute.
2114
2115         No tests. No change in behavior.
2116
2117         * bindings/js/JSHTMLElementCustom.cpp:
2118         * bindings/v8/custom/V8HTMLElementCustom.cpp:
2119         * html/HTMLElement.idl:
2120
2121 2012-11-12  Andreas Kling  <kling@webkit.org>
2122
2123         RenderStyle: Pack Color members tighter in substructures.
2124         <http://webkit.org/b/101860>
2125
2126         Reviewed by Antti Koivisto.
2127
2128         For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
2129         members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.
2130
2131         Memory saved per instance:
2132
2133             - StyleMultiColData:          4 bytes
2134             - StyleBackgroundData:        8 bytes
2135             - StyleInheritedData:         8 bytes
2136             - StyleRareInheritedData:    24 bytes
2137             - StyleRareNonInheritedData: 24 bytes
2138
2139         323kB progression on Membuster3.
2140
2141         * rendering/style/RenderStyle.cpp:
2142         (WebCore::RenderStyle::diff):
2143         (WebCore::RenderStyle::setColor):
2144         (WebCore::RenderStyle::setVisitedLinkColor):
2145         (WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
2146         (WebCore::RenderStyle::setBackgroundColor):
2147         * rendering/style/RenderStyle.h:
2148         * rendering/style/StyleBackgroundData.cpp:
2149         (WebCore::StyleBackgroundData::StyleBackgroundData):
2150         * rendering/style/StyleBackgroundData.h:
2151         (WebCore::StyleBackgroundData::color):
2152         (StyleBackgroundData):
2153         * rendering/style/StyleInheritedData.cpp:
2154         (WebCore::StyleInheritedData::StyleInheritedData):
2155         * rendering/style/StyleInheritedData.h:
2156         (StyleInheritedData):
2157         * rendering/style/StyleMultiColData.cpp:
2158         (WebCore::StyleMultiColData::StyleMultiColData):
2159         (WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
2160         * rendering/style/StyleMultiColData.h:
2161         (StyleMultiColData):
2162         (WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
2163         * rendering/style/StyleRareInheritedData.cpp:
2164         (SameSizeAsStyleRareInheritedData):
2165         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
2166         (WebCore::StyleRareInheritedData::operator==):
2167         (WebCore::StyleRareInheritedData::setTextStrokeColor):
2168         (WebCore::StyleRareInheritedData::setTextFillColor):
2169         (WebCore::StyleRareInheritedData::setTextEmphasisColor):
2170         (WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
2171         (WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
2172         (WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
2173         * rendering/style/StyleRareInheritedData.h:
2174         (StyleRareInheritedData):
2175         (WebCore::StyleRareInheritedData::textStrokeColor):
2176         (WebCore::StyleRareInheritedData::textFillColor):
2177         (WebCore::StyleRareInheritedData::textEmphasisColor):
2178         (WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
2179         (WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
2180         (WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
2181         * rendering/style/StyleRareNonInheritedData.cpp:
2182         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2183         (WebCore::StyleRareNonInheritedData::operator==):
2184         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
2185         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
2186         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
2187         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
2188         (WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
2189         (WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
2190         * rendering/style/StyleRareNonInheritedData.h:
2191         (WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
2192         (WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
2193         (WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
2194         (WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
2195         (WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
2196         (WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
2197         (StyleRareNonInheritedData):
2198
2199 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
2200
2201         Web Inspector: migrate text editor to mutation observers
2202         https://bugs.webkit.org/show_bug.cgi?id=101841
2203
2204         Reviewed by Vsevolod Vlasov.
2205
2206         Otherwise, we miss notifications on the removed lines.
2207
2208         * inspector/front-end/DefaultTextEditor.js:
2209         (WebInspector.TextEditorMainPanel):
2210         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
2211         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
2212         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
2213         (WebInspector.TextEditorMainPanel.prototype._handleMutation):
2214         * inspector/front-end/externs.js:
2215         (WebKitMutation):
2216         (WebKitMutationObserver.prototype.observe):
2217         (WebKitMutationObserver.prototype.disconnect):
2218
2219 2012-11-12  Allan Sandfeld Jensen  <sandfeld@kde.org>
2220
2221         [Qt] Flash-plugin starts with wrong width
2222         https://bugs.webkit.org/show_bug.cgi?id=101836
2223
2224         Reviewed by Simon Hausmann.
2225
2226         Defer the setWindow call, so that the one time it is called it will have its final size.
2227
2228         * plugins/PluginPackage.cpp:
2229         (WebCore::PluginPackage::determineQuirks):
2230
2231 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
2232
2233         Remove the V8 custom code for WebSockets constructor
2234         https://bugs.webkit.org/show_bug.cgi?id=100801
2235
2236         Reviewed by Kentaro Hara.
2237
2238         This patch does the following:
2239
2240         1) Modifies the V8 code generator to support overloaded constructors,
2241            the JS generator is fixed to work as before. Proper support for JS will come later.
2242
2243         2) Modifies WebSocket.h/.cpp for the new constructors.
2244
2245         Tested by running WebSockets layout tests.
2246
2247         * Modules/websockets/WebSocket.cpp:
2248         (WebCore::WebSocket::create):
2249         (WebCore):
2250         * Modules/websockets/WebSocket.h:
2251         (WebSocket):
2252         * Modules/websockets/WebSocket.idl:
2253         * bindings/scripts/CodeGeneratorJS.pm:
2254         (GenerateConstructorDefinition):
2255         * bindings/scripts/CodeGeneratorV8.pm:
2256         (GenerateHeader):
2257         (GenerateOverloadedConstructorCallback):
2258         (GenerateSingleConstructorCallback):
2259         (GenerateConstructorCallback):
2260         (GenerateImplementation):
2261         * bindings/scripts/IDLParser.pm:
2262         (copyAttributes):
2263         (parseExtendedAttributeList):
2264         (parseExtendedAttributes):
2265         (applyExtendedAttributeList):
2266         * bindings/scripts/IDLStructure.pm:
2267         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
2268         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
2269         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
2270         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
2271         (WebDOMTestOverloadedConstructors::operator=):
2272         (WebDOMTestOverloadedConstructors::impl):
2273         (WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
2274         (toWebCore):
2275         (toWebKit):
2276         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
2277         (WebCore):
2278         (WebDOMTestOverloadedConstructors):
2279         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
2280         (WebKit):
2281         (WebKit::kit):
2282         (WebKit::core):
2283         (WebKit::wrapTestOverloadedConstructors):
2284         (webkit_dom_test_overloaded_constructors_finalize):
2285         (webkit_dom_test_overloaded_constructors_set_property):
2286         (webkit_dom_test_overloaded_constructors_get_property):
2287         (webkit_dom_test_overloaded_constructors_constructed):
2288         (webkit_dom_test_overloaded_constructors_class_init):
2289         (webkit_dom_test_overloaded_constructors_init):
2290         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
2291         (_WebKitDOMTestOverloadedConstructors):
2292         (_WebKitDOMTestOverloadedConstructorsClass):
2293         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
2294         (WebKit):
2295         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
2296         (WebCore):
2297         (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
2298         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
2299         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
2300         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
2301         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
2302         (WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
2303         (WebCore::JSTestOverloadedConstructorsPrototype::self):
2304         (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
2305         (WebCore::JSTestOverloadedConstructors::finishCreation):
2306         (WebCore::JSTestOverloadedConstructors::createPrototype):
2307         (WebCore::JSTestOverloadedConstructors::destroy):
2308         (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
2309         (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
2310         (WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
2311         (WebCore::jsTestOverloadedConstructorsConstructor):
2312         (WebCore::JSTestOverloadedConstructors::getConstructor):
2313         (WebCore::isObservable):
2314         (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
2315         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
2316         (WebCore::toJS):
2317         (WebCore::toTestOverloadedConstructors):
2318         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
2319         (WebCore):
2320         (JSTestOverloadedConstructors):
2321         (WebCore::JSTestOverloadedConstructors::create):
2322         (WebCore::JSTestOverloadedConstructors::createStructure):
2323         (WebCore::JSTestOverloadedConstructors::impl):
2324         (WebCore::JSTestOverloadedConstructors::releaseImpl):
2325         (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
2326         (JSTestOverloadedConstructorsOwner):
2327         (WebCore::wrapperOwner):
2328         (WebCore::wrapperContext):
2329         (JSTestOverloadedConstructorsPrototype):
2330         (WebCore::JSTestOverloadedConstructorsPrototype::create):
2331         (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
2332         (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
2333         (JSTestOverloadedConstructorsConstructor):
2334         (WebCore::JSTestOverloadedConstructorsConstructor::create):
2335         (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
2336         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
2337         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
2338         (-[DOMTestOverloadedConstructors dealloc]):
2339         (-[DOMTestOverloadedConstructors finalize]):
2340         (core):
2341         (kit):
2342         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
2343         (WebCore):
2344         * bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
2345         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
2346         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
2347         (WebCore):
2348         (TestOverloadedConstructorsV8Internal):
2349         (WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
2350         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
2351         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
2352         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
2353         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
2354         (WebCore::V8TestOverloadedConstructors::constructorCallback):
2355         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
2356         (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
2357         (WebCore::V8TestOverloadedConstructors::GetTemplate):
2358         (WebCore::V8TestOverloadedConstructors::HasInstance):
2359         (WebCore::V8TestOverloadedConstructors::wrapSlow):
2360         (WebCore::V8TestOverloadedConstructors::derefObject):
2361         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
2362         (WebCore):
2363         (V8TestOverloadedConstructors):
2364         (WebCore::V8TestOverloadedConstructors::toNative):
2365         (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
2366         (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
2367         (WebCore::V8TestOverloadedConstructors::wrap):
2368         (WebCore::toV8):
2369         * bindings/v8/custom/V8WebSocketCustom.cpp:
2370
2371 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
2372
2373         [Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
2374         https://bugs.webkit.org/show_bug.cgi?id=101891
2375
2376         Reviewed by Hajime Morita.
2377
2378         We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
2379         since it will have more features than the original RuleFeatureSet has.
2380
2381         Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.
2382
2383         No new tests, no change in behavior.
2384
2385         * CMakeLists.txt:
2386         * GNUmakefile.list.am:
2387         * Target.pri:
2388         * WebCore.gypi:
2389         * WebCore.vcproj/WebCore.vcproj:
2390         * WebCore.xcodeproj/project.pbxproj:
2391         * dom/ElementShadow.h:
2392         (ElementShadow):
2393         (WebCore::ElementShadow::selectRuleFeatureSet):
2394         (WebCore):
2395         * html/shadow/SelectRuleFeatureSet.cpp: Added.
2396         (WebCore):
2397         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
2398         (WebCore::SelectRuleFeatureSet::add):
2399         (WebCore::SelectRuleFeatureSet::clear):
2400         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
2401         * html/shadow/SelectRuleFeatureSet.h: Added.
2402         (WebCore):
2403         (SelectRuleFeatureSet):
2404         (WebCore::SelectRuleFeatureSet::hasSelectorForId):
2405         (WebCore::SelectRuleFeatureSet::hasSelectorForClass):
2406         (WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
2407         * testing/Internals.cpp:
2408         (WebCore::Internals::hasSelectorForIdInShadow):
2409         (WebCore::Internals::hasSelectorForClassInShadow):
2410         (WebCore::Internals::hasSelectorForAttributeInShadow):
2411
2412 2012-11-13  Keishi Hattori  <keishi@webkit.org>
2413
2414         Build fix for Chromium Android (caused by r134216)
2415
2416         Unreviewed.
2417
2418         No new tests.
2419
2420         * platform/text/PlatformLocale.cpp:
2421         (WebCore::Locale::formatDateTime):
2422
2423 2012-11-12  Keishi Hattori  <keishi@webkit.org>
2424
2425         Add support for week/month to Locale::formatDateTime()
2426         https://bugs.webkit.org/show_bug.cgi?id=101878
2427
2428         Reviewed by Kent Tamura.
2429
2430         Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.
2431
2432         Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.
2433
2434         * platform/text/PlatformLocale.cpp:
2435         (WebCore::DateTimeStringBuilder::visitField):
2436         (WebCore::Locale::formatDateTime): Support week and month types.
2437
2438 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2439
2440         [Qt] Can not load MHTML documents
2441         https://bugs.webkit.org/show_bug.cgi?id=101765
2442
2443         Reviewed by Simon Hausmann.
2444
2445         Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.
2446
2447         Tested by existing mhtml/ tests.
2448
2449         * platform/qt/MIMETypeRegistryQt.cpp:
2450         (WebCore):
2451
2452 2012-11-12  Andreas Kling  <akling@apple.com>
2453
2454         Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
2455         <http://webkit.org/b/101850>
2456
2457         Reviewed by Antti Koivisto.
2458
2459         Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
2460         222kB progression on Membuster3.
2461
2462         * platform/network/ResourceRequestBase.cpp:
2463         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
2464
2465 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
2466
2467         MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
2468         https://bugs.webkit.org/show_bug.cgi?id=101751
2469
2470         Reviewed by Adam Barth.
2471
2472         This patch queues the events until the JS interpreter is in an idle state.
2473
2474         Existing tests cover this patch.
2475
2476         * Modules/mediastream/RTCDataChannel.cpp:
2477         (WebCore::RTCDataChannel::RTCDataChannel):
2478         (WebCore::RTCDataChannel::readyStateChanged):
2479         (WebCore::RTCDataChannel::dataArrived):
2480         (WebCore::RTCDataChannel::error):
2481         (WebCore::RTCDataChannel::scheduleDispatchEvent):
2482         (WebCore):
2483         (WebCore::RTCDataChannel::scheduledEventTimerFired):
2484         * Modules/mediastream/RTCDataChannel.h:
2485         (RTCDataChannel):
2486         * platform/chromium/support/WebRTCDataChannel.cpp:
2487         (WebKit::WebRTCDataChannel::setBufferedAmount):
2488         (WebKit::WebRTCDataChannel::readyStateChanged):
2489         (WebKit::WebRTCDataChannel::dataArrived):
2490         (WebKit::WebRTCDataChannel::error):
2491
2492 2012-11-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2493
2494         Remove HTMLInputElement dependency from PickerIndicatorElement
2495         https://bugs.webkit.org/show_bug.cgi?id=101913
2496
2497         Reviewed by Kent Tamura.
2498
2499         Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
2500         PickerIndicatorElement. It makes easier to add interactions between picker indicator
2501         and its owner without having to add functions to HTMLInputElement.
2502
2503         No new tests. This is just a refactor.
2504
2505         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2506         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
2507         (WebCore):
2508         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
2509         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
2510         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
2511         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
2512         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
2513         * html/BaseMultipleFieldsDateAndTimeInputType.h:
2514         (WebCore):
2515         (BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
2516         * html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
2517         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
2518         (WebCore::PickerIndicatorElement::create):
2519         (WebCore::PickerIndicatorElement::defaultEventHandler):
2520         (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
2521         (WebCore::PickerIndicatorElement::didChooseValue):
2522         (WebCore::PickerIndicatorElement::openPopup):
2523         * html/shadow/PickerIndicatorElement.h:
2524         (PickerIndicatorElement): Added a PickerIndicatorOwner member.
2525         (PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
2526         (WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
2527         (WebCore::PickerIndicatorElement::removePickerIndicatorOwner):
2528
2529 2012-11-12  Mihnea Ovidenie  <mihnea@adobe.com>
2530
2531         [CSSRegions]Add support for text-shadow in region styling
2532         https://bugs.webkit.org/show_bug.cgi?id=94472
2533
2534         Reviewed by David Hyatt.
2535
2536         Original patch by Andrei Onea.
2537         Add support for text-shadow in region styling (@-webkit-region rule).
2538         In addition to the previously supported region styling properties (background-color and color),
2539         text-shadow requires the computation of an element style in region at layout time.
2540
2541         This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
2542         can be used to retrieve the object style in region (if already cached) or to compute it
2543         on the spot. When computing the object style in region, we need to compute the style in region
2544         also for the object ancestor, up to the content nodes.
2545
2546         This patch also refactors the way styles in region are computed and stored, because
2547         we can compute the style in region not only at paint time, but also at layout time.
2548
2549         Test: fast/regions/region-style-text-shadow.html
2550
2551         * css/StyleResolver.cpp:
2552         (WebCore::StyleResolver::isValidRegionStyleProperty):
2553         Allow text-shadow to be used in region styling.
2554         * rendering/InlineBox.cpp:
2555         (WebCore::InlineBox::styleInRegion):
2556         Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
2557         Compute the style in region if not computed yet.
2558         (WebCore::InlineBox::regionDuringLayout):
2559         Retrieve the region in which an InlineBox is being flowed.
2560         * rendering/InlineBox.h:
2561         * rendering/InlineFlowBox.cpp: Take region styling into account.
2562         (WebCore::InlineFlowBox::addToLine):
2563         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
2564         * rendering/RenderRegion.cpp:
2565         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
2566         (WebCore::canCacheObjectStyleInRegion):
2567         Test if we can cache the computed style in region.
2568         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
2569         (WebCore::RenderRegion::computeStyleInRegion):
2570         (WebCore::RenderRegion::setChildrenStyleInRegion):
2571         (WebCore::setObjectHasBoxDecorationsFlag):
2572         (WebCore::RenderRegion::setObjectStyleInRegion):
2573         (WebCore::RenderRegion::clearObjectStyleInRegion):
2574         (WebCore::RenderRegion::ensureRegionStyleForObject):
2575         * rendering/RenderRegion.h:
2576
2577 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2578
2579         Unreviewed, rolling out r134154.
2580         http://trac.webkit.org/changeset/134154
2581         https://bugs.webkit.org/show_bug.cgi?id=101919
2582
2583         Causes plenty of crashes on GTK and Apple Win builders
2584         (Requested by zdobersek on #webkit).
2585
2586         * css/mediaControls.css:
2587         * css/mediaControlsQuickTime.css:
2588         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
2589         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
2590         * html/shadow/MediaControlElements.cpp:
2591         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
2592         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
2593         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
2594         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
2595         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
2596         * html/shadow/MediaControlElements.h:
2597         (MediaControlElement):
2598         (MediaControlToggleClosedCaptionsButtonElement):
2599         * html/shadow/MediaControlRootElement.cpp:
2600         (WebCore::MediaControlRootElement::MediaControlRootElement):
2601         (WebCore::MediaControlRootElement::create):
2602         (WebCore::MediaControlRootElement::setMediaController):
2603         (WebCore::MediaControlRootElement::hide):
2604         (WebCore::MediaControlRootElement::makeTransparent):
2605         (WebCore::MediaControlRootElement::reset):
2606         (WebCore::MediaControlRootElement::reportedError):
2607         * html/shadow/MediaControlRootElement.h:
2608         (WebCore):
2609         (MediaControlRootElement):
2610         * html/shadow/MediaControlRootElementChromium.cpp:
2611         (WebCore::MediaControlRootElementChromium::initializeControls):
2612         * html/shadow/MediaControls.h:
2613         (MediaControls):
2614         * platform/Language.cpp:
2615         (WebCore):
2616         * platform/Language.h:
2617         (WebCore):
2618         * rendering/RenderMediaControls.cpp:
2619         (WebCore::RenderMediaControls::paintMediaControlsPart):
2620         * rendering/RenderMediaControlsChromium.cpp:
2621         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
2622
2623 2012-11-12  Mike West  <mkwst@chromium.org>
2624
2625         'for (x in y)' requires 'var' declaration in ConsoleMessage.js
2626         https://bugs.webkit.org/show_bug.cgi?id=101908
2627
2628         Reviewed by Pavel Feldman.
2629
2630         r134166 should have included a 'var' declaration in its 'for (x in y)'
2631         loop. This patch adds the missing 'var' in order to prevent leakage into
2632         the global context.
2633
2634         * inspector/front-end/ConsoleMessage.js:
2635         (WebInspector.ConsoleMessageImpl.prototype.append):
2636         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
2637
2638 2012-11-12  Zeno Albisser  <zeno@webkit.org>
2639
2640         [Qt] MiniBrowser should not strongly depend on QtTestSupport.
2641         https://bugs.webkit.org/show_bug.cgi?id=101775
2642
2643         Introducing HAVE(QTTESTSUPPORT) to allow building
2644         MiniBrowser without QtTestSupport.
2645         This is necessary when using a production build.
2646
2647         Reviewed by Tor Arne Vestbø.
2648
2649         * Target.pri:
2650         * platform/qt/QtTestSupport.h:
2651
2652 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
2653
2654         Web Inspector: wasShown is called twice when show() is called from within wasShown
2655         https://bugs.webkit.org/show_bug.cgi?id=101858
2656
2657         Reviewed by Vsevolod Vlasov.
2658
2659         When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
2660         We now mute one of them.
2661
2662         * inspector/front-end/View.js:
2663         (WebInspector.View):
2664         (WebInspector.View.prototype._inNotification):
2665         (WebInspector.View.prototype._parentIsShowing):
2666         (WebInspector.View.prototype._callOnVisibleChildren):
2667         (WebInspector.View.prototype._processWasShown):
2668         (WebInspector.View.prototype._processWillHide):
2669         (WebInspector.View.prototype._processOnResize):
2670         (WebInspector.View.prototype._notify):
2671         (WebInspector.View.prototype.show):
2672
2673 2012-11-12  Ryosuke Niwa  <rniwa@webkit.org>
2674
2675         Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
2676         in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.
2677
2678         Furthermore, we can't update layout in updateAppearance. So do that in its call sites.
2679
2680         * editing/FrameSelection.cpp:
2681         (WebCore::FrameSelection::setSelection):
2682         (WebCore::FrameSelection::recomputeCaretRect):
2683         (WebCore::FrameSelection::updateAppearance):
2684         (WebCore::FrameSelection::setCaretVisibility):
2685
2686 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
2687
2688         Don't update style when attaching in HTMLMeterElement
2689         https://bugs.webkit.org/show_bug.cgi?id=101714
2690
2691         Reviewed by Hajime Morita.
2692
2693         HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
2694         can cause style-update prevention. The similar thing has already happened in Bug 100507.
2695
2696         Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.
2697
2698         Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html
2699
2700         * html/HTMLMeterElement.cpp:
2701         * html/HTMLMeterElement.h:
2702         (HTMLMeterElement): Removed attach(). We don't need it.
2703
2704 2012-11-09  Ryosuke Niwa  <rniwa@webkit.org>
2705
2706         Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
2707         https://bugs.webkit.org/show_bug.cgi?id=101547
2708
2709         Reviewed by Simon Fraser.
2710
2711         I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
2712         previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
2713         selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
2714         This will let us avoid doing an extra layout upon destruction and not regress repaint tests.
2715
2716         Covered by existing tests.
2717
2718         * editing/FrameSelection.cpp:
2719         (WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
2720         (WebCore::FrameSelection::prepareForDestruction): Added.
2721         (WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
2722         Also, don't update style before updating selection unless text caret is disabled since we always
2723         update the layout (including style) when text caret is enabled.
2724         * editing/FrameSelection.h:
2725         (FrameSelection):
2726         * loader/FrameLoader.cpp:
2727         (WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.
2728
2729 2012-11-11  Dongwoo Joshua Im  <dw.im@samsung.com>
2730
2731         [CSS3] Parsing the property, text-align-last.
2732         https://bugs.webkit.org/show_bug.cgi?id=99439
2733
2734         Reviewed by Julien Chaffraix.
2735
2736         This patch implements the parsing side of the "text-align-last" property specified
2737         in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
2738         Specification link : http://www.w3.org/TR/css3-text/#text-align-last
2739
2740         Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
2741                fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
2742
2743         * css/CSSComputedStyleDeclaration.cpp:
2744         (WebCore):
2745         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
2746         * css/CSSParser.cpp:
2747         (WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
2748         * css/CSSPrimitiveValueMappings.h:
2749         (WebCore):
2750         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2751         (WebCore::CSSPrimitiveValue::operator ETextAlignLast):
2752         * css/CSSProperty.cpp:
2753         (WebCore::CSSProperty::isInheritedProperty):
2754         * css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
2755         * css/StyleBuilder.cpp:
2756         (WebCore::StyleBuilder::StyleBuilder):
2757         * css/StylePropertySet.cpp:
2758         (WebCore):
2759         * css/StyleResolver.cpp:
2760         (WebCore::StyleResolver::applyProperty):
2761         * rendering/style/RenderStyle.h:
2762         * rendering/style/RenderStyleConstants.h:
2763         * rendering/style/StyleRareInheritedData.cpp:
2764         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
2765         (WebCore::StyleRareInheritedData::operator==):
2766         * rendering/style/StyleRareInheritedData.h:
2767         (StyleRareInheritedData): Add m_textAlignLast.
2768
2769 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
2770
2771         [Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
2772         https://bugs.webkit.org/show_bug.cgi?id=101881
2773
2774         Reviewed by Kent Tamura.
2775
2776         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
2777         setPseudo()/pseudo() instead.
2778
2779         No new tests, simple refacotring.
2780
2781         * html/HTMLKeygenElement.cpp:
2782         (WebCore::KeygenSelectElement::KeygenSelectElement):
2783         (KeygenSelectElement):
2784
2785 2012-11-11  Adam Barth  <abarth@webkit.org>
2786
2787         Many DOMWindowProperties would benefit from being ScriptWrappable
2788         https://bugs.webkit.org/show_bug.cgi?id=101887
2789
2790         Reviewed by Kentaro Hara.
2791
2792         These object are only ever created at the behest of script, which means
2793         making them ScriptWrappable is a win.
2794
2795         * page/BarInfo.h:
2796         * page/Console.h:
2797         * page/Crypto.h:
2798         * page/History.h:
2799         * page/Location.h:
2800         * page/Navigator.h:
2801         * page/Performance.h:
2802
2803 2012-11-11  Kentaro Hara  <haraken@chromium.org>
2804
2805         [V8] HTMLDocument::all() needs not to be custom
2806         https://bugs.webkit.org/show_bug.cgi?id=101875
2807
2808         Reviewed by Adam Barth.
2809
2810         We can easily remove the custom getter from V8 because the
2811         custom setter sets .all by ForceSet(). On the other hand,
2812         it is non-trivial to remove the custom getter from JSC
2813         because the custom setter sets .all by putDirect()
2814         and the custom getter wants to get it by getDirect().
2815
2816         No tests. No change in behavior.
2817
2818         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
2819         * html/HTMLDocument.idl:
2820
2821 2012-11-11  Kentaro Hara  <haraken@chromium.org>
2822
2823         [V8] V8Console::memoryAttrGetter() needs not to be custom
2824         https://bugs.webkit.org/show_bug.cgi?id=101873
2825
2826         Reviewed by Adam Barth.
2827
2828         No tests. No change in behavior.
2829
2830         * bindings/v8/custom/V8ConsoleCustom.cpp:
2831         (WebCore):
2832         * page/Console.idl:
2833
2834 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
2835
2836         [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
2837         https://bugs.webkit.org/show_bug.cgi?id=101180
2838
2839         Reviewed by Dimitri Glazkov.
2840
2841         This is a preparation patch for Bug 100451.
2842
2843         We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
2844         When an element attribute is changed, we might have to invalidate content distribution,
2845         however it's high cost operation. So we would like to check RuleFeatureSet used in
2846         select attributes to determine we really need to invalidate distribution.
2847
2848         Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
2849         first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
2850         For the performance reason, we have a flag to check whether we need to collect features again.
2851
2852         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
2853
2854         * WebCore.exp.in:
2855         * dom/ElementShadow.cpp:
2856         (WebCore::ElementShadow::ElementShadow):
2857         (WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
2858         nodes (and their ShadowDOM).
2859         (WebCore):
2860         (WebCore::ElementShadow::ensureSelectFeatureSetCollected):
2861         (WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
2862         ShadowDOM. We need to collect id, class, and attribute names.
2863         * dom/ElementShadow.h:
2864         (WebCore::ElementShadow::shouldCollectSelectFeatureSet):
2865         (ElementShadow):
2866         (WebCore::ElementShadow::hasSelectorForId):
2867         (WebCore):
2868         (WebCore::ElementShadow::hasSelectorForClass):
2869         (WebCore::ElementShadow::hasSelectorForAttribute):
2870         * html/shadow/HTMLContentElement.cpp:
2871         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
2872         (WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
2873         (WebCore::HTMLContentElement::removedFrom): ditto.
2874         * html/shadow/HTMLContentElement.h:
2875         (WebCore::toHTMLContentElement):
2876         (WebCore):
2877         * testing/Internals.cpp:
2878         (WebCore::Internals::hasSelectorForIdInShadow):
2879         (WebCore):
2880         (WebCore::Internals::hasSelectorForClassInShadow):
2881         (WebCore::Internals::hasSelectorForAttributeInShadow):
2882         * testing/Internals.h:
2883         (Internals):
2884         * testing/Internals.idl:
2885
2886 2012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>
2887
2888         Unreviewed, rolling out r134144.
2889         http://trac.webkit.org/changeset/134144
2890         https://bugs.webkit.org/show_bug.cgi?id=101876
2891
2892         seems to break win 7 chromium browser test (Requested by
2893         hayato on #webkit).
2894
2895         * WebCore.exp.in:
2896         * page/EventHandler.cpp:
2897         (WebCore):
2898         (WebCore::EventHandler::handleMouseMoveEvent):
2899         * page/EventHandler.h:
2900         (EventHandler):
2901         * testing/Internals.cpp:
2902         * testing/Internals.h:
2903         * testing/Internals.idl:
2904
2905 2012-11-11  Kent Tamura  <tkent@chromium.org>
2906
2907         Internals: MockPagePopup should not update DOM structure during detach()
2908         https://bugs.webkit.org/show_bug.cgi?id=101710
2909
2910         Reviewed by Hajime Morita.
2911
2912         PickerIndicatorElement::detach calls
2913         MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
2914         which remove the mock iframe from the tree. But updating the tree during
2915         detach() is dangerous.
2916
2917         MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
2918         requests to call 'close' asynchronously, and 'close' removes the mock
2919         iframe. We need to change MockPagePopup so that it is ref-couted and has
2920         a timer.
2921
2922         No new tests. This is a change for the test harness.
2923
2924         * testing/MockPagePopupDriver.cpp:
2925         (MockPagePopup): Make this ref-counted, add closeLater, add close, and
2926         add m_closeTimer.
2927         (WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
2928         (WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
2929         (WebCore::MockPagePopup::closeLater):
2930         - Add one reference to avoid destruction by m_mockPagePopup.clear() in
2931           closePagePopup.
2932         - Notify didClosePopup here because the client expects didClosePopup is
2933           called synchronously.
2934         - Invoke the timer to call 'close'
2935         (WebCore::MockPagePopup::close):
2936         Just remove one reference. This means calling the desructor.
2937         (WebCore::MockPagePopup::~MockPagePopup):
2938         Move didClosePopup call to caloseLater.
2939         (WebCore::MockPagePopupDriver::closePagePopup):
2940         Request to close PagePopup.
2941         Clear PagePopupClient in m_pagePopupController because this object is
2942         necessary until MockPagePopup is closed, but it should not have a
2943         reference to the PagePopupClient.
2944         * testing/MockPagePopupDriver.h:
2945         (MockPagePopupDriver): Make MockPagePopup ref-counted.
2946
2947 2012-11-11  Adam Barth  <abarth@webkit.org>
2948
2949         axObjectCache code is more complicated than necessary
2950         https://bugs.webkit.org/show_bug.cgi?id=101820
2951
2952         Reviewed by Darin Adler.
2953
2954         This code should use OwnPtr rather than manually calling new/delete.
2955         Also, instead of using a "double check" pattern, we can just access the
2956         private fields on the top document directly.
2957
2958         * dom/Document.cpp:
2959         (WebCore::Document::Document):
2960         (WebCore::Document::clearAXObjectCache):
2961         (WebCore::Document::axObjectCacheExists):
2962         (WebCore):
2963         (WebCore::Document::axObjectCache):
2964         * dom/Document.h:
2965         (Document):
2966
2967 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
2968
2969         Save one call to containerForRepaint() when updating layer positions
2970         https://bugs.webkit.org/show_bug.cgi?id=101856
2971
2972         Reviewed by Dan Bernstein.
2973
2974          RenderLayer::updateLayerPositions() has already computed the repaint container,
2975          but calls computeRepaintRects() which computes it again. Computing the repaint
2976          container involves a walk back up the layer tree, so calling it during a tree
2977          traversal is costly.
2978          
2979          Fix by passing the repaint container down into computeRepaintRects().
2980
2981         * rendering/RenderLayer.cpp:
2982         (WebCore::RenderLayer::updateLayerPositions):
2983         (WebCore::RenderLayer::computeRepaintRects):
2984         (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
2985         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
2986         (WebCore::RenderLayer::setHasVisibleContent):
2987         * rendering/RenderLayer.h:
2988         (RenderLayer):
2989
2990 2012-11-11  Kenichi Ishibashi  <bashi@chromium.org>
2991
2992         WTFString::utf8() should have a mode of conversion to use replacement character
2993         https://bugs.webkit.org/show_bug.cgi?id=101678
2994
2995         Reviewed by Alexey Proskuryakov.
2996
2997         Follow the change on String::utf8()
2998
2999         No new tests. No changes in behavior.
3000
3001         * Modules/websockets/WebSocket.cpp:
3002         (WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
3003         * Modules/websockets/WebSocketChannel.cpp:
3004         (WebCore::WebSocketChannel::send): Ditto.
3005         * html/MediaFragmentURIParser.cpp:
3006         (WebCore::MediaFragmentURIParser::parseFragments): Ditto.
3007         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
3008         (WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
3009         * platform/network/blackberry/rss/RSSFilterStream.cpp:
3010         (WebCore::RSSFilterStream::convertContentToHtml): Ditto.
3011         * platform/network/blackberry/rss/RSSGenerator.cpp:
3012         (WebCore::RSSGenerator::generateHtml): Ditto.
3013
3014 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
3015
3016         Coalesce main thread scroll position updates
3017         https://bugs.webkit.org/show_bug.cgi?id=101855
3018
3019         Reviewed by Anders Carlsson.
3020
3021         When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls 
3022         from ScrollingTree would pile up on the main thread, and we'd handle several per
3023         runloop cycle when scrolling fast. This causes extra work especially on pages
3024         with position:fixed elements which must update RenderLayers on scrolling.
3025         
3026         Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
3027         scrolling updates to one per runloop.
3028
3029         * page/scrolling/ScrollingCoordinator.cpp:
3030         (WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
3031         for the scheduled scroll position update.
3032         (WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If 
3033         the timer is active and the parameters match, just update the target scroll
3034         position and return. If the params don't match, dispatch the scheduled update,
3035         and then the new one. Otherwise, prime the timer.
3036         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
3037         the existing updateMainFrameScrollPosition() with the saved values.
3038         * page/scrolling/ScrollingCoordinator.h:
3039         * page/scrolling/ScrollingTree.cpp:
3040         (WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
3041         rather than updateMainFrameScrollPosition().
3042         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
3043         (WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
3044         position elements to jiggle with the patch; we should be calling syncPosition() (which just
3045         sets the position data, without touching CA layers).
3046
3047 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
3048
3049         Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
3050         https://bugs.webkit.org/show_bug.cgi?id=101514
3051
3052         Reviewed by Tim Horton.
3053
3054         ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
3055         ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
3056         we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
3057         set the layer position (rather than just doing a 'sync').
3058
3059         * page/scrolling/ScrollingCoordinator.cpp:
3060         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
3061         * page/scrolling/ScrollingCoordinator.h:
3062         * page/scrolling/ScrollingTree.cpp:
3063         (WebCore::ScrollingTree::updateMainFrameScrollPosition):
3064         * page/scrolling/ScrollingTree.h:
3065         * page/scrolling/mac/ScrollingCoordinatorMac.h:
3066         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
3067         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
3068         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
3069
3070 2012-11-10  Sheriff Bot  <webkit.review.bot@gmail.com>
3071
3072         Unreviewed, rolling out r134069.
3073         http://trac.webkit.org/changeset/134069
3074         https://bugs.webkit.org/show_bug.cgi?id=101852
3075
3076         "It is a wrong way to fix the problem. See discussions in bug
3077         96614" (Requested by 1JTAAPQFJ on #webkit).
3078
3079         * bindings/js/JSDictionary.cpp:
3080         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
3081
3082 2012-11-10  Mike West  <mkwst@chromium.org>
3083
3084         Web Inspector: Multiple '%c' formatting options should all have effect.
3085         https://bugs.webkit.org/show_bug.cgi?id=101495
3086
3087         Reviewed by Pavel Feldman.
3088
3089         This patch supports multiple '%c' formatting blocks in console messages.
3090         'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
3091         do exactly what you expect: "blue!" will be blue, and "green!" will be
3092         green.
3093
3094         The implementation moves the styles off the message's parent 'span', and
3095         onto new 'span' elements that wrap the various textual bits of the
3096         message.
3097
3098         * inspector/front-end/ConsoleMessage.js:
3099         (WebInspector.ConsoleMessageImpl.prototype.):
3100         (WebInspector.ConsoleMessageImpl.prototype.append):
3101         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
3102
3103 2012-11-10  Mike West  <mkwst@chromium.org>
3104
3105         Including <CoreText/CoreText.h> breaks the chromium/mac build.
3106         https://bugs.webkit.org/show_bug.cgi?id=101851
3107
3108         Reviewed by Dan Bernstein.
3109
3110         r134146 introduced inclusion of 'CoreText/CoreText.h' in
3111         SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
3112         around, it looks like this needs to be modified to include
3113         'ApplicationServices/ApplicationServices.h'.
3114
3115         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
3116             Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
3117         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
3118             Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.
3119
3120 2012-11-10  Andreas Kling  <kling@webkit.org>
3121
3122         Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
3123         <http://webkit.org/b/101849>
3124
3125         Reviewed by Anders Carlsson.
3126
3127         Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
3128         possible moment, to avoid unnecessarily detaching and cloning from attribute data.
3129
3130         120 kB progression on Membuster3.
3131
3132         * dom/Element.cpp:
3133         (WebCore::Element::setAttributeInternal):
3134         (WebCore::Element::addAttributeInternal):
3135
3136 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
3137
3138         Some minor optimizations in RenderLayer
3139         https://bugs.webkit.org/show_bug.cgi?id=101847
3140
3141         Reviewed by Anders Carlsson.
3142
3143         Some minor performance improvements in RenderLayer code.
3144
3145         * rendering/RenderLayer.cpp:
3146         (WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
3147         so prefix it with an isInline() check which tests a bit on RenderObject.
3148         (WebCore::RenderLayer::localBoundingBox): Ditto.
3149         (WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
3150         into a local variable.
3151
3152 2012-11-10  Anders Carlsson  <andersca@apple.com>
3153
3154         Document::m_fullScreenElementStack should be a Vector
3155         https://bugs.webkit.org/show_bug.cgi?id=101844
3156
3157         Reviewed by Andreas Kling.
3158
3159         m_fullScreenElementStack is currently a Deque where elements are being prepended
3160         and removed from the beginning in LIFO order, so it can be replaced with a Vector.
3161
3162         * dom/Document.cpp:
3163         (WebCore::Document::requestFullScreenForElement):
3164         (WebCore::Document::webkitCancelFullScreen):
3165         (WebCore::Document::popFullscreenElementStack):
3166         (WebCore::Document::pushFullscreenElementStack):
3167         * dom/Document.h:
3168         (WebCore::Document::webkitFullscreenElement):
3169         (Document):
3170
3171 2012-11-10  Adam Barth  <abarth@webkit.org>
3172
3173         [V8] Clean up header includes and ifdefs in V8GCController
3174         https://bugs.webkit.org/show_bug.cgi?id=101691
3175
3176         Reviewed by Kentaro Hara.
3177
3178         This file doesn't need to include all these headers anymore.
3179
3180         * bindings/v8/V8GCController.cpp:
3181         (WebCore::workingSetEstimateMBMutex):
3182         (WebCore::V8GCController::majorGCEpilogue):
3183         (WebCore::V8GCController::checkMemoryUsage):
3184
3185 2012-11-10  Joseph Pecoraro  <pecoraro@apple.com>
3186
3187         [Mac] Guard WebCore PageVisibility Symbol Export
3188         https://bugs.webkit.org/show_bug.cgi?id=101817
3189
3190         Reviewed by Andreas Kling.
3191
3192         Guard the export with the same ENABLE guards around its definition
3193         and implementation.
3194
3195         * WebCore.exp.in:
3196
3197 2012-11-10  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
3198
3199         [css] text-decoration:none no longer valid
3200         https://bugs.webkit.org/show_bug.cgi?id=101529
3201
3202         Reviewed by Ojan Vafai.
3203
3204         This patch fixes an issue where the 'none' value was parsed as explicitly
3205         'initial' value. However true in a sense that the initial value for the
3206         'text-decoration' property is 'none', the value itself could not be parsed as
3207         'initial'.
3208
3209         The getComputedStyle layout tests for 'text-decoration' and
3210         '-webkit-text-decoration-line' CSS properties are updated with the correct
3211         results.
3212
3213         * css/CSSParser.cpp:
3214         (WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
3215         gets its own identifier value instead of explicit initial.
3216
3217 2012-11-09  Dean Jackson  <dino@apple.com>
3218
3219         Support list of tracks in caption media controls
3220         https://bugs.webkit.org/show_bug.cgi?id=101669
3221
3222         Reviewed by Eric Carlson.
3223
3224         Attempt three of commit. The first two times caused build failures on Chromium.
3225
3226         Add some new elements to the media control shadow DOM that display the list of available
3227         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
3228         where it is given a very basic design. At the moment only the list of available tracks
3229         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
3230
3231         No new tests - this doesn't expose any testable surface.
3232
3233         * css/mediaControls.css: Added default rules that hide the new elements.
3234         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
3235         * html/shadow/MediaControlElements.cpp:
3236         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
3237         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
3238         (WebCore::MediaControlClosedCaptionsContainerElement::create):
3239         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
3240         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
3241         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
3242         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
3243         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
3244         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
3245         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
3246         * html/shadow/MediaControlElements.h:
3247         (MediaControlElement):
3248         (MediaControlToggleClosedCaptionsButtonElement):
3249         (MediaControlClosedCaptionsContainerElement):
3250         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
3251         * html/shadow/MediaControlRootElement.cpp:
3252         (WebCore::MediaControlRootElement::MediaControlRootElement):
3253         (WebCore::MediaControlRootElement::create): New track container and list elements created.
3254         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
3255         (WebCore::MediaControlRootElement::hide):
3256         (WebCore::MediaControlRootElement::makeTransparent):
3257         (WebCore::MediaControlRootElement::reset):
3258         (WebCore::MediaControlRootElement::reportedError):
3259         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
3260         (WebCore):
3261         * html/shadow/MediaControlRootElement.h:
3262         (WebCore):
3263         (MediaControlRootElement):
3264         * html/shadow/MediaControlRootElementChromium.cpp:
3265         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
3266         * html/shadow/MediaControls.h:
3267         (MediaControls):
3268         * platform/Language.cpp:
3269         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
3270         * platform/Language.h:
3271         (WebCore):
3272         * rendering/RenderMediaControls.cpp:
3273         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
3274         * rendering/RenderMediaControlsChromium.cpp:
3275         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
3276
3277 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
3278
3279         Unreviewed, rolling out r134152.
3280         http://trac.webkit.org/changeset/134152
3281         https://bugs.webkit.org/show_bug.cgi?id=101831
3282
3283         broke chromium again (Requested by dino_ on #webkit).
3284
3285         * css/mediaControls.css:
3286         * css/mediaControlsQuickTime.css:
3287         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
3288         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
3289         * html/shadow/MediaControlElements.cpp:
3290         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
3291         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
3292         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
3293         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
3294         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
3295         * html/shadow/MediaControlElements.h:
3296         (MediaControlElement):
3297         (MediaControlToggleClosedCaptionsButtonElement):
3298         * html/shadow/MediaControlRootElement.cpp:
3299         (WebCore::MediaControlRootElement::MediaControlRootElement):
3300         (WebCore::MediaControlRootElement::create):
3301         (WebCore::MediaControlRootElement::setMediaController):
3302         (WebCore::MediaControlRootElement::hide):
3303         (WebCore::MediaControlRootElement::makeTransparent):
3304         (WebCore::MediaControlRootElement::reset):
3305         (WebCore::MediaControlRootElement::reportedError):
3306         * html/shadow/MediaControlRootElement.h:
3307         (WebCore):
3308         (MediaControlRootElement):
3309         * html/shadow/MediaControlRootElementChromium.cpp:
3310         (WebCore::MediaControlRootElementChromium::initializeControls):
3311         * html/shadow/MediaControls.h:
3312         (MediaControls):
3313         * platform/Language.cpp:
3314         (WebCore):
3315         * platform/Language.h:
3316         (WebCore):
3317         * rendering/RenderMediaControls.cpp:
3318         (WebCore::RenderMediaControls::paintMediaControlsPart):
3319         * rendering/RenderMediaControlsChromium.cpp:
3320         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
3321
3322 2012-11-09  Dean Jackson  <dino@apple.com>
3323
3324         Support list of tracks in caption media controls
3325         https://bugs.webkit.org/show_bug.cgi?id=101669
3326
3327         Reviewed by Eric Carlson.
3328
3329         Attempt two of commit. The first time caused a build failure on Chromium.
3330
3331         Add some new elements to the media control shadow DOM that display the list of available
3332         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
3333         where it is given a very basic design. At the moment only the list of available tracks
3334         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
3335
3336         No new tests - this doesn't expose any testable surface.
3337
3338         * css/mediaControls.css: Added default rules that hide the new elements.
3339         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
3340         * html/shadow/MediaControlElements.cpp:
3341         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
3342         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
3343         (WebCore::MediaControlClosedCaptionsContainerElement::create):
3344         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
3345         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
3346         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
3347         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
3348         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
3349         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
3350         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
3351         * html/shadow/MediaControlElements.h:
3352         (MediaControlElement):
3353         (MediaControlToggleClosedCaptionsButtonElement):
3354         (MediaControlClosedCaptionsContainerElement):
3355         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
3356         * html/shadow/MediaControlRootElement.cpp:
3357         (WebCore::MediaControlRootElement::MediaControlRootElement):
3358         (WebCore::MediaControlRootElement::create): New track container and list elements created.
3359         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
3360         (WebCore::MediaControlRootElement::hide):
3361         (WebCore::MediaControlRootElement::makeTransparent):
3362         (WebCore::MediaControlRootElement::reset):
3363         (WebCore::MediaControlRootElement::reportedError):
3364         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
3365         (WebCore):
3366         * html/shadow/MediaControlRootElement.h:
3367         (WebCore):
3368         (MediaControlRootElement):
3369         * html/shadow/MediaControlRootElementChromium.cpp:
3370         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
3371         * html/shadow/MediaControls.h:
3372         (MediaControls):
3373         * platform/Language.cpp:
3374         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
3375         * platform/Language.h:
3376         (WebCore):
3377         * rendering/RenderMediaControls.cpp:
3378         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
3379         * rendering/RenderMediaControlsChromium.cpp:
3380         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
3381
3382 2012-11-09  Ojan Vafai  <ojan@chromium.org>
3383
3384         Should only fire a single set of mouse events and update hover state once when scrolling is done
3385         https://bugs.webkit.org/show_bug.cgi?id=99940
3386
3387         Reviewed by Levi Weintraub.
3388
3389         -Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
3390         timer is fired, we ensure the actual goal of not firing fake mouse events
3391         until the scroll is completed. This is the core part of this change.
3392         -Change our mouse event throttling to keep a running average of how long
3393         mouse events take and adjust throttling appropriately.
3394         Test: fast/scrolling/fake-mouse-event-throttling.html
3395         -Maintain a minimum throttle of 100ms.
3396
3397         * page/EventHandler.cpp:
3398         (WebCore):
3399         (WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
3400         (WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
3401         Keep track of a running average instead of max. This lets us adjust throttling
3402         dynamically without punishing a page for having a single mouse event handler
3403         that takes disproportionately long.
3404         (RunningAverageDurationTracker):
3405         (WebCore::EventHandler::EventHandler):
3406         (WebCore::EventHandler::clear):
3407         (WebCore::EventHandler::mouseMoved):
3408         (WebCore::EventHandler::handleMouseMoveEvent):
3409         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
3410         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
3411         * page/EventHandler.h:
3412         (EventHandler):
3413         * platform/Timer.h:
3414         (WebCore::DeferrableOneShotTimer::setDelay):
3415         (WebCore::DeferrableOneShotTimer::delay):
3416         Add a way of adjusting the timer delay.
3417
3418 2012-11-09  Rick Byers  <rbyers@chromium.org>
3419
3420         Move chromium to USE(LAZY_NATIVE_CURSOR)
3421         https://bugs.webkit.org/show_bug.cgi?id=101501
3422
3423         Reviewed by Adam Barth.
3424
3425         This simplifies cursor handling in chromium and unifies it with other
3426         ports for easier code sharing and testing by moving to the
3427         USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.
3428
3429         PlatformCursor adds no value in chromium since the sandboxing model
3430         requires the cursor information be marshalled to the browser process
3431         before being turned into a real OS cursor.
3432
3433         Test: fast/events/mouse-cursor.html
3434
3435         * WebCore.gypi:
3436         * platform/Cursor.h:
3437         (WebCore):
3438         * platform/chromium/CursorChromium.cpp:
3439         (WebCore::Cursor::Cursor):
3440         (WebCore::Cursor::operator=):
3441         (WebCore::Cursor::~Cursor):
3442         (WebCore::Cursor::ensurePlatformCursor):
3443         * platform/chromium/PlatformCursor.h: Removed.
3444
3445 2012-11-09  Noam Rosenthal  <noam.rosenthal@nokia.com>
3446
3447         Allow ports to decide whether an image should be directly composited
3448         https://bugs.webkit.org/show_bug.cgi?id=101827
3449
3450         Reviewed by Simon Fraser.
3451
3452         Tested by compositing/tiling/huge-layer-img.html.
3453
3454         * platform/graphics/GraphicsLayer.h:
3455         (WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
3456             Allow the GraphicsLayer implementation to decide if the image can be composited.
3457
3458         * rendering/RenderLayerBacking.cpp:
3459         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
3460             Take onto account the new shouldDirectlyCompositeImage check.
3461
3462 2012-11-09  Dan Bernstein  <mitz@apple.com>
3463
3464         SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
3465         https://bugs.webkit.org/show_bug.cgi?id=101799
3466
3467         Reviewed by Alexey Proskuryakov.
3468
3469         In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
3470         different behavior from not setting it at all. We can get the correct behavior and greatly
3471         simplify the code by not setting attributes to their default values.
3472
3473         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
3474         Removed redundant #import directives and changed the remaining ones to #include.
3475         (WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
3476         only add attributes that have non-default values.
3477
3478 2012-11-09  Rick Byers  <rbyers@chromium.org>
3479
3480         No tests for changing mouse cursors
3481         https://bugs.webkit.org/show_bug.cgi?id=100550
3482
3483         Reviewed by Adam Barth.
3484
3485         Add infrastructure to keep track of the last set mouse cursor,
3486         and then to query it from DumpRenderTree.
3487
3488         Test: fast/events/mouse-cursor.html
3489
3490         * WebCore.exp.in: Add Cursor copy ctor export
3491         * page/EventHandler.cpp:
3492         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
3493         * page/EventHandler.h:
3494         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
3495         * testing/Internals.cpp:
3496         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
3497         (WebCore):
3498         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
3499         * testing/Internals.h: Declare getCurrentCursorInfo
3500         * testing/Internals.idl: Declare getCurrentCursorInfo
3501
3502 2012-11-09  Huang Dongsung  <luxtella@company100.net>
3503
3504         Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
3505         https://bugs.webkit.org/show_bug.cgi?id=101701
3506
3507         Reviewed by Noam Rosenthal.
3508
3509         Add TiledBackingStore::rect() because CoordinatedTile needs to know
3510         m_rect of TiledBackingStore.
3511
3512         * platform/graphics/TiledBackingStore.h:
3513         (WebCore::TiledBackingStore::rect):
3514
3515 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
3516
3517         Unreviewed, rolling out r134139.
3518         http://trac.webkit.org/changeset/134139
3519         https://bugs.webkit.org/show_bug.cgi?id=101823
3520
3521         breaks chromium (android) build (Requested by thorton on
3522         #webkit).
3523
3524         * css/mediaControls.css:
3525         * css/mediaControlsQuickTime.css:
3526         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
3527         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
3528         * html/shadow/MediaControlElements.cpp:
3529         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
3530         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
3531         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
3532         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
3533         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
3534         * html/shadow/MediaControlElements.h:
3535         (MediaControlElement):
3536         (MediaControlToggleClosedCaptionsButtonElement):
3537         * html/shadow/MediaControlRootElement.cpp:
3538         (WebCore::MediaControlRootElement::MediaControlRootElement):
3539         (WebCore::MediaControlRootElement::create):
3540         (WebCore::MediaControlRootElement::setMediaController):
3541         (WebCore::MediaControlRootElement::hide):
3542         (WebCore::MediaControlRootElement::makeTransparent):
3543         (WebCore::MediaControlRootElement::reset):
3544         (WebCore::MediaControlRootElement::reportedError):
3545         * html/shadow/MediaControlRootElement.h:
3546         (WebCore):
3547         (MediaControlRootElement):
3548         * html/shadow/MediaControlRootElementChromium.cpp:
3549         (WebCore::MediaControlRootElementChromium::initializeControls):
3550         * html/shadow/MediaControls.h:
3551         (MediaControls):
3552         * platform/Language.cpp:
3553         (WebCore):
3554         * platform/Language.h:
3555         (WebCore):
3556
3557 2012-11-09  Huang Dongsung  <luxtella@company100.net>
3558
3559         [TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
3560         https://bugs.webkit.org/show_bug.cgi?id=101675
3561
3562         Reviewed by Noam Rosenthal.
3563
3564         Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
3565         value equals image->nativeImageForCurrentFrame() by change, we can encounter
3566         undefined behavior.
3567
3568         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3569         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
3570         (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
3571
3572 2012-11-09  Dean Jackson  <dino@apple.com>
3573
3574         Support list of tracks in caption media controls
3575         https://bugs.webkit.org/show_bug.cgi?id=101669
3576
3577         Reviewed by Eric Carlson.
3578
3579         Add some new elements to the media control shadow DOM that display the list of available
3580         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
3581         where it is given a very basic design. At the moment only the list of available tracks
3582         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
3583
3584         No new tests - this doesn't expose any testable surface.
3585
3586         * css/mediaControls.css: Added default rules that hide the new elements.
3587         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
3588         * html/shadow/MediaControlElements.cpp:
3589         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
3590         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
3591         (WebCore::MediaControlClosedCaptionsContainerElement::create):
3592         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
3593         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
3594         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
3595         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
3596         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
3597         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
3598         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
3599         * html/shadow/MediaControlElements.h:
3600         (MediaControlElement):
3601         (MediaControlToggleClosedCaptionsButtonElement):
3602         (MediaControlClosedCaptionsContainerElement):
3603         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
3604         * html/shadow/MediaControlRootElement.cpp:
3605         (WebCore::MediaControlRootElement::MediaControlRootElement):
3606         (WebCore::MediaControlRootElement::create): New track container and list elements created.
3607         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
3608         (WebCore::MediaControlRootElement::hide):
3609         (WebCore::MediaControlRootElement::makeTransparent):
3610         (WebCore::MediaControlRootElement::reset):
3611         (WebCore::MediaControlRootElement::reportedError):
3612         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
3613         (WebCore):
3614         * html/shadow/MediaControlRootElement.h:
3615         (WebCore):
3616         (MediaControlRootElement):
3617         * html/shadow/MediaControlRootElementChromium.cpp:
3618         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
3619         * html/shadow/MediaControls.h:
3620         (MediaControls):
3621         * platform/Language.cpp:
3622         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
3623         * platform/Language.h:
3624         (WebCore):
3625
3626 2012-11-09  Noel Gordon  <noel.gordon@gmail.com>
3627
3628         [chromium] Should pass fast/images/paletted-png-with-color-profile.html
3629         https://bugs.webkit.org/show_bug.cgi?id=101551
3630
3631         Reviewed by Adam Barth.
3632
3633         Support decoding color PALETTE images that have an ICC color profile.
3634
3635         Covered by fast/images/png-suite/test.html and many other fast/image tests.
3636
3637         * platform/image-decoders/png/PNGImageDecoder.cpp:
3638         (WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
3639         transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
3640         corrected. Use the transparency count from the tRNS reader to detect the expansion
3641         of RGB and PALLETE image pixels to RGBA.
3642
3643 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
3644
3645         Correct hit-test point scaling for document.elementFromPoint
3646         https://bugs.webkit.org/show_bug.cgi?id=101798
3647
3648         Reviewed by Adam Barth.
3649
3650         The hit-test point come from user JavaScript is in the document coordinate.
3651         Convert to the frame coordinate with correct scale factor for hit test.
3652
3653         Test: fast/dom/elementFromPoint-scaled-scrolled.html
3654
3655         * dom/Document.cpp:
3656         (WebCore::nodeFromPoint):
3657
3658 2012-11-09  Alec Flett  <alecflett@chromium.org>
3659
3660         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
3661         https://bugs.webkit.org/show_bug.cgi?id=101415
3662
3663         Reviewed by Tony Chang.
3664
3665         Combine abstract interface IDBBackingStore with its only
3666         implementation, IDBLevelDBBackingStore, to reduce code
3667         complexity. The legacy structure existed to support a SQLLite
3668         IDBBackingStore, but it is no longer worth the complexity to
3669         support this abstraction.
3670
3671         Changes include:
3672         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
3673
3674         2) Merge together IDBBackingStore's inner classes: Cursor,
3675         Transaction, and ObjectStoreRecordIdentfier with their respective
3676         subclasses in IDBLevelDBBackingStore.
3677
3678         3) Simplifying the inner Transaction class to not be refcounted or
3679         virtualized, to allow it to be a simple concrete member of its
3680         owner, IDBTransactionBackendImpl.
3681
3682         No new tests as this is purely a refactor.
3683
3684         * Modules/indexeddb/IDBBackingStore.cpp:
3685         (WebCore::recordInternalError):
3686         (WebCore::setUpMetadata):
3687         (WebCore::IDBBackingStore::IDBBackingStore):
3688         (WebCore):
3689         (WebCore::IDBBackingStore::~IDBBackingStore):
3690         (WebCore::IDBBackingStore::open):
3691         (WebCore::IDBBackingStore::getDatabaseNames):
3692         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
3693         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
3694         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
3695         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
3696         (WebCore::deleteRange):
3697         (WebCore::IDBBackingStore::deleteDatabase):
3698         (WebCore::IDBBackingStore::getObjectStores):
3699         (WebCore::setMaxObjectStoreId):
3700         (WebCore::IDBBackingStore::createObjectStore):
3701         (WebCore::IDBBackingStore::deleteObjectStore):
3702         (WebCore::IDBBackingStore::getRecord):
3703         (WebCore::IDBBackingStore::putRecord):
3704         (WebCore::IDBBackingStore::clearObjectStore):
3705         (WebCore::IDBBackingStore::deleteRecord):
3706         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
3707         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
3708         (WebCore::IDBBackingStore::keyExistsInObjectStore):
3709         (WebCore::IDBBackingStore::getIndexes):
3710         (WebCore::setMaxIndexId):
3711         (WebCore::IDBBackingStore::createIndex):
3712         (WebCore::IDBBackingStore::deleteIndex):
3713         (WebCore::IDBBackingStore::putIndexDataForRecord):
3714         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
3715         (WebCore::IDBBackingStore::findKeyInIndex):
3716         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
3717         (WebCore::IDBBackingStore::keyExistsInIndex):
3718         (WebCore::IDBBackingStore::Cursor::Cursor):
3719         (WebCore::IDBBackingStore::Cursor::firstSeek):
3720         (WebCore::IDBBackingStore::Cursor::advance):
3721         (WebCore::IDBBackingStore::Cursor::continueFunction):
3722         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
3723         (WebCore::IDBBackingStore::Cursor::isPastBounds):
3724         (WebCore::ObjectStoreKeyCursorImpl::create):
3725         (ObjectStoreKeyCursorImpl):
3726         (WebCore::ObjectStoreKeyCursorImpl::value):
3727         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
3728         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
3729         (WebCore::ObjectStoreCursorImpl::create):
3730         (ObjectStoreCursorImpl):
3731         (WebCore::ObjectStoreCursorImpl::value):
3732         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
3733         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
3734         (WebCore::IndexKeyCursorImpl::create):
3735         (IndexKeyCursorImpl):
3736         (WebCore::IndexKeyCursorImpl::value):
3737         (WebCore::IndexKeyCursorImpl::primaryKey):
3738         (WebCore::IndexKeyCursorImpl::recordIdentifier):
3739         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
3740         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
3741         (WebCore::IndexCursorImpl::create):
3742         (IndexCursorImpl):
3743         (WebCore::IndexCursorImpl::value):
3744         (WebCore::IndexCursorImpl::primaryKey):
3745         (WebCore::IndexCursorImpl::recordIdentifier):
3746         (WebCore::IndexCursorImpl::IndexCursorImpl):
3747         (WebCore::IndexCursorImpl::loadCurrentRow):
3748         (WebCore::objectStoreCursorOptions):
3749         (WebCore::indexCursorOptions):
3750         (WebCore::IDBBackingStore::openObjectStoreCursor):
3751         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
3752         (WebCore::IDBBackingStore::openIndexKeyCursor):
3753         (WebCore::IDBBackingStore::openIndexCursor):
3754         (WebCore::IDBBackingStore::Transaction::Transaction):
3755         (WebCore::IDBBackingStore::Transaction::begin):
3756         (WebCore::IDBBackingStore::Transaction::commit):
3757         (WebCore::IDBBackingStore::Transaction::rollback):
3758         * Modules/indexeddb/IDBBackingStore.h:
3759         (WebCore):
3760         (IDBBackingStore):
3761         (RecordIdentifier):
3762         (WebCore::IDBBackingStore::RecordIdentifier::create):
3763         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
3764         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
3765         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
3766         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
3767         (WebCore::IDBBackingStore::RecordIdentifier::version):
3768         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
3769         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
3770         (Transaction):
3771         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
3772         (CursorOptions):
3773         (Cursor):
3774         (WebCore::IDBBackingStore::Cursor::Cursor):
3775         (WebCore::IDBBackingStore::Cursor::key):
3776         (WebCore::IDBBackingStore::Cursor::primaryKey):
3777         (WebCore::IDBBackingStore::Cursor::~Cursor):
3778         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
3779         (WebCore::IDBFactoryBackendImpl::openBackingStore):
3780         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
3781         (WebCore::IDBIndexBackendImpl::countInternal):
3782         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
3783         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3784         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
3785         (WebCore::IDBObjectStoreBackendImpl::putInternal):
3786         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
3787         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
3788         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
3789         (WebCore::IDBTransactionBackendImpl::abort):
3790         (WebCore::IDBTransactionBackendImpl::commit):
3791         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
3792         * Modules/indexeddb/IDBTransactionBackendImpl.h:
3793         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
3794         * WebCore.xcodeproj/project.pbxproj:
3795
3796 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
3797
3798         Correct scroll adjustment for touchEvent.clientX/clientY
3799         https://bugs.webkit.org/show_bug.cgi?id=101800
3800
3801         Reviewed by Adam Barth.
3802
3803         FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
3804         Convert to document coordinate before passing to JavaScript.
3805
3806         Test: fast/events/touch/touch-scaled-scrolled.html
3807
3808         * dom/Touch.cpp:
3809         (WebCore::contentsX):
3810         (WebCore::contentsY):
3811
3812 2012-11-09  Alexandru Chiculita  <achicu@adobe.com>
3813
3814         [Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
3815         https://bugs.webkit.org/show_bug.cgi?id=98990
3816
3817         Reviewed by Noam Rosenthal.
3818
3819         Added code that draws the Custom Filter in the TextureMapperGL. Also added 
3820         required code to make a depth buffer for a BitmapTextureGL.
3821
3822         Note that the code is not optimized yet, so it will always recompile the shader.
3823
3824         Test: css3/filters/custom/composited/custom-filter-blend-modes.html
3825
3826         * platform/graphics/texmap/TextureMapperGL.cpp:
3827         (WebCore::BitmapTextureGL::BitmapTextureGL):
3828         (WebCore::getPassesRequiredForFilter):
3829         (WebCore):
3830         (WebCore::TextureMapperGL::drawUsingCustomFilter):
3831         (WebCore::BitmapTextureGL::applyFilters):
3832         (WebCore::BitmapTextureGL::initializeDepthBuffer):
3833         (WebCore::BitmapTextureGL::~BitmapTextureGL):
3834         * platform/graphics/texmap/TextureMapperGL.h:
3835         (BitmapTextureGL):
3836
3837 2012-11-09  Sadrul Habib Chowdhury  <sadrul@chromium.org>
3838
3839         CustomEvent: Allow taking in a serialized value during initialization.
3840         https://bugs.webkit.org/show_bug.cgi?id=101348
3841
3842         Reviewed by Adam Barth.
3843
3844         If a CustomEvent is initialized using a serialized value, then for each access
3845         to |detail|, the value is deserialized first. This way, each world gets a different
3846         deserialization.
3847
3848         * UseV8.cmake:
3849         * WebCore.gypi:
3850         * bindings/v8/V8HiddenPropertyName.h:
3851         (WebCore):
3852         * bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
3853         (WebCore):
3854         (WebCore::V8CustomEvent::detailAccessorGetter):
3855         * dom/CustomEvent.cpp:
3856         (WebCore::CustomEvent::initCustomEvent):
3857         (WebCore):
3858         * dom/CustomEvent.h:
3859         (CustomEvent):
3860         (WebCore::CustomEvent::serializedScriptValue):
3861         * dom/CustomEvent.idl:
3862
3863 2012-11-09  Brady Eidson  <beidson@apple.com>
3864
3865         Implement WebResourceBuffer::isEmpty()
3866         https://bugs.webkit.org/show_bug.cgi?id=101805
3867
3868         Reviewed by Alexey Proskuryakov.
3869
3870         This is required to make the existing subresource loading in NetworkProcess work correctly,
3871         as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver 
3872         the data to the ResourceLoader.
3873
3874         No new tests (No change in behavior in any configuration we test.)
3875
3876         * loader/ResourceBuffer.h: Make isEmpty() virtual.
3877
3878 2012-11-09  Michael Saboff  <msaboff@apple.com>
3879
3880         HTML Attributes names and values should be created as 8 bit string where possible
3881         https://bugs.webkit.org/show_bug.cgi?id=101781
3882
3883         Reviewed by Filip Pizlo.
3884
3885         Given that almost all attribute names and values are lower case ASCII, we should try to
3886         create 8 bit strings to process them.  Creating an AtomicString already tries to make
3887         an 8 bit string, so that didn't need to change.
3888
3889         No new tests, functionality covered by existing tests.
3890
3891         * html/HTMLViewSourceDocument.cpp:
3892         (WebCore::HTMLViewSourceDocument::processTagToken):
3893         * html/parser/HTMLMetaCharsetParser.cpp:
3894         (WebCore::HTMLMetaCharsetParser::processMeta):
3895         * html/parser/HTMLPreloadScanner.cpp:
3896         (WebCore::PreloadTask::processAttributes):
3897
3898 2012-11-09  Dana Jansens  <danakj@chromium.org>
3899
3900         [chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
3901         https://bugs.webkit.org/show_bug.cgi?id=101795
3902
3903         Reviewed by James Robinson.
3904
3905         * WebCore.gyp/WebCore.gyp:
3906
3907 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
3908
3909         Unreviewed, rolling out r134101.
3910         http://trac.webkit.org/changeset/134101
3911         https://bugs.webkit.org/show_bug.cgi?id=101790
3912
3913         IDBDatabaseBackendTest.BackingStoreRetention failing
3914         (Requested by jsbell|gardener on #webkit).
3915
3916         * GNUmakefile.list.am:
3917         * Modules/indexeddb/IDBBackingStore.cpp:
3918         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
3919         (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
3920         (WebCore::IDBLevelDBBackingStore::open):
3921         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
3922         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
3923         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
3924         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
3925         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
3926         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
3927         (WebCore::IDBLevelDBBackingStore::getObjectStores):
3928         (WebCore::IDBLevelDBBackingStore::createObjectStore):
3929         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
3930         (WebCore::IDBLevelDBBackingStore::getRecord):
3931         (WebCore):
3932         (WebCore::IDBLevelDBBackingStore::putRecord):
3933         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
3934         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
3935         (WebCore::IDBLevelDBBackingStore::deleteRecord):
3936         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
3937         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
3938         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
3939         (WebCore::IDBLevelDBBackingStore::getIndexes):
3940         (WebCore::IDBLevelDBBackingStore::createIndex):
3941         (WebCore::IDBLevelDBBackingStore::deleteIndex):
3942         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
3943         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
3944         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
3945         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
3946         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
3947         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
3948         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
3949         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
3950         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
3951         (WebCore::IDBLevelDBBackingStore::createTransaction):
3952         (WebCore::IDBLevelDBBackingStore::Transaction::create):
3953         (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
3954         (WebCore::IDBLevelDBBackingStore::Transaction::begin):
3955         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
3956         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
3957         (WebCore::IDBLevelDBBackingStore::backingStoreExists):
3958         * Modules/indexeddb/IDBBackingStore.h:
3959         (WebCore):
3960         (WebCore::IDBBackingStore::~IDBBackingStore):
3961         (IDBBackingStore):
3962         (RecordIdentifier):
3963         (WebCore::IDBBackingStore::Cursor::~Cursor):
3964         (WebCore::IDBBackingStore::Transaction::~Transaction):
3965         (Transaction):
3966         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
3967         (WebCore::IDBFactoryBackendImpl::openBackingStore):
3968         * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
3969         (WebCore):
3970         (IDBLevelDBBackingStore):
3971         (Transaction):
3972         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
3973         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
3974         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
3975         (WebCore::IDBObjectStoreBackendImpl::putInternal):
3976         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
3977         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
3978         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
3979         (WebCore::IDBTransactionBackendImpl::abort):
3980         (WebCore::IDBTransactionBackendImpl::commit):
3981         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
3982         * Modules/indexeddb/IDBTransactionBackendImpl.h:
3983         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
3984         * WebCore.xcodeproj/project.pbxproj:
3985
3986 2012-11-09  Erik Arvidsson  <arv@chromium.org>
3987
3988         REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
3989         https://bugs.webkit.org/show_bug.cgi?id=101627
3990
3991         Reviewed by Alexey Proskuryakov.
3992
3993         We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
3994         was changed. If an element is moved from a standards document to a quirks mode document the
3995         m_classNamesForQuirksMode would not be up to date which lead to wrong results.
3996
3997         Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).
3998
3999         Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html
4000
4001         * html/ClassList.cpp:
4002         (WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
4003                                           it is up to date.
4004         * html/ClassList.h:
4005
4006 2012-11-09  Alec Flett  <alecflett@chromium.org>
4007
4008         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
4009         https://bugs.webkit.org/show_bug.cgi?id=101415
4010
4011         Reviewed by Tony Chang.
4012
4013         Combine abstract interface IDBBackingStore with its only
4014         implementation, IDBLevelDBBackingStore, to reduce code
4015         complexity. The legacy structure existed to support a SQLLite
4016         IDBBackingStore, but it is no longer worth the complexity to
4017         support this abstraction.
4018
4019         Changes include:
4020         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
4021
4022         2) Merge together IDBBackingStore's inner classes: Cursor,
4023         Transaction, and ObjectStoreRecordIdentfier with their respective
4024         subclasses in IDBLevelDBBackingStore.
4025
4026         3) Simplifying the inner Transaction class to not be refcounted or
4027         virtualized, to allow it to be a simple concrete member of its
4028         owner, IDBTransactionBackendImpl.
4029
4030         No new tests as this is purely a refactor.
4031
4032         * Modules/indexeddb/IDBBackingStore.cpp:
4033         (WebCore::recordInternalError):
4034         (WebCore::setUpMetadata):
4035         (WebCore::IDBBackingStore::IDBBackingStore):
4036         (WebCore):
4037         (WebCore::IDBBackingStore::~IDBBackingStore):
4038         (WebCore::IDBBackingStore::open):
4039         (WebCore::IDBBackingStore::getDatabaseNames):
4040         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
4041         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
4042         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
4043         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
4044         (WebCore::deleteRange):
4045         (WebCore::IDBBackingStore::deleteDatabase):
4046         (WebCore::IDBBackingStore::getObjectStores):
4047         (WebCore::setMaxObjectStoreId):
4048         (WebCore::IDBBackingStore::createObjectStore):
4049         (WebCore::IDBBackingStore::deleteObjectStore):
4050         (WebCore::IDBBackingStore::getRecord):
4051         (WebCore::IDBBackingStore::putRecord):
4052         (WebCore::IDBBackingStore::clearObjectStore):
4053         (WebCore::IDBBackingStore