5a08561b58c69c3eb2da761979d12c6448590f1e
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
2
3         Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
4
5         * rendering/RenderLayer.cpp:
6         (WebCore::RenderLayer::paintOverflowControls):
7
8 2012-11-16  Benjamin Poulain  <bpoulain@apple.com>
9
10         Improve the performance of rect transform
11         https://bugs.webkit.org/show_bug.cgi?id=101828
12
13         Reviewed by Simon Fraser.
14
15         Mapping a rect and a quad by a transform is a common operation because
16         we use it to recompute the repaint rect, overflow rect, etc.
17
18         The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
19         Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
20         and perform many comparison.
21         Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
22         too many.
23
24         This patch just cut the intermediary calls.
25
26         On ARM, putting the operation together also has the advantage of loading the matrix
27         only once in registers and reusing it for every point.
28
29         * platform/graphics/transforms/TransformationMatrix.cpp:
30         (WebCore::TransformationMatrix::mapPoint):
31         (WebCore::TransformationMatrix::mapRect):
32         * platform/graphics/transforms/TransformationMatrix.h:
33         (WebCore):
34         (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
35         point project without doing isIdentityOrTranslation().
36
37 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
38
39         Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
40         https://bugs.webkit.org/show_bug.cgi?id=102581
41
42         Reviewed by Dan Bernstein.
43
44         isBlockFlow() is a virtual function call, and shows up in profiles of
45         Facebook pages as called from RenderBox::computeRectForRepaint().
46         
47         It's faster to do the hasColumns() bit-check first. Also replace
48         a call to layer() with the hasLayer() bit-check.        
49
50         * rendering/RenderBox.cpp:
51         (WebCore::RenderBox::computeRectForRepaint):
52
53 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
54
55         Unreviewed, rolling out r134817.
56         http://trac.webkit.org/changeset/134817
57         https://bugs.webkit.org/show_bug.cgi?id=102576
58
59         Broke iframes and causing tons of crashes on ClusterFuzz
60         (Requested by inferno-sec on #webkit).
61
62         * dom/ContainerNode.cpp:
63         (WebCore::willRemoveChildren):
64         * dom/ContainerNodeAlgorithms.cpp:
65         (WebCore::ChildFrameDisconnector::collectDescendant):
66         * dom/ContainerNodeAlgorithms.h:
67         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
68         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
69         (ChildFrameDisconnector):
70         (WebCore::ChildFrameDisconnector::collectDescendant):
71         (WebCore::ChildFrameDisconnector::disconnect):
72         * dom/Node.cpp:
73         * dom/Node.h:
74         (Node):
75         * dom/NodeRareData.h:
76         (WebCore::NodeRareData::NodeRareData):
77         (NodeRareData):
78         * html/HTMLFrameOwnerElement.cpp:
79         (WebCore::HTMLFrameOwnerElement::setContentFrame):
80         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
81
82 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
83
84         Fix overlay scrollbar painting in compositing layers
85         https://bugs.webkit.org/show_bug.cgi?id=102442
86
87         Reviewed by Beth Dakin.
88
89         There were two issues with overlay scrollbar painting in
90         compositing layers.
91         
92         First, we'd only ever call setContainsDirtyOverlayScrollbars()
93         on the RenderView's layer, even when encountering an overlay scrollbar
94         in some descendant compositing layer. This meant that we'd never
95         run the paintOverlayScrollbars() code for those child compositing
96         layers, so sometimes scrollbars were missing there.
97         
98         Even after fixing that, we would fail to render scrollbars that
99         were not in the composited RenderLayer itself. This happened because
100         we called into RenderLayer::paintOverlayScrollbars(), which called
101         paintLayer() with flags that only said to paint the overlay scrollbars
102         but not any descendants, so this paint path would not walk child
103         RenderLayers.
104         
105         Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
106         ScrollView which is no longer used.
107
108         * platform/ScrollView.cpp:
109         (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
110         (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
111         * platform/ScrollView.h:
112         * rendering/RenderLayer.cpp:
113         (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
114         on the compositing ancestor or the root.
115         Remove call to setContainsScrollableAreaWithOverlayScrollbars().
116         (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
117         scrollbars, no need to say we have transparency, and no need to use 
118         temporary clip rects.
119         (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
120         check here was only needed because the compositing entrypoint to painting
121         overlay scrollbars went via paintLayer(), which isn't normally used as
122         a composited painting entry point. Now that we no longer call that, we
123         don't need this special check.
124         * rendering/RenderLayerBacking.cpp:
125         (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
126         painting via paintLayerContents(), not paintOverlayScrollbars(), since
127         the latter does not traverse sublayers.
128
129 2012-11-16  Joshua Bell  <jsbell@chromium.org>
130
131         IndexedDB: Assert hit when getting non-existent object store in version change transaction
132         https://bugs.webkit.org/show_bug.cgi?id=102547
133
134         Reviewed by Tony Chang.
135
136         Code did not account for the not-found case in "versionchange" transactions, where all
137         object stores are implicitly in scope.
138
139         Test: storage/indexeddb/object-lookups-in-versionchange.html
140
141         * Modules/indexeddb/IDBTransaction.cpp:
142         (WebCore::IDBTransaction::objectStore):
143
144 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
145
146         Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
147         https://bugs.webkit.org/show_bug.cgi?id=101874
148
149         Reviewed by Dave Hyatt.
150
151         RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
152         lot of time in computeRepaintRects(), which does two ancestor tree walks, once
153         for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
154
155         Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
156         a RenderGeometryMap as we traverse the layer tree, and then using it to map
157         the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
158         now that the RenderGeometryMap can do a better job.
159         
160         The clipped overflow rect cannot be mapped simply, so cannot yet make use of
161         the geometry map.
162         
163         Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
164         Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
165         
166         Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
167         
168         * page/FrameView.cpp:
169         (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
170         to updateLayerPositions(). For partial layouts, we have to push layers
171         between the root and the enclosing layer of the layout subtree.
172         The geometry map used for repainting does not use SnapOffsetForTransforms,
173         so initialize it explicitly with just the UseTransforms flag.
174         (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
175         to pass along to updateLayerPositionsAfterScroll().
176         * rendering/RenderBox.cpp:
177         (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
178         parameter with an optional RenderGeometryMap, and it use to map the compute rect to
179         repaintContainer coordinates.
180         * rendering/RenderBox.h:
181         * rendering/RenderGeometryMap.cpp:
182         (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
183         flags to use, so that its behavior can match that of mapLocalToContainer(). The
184         pertinent flag is the confusingly named SnapOffsetForTransforms.
185         (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
186         a null container.
187         (WebCore::RenderGeometryMap::absoluteRect): Ditto.
188         (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
189         asserting that we found it. Add point- and rect-based mapping methods
190         akin to the old absoluteRect/absolutePoint.
191         (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
192         (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
193         layers, ensure that the RenderView is pushed as the first step.
194         * rendering/RenderGeometryMap.h:
195         (RenderGeometryMap):
196         * rendering/RenderLayer.cpp:
197         (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
198         that makes the geometry map.
199         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
200         that makes the geometry map.
201         (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
202         Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
203         the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
204         it to computeRepaintRects().
205         (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
206         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
207         geometry map, and pass it to computeRepaintRects().
208         (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
209         computation; this could use a geometry map in future if it is shown to be a bottleneck.
210         * rendering/RenderLayer.h:
211         (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
212         was there because the older cached offsetFromRoot logic was sensitive to compositing,
213         but convertToLayerCoords() is not affected by compositing so this check is not needed,
214         and actually harmful.
215         * rendering/RenderLayerCompositor.cpp:
216         (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
217         used for overlap testing should not use SnapOffsetForTransforms, so initialize
218         it explicitly with just the UseTransforms flag.
219         * rendering/RenderObject.h:
220         (WebCore::RenderObject::outlineBoundsForRepaint):
221         * rendering/svg/RenderSVGModelObject.cpp:
222         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
223         * rendering/svg/RenderSVGModelObject.h:
224         (RenderSVGModelObject):
225
226 2012-11-16  Alec Flett  <alecflett@chromium.org>
227
228         Add tests for explicit serialization values
229         https://bugs.webkit.org/show_bug.cgi?id=96818
230
231         Reviewed by Adam Barth.
232
233         Expose direct access to the serialization/deserialization mechanisms
234         of SerializedScriptValue to DumpRenderTree.
235
236         * testing/Internals.cpp:
237         (WebCore::Internals::serializeObject):
238         (WebCore):
239         (WebCore::Internals::deserializeBuffer):
240         * testing/Internals.h:
241         (WebCore):
242         * testing/Internals.idl:
243
244 2012-11-16  Andreas Kling  <akling@apple.com>
245
246         Exploit shared attribute data to avoid parsing identical "style" attributes.
247         <http://webkit.org/b/101163>
248
249         Reviewed by Antti Koivisto.
250
251         Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
252         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
253         since the state is no longer per-Element.
254
255         * css/StyleResolver.cpp:
256         (WebCore::isCacheableInMatchedPropertiesCache):
257
258             Disable the matched properties cache for styles with non-standard writing-mode.
259             This is necessary because some CSS properties have different meaning depending on context -
260             properties handled by CSSProperty::resolveDirectionAwareProperty().
261
262             Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
263             avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
264             writing-modes in the matched properties cache.
265
266         * dom/Node.h:
267         * dom/ElementAttributeData.cpp:
268         (WebCore::ElementAttributeData::ElementAttributeData):
269         * dom/ElementAttributeData.h:
270         (WebCore::ElementAttributeData::ElementAttributeData):
271         (ElementAttributeData):
272         * dom/Element.h:
273         (WebCore::Element::updateInvalidAttributes):
274         * dom/Element.cpp:
275         (WebCore::Element::getAttribute):
276         (WebCore::Element::removeAttribute):
277         * dom/StyledElement.h:
278         (WebCore::StyledElement::invalidateStyleAttribute):
279         * dom/StyledElement.cpp:
280         (WebCore::StyledElement::updateStyleAttribute):
281
282             Move "style attribute dirty" flag to ElementAttributeData.
283
284         (WebCore::Element::cloneAttributesFromElement):
285
286             Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
287             automagically since cloning nodes just refs the original attribute data.
288
289         * dom/StyledElement.cpp:
290         (WebCore::StyledElement::updateStyleAttribute):
291         (WebCore::StyledElement::setInlineStyleFromString):
292         (WebCore::StyledElement::styleAttributeChanged):
293         (WebCore::StyledElement::inlineStyleChanged):
294
295             Avoid reparsing the inline style if the element's attribute data is immutable and already has
296             a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
297             to make the code more understandable.
298
299 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
300
301         Don't update layer positions on scrolling if we're in the middle of layout
302         https://bugs.webkit.org/show_bug.cgi?id=102556
303
304         Reviewed by Dan Bernstein.
305
306         RenderLayer::scrollTo() can be called in the middle of layout. When
307         that happens we should not waste time updating layer positions,
308         compositing layers, or widget positions, because we'll do those at the
309         end of layout anyway.
310         
311         This prevents us from having inconsistent RenderLayer state, which
312         hinders future optimizations in this area.
313
314         * rendering/RenderLayer.cpp:
315         (WebCore::RenderLayer::scrollTo):
316
317 2012-11-16  Tony Chang  <tony@chromium.org>
318
319         Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
320         https://bugs.webkit.org/show_bug.cgi?id=102554
321
322         Reviewed by Andreas Kling.
323
324         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
325         we're going to revist this feature once additional vendor support is
326         achieved.
327
328         No new tests, just removing an unused define.
329
330         * Configurations/FeatureDefines.xcconfig:
331         * GNUmakefile.features.am:
332
333 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
334
335         [Chromium] Remove cookie-related functions from PlatformSupport
336         https://bugs.webkit.org/show_bug.cgi?id=99340
337
338         Reviewed by Adam Barth.
339
340         Move cookie-related functions out of PlatformSupport and implement
341         new PlatformCookieJar interface via NetworkContext.
342
343         * WebCore.gyp/WebCore.gyp:
344         * WebCore.gypi:
345         * loader/CookieJar.cpp:
346         * loader/chromium/CookieJarChromium.cpp: Removed.
347         * platform/chromium/PlatformSupport.h:
348         (WebCore):
349         (PlatformSupport):
350         * platform/network/NetworkingContext.h:
351         (WebKit):
352         (NetworkingContext):
353         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
354         (WebCore::setCookiesFromDOM):
355         (WebCore::cookiesForDOM):
356         (WebCore::cookieRequestHeaderFieldValue):
357         (WebCore::cookiesEnabled):
358         (WebCore::getRawCookies):
359         (WebCore::deleteCookie):
360         (WebCore::getHostnamesWithCookies):
361         (WebCore::deleteCookiesForHostname):
362         (WebCore::deleteAllCookies):
363
364 2012-11-16  Pablo Flouret  <pablof@motorola.com>
365
366         [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
367         https://bugs.webkit.org/show_bug.cgi?id=70574
368
369         Reviewed by Geoffrey Garen.
370
371         For scripts that use CORS (via the crossorigin attribute in this case),
372         don't sanitize the information passed to the window's onerror handler (i.e.
373         message, url, and line number). Useful for scripts hosted on CDNs.
374
375         Tests: http/tests/security/script-crossorigin-onerror-information.html
376                http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
377
378         * WebCore.exp.in:
379         * WebCore.order:
380
381         * bindings/js/JSDOMBinding.cpp:
382         (WebCore::reportException):
383         * bindings/js/JSDOMBinding.h:
384         (WebCore):
385         * bindings/js/ScriptController.cpp:
386         (WebCore::ScriptController::evaluateInWorld):
387         * bindings/js/ScriptSourceCode.h:
388         (WebCore::ScriptSourceCode::ScriptSourceCode):
389         (WebCore::ScriptSourceCode::cachedScript):
390         (ScriptSourceCode):
391         * bindings/js/WorkerScriptController.cpp:
392         (WebCore::WorkerScriptController::evaluate):
393             Keep a reference to the cached script in the ScriptSourceCode, so
394             that it can be passed around and be available when reporting the
395             exception.
396
397         * dom/ScriptExecutionContext.cpp:
398         (WebCore::ScriptExecutionContext::sanitizeScriptError):
399         (WebCore::ScriptExecutionContext::reportException):
400         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
401         * dom/ScriptExecutionContext.h:
402         (WebCore):
403         (ScriptExecutionContext):
404             Check if the script passes the access control checks, and if so,
405             don't sanitize the error information.
406
407         * html/parser/HTMLPreloadScanner.cpp:
408         (WebCore::PreloadTask::processAttributes):
409         (WebCore::PreloadTask::preload):
410         (PreloadTask):
411         (WebCore::PreloadTask::crossOriginModeAllowsCookies):
412             When preloading script elements, check for the crossorigin attribute
413             and adjust the request's allowCookies value accordingly. Otherwise
414             when the script is loaded from the cache later on, the cross origin mode
415             (anonymous/use-credentials) will be effectively ignored.
416
417 2012-11-16  Jon Lee  <jonlee@apple.com>
418
419         Change visual look of placeholder
420         https://bugs.webkit.org/show_bug.cgi?id=102149
421         <rdar://problem/12695566>
422
423         Reviewed by Darin Adler.
424
425         Move the button to the lower-right corner. Move the theming into
426         RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
427         shadow DOM instead, and the metrics of the button are needed for click passthrough.
428
429         * Resources/startButton.png: Added.
430         * Resources/startButton@2x.png: Added.
431         * Resources/startButtonPressed.png: Added.
432         * Resources/startButtonPressed@2x.png: Added.
433         * WebCore.xcodeproj/project.pbxproj: Add button images.
434
435         Maintain variables to track whether the mouse is over the button, and the rect
436         for the button. If the user clicks in the rect, we render a pressed button.
437         * rendering/RenderSnapshottedPlugIn.cpp:
438         (WebCore): Add named constant for bottom and right padding of the button.
439         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
440         (WebCore::RenderSnapshottedPlugIn::paintReplaced):
441         (WebCore::startButtonImage): Returns button image.
442         (WebCore::startButtonPressedImage): Returns pressed button image.
443         (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
444         lower right hand corner, but only if we are active or hovered.
445         (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
446         (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
447         hovering over the plugin rect. With a mouse down event, calculate whether the
448         mouse position is within the button rect.
449         (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
450         contents.
451         * rendering/RenderSnapshottedPlugIn.h:
452
453         Remove theming function for now.
454         * rendering/RenderTheme.h:
455         (RenderTheme):
456         * rendering/RenderThemeMacShared.h:
457         * rendering/RenderThemeMacShared.mm:
458
459 2012-11-16  Eric Seidel  <eric@webkit.org>
460
461         Deploy ScriptWrappable to more always-wrapped objects
462         https://bugs.webkit.org/show_bug.cgi?id=102539
463
464         Reviewed by Adam Barth.
465
466         Add the ScriptWrappable baseclass to:
467         CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
468         ClientRect (element.getBoundingClientRects)
469         Event (Not all events end up wrapped, but any which live past dispatch do)
470         NodeList (this covers Static and Dynamic node list types, like document.all)
471         HTMLCollection (separate from NodeList, for things like table.rows)
472         Storage (for window.storage, always wrapped)
473         XMLHttpRequest (always wrapped, created from JS)
474
475         This should be a small memory savings as the inline pointer is only 4-8 bytes
476         instead of the hashmap entry which would be 8-16.  This may also show up
477         on benchmarks which repeatedly access these objects (like window.storage).
478
479         These were found by adding a couple lines of logging-code to
480         WebCore::createWrapper when we were in the main world, but took the
481         HashMap (instead of inline) storage path. I used sort and uniq -c
482         to find the most-frequently wrapped objects (while surfing
483         a few common sites) and came up with this list.  There are still a few
484         more complicated objects (like CSSStyleDeclaration) which may benifit
485         from inline-wrapper-access and will be covered in a later patch.
486
487         * css/CSSStyleDeclaration.h:
488         * dom/ClientRect.h:
489         * dom/Event.h:
490         * dom/NodeList.h:
491         * html/HTMLCollection.h:
492         * storage/Storage.h:
493         * xml/XMLHttpRequest.h:
494
495 2012-11-16  Jon Lee  <jonlee@apple.com>
496
497         Simulated events instances do not all have the same underlying event
498         https://bugs.webkit.org/show_bug.cgi?id=102468
499         <rdar://problem/12716331>
500
501         Reviewed by Alexey Proskuryakov.
502
503         The PassRefPtr with the underlying event is included as an argument for the mouse
504         down, up, and click events. But the PassRefPtr loses its underlying pointer after
505         the first simulated mouse down event because it gets assigned to that event's
506         private m_underlyingEvent variable. We therefore send NULL to the other events.
507
508         The fix is for this and related functions to pass the raw pointer.
509
510         A layout test is not possible to put together because the call sites that use simulated
511         events with an underlying event do not send mouse events, and those that send mouse
512         events have a NULL underlying event.
513
514         * dom/EventDispatcher.cpp:
515         (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
516         * dom/EventDispatcher.h:
517         * dom/Node.cpp:
518         (WebCore::Node::dispatchSimulatedClick): Ditto.
519         * dom/Node.h:
520
521 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
522
523         Build fix for WinCE after r134936.
524
525         * platform/network/win/CookieJarWin.cpp:
526         (WebCore::cookieRequestHeaderFieldValue):
527
528 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
529
530         Unreviewed, rolling out r134986.
531         http://trac.webkit.org/changeset/134986
532         https://bugs.webkit.org/show_bug.cgi?id=102110
533
534         Triggered ASSERT in fast/frames/seamless/seamless-inherited-
535         origin.html.
536
537         * css/StyleResolver.cpp:
538         (WebCore::StyleResolver::StyleResolver):
539         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
540         (WebCore::collectCSSOMWrappers):
541         * css/StyleResolver.h:
542         (StyleResolver):
543         * dom/Document.cpp:
544         (WebCore::Document::setCompatibilityMode):
545         * dom/DocumentStyleSheetCollection.cpp:
546         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
547         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
548         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
549         (WebCore):
550         (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
551         (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
552         (WebCore::DocumentStyleSheetCollection::addUserSheet):
553         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
554         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
555         * dom/DocumentStyleSheetCollection.h:
556         (DocumentStyleSheetCollection):
557         (WebCore::DocumentStyleSheetCollection::documentUserSheets):
558         * page/PageGroup.cpp:
559         (WebCore::PageGroup::addUserStyleSheetToWorld):
560         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
561         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
562         (WebCore::PageGroup::removeAllUserContent):
563         (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
564         * page/PageGroup.h:
565         (PageGroup):
566
567 2012-11-16  Michael Pruett  <michael@68k.org>
568
569         IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
570         https://bugs.webkit.org/show_bug.cgi?id=102430
571
572         Reviewed by Adam Barth.
573
574         DOMRequestState is currently propagated to some but not all of
575         the IndexedDB binding utility functions. In order to implement
576         these functions for JSC, this state must be propagated to all
577         of the utility functions.
578
579         Tests: storage/indexeddb/*
580
581         * Modules/indexeddb/IDBCursor.cpp:
582         (WebCore::IDBCursor::update):
583         (WebCore::IDBCursor::setValueReady):
584         * Modules/indexeddb/IDBObjectStore.cpp:
585         (WebCore::generateIndexKeysForValue):
586         (WebCore::IDBObjectStore::put):
587         (WebCore):
588         * Modules/indexeddb/IDBRequest.cpp:
589         (WebCore::IDBRequest::onSuccess):
590         (WebCore::IDBRequest::dispatchEvent):
591         * Modules/indexeddb/IDBRequest.h:
592         (WebCore::IDBRequest::requestState):
593         (IDBRequest):
594         * bindings/v8/IDBBindingUtilities.cpp:
595         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
596         (WebCore::serializeIDBValue):
597         (WebCore::injectIDBKeyIntoScriptValue):
598         * bindings/v8/IDBBindingUtilities.h:
599         (WebCore):
600
601 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
602
603         Rebaselined run-bindings-tests.
604         https://bugs.webkit.org/show_bug.cgi?id=102523
605
606         Reviewed by Dimitri Glazkov.
607
608         Expected results need to be updated after r134931
609
610         * bindings/scripts/test/JS/JSTestObj.cpp:
611         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
612         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
613         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
614         * bindings/scripts/test/V8/V8TestObj.cpp:
615         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
616         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
617         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
618
619 2012-11-16  Pratik Solanki  <psolanki@apple.com>
620
621         For single element arrays use the pointer into the CFDataRef instead of copying data
622         https://bugs.webkit.org/show_bug.cgi?id=102306
623         <rdar://problem/12267471>
624
625         Reviewed by Alexey Proskuryakov.
626
627         We generally copy the data received from CFNetwork into our own buffers. But if the
628         CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
629         and access its memory directly and avoid making a copy.
630
631         This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
632         SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
633         SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
634         the memory in the data array.
635
636         No new tests because no change in functionality.
637
638         * loader/ResourceBuffer.cpp:
639         (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
640         * loader/ResourceBuffer.h:
641         * loader/cache/CachedResource.cpp:
642         (WebCore::CachedResource::makePurgeable):
643         * platform/SharedBuffer.cpp:
644         (WebCore::SharedBuffer::createPurgeableBuffer): Added.
645         (WebCore::SharedBuffer::data):
646         * platform/SharedBuffer.h:
647         * platform/cf/SharedBufferCF.cpp:
648         (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
649         (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
650         (WebCore::SharedBuffer::singleDataArrayBuffer): Added.
651
652 2012-11-16  Antti Koivisto  <antti@apple.com>
653
654         REGRESSION(r129644): User StyleSheet not applying
655         https://bugs.webkit.org/show_bug.cgi?id=102110
656
657         Reviewed by Andreas Kling.
658
659         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
660         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
661         
662         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
663         It also generally cleans up the code around injected and user stylesheets.
664
665         Tests: userscripts/user-script-and-stylesheet.html
666                userscripts/user-stylesheet-invalidate.html
667
668         * css/StyleResolver.cpp:
669         (WebCore::StyleResolver::StyleResolver):
670         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
671         (WebCore::collectCSSOMWrappers):
672         * css/StyleResolver.h:
673         (StyleResolver):
674         * dom/Document.cpp:
675         (WebCore::Document::setCompatibilityMode):
676         * dom/DocumentStyleSheetCollection.cpp:
677         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
678         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
679         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
680         (WebCore):
681         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
682         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
683         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
684         (WebCore::DocumentStyleSheetCollection::addUserSheet):
685         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
686         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
687         * dom/DocumentStyleSheetCollection.h:
688         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
689         (DocumentStyleSheetCollection):
690         * page/PageGroup.cpp:
691         (WebCore::PageGroup::addUserStyleSheetToWorld):
692         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
693         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
694         (WebCore::PageGroup::removeAllUserContent):
695         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
696         * page/PageGroup.h:
697         (PageGroup):
698
699 2012-11-16  Andreas Kling  <akling@apple.com>
700
701         StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
702         <http://webkit.org/b/102536>
703
704         Reviewed by Antti Koivisto.
705
706         Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
707         relevant for sharing style between <input> elements.
708
709         Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
710
711         * css/StyleResolver.cpp:
712         (WebCore::StyleResolver::canShareStyleWithControl):
713         (WebCore::haveIdenticalStyleAffectingAttributes):
714
715 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
716
717         Unreviewed, rolling out r134867.
718         http://trac.webkit.org/changeset/134867
719         https://bugs.webkit.org/show_bug.cgi?id=102544
720
721         Broke security fuzzier test (heap-buffer-overflow) (Requested
722         by bfulgham on #webkit).
723
724         * platform/audio/Biquad.cpp:
725         (WebCore::Biquad::process):
726
727 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
728
729         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
730         https://bugs.webkit.org/show_bug.cgi?id=102382
731
732         Reviewed by Adam Barth.
733
734         Updating readyState & iceState, and adding iceGatheringState.
735         Also safeguarding the event timer callback.
736
737         Patch covered by existing tests.
738
739         * Modules/mediastream/RTCPeerConnection.cpp:
740         (WebCore::RTCPeerConnection::RTCPeerConnection):
741         (WebCore::RTCPeerConnection::createOffer):
742         (WebCore::RTCPeerConnection::createAnswer):
743         (WebCore::RTCPeerConnection::setLocalDescription):
744         (WebCore::RTCPeerConnection::localDescription):
745         (WebCore::RTCPeerConnection::setRemoteDescription):
746         (WebCore::RTCPeerConnection::remoteDescription):
747         (WebCore::RTCPeerConnection::updateIce):
748         (WebCore::RTCPeerConnection::addIceCandidate):
749         (WebCore::RTCPeerConnection::readyState):
750         (WebCore::RTCPeerConnection::iceGatheringState):
751         (WebCore):
752         (WebCore::RTCPeerConnection::iceState):
753         (WebCore::RTCPeerConnection::addStream):
754         (WebCore::RTCPeerConnection::close):
755         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
756         (WebCore::RTCPeerConnection::stop):
757         (WebCore::RTCPeerConnection::changeReadyState):
758         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
759         * Modules/mediastream/RTCPeerConnection.h:
760         (RTCPeerConnection):
761         * Modules/mediastream/RTCPeerConnection.idl:
762         * dom/EventNames.h:
763         (WebCore):
764         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
765         (RTCPeerConnectionHandlerClient):
766         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
767         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
768         (WebCore):
769         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
770         (RTCPeerConnectionHandlerChromium):
771
772 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
773
774         Unreviewed, rolling out r134973.
775         http://trac.webkit.org/changeset/134973
776         https://bugs.webkit.org/show_bug.cgi?id=99340
777
778         Broke compile on at least Mac and Linux.
779
780         * WebCore.gyp/WebCore.gyp:
781         * WebCore.gypi:
782         * loader/CookieJar.cpp:
783         * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
784         (WebCore):
785         (WebCore::setCookies):
786         (WebCore::cookies):
787         (WebCore::cookieRequestHeaderFieldValue):
788         (WebCore::cookiesEnabled):
789         (WebCore::getRawCookies):
790         (WebCore::deleteCookie):
791         (WebCore::getHostnamesWithCookies):
792         (WebCore::deleteCookiesForHostname):
793         (WebCore::deleteAllCookies):
794         * platform/chromium/PlatformSupport.h:
795         (WebCore):
796         (PlatformSupport):
797         * platform/network/NetworkingContext.h:
798         * platform/network/chromium/CookieJarChromium.cpp: Removed.
799
800 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
801
802         [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
803         https://bugs.webkit.org/show_bug.cgi?id=101843
804
805         Reviewed by Gustavo Noronha Silva.
806
807         Make GtkAuthenticationDialog more general, so that it can be subclassed in 
808         WebKit2. We cannot use the WebCore authentication-related classes directly there.
809
810         No new tests. This patch does not change behavior.
811
812         * platform/gtk/GtkAuthenticationDialog.cpp:
813         (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
814         some field initializers.
815         (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
816         makes it simpler to subclass.
817         (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
818         and password here, so that it can be shared with subclasses.
819         * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
820         subclasses.
821
822 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
823
824         [Chromium] Remove cookie-related functions from PlatformSupport
825         https://bugs.webkit.org/show_bug.cgi?id=99340
826
827         Reviewed by Adam Barth.
828
829         Move cookie-related functions out of PlatformSupport and implement
830         new PlatformCookieJar interface via NetworkContext.
831
832         * WebCore.gyp/WebCore.gyp:
833         * WebCore.gypi:
834         * loader/CookieJar.cpp:
835         * loader/chromium/CookieJarChromium.cpp: Removed.
836         * platform/chromium/PlatformSupport.h:
837         (WebCore):
838         (PlatformSupport):
839         * platform/network/NetworkingContext.h:
840         (WebKit):
841         (NetworkingContext):
842         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
843         (WebCore::setCookiesFromDOM):
844         (WebCore::cookiesForDOM):
845         (WebCore::cookieRequestHeaderFieldValue):
846         (WebCore::cookiesEnabled):
847         (WebCore::getRawCookies):
848         (WebCore::deleteCookie):
849         (WebCore::getHostnamesWithCookies):
850         (WebCore::deleteCookiesForHostname):
851         (WebCore::deleteAllCookies):
852
853 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
854
855         Fix assertion bug of build fix r134961
856         https://bugs.webkit.org/show_bug.cgi?id=102533
857
858         Reviewed by Martin Robinson.
859
860         Assertion condition should be '!d->m_currentWebChallenge.isNull()'
861
862         * platform/network/soup/ResourceHandleSoup.cpp:
863         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
864
865 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
866
867         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
868         https://bugs.webkit.org/show_bug.cgi?id=102386
869
870         Reviewed by Adam Barth.
871
872         Existing tests expanded to cover patch.
873
874         * platform/mediastream/RTCDataChannelDescriptor.cpp:
875         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
876         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
877         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
878         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
879         (WebCore):
880         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
881         (WebKit):
882         (RTCPeerConnectionHandlerChromium):
883
884 2012-11-16  Scott Violet  <sky@chromium.org>
885
886         [chromium] Copy linux theme related files to default
887         https://bugs.webkit.org/show_bug.cgi?id=102403
888
889         Reviewed by Tony Chang
890
891         Transitional patch that copies linux WebThemeEngine to default directory.
892
893         No new tests, refactoring only.
894
895         * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
896         * WebCore.gypi: Adds new files.
897         * platform/chromium/PlatformSupport.h:
898         * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
899         * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
900         * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
901         * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
902         * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
903         * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
904
905 2012-11-16  Alec Flett  <alecflett@chromium.org>
906
907         IndexedDB: add missing 'explicit' and fix backing store release
908         https://bugs.webkit.org/show_bug.cgi?id=102450
909
910         Reviewed by Tony Chang.
911
912         A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
913         which resulted in objects sticking around a bit longer than
914         expected. This makes sure the LevelDBTransaction is released
915         at the moment of commit/rollback rather than when IDBTransactionBackendImpl
916         is destroyed.
917
918         No new tests, this is just internal state that will affect
919         some future refactoring.
920
921         * Modules/indexeddb/IDBBackingStore.h:
922         (Cursor):
923         (Transaction):
924         (WebCore::IDBBackingStore::Transaction::reset):
925         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
926         (WebCore::IDBTransactionBackendImpl::abort):
927         (WebCore::IDBTransactionBackendImpl::commit):
928
929 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
930
931         [Chromium] One last tweak to WebCore.gypi to make Win build not sad.
932
933         * WebCore.gypi: Removed one last mention of accessibility/gtk file.
934
935 2012-11-16  Robert Flack  <flackr@chromium.org>
936
937         Handle gesture events on scrollbars.
938         https://bugs.webkit.org/show_bug.cgi?id=101516
939
940         Reviewed by Antonio Gomes.
941
942         Adds a gesture event handler to scrollbars and sends gestures beginning
943         over a scrollbar to this handler to allow touch scrolling scrollbars.
944
945         Test: fast/events/touch/gesture/gesture-scrollbar.html
946
947         * page/EventHandler.cpp:
948         (WebCore::EventHandler::clear):
949         (WebCore::EventHandler::handleGestureEvent):
950         (WebCore::EventHandler::isScrollbarHandlingGestures):
951         (WebCore):
952         * page/EventHandler.h:
953         (EventHandler):
954         * platform/Scrollbar.cpp:
955         (WebCore::Scrollbar::Scrollbar):
956         (WebCore):
957         (WebCore::Scrollbar::gestureEvent):
958         (WebCore::Scrollbar::mouseMoved):
959         (WebCore::Scrollbar::mouseUp):
960         (WebCore::Scrollbar::mouseDown):
961         * platform/Scrollbar.h:
962         (WebCore):
963         (Scrollbar):
964         * platform/ScrollbarTheme.h:
965         (WebCore::ScrollbarTheme::hitTest):
966         * platform/ScrollbarThemeComposite.cpp:
967         (WebCore::ScrollbarThemeComposite::hitTest):
968         * platform/ScrollbarThemeComposite.h:
969         (ScrollbarThemeComposite):
970         * platform/qt/ScrollbarThemeQStyle.cpp:
971         (WebCore::ScrollbarThemeQStyle::hitTest):
972         * platform/qt/ScrollbarThemeQStyle.h:
973         (ScrollbarThemeQStyle):
974
975 2012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>
976
977         [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
978         https://bugs.webkit.org/show_bug.cgi?id=102444
979
980         Reviewed by Adam Barth.
981
982         No new tests. Have been covered by many existing layout tests.
983
984         * html/shadow/MediaControlsChromiumAndroid.cpp:
985         (WebCore::MediaControls::create): Calls createControls instead of itself.
986
987 2012-11-16  Andreas Kling  <akling@apple.com>
988
989         StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
990         <http://webkit.org/b/102507>
991
992         Reviewed by Antti Koivisto.
993
994         When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
995         comparing the various attributes that would prevent sharing.
996
997         If the two elements both share the same ElementAttributeData, we can skip all those checks
998         since they are guaranteed to have equal attributes.
999
1000         Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
1001
1002         * css/StyleResolver.cpp:
1003         (WebCore::haveIdenticalStyleAffectingAttributes):
1004         (WebCore::StyleResolver::canShareStyleWithElement):
1005
1006 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
1007
1008         [EFL][GTK] Build fix after r134955
1009         https://bugs.webkit.org/show_bug.cgi?id=102527
1010
1011         Reviewed by Martin Robinson.
1012
1013         Fix the EFL,GTK debug bulid fails after r134955.
1014
1015         * platform/network/soup/ResourceHandleSoup.cpp:
1016         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
1017
1018 2012-11-15  Alexey Proskuryakov  <ap@apple.com>
1019
1020         Private Browsing is a per-page setting that sets a global value
1021         https://bugs.webkit.org/show_bug.cgi?id=67870
1022
1023         Reviewed by Sam Weinig.
1024
1025         Make ResourceHandle{Mac,CFNet} use context to access storage session.
1026
1027         * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
1028         exports.
1029
1030         * loader/FrameNetworkingContext.h: Added an OVERRIDE.
1031
1032         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
1033         no longer keeps track of a globally enabled private CFNetwork storage session.
1034
1035         * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
1036         don't have a NetworkingContext pointer, and have to use whatever a client expects
1037         them to do. Perhaps we should move those methods away from WebCore eventually.
1038
1039         * platform/network/NetworkingContext.h: Added storageSession().
1040
1041         * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
1042         sessions.
1043
1044         * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
1045         remember it post-creation to do things in willSendRequest. Alternatively, we could
1046         keep a reference to NetworkingContext itself.
1047
1048         * platform/network/cf/CookieJarCFNet.cpp:
1049         (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
1050         there is no globally current one any more. Also, we don't really expect cookie
1051         stirage to be 0 when not using NSURLConnection.
1052         (WebCore::cookiesForDOM): Ditto.
1053         (WebCore::cookieRequestHeaderFieldValue): Ditto.
1054         (WebCore::cookiesEnabled): Ditto.
1055         (WebCore::getRawCookies): Ditto.
1056         (WebCore::deleteCookie): Ditto.
1057         (WebCore::getHostnamesWithCookies): Ditto.
1058         (WebCore::deleteCookiesForHostname): Ditto.
1059         (WebCore::deleteAllCookies): Ditto.
1060         * platform/network/cf/CookieStorageCFNet.cpp:
1061         (WebCore::currentCFHTTPCookieStorage): Use a context.
1062         (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
1063         this is implemented in a strategy.
1064         (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
1065
1066         * platform/network/cf/CookieStorageCFNet.h: Ditto.
1067
1068         * platform/network/cf/ResourceHandleCFNet.cpp:
1069         (WebCore::willSendRequest): Use storage session from the context, not global one.
1070         (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
1071         function didn't really make any sense on its own.
1072         (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
1073         to match Mac.
1074         (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
1075         in, removed some seemingly nonsensical code that was getting and immediately re-applying
1076         cookie storage accept policy.
1077         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
1078         (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
1079         (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
1080         access "d".
1081         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
1082         (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
1083         It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
1084
1085         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
1086         This function used to apply current storage session to every request for no apparent
1087         reason.
1088
1089         * platform/network/mac/CookieJarMac.mm:
1090         (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
1091         (WebCore::cookieRequestHeaderFieldValue): Ditto.
1092         (WebCore::setCookiesFromDOM): Ditto.
1093         (WebCore::cookiesEnabled): Ditto.
1094         (WebCore::getRawCookies): Ditto.
1095         (WebCore::deleteCookie): Ditto.
1096         (WebCore::getHostnamesWithCookies): Ditto.
1097         (WebCore::deleteCookiesForHostname): Ditto.
1098         (WebCore::deleteAllCookies): Ditto.
1099         * platform/network/mac/ResourceHandleMac.mm:
1100         (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
1101         null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
1102         argument, so that the function can access current session.
1103         (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
1104         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
1105         (WebCore::ResourceHandle::willLoadFromCache): Style fix.
1106         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
1107         for use in willSendRequest. 
1108         (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
1109
1110 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
1111
1112         [Chromium] Land a proper fix for r134939.
1113
1114         * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
1115         * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
1116
1117 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
1118
1119         [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
1120
1121 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
1122
1123         [Chromium] Updated WebCore.gypi after r134939.
1124
1125         * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
1126
1127 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
1128
1129         [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
1130         https://bugs.webkit.org/show_bug.cgi?id=101840
1131
1132         Reviewed by Gustavo Noronha Silva.
1133
1134         Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
1135         Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
1136         be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
1137         in the manner that the CFNet backend does.
1138
1139         No new tests. There are tests for this behavior, but they cannot be activated until we finish
1140         plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
1141
1142         * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
1143         storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
1144         from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
1145         * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
1146         credentials to the persistent credential store.
1147         * platform/network/ResourceHandle.h:
1148         (ResourceHandle): Add a method which is used to continue asynchronously after looking for
1149         proposed credentials in the persistent credential store.
1150         * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
1151         an authentication succeeded.
1152         * platform/network/gtk/CredentialBackingStore.cpp:
1153         (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
1154         of stored credentials.
1155         (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
1156         (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
1157         * platform/network/gtk/CredentialBackingStore.h:
1158         (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
1159         * platform/network/soup/AuthenticationChallenge.h:
1160         (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
1161         can set proposed credentials from the persistent credential store.
1162         * platform/network/soup/ResourceHandleSoup.cpp:
1163         (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
1164         if the authentication succeeded.
1165         (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
1166         in the request URI. This is the method that Soup uses to override any soup-stored session credential.
1167         (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
1168         authenticating requests from the session store.
1169         (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
1170         (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
1171         Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
1172         (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
1173         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
1174         into this asynchronous bit.
1175         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
1176         first looking in the persistent credential store.
1177         (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
1178         at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
1179         for storage later (see gotHeadersCallback).
1180
1181 2012-11-16  Erik Arvidsson  <arv@chromium.org>
1182
1183         Update DOMException name: TypeMismatchError
1184         https://bugs.webkit.org/show_bug.cgi?id=102418
1185
1186         Reviewed by Kentaro Hara.
1187
1188         Patch 17 of 25 to update DOMException name to match the spec and Firefox.
1189
1190         Updated existing tests.
1191
1192         * dom/DOMCoreException.cpp:
1193         (WebCore):
1194         * dom/ExceptionCode.h:
1195
1196 2012-11-16  Balazs Kelemen  <kbalazs@webkit.org>
1197
1198         Coordinated Graphics: support the "freeze animations" API
1199         https://bugs.webkit.org/show_bug.cgi?id=100703
1200
1201         Reviewed by Noam Rosenthal.
1202
1203         Typo fix after previous patch.
1204
1205         No new tests, it's just a typo that only takes effect in the browser.
1206
1207         * platform/graphics/GraphicsLayerAnimation.cpp:
1208         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
1209         Initialize members.
1210
1211 2012-11-16  Dan Carney  <dcarney@google.com>
1212
1213         add 7 bit strings capabilities to the v8 binding layer
1214         https://bugs.webkit.org/show_bug.cgi?id=91850
1215
1216         Reviewed by Adam Barth.
1217
1218         This change enables the v8 binding layer to make use of webkit's
1219         8 bit string capabilities. Using 8 bit strings leads to certain
1220         benchmark performance improvemnts as can be seen in
1221         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
1222
1223         No new tests.  Test coverage already extensive.
1224
1225         * bindings/v8/V8PerIsolateData.cpp:
1226         (WebCore::V8PerIsolateData::visitExternalStrings):
1227         * bindings/v8/V8StringResource.cpp:
1228         (StringTraits):
1229         (WebCore::false):
1230         (WebCore):
1231         (WebCore::true):
1232         (WebCore::v8StringToWebCoreString):
1233         * bindings/v8/V8ValueCache.cpp:
1234         (WebCore::makeExternalString):
1235         (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
1236         (WebCore):
1237         (WebCore::WebCoreStringResourceBase::visitStrings):
1238         * bindings/v8/V8ValueCache.h:
1239         (WebCoreStringResourceBase):
1240         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
1241         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
1242         (WebCore::WebCoreStringResourceBase::atomicString):
1243         (WebCore::WebCoreStringResourceBase::memoryConsumption):
1244         (WebCoreStringResource16):
1245         (WebCore::WebCoreStringResource16::WebCoreStringResource16):
1246         (WebCore):
1247         (WebCoreStringResource8):
1248         (WebCore::WebCoreStringResource8::WebCoreStringResource8):
1249
1250 2012-11-16  Erik Arvidsson  <arv@chromium.org>
1251
1252         Update DOMException name: InvalidAccessError
1253         https://bugs.webkit.org/show_bug.cgi?id=102400
1254
1255         Reviewed by Kentaro Hara.
1256
1257         Patch 15 of 25 to update DOMException name to match the spec and Firefox.
1258
1259         Updated existing tests.
1260
1261         * dom/DOMCoreException.cpp:
1262
1263 2012-11-16  Alexandru Chiculita  <achicu@adobe.com>
1264
1265         [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
1266         https://bugs.webkit.org/show_bug.cgi?id=102414
1267
1268         Reviewed by Noam Rosenthal.
1269
1270         Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
1271         platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
1272         client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
1273         used to render any layer on the page. 
1274
1275         Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
1276         are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
1277         extended and reused in the platform compositor.
1278         
1279         No new tests, existing tests for CSS Custom Filters already cover this path.
1280
1281         * CMakeLists.txt:
1282         * GNUmakefile.am:
1283         * GNUmakefile.list.am:
1284         * Target.pri:
1285         * WebCore.pri:
1286         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
1287         (WebCore):
1288         * platform/graphics/filters/CustomFilterValidatedProgram.h:
1289         (WebCore):
1290         (CustomFilterValidatedProgram):
1291         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
1292         (WebCore):
1293         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
1294         (WebCore::CustomFilterValidatedProgram::platformInit):
1295         (WebCore::CustomFilterValidatedProgram::platformDestroy):
1296         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
1297         (WebCore):
1298         (TextureMapperPlatformCompiledProgramClient):
1299         (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
1300         (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
1301         (TextureMapperPlatformCompiledProgram):
1302         Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
1303         the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
1304         (WebCore::TextureMapperPlatformCompiledProgram::create):
1305         (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
1306         (WebCore::TextureMapperPlatformCompiledProgram::client):
1307         (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
1308
1309 2012-11-16  Andreas Kling  <akling@apple.com>
1310
1311         Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
1312         <http://webkit.org/b/102498>
1313
1314         Reviewed by Antti Koivisto.
1315
1316         Add a fast path to hasEquivalentAttributes() that checks if both elements are using
1317         the same ElementAttributeData.
1318
1319         * dom/Element.cpp:
1320         (WebCore::Element::hasEquivalentAttributes):
1321
1322 2012-11-16  Zeno Albisser  <zeno@webkit.org>
1323
1324         [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
1325         https://bugs.webkit.org/show_bug.cgi?id=102360
1326
1327         QOpenGLContext::currentContext() will return null, in case there is
1328         no current context. Therefore currentContext must be null-checked
1329         before it can be reused.
1330         Making a context current on a null-surface on the other hand is
1331         perfectly possible.
1332
1333         Reviewed by Kenneth Rohde Christiansen.
1334
1335         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1336         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
1337
1338 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1339
1340         Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
1341         https://bugs.webkit.org/show_bug.cgi?id=102488
1342
1343         Reviewed by Vsevolod Vlasov.
1344
1345         Panels are lazily loaded / instantiated.
1346         Panel constructors register keyboard shortcuts.
1347
1348         When user open shortcuts screen all panel should be loaded.
1349         Otherwise some shortcuts will be missing.
1350
1351         * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
1352         * inspector/front-end/inspector.js:
1353         Provided callback that loads all panels.
1354
1355 2012-11-16  Kentaro Hara  <haraken@chromium.org>
1356
1357         [V8] Remove IsSubType() from CodeGeneratorV8.pm
1358         https://bugs.webkit.org/show_bug.cgi?id=102348
1359
1360         Reviewed by Adam Barth.
1361
1362         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
1363
1364         No tests. No change in behavior.
1365
1366         * bindings/scripts/CodeGenerator.pm:
1367         (IsSubType):
1368         * bindings/scripts/CodeGeneratorJS.pm:
1369         (GenerateImplementation):
1370         * bindings/scripts/CodeGeneratorV8.pm:
1371         (GenerateHeader):
1372         (GetInternalFields):
1373         (GenerateNormalAttrGetter):
1374         (GenerateNormalAttrSetter):
1375         (GenerateFunctionCallback):
1376         (GenerateImplementationIndexer):
1377         (GenerateToV8Converters):
1378
1379 2012-11-16  Mario Sanchez Prada  <mario@webkit.org>
1380
1381         [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
1382         https://bugs.webkit.org/show_bug.cgi?id=99578
1383
1384         Reviewed by Martin Robinson.
1385
1386         Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
1387
1388         * GNUmakefile.am:
1389         * GNUmakefile.list.am:
1390         * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
1391         Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
1392         * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
1393         Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
1394         * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
1395         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
1396         * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
1397         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
1398         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
1399         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
1400         * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
1401         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
1402         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
1403         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
1404         * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
1405         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
1406         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
1407         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
1408         * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
1409         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
1410         * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
1411         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
1412         * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
1413         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
1414         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
1415         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
1416         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
1417         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
1418         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
1419         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
1420         * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
1421         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
1422         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
1423         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
1424         * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
1425         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
1426         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
1427         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
1428         * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
1429         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
1430         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
1431         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
1432         * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
1433         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
1434         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
1435         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
1436         * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
1437         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
1438         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
1439         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
1440         * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
1441         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
1442         * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
1443         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
1444         * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
1445         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
1446         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
1447         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
1448         * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
1449         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
1450
1451 2012-11-16  Shinya Kawanaka  <shinyak@chromium.org>
1452
1453         Changing pseudoClass (:indeterminate) should cause distribution
1454         https://bugs.webkit.org/show_bug.cgi?id=101903
1455
1456         Reviewed by Dimitri Glazkov.
1457
1458         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
1459         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
1460
1461         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
1462         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
1463
1464         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
1465                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
1466
1467         * html/HTMLInputElement.cpp:
1468         (WebCore::HTMLInputElement::updateType):
1469         (WebCore::HTMLInputElement::setIndeterminate):
1470         * html/HTMLProgressElement.cpp:
1471         (WebCore::HTMLProgressElement::didElementStateChange):
1472
1473 2012-11-16  Alexis Menard  <alexis@webkit.org>
1474
1475         Factorize the creation of primitive values with a pair into a function.
1476         https://bugs.webkit.org/show_bug.cgi?id=102485
1477
1478         Reviewed by Antti Koivisto.
1479
1480         The pattern is already existing in various call sites inside CSSParser
1481         and more will be added in the future (see bug 102104).
1482
1483         No new tests : It's a refactoring only, the tests should cover it.
1484
1485         * css/CSSParser.cpp:
1486         (WebCore):
1487         (WebCore::createPrimitiveValuePair):
1488         (WebCore::CSSParser::parseValue):
1489         (WebCore::CSSParser::parseFillSize):
1490         (WebCore::CSSParser::parseBorderImageRepeat):
1491         (WebCore::CSSParser::parseBorderRadius):
1492         (WebCore::CSSParser::parseCounter):
1493
1494 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
1495
1496         Expand PlatformCookieJar interface to allow for other ports
1497         https://bugs.webkit.org/show_bug.cgi?id=102456
1498
1499         Reviewed by Adam Barth.
1500
1501         Add firstParty and cookieURL arguments to several functions to
1502         prepare for integrating Chromium port into new PlatformCookieJar
1503         interface.
1504
1505         * loader/CookieJar.cpp:
1506         (WebCore::cookiesEnabled):
1507         (WebCore::cookieRequestHeaderFieldValue):
1508         (WebCore::getRawCookies):
1509         * platform/network/PlatformCookieJar.h:
1510         (WebCore):
1511         * platform/network/cf/CookieJarCFNet.cpp:
1512         (WebCore::cookieRequestHeaderFieldValue):
1513         (WebCore::cookiesEnabled):
1514         (WebCore::getRawCookies):
1515         * platform/network/curl/CookieJarCurl.cpp:
1516         (WebCore::cookieRequestHeaderFieldValue):
1517         (WebCore::cookiesEnabled):
1518         (WebCore::getRawCookies):
1519         * platform/network/mac/CookieJarMac.mm:
1520         (WebCore::cookieRequestHeaderFieldValue):
1521         (WebCore::cookiesEnabled):
1522         (WebCore::getRawCookies):
1523         * platform/network/qt/CookieJarQt.cpp:
1524         (WebCore::cookieRequestHeaderFieldValue):
1525         (WebCore::cookiesEnabled):
1526         (WebCore::getRawCookies):
1527         * platform/network/soup/CookieJarSoup.cpp:
1528         (WebCore::cookieRequestHeaderFieldValue):
1529         (WebCore::cookiesEnabled):
1530         (WebCore::getRawCookies):
1531         * platform/network/win/CookieJarWin.cpp:
1532         (WebCore::cookieRequestHeaderFieldValue):
1533         (WebCore::cookiesEnabled):
1534         (WebCore::getRawCookies):
1535
1536 2012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>
1537
1538         RenderGrid should have a function to resolve grid position
1539         https://bugs.webkit.org/show_bug.cgi?id=102441
1540
1541         Reviewed by Ojan Vafai.
1542
1543         The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
1544         Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
1545         on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
1546         support render areas and add a proper grid model to RenderGrid.
1547
1548         No expected change in behavior.
1549
1550         * rendering/RenderGrid.h:
1551         * rendering/RenderGrid.cpp:
1552         (WebCore::RenderGrid::resolveGridPosition):
1553         Added this new function to handle the conversion. We re-use Length but should never see
1554         a lot of the <length> values so I added some ASSERTs to enforce and catch that.
1555
1556         (WebCore::RenderGrid::findChildLogicalPosition):
1557         Simplified the function now that it just use resolveGridPosition.
1558
1559 2012-11-16  Ulan Degenbaev  <ulan@chromium.org>
1560
1561         [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
1562         https://bugs.webkit.org/show_bug.cgi?id=94463
1563
1564         Reviewed by Kentaro Hara.
1565
1566         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
1567
1568         Test: ManualTests/typed-array-memory.html
1569
1570         * bindings/v8/SerializedScriptValue.cpp:
1571
1572 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1573
1574         Unreviewed, rolling out r134694.
1575         http://trac.webkit.org/changeset/134694
1576         https://bugs.webkit.org/show_bug.cgi?id=102481
1577
1578         it made API test crash on EFL port (Requested by gyuyoung on
1579         #webkit).
1580
1581         * platform/efl/RenderThemeEfl.cpp:
1582         (WebCore::fillColorsFromEdjeClass):
1583         (WebCore::RenderThemeEfl::setColorFromThemeClass):
1584         (WebCore::RenderThemeEfl::loadTheme):
1585         (WebCore::RenderThemeEfl::RenderThemeEfl):
1586         * platform/efl/RenderThemeEfl.h:
1587         (RenderThemeEfl):
1588
1589 2012-11-16  Mike West  <mkwst@chromium.org>
1590
1591         Web Inspector: Move call stack generation out of bindings.
1592         https://bugs.webkit.org/show_bug.cgi?id=101331
1593
1594         Reviewed by Yury Semikhatsky.
1595
1596         Currently, we generate stack traces for console messages at each call
1597         site. Bug 100650 has the end goal of moving all stack trace generation
1598         inside of the Inspector in order to ensure that we never send a console
1599         message without a stack trace if it's possible to generate one. This
1600         also ensures that we never generate unused call stacks.
1601
1602         This patch is the first step in that direction, moving stack trace
1603         generation out of the Console bindings, and into either Console or
1604         InspectorConsoleAgent.
1605
1606         No visible change in behavior should result; this refactoring should
1607         continue to pass all existing inspector tests.
1608
1609         * bindings/js/JSConsoleCustom.cpp:
1610         (WebCore::JSConsole::profile):
1611         (WebCore::JSConsole::profileEnd):
1612             Adjust custom JSC Console bindings to drop call stack generation.
1613         * bindings/scripts/CodeGeneratorJS.pm:
1614         (GenerateCallWith):
1615         * bindings/scripts/CodeGeneratorV8.pm:
1616         (GenerateCallWith):
1617             Drop call stack generation from JSC and V8 bindings.
1618         * bindings/scripts/CodeGeneratorGObject.pm:
1619             Skip timeEnd explicitly in these bindings; it used to include
1620             ScriptArguments, which autoskipped it. Now it doesn't, so it needs
1621             to be called out on its own.
1622         * bindings/v8/ScriptCallStackFactory.cpp:
1623         (WebCore::createScriptCallStackForConsole):
1624         (WebCore::createScriptCallStack):
1625         (WebCore):
1626         * bindings/v8/ScriptCallStackFactory.h:
1627         (WebCore):
1628             Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
1629             ScriptCallStackFactory in order to match JCS' implementation.
1630             It simply delegates to 'createScriptCallStackForConsole', which
1631             now also accepts a 'maxStackSize' parameter.
1632         * bindings/v8/custom/V8ConsoleCustom.cpp:
1633         (WebCore::V8Console::traceCallback):
1634         (WebCore::V8Console::assertCallback):
1635         (WebCore::V8Console::profileCallback):
1636         (WebCore::V8Console::profileEndCallback):
1637             Adjust custom V8 bindings to drop call stack generation.
1638         * inspector/InspectorConsoleAgent.cpp:
1639         (WebCore::InspectorConsoleAgent::addMessageToConsole):
1640             With the eventual goal of getting rid of the call stack parameter
1641             entirely, this patch drops it from one version of
1642             'addMessageToConsole' (replacing it with ScriptState*), and creates
1643             a new version that only accepts a call stack. We should be able to
1644             migrate most (all?) external call sites over to the arguments
1645             version in future patches.
1646         (WebCore):
1647         (WebCore::InspectorConsoleAgent::count):
1648             Count takes 'ScriptState*' instead of a call stack, and generates
1649             the stack as needed.
1650         * inspector/InspectorConsoleAgent.h:
1651         (InspectorConsoleAgent):
1652         * inspector/InspectorConsoleInstrumentation.h:
1653         (WebCore::InspectorInstrumentation::addMessageToConsole):
1654         (WebCore):
1655         (WebCore::InspectorInstrumentation::consoleCount):
1656         * inspector/InspectorInstrumentation.cpp:
1657         (WebCore):
1658         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
1659         (WebCore::InspectorInstrumentation::consoleCountImpl):
1660         * inspector/InspectorInstrumentation.h:
1661         (InspectorInstrumentation):
1662             Changes the InspectorInstrumentation pipeline to match the
1663             InspectorConsoleAgent changes.
1664         * page/Console.cpp:
1665         (WebCore::Console::addMessage):
1666             We now (always) generate one frame of a stack trace in order to
1667             populate line numbers and caller URLs. If we need to print the whole
1668             trace here, we generate a full stack.
1669         (WebCore::Console::debug):
1670         (WebCore::Console::error):
1671         (WebCore::Console::info):
1672         (WebCore::Console::log):
1673         (WebCore::Console::warn):
1674         (WebCore::Console::dir):
1675         (WebCore::Console::dirxml):
1676         (WebCore::Console::clear):
1677         (WebCore::Console::trace):
1678         (WebCore::Console::assertCondition):
1679         (WebCore::Console::count):
1680         (WebCore::Console::markTimeline):
1681         (WebCore::Console::timeEnd):
1682         (WebCore::Console::timeStamp):
1683         (WebCore::Console::group):
1684         (WebCore::Console::groupCollapsed):
1685         (WebCore::Console::profile):
1686         (WebCore::Console::profileEnd):
1687             s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
1688             has been moved out of 'trace' and into 'addMessage'.
1689         * page/Console.h:
1690         (Console):
1691         * page/Console.idl:
1692             Drop the call stack, add the script state.
1693         * workers/WorkerContext.cpp:
1694         (WebCore::WorkerContext::addMessageToWorkerConsole):
1695             Use the new, explicitly call stacked addMessageToConsole. We'll kill
1696             this in a future patch.
1697
1698 2012-11-16  Marja Hölttä  <marja@chromium.org>
1699
1700         Add initiator to CachedResourceRequest.
1701         https://bugs.webkit.org/show_bug.cgi?id=101935
1702
1703         Reviewed by Adam Barth.
1704
1705         Motivation: Chromium needs to know which elements request a
1706         resource (such as an image or a script) (bug 92761). In addition,
1707         for exposing resource timing information (bug 84883) we need to
1708         store the initiator, and this is the first step towards it.
1709
1710         No new tests: No visible change in behavior.
1711
1712         * CMakeLists.txt:
1713         * GNUmakefile.list.am:
1714         * Target.pri:
1715         * WebCore.gypi:
1716         * WebCore.vcproj/WebCore.vcproj:
1717         * WebCore.xcodeproj/project.pbxproj:
1718         * css/CSSCursorImageValue.cpp:
1719         (WebCore::CSSCursorImageValue::cachedImage):
1720         * css/CSSFontFaceSrcValue.cpp:
1721         (WebCore::CSSFontFaceSrcValue::cachedFont):
1722         * css/CSSImageSetValue.cpp:
1723         (WebCore::CSSImageSetValue::cachedImageSet):
1724         * css/CSSImageValue.cpp:
1725         (WebCore::CSSImageValue::cachedImage):
1726         * css/CSSImageValue.h:
1727         (WebCore):
1728         (CSSImageValue):
1729         * css/StyleResolver.cpp:
1730         (WebCore::StyleResolver::loadPendingImage):
1731         * css/StyleRuleImport.cpp:
1732         (WebCore::StyleRuleImport::requestStyleSheet):
1733         * css/WebKitCSSSVGDocumentValue.cpp:
1734         (WebCore::WebKitCSSSVGDocumentValue::load):
1735         * css/WebKitCSSShaderValue.cpp:
1736         (WebCore::WebKitCSSShaderValue::cachedShader):
1737         * dom/ScriptElement.cpp:
1738         (WebCore::ScriptElement::requestScript):
1739         * html/HTMLLinkElement.cpp:
1740         (WebCore::HTMLLinkElement::process):
1741         * html/parser/CSSPreloadScanner.cpp:
1742         (WebCore::CSSPreloadScanner::emitRule):
1743         * html/parser/CSSPreloadScanner.h:
1744         (CSSPreloadScanner):
1745         * html/parser/HTMLPreloadScanner.cpp:
1746         (WebCore::PreloadTask::preload):
1747         * loader/ImageLoader.cpp:
1748         (WebCore::ImageLoader::updateFromElement):
1749         * loader/cache/CachedResourceLoader.cpp:
1750         (WebCore::CachedResourceLoader::requestImage):
1751         (WebCore::CachedResourceLoader::requestResource):
1752         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
1753         (WebCore):
1754         (WebCore::CachedResourceLoader::preload):
1755         * loader/cache/CachedResourceLoader.h:
1756         (WebCore):
1757         (CachedResourceLoader):
1758         * loader/cache/CachedResourceRequest.cpp:
1759         (WebCore::CachedResourceRequest::CachedResourceRequest):
1760         (WebCore):
1761         (WebCore::CachedResourceRequest::~CachedResourceRequest):
1762         (WebCore::CachedResourceRequest::setInitiator):
1763         (WebCore::CachedResourceRequest::initiatorName):
1764         (WebCore::CachedResourceRequest::initiatorDocument):
1765         (WebCore::CachedResourceRequest::initiatorElement):
1766         * loader/cache/CachedResourceRequest.h:
1767         (WebCore):
1768         (WebCore::CachedResourceRequest::setOptions):
1769         (WebCore::CachedResourceRequest::defer):
1770         (WebCore::CachedResourceRequest::setDefer):
1771         (CachedResourceRequest):
1772         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
1773         (WebCore):
1774         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
1775         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
1776         (WebCore):
1777         (CachedResourceRequestInitiators):
1778         (WebCore::cachedResourceRequestInitiators):
1779         * loader/icon/IconLoader.cpp:
1780         (WebCore::IconLoader::startLoading):
1781         * platform/ThreadGlobalData.cpp:
1782         (WebCore::ThreadGlobalData::ThreadGlobalData):
1783         * platform/ThreadGlobalData.h:
1784         (WebCore):
1785         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
1786         (ThreadGlobalData):
1787         * svg/SVGFEImageElement.cpp:
1788         (WebCore::SVGFEImageElement::requestImageResource):
1789         * svg/SVGFontFaceUriElement.cpp:
1790         (WebCore::SVGFontFaceUriElement::loadFont):
1791         * svg/SVGUseElement.cpp:
1792         (WebCore::SVGUseElement::svgAttributeChanged):
1793
1794 2012-11-16  Yury Semikhatsky  <yurys@chromium.org>
1795
1796         Web Inspector: don't show an Error when evaluating a watch expression results in an exception
1797         https://bugs.webkit.org/show_bug.cgi?id=102470
1798
1799         Reviewed by Vsevolod Vlasov.
1800
1801         Dim watch expression and show "<not available>" as its value in cases when it evaluates
1802         into an exception.
1803
1804         * English.lproj/localizedStrings.js:
1805         * inspector/front-end/WatchExpressionsSidebarPane.js:
1806         (WebInspector.WatchExpressionTreeElement.prototype.update):
1807         * inspector/front-end/inspector.css:
1808
1809 2012-11-16  Vsevolod Vlasov  <vsevik@chromium.org>
1810
1811         Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
1812         https://bugs.webkit.org/show_bug.cgi?id=102476
1813
1814         Unreviewed rolling out.
1815
1816         * English.lproj/localizedStrings.js:
1817         * WebCore.gypi:
1818         * WebCore.vcproj/WebCore.vcproj:
1819         * inspector/compile-front-end.py:
1820         * inspector/front-end/AdvancedSearchController.js:
1821         * inspector/front-end/CallStackSidebarPane.js:
1822         (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
1823         * inspector/front-end/ConsoleView.js:
1824         (WebInspector.ConsoleView.prototype._registerShortcuts):
1825         * inspector/front-end/ElementsPanel.js:
1826         (WebInspector.ElementsPanel):
1827         (WebInspector.ElementsPanel.prototype._registerShortcuts):
1828         * inspector/front-end/ElementsPanelDescriptor.js:
1829         * inspector/front-end/GoToLineDialog.js:
1830         (WebInspector.GoToLineDialog.install):
1831         * inspector/front-end/KeyboardShortcut.js:
1832         (WebInspector.KeyboardShortcut._keyName):
1833         * inspector/front-end/Panel.js:
1834         (WebInspector.Panel.prototype.registerShortcut):
1835         (WebInspector.Panel.prototype.unregisterShortcut):
1836         (WebInspector.PanelDescriptor.prototype.panel):
1837         * inspector/front-end/ScriptsPanel.js:
1838         (WebInspector.ScriptsPanel):
1839         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
1840         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
1841         * inspector/front-end/ScriptsPanelDescriptor.js:
1842         * inspector/front-end/ShortcutsScreen.js:
1843         (WebInspector.ShortcutsScreen):
1844         (WebInspector.ShortcutsSection):
1845         (WebInspector.ShortcutsSection.prototype._renderKey):
1846         * inspector/front-end/StylesSidebarPane.js:
1847         (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
1848         * inspector/front-end/TimelinePanel.js:
1849         (WebInspector.TimelinePanel.prototype._registerShortcuts):
1850         * inspector/front-end/TimelinePanelDescriptor.js: Removed.
1851         * inspector/front-end/WebKit.qrc:
1852         * inspector/front-end/inspector.html:
1853         * inspector/front-end/inspector.js:
1854         (WebInspector._panelDescriptors):
1855         (WebInspector._registerShortcuts):
1856
1857 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
1858
1859         Web Inspector: Memory Timeline Crash
1860         https://bugs.webkit.org/show_bug.cgi?id=102390
1861
1862         Reviewed by Vsevolod Vlasov.
1863
1864         Crash seems to be caused by IPC overflow.
1865         Messages "ParsedScriptSource" are routed to
1866         ResourceScriptMapping.prototype.addScript that process them in time
1867         linear to number of already registered non-anonymous non-inline scripts.
1868
1869         Fixed this with replacing repreated filtering with "on-line" bucketing.
1870
1871         * inspector/front-end/ResourceScriptMapping.js:
1872         (WebInspector.ResourceScriptMapping):
1873         Removed duplicating initialization code.
1874         (WebInspector.ResourceScriptMapping.prototype.addScript):
1875         Added script bucketing by sourceURL/isInline parameters.
1876         (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
1877         Avoid filterfig.
1878         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
1879         Added outgoing muatable array safeguard.
1880         (WebInspector.ResourceScriptMapping.prototype._reset):
1881         Added type information and added two new maps.
1882
1883 2012-11-16  Helder Correia  <helder.correia@nokia.com>
1884
1885         [CoordGfx] Follow coding style on explicit constructors
1886         https://bugs.webkit.org/show_bug.cgi?id=102451
1887
1888         Reviewed by Noam Rosenthal.
1889
1890         Use the explicit keyword on single argument constructors.
1891
1892         No new tests needed.
1893
1894         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
1895         (GraphicsLayerTextureMapper):
1896         * platform/graphics/texmap/TextureMapper.h:
1897         (TextureMapper):
1898         * platform/graphics/texmap/TextureMapperBackingStore.h:
1899         (WebCore::TextureMapperTile::TextureMapperTile):
1900         * platform/graphics/texmap/TextureMapperGL.cpp:
1901         (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
1902         (WebCore::TextureMapperGLData::TextureMapperGLData):
1903         * platform/graphics/texmap/TextureMapperGL.h:
1904         (BitmapTextureGL):
1905         * platform/graphics/texmap/TextureMapperShaderManager.h:
1906         (TextureMapperShaderManager):
1907
1908 2012-11-16  Kihong Kwon  <kihong.kwon@samsung.com>
1909
1910         Add DeviceController base-class to remove duplication of DeviceXXXControler
1911         https://bugs.webkit.org/show_bug.cgi?id=96894
1912
1913         Reviewed by Hajime Morita.
1914
1915         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
1916         And soon-to-be-added DeviceMotionController and ProximityController.
1917
1918         Covered by existing tests.
1919
1920         * CMakeLists.txt:
1921         * GNUmakefile.list.am:
1922         * Target.pri:
1923         * WebCore.gypi:
1924         * WebCore.vcproj/WebCore.vcproj:
1925         * WebCore.xcodeproj/project.pbxproj:
1926         * dom/DeviceOrientationClient.h:
1927         * dom/DeviceOrientationController.cpp:
1928         Remove member functions to move to DeviceController.
1929         - addListener(), removeListener(), removeAllListeners(), isActive()
1930         (WebCore::DeviceOrientationController::DeviceOrientationController):
1931         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
1932         (WebCore::DeviceOrientationController::client):
1933         (WebCore::DeviceOrientationController::hasLastData):
1934         (WebCore::DeviceOrientationController::getLastEvent):
1935         (WebCore::DeviceOrientationController::from):
1936         (WebCore):
1937         * dom/DeviceOrientationController.h:
1938         (WebCore):
1939         (WebCore::DeviceOrientationController::~DeviceOrientationController):
1940         (DeviceOrientationController):
1941         * dom/Document.cpp:
1942         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
1943         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
1944         (WebCore::Document::suspendActiveDOMObjects):
1945         (WebCore::Document::resumeActiveDOMObjects):
1946         * loader/EmptyClients.h:
1947         (EmptyDeviceClient):
1948         (WebCore::EmptyDeviceClient::startUpdating):
1949         (WebCore::EmptyDeviceClient::stopUpdating):
1950         (WebCore):
1951         * page/DOMWindow.cpp:
1952         (WebCore::DOMWindow::addEventListener):
1953         (WebCore::DOMWindow::removeEventListener):
1954         (WebCore::DOMWindow::removeAllEventListeners):
1955         * page/DeviceClient.h: Added.
1956         (WebCore):
1957         (DeviceClient):
1958         (WebCore::DeviceClient::~DeviceClient):
1959         * page/DeviceController.cpp: Added.
1960         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
1961         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
1962         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
1963         (WebCore):
1964         (WebCore::DeviceController::DeviceController):
1965         (WebCore::DeviceController::addDeviceEventListener):
1966         (WebCore::DeviceController::removeDeviceEventListener):
1967         (WebCore::DeviceController::removeAllDeviceEventListeners):
1968         (WebCore::DeviceController::dispatchDeviceEvent):
1969         (WebCore::DeviceController::fireDeviceEvent):
1970         * page/DeviceController.h: Added.
1971         (WebCore):
1972         (DeviceController):
1973         (WebCore::DeviceController::~DeviceController):
1974         (WebCore::DeviceController::isActive):
1975         (WebCore::DeviceController::client):
1976         (WebCore::DeviceController::hasLastData):
1977         (WebCore::DeviceController::getLastEvent):
1978
1979 2012-11-16  Alexander Pavlov  <apavlov@chromium.org>
1980
1981         Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
1982         https://bugs.webkit.org/show_bug.cgi?id=102467
1983
1984         Reviewed by Pavel Feldman.
1985
1986         Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
1987         Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
1988         so that they will get restored only upon page navigation, not upon any agent enablement.
1989
1990         * inspector/InspectorPageAgent.cpp:
1991         (WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
1992         (WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.
1993
1994 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1995
1996         Unreviewed, rolling out r134908.
1997         http://trac.webkit.org/changeset/134908
1998         https://bugs.webkit.org/show_bug.cgi?id=102473
1999
2000         Broke the Apple Windows Debug build. (Requested by dydx on
2001         #webkit).
2002
2003         * WebCore.exp.in:
2004         * dom/ViewportArguments.cpp:
2005         (WebCore::computeViewportAttributes):
2006         * dom/ViewportArguments.h:
2007         (WebCore):
2008
2009 2012-11-16  Peter Rybin  <prybin@chromium.org>
2010
2011         Web Inspector: show internal properties in inspector frontend
2012         https://bugs.webkit.org/show_bug.cgi?id=100021
2013
2014         Reviewed by Yury Semikhatsky.
2015
2016         New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.
2017
2018         Test: inspector/debugger/properties-special.html
2019
2020         * inspector/front-end/ObjectPropertiesSection.js:
2021         (WebInspector.ObjectPropertiesSection.prototype.update.callback):
2022         (WebInspector.ObjectPropertiesSection.prototype.update):
2023         (.callback):
2024         (WebInspector.ObjectPropertyTreeElement.populate):
2025         (.processProperties):
2026         (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
2027         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
2028         * inspector/front-end/RemoteObject.js:
2029         (WebInspector.RemoteObject.prototype.set else):
2030
2031 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
2032
2033         Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
2034         https://bugs.webkit.org/show_bug.cgi?id=93691
2035
2036         Reviewed by Vsevolod Vlasov.
2037
2038         - The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
2039         both receiving a new, more light-weight design.
2040         - The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.
2041
2042         * WebCore.gypi:
2043         * WebCore.vcproj/WebCore.vcproj:
2044         * inspector/compile-front-end.py:
2045         * inspector/front-end/ContextMenu.js:
2046         (WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
2047         * inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
2048         (WebInspector.OverridesView.appendBlockTo):
2049         (WebInspector.OverridesView):
2050         (WebInspector.OverridesView.showInDrawer):
2051         (WebInspector.OverridesView.prototype.get listener):
2052         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
2053         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
2054         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
2055         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
2056         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
2057         (WebInspector.OverridesView.prototype._createInput):
2058         (WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
2059         (WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
2060         (WebInspector.OverridesView.prototype.):
2061         (WebInspector.OverridesView.prototype.set if):
2062         (WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
2063         (WebInspector.OverridesView.prototype._createDeviceMetricsElement):
2064         (WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
2065         (WebInspector.OverridesView.prototype._applyGeolocationUserInput):
2066         (WebInspector.OverridesView.prototype._setGeolocationPosition):
2067         (WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
2068         (WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
2069         (WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
2070         (WebInspector.OverridesView.prototype._setDeviceOrientation):
2071         (WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
2072         * inspector/front-end/ScriptsPanel.js:
2073         (WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
2074         * inspector/front-end/SettingsScreen.js:
2075         (WebInspector.SettingsTab):
2076         (WebInspector.SettingsTab.prototype._appendSection):
2077         (WebInspector.GenericSettingsTab):
2078         (WebInspector.ExperimentsSettingsTab):
2079         (WebInspector.SettingsController): Implement the popup menu upon the button click.
2080         (WebInspector.SettingsController.prototype.showOverrides):
2081         (WebInspector.SettingsController.prototype.showSettings):
2082         (WebInspector.SettingsController.prototype.appendApplicableItems):
2083         (WebInspector.SettingsController.prototype._buttonPressed):
2084         (WebInspector.SettingsController.prototype._onHideSettingsScreen):
2085         (WebInspector.SettingsController.prototype.showSettingsScreen):
2086         * inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
2087         (WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
2088         * inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
2089         (WebInspector.SoftContextMenu.prototype.show):
2090         * inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
2091         (WebInspector.TabbedPane.prototype.set verticalTabLayout):
2092         (WebInspector.TabbedPane.prototype._updateWidths):
2093         (WebInspector.TabbedPaneTab.prototype.setWidth):
2094         (WebInspector.TabbedPaneTab.prototype._createTabElement):
2095         * inspector/front-end/WebKit.qrc:
2096         * inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
2097         * inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
2098         (.soft-context-menu-item):
2099         (.drawer-header):
2100         * inspector/front-end/inspector.html:
2101
2102 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
2103
2104         Unreviewed, rolling out r134865.
2105         http://trac.webkit.org/changeset/134865
2106         https://bugs.webkit.org/show_bug.cgi?id=102466
2107
2108         Broke the Apple Windows Debug build. (Requested by dydx on
2109         #webkit).
2110
2111         * WebCore.exp.in:
2112         * bindings/js/SerializedScriptValue.h:
2113         * testing/Internals.cpp:
2114         * testing/Internals.h:
2115         (WebCore):
2116         * testing/Internals.idl:
2117
2118 2012-11-16  Takashi Sakamoto  <tasak@google.com>
2119
2120         ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
2121         https://bugs.webkit.org/show_bug.cgi?id=102116
2122
2123         Reviewed by Alexander Pavlov.
2124
2125         Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
2126         rules. Since there is no CSSOM wrapper for @host @-rules and
2127         ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
2128         this crash occurs.
2129
2130         Tests: fast/css/at-host-cssom-crash.html
2131                inspector/styles/styles-include-host-rules-crash.html
2132
2133         * css/StyleRule.cpp:
2134         (WebCore::StyleRuleBase::createCSSOMWrapper):
2135         Return a CSSUnknownRule instance for StyleRuleHost rules instead of
2136         calling ASSERT_NOT_REACHED().
2137
2138 2012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2139
2140         Avoid copying of ViewportArguments in computeViewportAttributes function
2141         https://bugs.webkit.org/show_bug.cgi?id=102354
2142
2143         Reviewed by Kenneth Rohde Christiansen.
2144
2145         Since r134749 we do not need copying of ViewportArguments parameter in
2146         computeViewportAttributes() as it is not modified any more.
2147
2148         Tested by existing tests fast/viewport.
2149
2150         * WebCore.exp.in: Updated exported symbols for MAC.
2151         * dom/ViewportArguments.cpp:
2152         (WebCore::computeViewportAttributes):
2153         * dom/ViewportArguments.h:
2154         (WebCore):
2155
2156 2012-11-15  Yury Semikhatsky  <yurys@chromium.org>
2157
2158         Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
2159         https://bugs.webkit.org/show_bug.cgi?id=102384
2160
2161         Reviewed by Pavel Feldman.
2162
2163         * inspector/InspectorMemoryAgent.cpp:
2164         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
2165         if the check fails.
2166         * inspector/MemoryInstrumentationImpl.h:
2167         (MemoryInstrumentationClientImpl):
2168
2169 2012-11-15  Jer Noble  <jer.noble@apple.com>
2170
2171         Crash at WebCore::PluginData::pluginFileForMimeType const + 38
2172         https://bugs.webkit.org/show_bug.cgi?id=102454
2173
2174         Reviewed by Dan Bernstein.
2175
2176         NULL-check the return value of Page::pluginData().
2177
2178         * loader/SubframeLoader.cpp:
2179         (WebCore::logPluginRequest):
2180
2181 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
2182
2183         [Chromium] Unreviewed build fix attempt on win
2184
2185         Include OpenTypeVerticalData.h
2186
2187         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
2188         (WebCore):
2189
2190 2012-11-15  Kentaro Hara  <haraken@chromium.org>
2191
2192         Unreviewed, rolling out r134881.
2193         http://trac.webkit.org/changeset/134881
2194         https://bugs.webkit.org/show_bug.cgi?id=102348
2195
2196         http/tests/appcache tests on JSC platforms are broken
2197
2198         * bindings/scripts/CodeGenerator.pm:
2199         (IsStrictSubtype):
2200         * bindings/scripts/CodeGeneratorJS.pm:
2201         (GenerateImplementation):
2202         * bindings/scripts/CodeGeneratorV8.pm:
2203         (GenerateHeader):
2204         (GetInternalFields):
2205         (IsSubType):
2206         (IsNodeSubType):
2207         (GenerateNormalAttrGetter):
2208         (GenerateNormalAttrSetter):
2209         (GenerateFunctionCallback):
2210         (GenerateImplementationIndexer):
2211         (GenerateToV8Converters):
2212
2213 2012-11-15  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
2214
2215         [TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
2216         https://bugs.webkit.org/show_bug.cgi?id=102420
2217
2218         Reviewed by Gyuyoung Kim.
2219
2220         Moved out texture upload without swizzle to the separate method and changed
2221         drawRepaintCounter to use no-swizzle method. This also fixes blue background
2222         of repaint counters in Qt Minibrowser.
2223         Added condition for sub-image buffer creation to not create it if full image is
2224         uploaded. This should give noticeable improvement for platforms that do not
2225         support sub-image upload to texture.
2226
2227         Covered by existing tests.
2228
2229         * platform/graphics/texmap/TextureMapperGL.cpp:
2230         (WebCore::TextureMapperGL::drawRepaintCounter):
2231         (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
2232         (WebCore):
2233         (WebCore::BitmapTextureGL::updateContents):
2234         * platform/graphics/texmap/TextureMapperGL.h:
2235         (BitmapTextureGL):
2236
2237 2012-11-15  Kent Tamura  <tkent@chromium.org>
2238
2239         A Spin button should release mouse event capturing when a modal dialog opens
2240         https://bugs.webkit.org/show_bug.cgi?id=98007
2241
2242         Reviewed by Hajime Morita.
2243
2244         Description of bug:
2245         If the mouse left button is pressed on a spin button in
2246         input[type=number] and a 'change' event handler opens a modal dialog
2247         such as alert(), a repeating timer doesn't stop and mouse event
2248         capturing isn't released even though the mouse pointer isn't on the spin
2249         button.
2250         A user will see repeating alert dialogs for a document like <input
2251         type=number value=1 onchange="if (this.value==1) {alert(...);
2252         this.value=1;}"> by clicking the up button.
2253
2254         How to solve:
2255         We should notify modal dialog or popup open to a spin button.
2256         This patch introduce PopupOpeningObserver. Chrome notifies it when
2257         any dialogs / popups is opening. SpinButtonElement implements
2258         PopupOpeningObserver and registers/unregisters itself to/from
2259         Chrome.
2260
2261         No new tests. This is a behavior change, but it's very hard to make an
2262         automated test for timer-related behavior.
2263
2264         * page/PopupOpeningObserver.h: Added.
2265         * GNUmakefile.list.am: Add PopupOpeningObserver.h
2266         * Target.pri: Ditto.
2267         * WebCore.gypi: Ditto.
2268         * WebCore.vcproj/WebCore.vcproj: Ditto.
2269         * WebCore.xcodeproj/project.pbxproj: Ditto.
2270
2271         * page/Chrome.cpp:
2272         (WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
2273         (WebCore::Chrome::runJavaScriptConfirm): Ditto.
2274         (WebCore::Chrome::runJavaScriptPrompt): Ditto.
2275         (WebCore::Chrome::createColorChooser): Ditto.
2276         (WebCore::Chrome::openDateTimeChooser):
2277         Added. Calls notifyPopupOpeningObservers before calling
2278         ChromeClient::openDateTimeChooser.
2279         (WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
2280         (WebCore::Chrome::createPopupMenu): Ditto.
2281         (WebCore::Chrome::createSearchPopupMenu): Ditto.
2282         (WebCore::Chrome::registerPopupOpeningObserver): Added.
2283         (WebCore::Chrome::unregisterPopupOpeningObserver): Added.
2284         (WebCore::Chrome::notifyPopupOpeningObservers): Added.
2285         * page/Chrome.h: Added new members and required class/struct declarations.
2286
2287         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
2288         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
2289         Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
2290         * html/shadow/PickerIndicatorElement.cpp:
2291         (WebCore::PickerIndicatorElement::openPopup): Ditto.
2292
2293         * html/shadow/SpinButtonElement.h:
2294         (SpinButtonElement): Declare willOpenPopup.
2295         * html/shadow/SpinButtonElement.cpp:
2296         (WebCore::SpinButtonElement::defaultEventHandler):
2297         Change the order of timer start and changing the value so that we
2298         can cancel the timer correctly.
2299         Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
2300         (WebCore::SpinButtonElement::willOpenPopup):
2301         Release mouse event capturing before opening a modal dialog.
2302         (WebCore::SpinButtonElement::releaseCapture):
2303         Calls Chrome::unregisterPopupOpeningObserver.
2304
2305
2306 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
2307
2308         Chaging pseudoClass (:enabled) should cause distribution
2309         https://bugs.webkit.org/show_bug.cgi?id=101900
2310
2311         Reviewed by Dimitri Glazkov.
2312
2313         When element's 'enabled' state is changed, we have to invalidate distribution.
2314
2315         According to the spec, :enabled matches anchor/area/link element having href attribute,
2316         and several form control elements which is not disabled. However, currently :enalbed does not match
2317         anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
2318
2319         Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
2320                fast/dom/shadow/pseudoclass-update-enabled-area.html
2321                fast/dom/shadow/pseudoclass-update-enabled-button.html
2322                fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
2323                fast/dom/shadow/pseudoclass-update-enabled-input.html
2324                fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
2325                fast/dom/shadow/pseudoclass-update-enabled-option.html
2326                fast/dom/shadow/pseudoclass-update-enabled-select.html
2327                fast/dom/shadow/pseudoclass-update-enabled-textarea.html
2328
2329         * html/HTMLAnchorElement.cpp:
2330         (WebCore::HTMLAnchorElement::parseAttribute):
2331         * html/HTMLFormControlElement.cpp:
2332         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
2333         * html/HTMLOptGroupElement.cpp:
2334         (WebCore::HTMLOptGroupElement::parseAttribute):
2335         * html/HTMLOptionElement.cpp:
2336         (WebCore::HTMLOptionElement::parseAttribute):
2337
2338 2012-11-15  Erik Arvidsson  <arv@chromium.org>
2339
2340         Update DOMException name: ValidationError
2341         https://bugs.webkit.org/show_bug.cgi?id=102416
2342
2343         Reviewed by Kentaro Hara.
2344
2345         Patch 16 of 25 to update DOMException name to match the spec and Firefox.
2346
2347         VALIDATION_ERR is historical and not used in any spec or our code.
2348
2349         * dom/DOMCoreException.cpp:
2350         * dom/ExceptionCode.h:
2351
2352 2012-11-15  Kentaro Hara  <haraken@chromium.org>
2353
2354         [V8] Remove IsSubType() from CodeGeneratorV8.pm
2355         https://bugs.webkit.org/show_bug.cgi?id=102348
2356
2357         Reviewed by Adam Barth.
2358
2359         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
2360
2361         No tests. No change in behavior.
2362
2363         * bindings/scripts/CodeGenerator.pm:
2364         (IsSubType):
2365         * bindings/scripts/CodeGeneratorJS.pm:
2366         (GenerateImplementation):
2367         * bindings/scripts/CodeGeneratorV8.pm:
2368         (GenerateHeader):
2369         (GetInternalFields):
2370         (GenerateNormalAttrGetter):
2371         (GenerateNormalAttrSetter):
2372         (GenerateFunctionCallback):
2373         (GenerateImplementationIndexer):
2374         (GenerateToV8Converters):
2375
2376 2012-11-15  Erik Arvidsson  <arv@chromium.org>
2377
2378         Update DOMException name: NamespaceError
2379         https://bugs.webkit.org/show_bug.cgi?id=102395
2380
2381         Reviewed by Kentaro Hara.
2382
2383         Patch 14 of 25 to update DOMException name to match the spec and Firefox.
2384
2385         Updated existing tests.
2386
2387         * dom/DOMCoreException.cpp:
2388
2389 2012-11-15  Tien-Ren Chen  <trchen@chromium.org>
2390
2391         Add Settings to disable custom scrollbars on main frame
2392         https://bugs.webkit.org/show_bug.cgi?id=102323
2393
2394         Reviewed by Adam Barth.
2395
2396         Custom scrollbars on main frame don't really work well on touch devices.
2397         Add a setting to inhibit their creation.
2398
2399         No new tests. No change in default layout behavior.
2400
2401         * page/FrameView.cpp:
2402         (WebCore::FrameView::createScrollbar):
2403         * page/Settings.in:
2404
2405 2012-11-15  Rick Byers  <rbyers@chromium.org>
2406
2407         custom CSS cursors ignore hotspot values embedded in CUR files
2408         https://bugs.webkit.org/show_bug.cgi?id=100059
2409
2410         Reviewed by Kenneth Russell.
2411
2412         Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
2413         and plumb it through so that the existing calls to ImageSource::getHotSpot
2414         actually return the hot spot value when there is one.
2415
2416         Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
2417
2418         * platform/graphics/ImageSource.cpp:
2419         (WebCore::ImageSource::getHotSpot):
2420         * platform/graphics/chromium/DeferredImageDecoder.cpp:
2421         (WebCore::DeferredImageDecoder::hotSpot):
2422         (WebCore::DeferredImageDecoder::hotSpotAtIndex):
2423         * platform/graphics/chromium/DeferredImageDecoder.h:
2424         (DeferredImageDecoder):
2425         * platform/image-decoders/ImageDecoder.h:
2426         (WebCore::ImageDecoder::hotSpot):
2427         (WebCore::ImageDecoder::hotSpotAtIndex):
2428         (ImageDecoder):
2429         * platform/image-decoders/ico/ICOImageDecoder.cpp:
2430         (WebCore::ICOImageDecoder::hotSpot):
2431         (WebCore::ICOImageDecoder::hotSpotAtIndex):
2432         (WebCore::ICOImageDecoder::processDirectory):
2433         (WebCore::ICOImageDecoder::readDirectoryEntry):
2434         * platform/image-decoders/ico/ICOImageDecoder.h:
2435         (ICOImageDecoder):
2436         (IconDirectoryEntry):
2437
2438 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
2439
2440         Make OpenTypeVerticalData be ref-counted
2441         https://bugs.webkit.org/show_bug.cgi?id=101971
2442
2443         Reviewed by Tony Chang.
2444
2445         FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
2446         OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
2447         via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
2448         SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
2449         delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
2450         it be ref-counted.
2451
2452         No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
2453
2454         * platform/graphics/FontCache.cpp:
2455         (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
2456         (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
2457         (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
2458         * platform/graphics/FontCache.h:
2459         * platform/graphics/SimpleFontData.cpp:
2460         (WebCore::SimpleFontData::SimpleFontData):
2461         * platform/graphics/SimpleFontData.h:
2462         Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
2463         (WebCore::SimpleFontData::verticalData):
2464         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2465         (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
2466         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
2467         (FontPlatformData):
2468         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
2469         (WebCore::FontPlatformData::verticalData): Ditto.
2470         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
2471         (WebCore):
2472         (FontPlatformData):
2473         * platform/graphics/opentype/OpenTypeVerticalData.h:
2474         (WebCore::OpenTypeVerticalData::create): Added.
2475         (OpenTypeVerticalData):
2476
2477 2012-11-15  Xingnan Wang  <xingnan.wang@intel.com>
2478
2479         Optimize the multiply-add in Biquad.cpp::process
2480         https://bugs.webkit.org/show_bug.cgi?id=75528
2481
2482         Reviewed by Brent Fulgham.
2483
2484         Pipeline the multiply-add with SSE2 intrinsics.
2485         Get ~45% performance improvement for the function.
2486
2487         * platform/audio/Biquad.cpp:
2488         (WebCore::Biquad::process):
2489
2490 2012-11-15  Alec Flett  <alecflett@chromium.org>
2491
2492         Add tests for explicit serialization values
2493         https://bugs.webkit.org/show_bug.cgi?id=96818
2494
2495         Reviewed by Adam Barth.
2496
2497         Expose direct access to the serialization/deserialization mechanisms
2498         of SerializedScriptValue to DumpRenderTree.
2499
2500         * testing/Internals.cpp:
2501         (WebCore::Internals::serializeObject):
2502         (WebCore):
2503         (WebCore::Internals::deserializeBuffer):
2504         * testing/Internals.h:
2505         (WebCore):
2506         * testing/Internals.idl:
2507
2508 2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
2509
2510         [GTK] Split WebCore/platform into a separate library
2511         https://bugs.webkit.org/show_bug.cgi?id=94435
2512
2513         Reviewed by Martin Robinson.
2514
2515         More people have been reporting problems when linking WebCore because
2516         the command line limit is being exceeded. Splitting WebCore a bit more
2517         is in order.
2518
2519         * GNUmakefile.am: add new libWebCorePlatform convenience library.
2520         * GNUmakefile.list.am: move list of platform/* files to its own variable.
2521
2522 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
2523
2524         Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
2525         https://bugs.webkit.org/show_bug.cgi?id=102036
2526
2527         Reviewed by Darin Adler.
2528
2529         Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
2530
2531         No tests added because code is unused, and compile is enough to verify that conculsively.
2532
2533         * css/StyleResolver.cpp:
2534
2535 2012-11-15  Erik Arvidsson  <arv@chromium.org>
2536
2537         Update DOMException name: SyntaxError
2538         https://bugs.webkit.org/show_bug.cgi?id=102279
2539
2540         Reviewed by Kentaro Hara.
2541
2542         Patch 12 of 25 to update DOMException name to match the spec and Firefox.
2543
2544         Updated existing tests.
2545
2546         * dom/DOMCoreException.cpp:
2547
2548 2012-11-15  Takashi Sakamoto  <tasak@google.com>
2549
2550         [Win] key event's location does not work on Windows platform.
2551         https://bugs.webkit.org/show_bug.cgi?id=89742
2552
2553         Reviewed by Brent Fulgham.
2554
2555         As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
2556         directly provide a virtual keycode which distinguish between left-hand
2557         and right-hand keys. To obtain a virtual keycode, we have to look at
2558         lparam, i.e. scancode and extended key bit. So if the given virtual
2559         keycode is control, shift, or menu, use MapVirtualKey with scancode and
2560         extended key bit and recreate a virtual keycode which distinguishes
2561         between left-hand and right-hand.
2562
2563         No new tests, because left-hand keys, right-hand keys layout tests
2564         have been already added.
2565
2566         * platform/win/KeyEventWin.cpp:
2567         (WebCore::windowsKeycodeWithLocation):
2568         Use wparam and lparam to recreate a virtual keycode which distinguishes
2569         between left-hand and right-hand if the given wparam (=virtual keycode)
2570         is control, shift, or menu.
2571         (WebCore):
2572         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2573         Use the newly added function to obtain windows virtual keycode.
2574
2575 2012-11-15  Joe Mason  <jmason@rim.com>
2576
2577         [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
2578         https://bugs.webkit.org/show_bug.cgi?id=102436
2579
2580         Reviewed by Rob Buis.
2581
2582         The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
2583         taking auth of its own. First we get a 407 from the proxy, and then when get past the
2584         proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
2585         type Proxy instead of HTTP.
2586
2587         The correct thing to do when that happens is skip the "update the auth type in the
2588         credentials" step, since these are actually new credentials and not just credentials being
2589         reused for a different auth type on the same server.
2590
2591         PR 241637
2592
2593         * platform/network/blackberry/NetworkJob.cpp:
2594         (WebCore::NetworkJob::notifyAuthReceived):
2595
2596 2012-11-15  Stephen Chenney  <schenney@chromium.org>
2597
2598         mpath elements do not clear resource lists before destruction
2599         https://bugs.webkit.org/show_bug.cgi?id=101505
2600
2601         Reviewed by Abhishek Arya.
2602
2603         The destructor for SVGMPathElement should clear its resources before
2604         deletion, so as not to leave hanging pointers in resource lists.
2605
2606         Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
2607
2608         * svg/SVGMPathElement.cpp:
2609         (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
2610         (WebCore):
2611         * svg/SVGMPathElement.h:
2612         (SVGMPathElement): Add destructor.
2613
2614 2012-11-15  Kentaro Hara  <haraken@chromium.org>
2615
2616         Remove CodeGenerator::StripModule
2617         https://bugs.webkit.org/show_bug.cgi?id=102338
2618
2619         Reviewed by Adam Barth.
2620
2621         Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
2622         We can remove CodeGenerator::StripModule.
2623         This might break some internal builds if the internal builds are still
2624         using modules. Ping haraken@ you observe it.
2625
2626         No tests. No change in behavior.
2627
2628         * bindings/scripts/CodeGenerator.pm:
2629         (ForAllParents):
2630         (AttributeNameForGetterAndSetter):
2631         (IsStrictSubtype):
2632         * bindings/scripts/CodeGeneratorCPP.pm:
2633         (GetClassName):
2634         (GetImplClassName):
2635         (GetParentImplClassName):
2636         (GetParent):
2637         (ConversionNeeded):
2638         (GetCPPTypeGetter):
2639         (AddForwardDeclarationsForType):
2640         (AddIncludesForType):
2641         (GenerateImplementation):
2642         * bindings/scripts/CodeGeneratorGObject.pm:
2643         (GetParentClassName):
2644         (GetParentGObjType):
2645         (GetClassName):
2646         * bindings/scripts/CodeGeneratorJS.pm:
2647         (GetParentClassName):
2648         (AddIncludesForTypeInImpl):
2649         (AddIncludesForTypeInHeader):
2650         (GenerateParametersCheckExpression):
2651         (GenerateImplementation):
2652         (GenerateParametersCheck):
2653         (GetNativeTypeFromSignature):
2654         (JSValueToNative):
2655         (NativeToJSValue):
2656         * bindings/scripts/CodeGeneratorObjC.pm:
2657         (GetClassName):
2658         (GetImplClassName):
2659         (GetParentImplClassName):
2660         (GetParentAndProtocols):
2661         (GetPropertyAttributes):
2662         (ConversionNeeded):
2663         (GetObjCTypeGetter):
2664         (AddForwardDeclarationsForType):
2665         (AddIncludesForType):
2666         (GenerateImplementation):
2667         * bindings/scripts/CodeGeneratorV8.pm:
2668         (AddIncludesForType):
2669         (GenerateHeader):
2670         (IsSubType):
2671         (GenerateSingleBatchedAttribute):
2672         (GenerateImplementation):
2673         (BaseInterfaceName):
2674         (GetTypeFromSignature):
2675         (IsWrapperType):
2676
2677 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
2678
2679         Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
2680         https://bugs.webkit.org/show_bug.cgi?id=101696
2681
2682         Reviewed by Tony Chang.
2683
2684         Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
2685         This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
2686
2687         No new tests / covered by all existing CSS tests.
2688
2689         * css/StyleResolver.cpp:
2690         (WebCore::StyleResolver::applyProperty):
2691
2692 2012-11-15  Kentaro Hara  <haraken@chromium.org>
2693
2694         [V8] Remove redundant $interfaceName from function parameters
2695         https://bugs.webkit.org/show_bug.cgi?id=102334
2696
2697         Reviewed by Adam Barth.
2698
2699         'sub func { my $dataNode = shift; my $interfaceName = shift; }'
2700         is redundant. We can get $interfaceName by $dataNode->name.
2701
2702         No tests. No change in behavior.
2703
2704         * bindings/scripts/CodeGeneratorV8.pm:
2705         (GenerateOpaqueRootForGC):
2706         (GenerateHeader):
2707         (GenerateConstructorGetter):
2708         (GenerateNormalAttrGetter):
2709         (GenerateReplaceableAttrSetter):
2710         (GenerateNormalAttrSetter):
2711         (GenerateOverloadedFunctionCallback):
2712         (GenerateFunctionCallback):
2713         (GenerateOverloadedConstructorCallback):
2714         (GenerateSingleConstructorCallback):
2715         (GenerateConstructorCallback):
2716         (GenerateEventConstructorCallback):
2717         (GenerateTypedArrayConstructorCallback):
2718         (GenerateNamedConstructorCallback):
2719         (GenerateBatchedAttributeData):
2720         (GenerateImplementation):
2721         (GenerateToV8Converters):
2722         (GetNativeTypeForConversions):
2723
2724 2012-11-15  Simon Fraser  <simon.fraser@apple.com>
2725
2726         Ensure that scrollbar layers show debug borders
2727         https://bugs.webkit.org/show_bug.cgi?id=102429
2728
2729         Reviewed by Anders Carlsson.
2730
2731         After r133517, scrollbar layers no longer showed debug borders, which
2732         was very confusing. Fix this by explicitly calling setShowDebugBorder()
2733         on the scrollbar-related layers owned by RenderLayerCompositor
2734         and RenderLayerBacking.
2735         
2736         * rendering/RenderLayerBacking.cpp:
2737         (WebCore::RenderLayerBacking::updateDebugIndicators):
2738         * rendering/RenderLayerCompositor.cpp:
2739         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
2740         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
2741
2742 2012-11-15  Andreas Kling  <akling@apple.com>
2743
2744         ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
2745         <http://webkit.org/b/102423>
2746
2747         Reviewed by Anders Carlsson.
2748
2749         Use Element::getAttributeItem() to find out if the element has a given attribute
2750         instead of fastHasAttribute() since that causes assertions for the "style" attribute.
2751
2752         * html/parser/HTMLConstructionSite.cpp:
2753         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
2754
2755 2012-11-15  Erik Arvidsson  <arv@chromium.org>
2756
2757         Update DOMException name: DOMStringSizeError
2758         https://bugs.webkit.org/show_bug.cgi?id=102089
2759
2760         Reviewed by Ojan Vafai.
2761
2762         Patch 2 of 25 to update DOMException name to match the spec and Firefox.
2763
2764         DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
2765
2766         * dom/DOMCoreException.cpp:
2767         * dom/ExceptionCode.h:
2768
2769 2012-11-15  Joshua Bell  <jsbell@chromium.org>
2770
2771         IndexedDB: Indexing tests are flaky-crashing
2772         https://bugs.webkit.org/show_bug.cgi?id=102283
2773
2774         Reviewed by Tony Chang.
2775
2776         Processing the final task can cause IDBTransactionBackendImpl references to be released
2777         by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
2778         swapping queues) control would fall off the end of the function. The loop termination
2779         check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
2780         the method completes.
2781
2782         Test: storage/indexeddb/transaction-crash-in-tasks.html
2783
2784         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
2785         (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
2786         (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
2787         (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
2788
2789 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
2790
2791         MutationObserver wrapper should not be collected while still observing
2792         https://bugs.webkit.org/show_bug.cgi?id=102328
2793
2794         Reviewed by Adam Barth.
2795
2796         Make MutationObserver an ActiveDOMObject so that the wrapper is not
2797         collected while it is still observing the DOM. This is needed because
2798         the wrapper is passed into the callback and expandos on the wrapper
2799         should be preserved.
2800
2801         Test: fast/mutation/observer-wrapper-dropoff.html
2802
2803         * bindings/js/JSMutationObserverCustom.cpp:
2804         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
2805         * bindings/v8/custom/V8MutationObserverCustom.cpp:
2806         (WebCore::V8MutationObserver::constructorCallback):
2807         * dom/MutationObserver.cpp:
2808         (WebCore::MutationObserver::create):
2809         (WebCore::MutationObserver::MutationObserver):
2810         (WebCore::MutationObserver::observationStarted):
2811         (WebCore::MutationObserver::observationEnded):
2812         * dom/MutationObserver.h:
2813         (WebCore):
2814         * dom/MutationObserver.idl:
2815
2816 2012-11-15  Tony Chang  <tony@chromium.org>
2817
2818         Generate Settings from a .in file
2819         https://bugs.webkit.org/show_bug.cgi?id=100393
2820
2821         Reviewed by Adam Barth.
2822
2823         Generate most settings from an .in file to reduce human mistakes and
2824         to make it easier to add/remove new settings.
2825
2826         I only moved settings that are easy to move at this point.  There are many more that
2827         have some minor naming inconsistencies that we can also move to Settings.in, but I'll
2828         do that in a follow up patch.
2829
2830         This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
2831
2832         No new tests, this is a refactor.
2833
2834         * CMakeLists.txt:
2835         * DerivedSources.make: Run make_settings.pl.
2836         * DerivedSources.pri: Run make_settings.pl.
2837         * GNUmakefile.am: Run make_settings.pl.
2838         * GNUmakefile.list.am:
2839         * WebCore.exp.in: Remove functions that are now inline in the header.
2840         * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
2841         * WebCore.gyp/scripts/action_makenames.py:
2842         (main): Allow make_settings.pl.
2843         * WebCore.order: Remove functions that are now inline in the header.
2844         * html/ValidationMessage.cpp:
2845         (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
2846         * page/Settings.cpp:
2847         (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
2848         * page/Settings.h:
2849         (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
2850         * page/Settings.in: Added.
2851         * page/make_settings.pl: Added.
2852         (defaultItemFactory):
2853         (generateCode):
2854         (generateHeader): Use a similar model as make_names.pl.
2855         (printConditionalMacros):
2856         (printGettersAndSetters):
2857         (printMemberVariables):
2858         (printGetterAndSetter):
2859         (printInitializerList):
2860         (printInitializer):
2861
2862 2012-11-15  Alpha Lam  <hclam@chromium.org>
2863
2864         [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
2865         https://bugs.webkit.org/show_bug.cgi?id=102019
2866
2867         Reviewed by Stephen White.
2868
2869         Goal of this change is to keep ImageDecodingStore clean and only do
2870         image caching. Logic of creating lazily decoded SkBitmaps is moved into
2871         DeferredImageDecoder.
2872
2873         In particular these two methods are moved:
2874         - ImageDecodingStore::createLazyDecodedSkBitmap
2875         - ImageDecodingStore::resizeLazyDecodedSkBitmap
2876
2877         No new tests. There is no new code (really). It is just moved from
2878         ImageDecodingStore to DeferredImageDecoder.
2879
2880         No change in behavior. Code is tested with:
2881         Unit tests: webkit_unit_tests
2882         Layout test: platform/chromium/virtual/deferred
2883
2884         * platform/graphics/chromium/DeferredImageDecoder.cpp:
2885         (WebCore::DeferredImageDecoder::isLazyDecoded):
2886         (WebCore):
2887         (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
2888         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
2889         (WebCore::DeferredImageDecoder::setData):
2890         (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
2891         * platform/graphics/chromium/DeferredImageDecoder.h:
2892         (WebCore):
2893         (DeferredImageDecoder):
2894         * platform/graphics/chromium/ImageDecodingStore.cpp:
2895         * platform/graphics/chromium/ImageDecodingStore.h:
2896         (ImageDecodingStore):
2897         * platform/graphics/chromium/ImageFrameGenerator.cpp:
2898         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
2899         * platform/graphics/chromium/ImageFrameGenerator.h:
2900         (WebCore::ImageFrameGenerator::create):
2901         (ImageFrameGenerator):
2902         * platform/graphics/skia/NativeImageSkia.cpp:
2903         (WebCore::NativeImageSkia::resizedBitmap):
2904
2905 2012-11-15  Roger Fong  <roger_fong@apple.com>
2906
2907         Unreviewed. Build fix for Windows after r134767.
2908
2909         Update vsprops and vcproj files to reflect changes to file locations in r134767.
2910
2911         * WebCore.vcproj/WebCore.vcproj:
2912         * WebCore.vcproj/WebCoreCommon.vsprops:
2913
2914 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
2915
2916         Track subframe count to avoid traversing the tree when there's no subframes
2917         https://bugs.webkit.org/show_bug.cgi?id=101821
2918
2919         Reviewed by Ojan Vafai.
2920
2921         Bug 101619 showed a 9-14% improvement from not walking the children during
2922         removeChild looking for frames when there's known to be no frames. The fix
2923         in that bug only avoids this walk when the whole document has no frames, this
2924         patch extends it to skip traversing subtrees that have no iframes by hooking
2925         the frame assignment to walk up the tree and keep track of the count of frames
2926         in the subtree on contentFrame assignment and then decrement it on disconnect.
2927
2928         No new tests, this is just a perf refactor.
2929
2930         * dom/ContainerNode.cpp:
2931         (WebCore::willRemoveChildren):
2932         * dom/ContainerNodeAlgorithms.cpp:
2933         (WebCore::ChildFrameDisconnector::collectFrameOwners):
2934         * dom/ContainerNodeAlgorithms.h:
2935         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
2936         (ChildFrameDisconnector):
2937         (WebCore::ChildFrameDisconnector::collectFrameOwners):
2938           Renamed from collectDescendant() to better reflect what it really does.
2939         (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
2940           Renamed from disconnect() to better reflect what it really does.
2941         (WebCore::ChildFrameDisconnector::disconnect):
2942           New method that does the collection of frame owners on either the root
2943           or only it's descendants.
2944         * dom/Node.cpp:
2945         (WebCore::Node::connectedSubframeCount):
2946         (WebCore::Node::incrementConnectedSubframeCount):
2947         (WebCore::Node::decrementConnectedSubframeCount):
2948         * dom/Node.h:
2949         * dom/NodeRareData.h:
2950         (WebCore::NodeRareData::NodeRareData):
2951         (WebCore::NodeRareData::connectedSubframeCount):
2952         (WebCore::NodeRareData::incrementConnectedSubframeCount):
2953         (WebCore::NodeRareData::decrementConnectedSubframeCount):
2954         * html/HTMLFrameOwnerElement.cpp:
2955         (WebCore::HTMLFrameOwnerElement::setContentFrame):
2956         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
2957
2958 2012-11-15  Alpha Lam  <hclam@chromium.org>
2959
2960         [chromium] WebGL texImage2D fails with deferred image decoding
2961         https://bugs.webkit.org/show_bug.cgi?id=102310
2962
2963         Reviewed by Kenneth Russell.
2964
2965         Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
2966         to decode an image. When deferred image decoding is enabled this class
2967         generates an ImageFrame marked as incomplete, which WebGL rejects. This results
2968         in failing of texImage2D.
2969
2970         This change uses ImageDecoder directly instead of ImageSource. This skips
2971         the code path of deferred image decoding. This behavior is correct because
2972         GraphicsContext3D wants to decode the image differently with alpha not
2973         premultiplied and color profile applied optionally.
2974
2975         Added a test to prove this change fixed the bug.
2976
2977         Test: fast/images/webgl-teximage2d.html
2978
2979         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
2980         (WebCore::GraphicsContext3D::getImageData):
2981
2982 2012-11-15  Jer Noble  <jer.noble@apple.com>
2983
2984         Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
2985
2986         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
2987         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
2988
2989 2012-11-15  Jer Noble  <jer.noble@apple.com>
2990
2991         Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
2992
2993         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
2994         (WebCore::WebCoreAVFResourceLoader::responseReceived):
2995         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
2996
2997 2012-11-15  Adam Barth  <abarth@webkit.org>
2998
2999         [V8] We shouldn't call deprecated V8 APIs
3000         https://bugs.webkit.org/show_bug.cgi?id=102407
3001
3002         Reviewed by Eric Seidel.
3003
3004         This patch was written by Sven Panne on the V8 team. He would prefer
3005         that we not call deprecated V8 APIs. This patch updates these call
3006         sites to more modern idioms.
3007
3008         * bindings/scripts/CodeGeneratorV8.pm:
3009         (GenerateConstructorGetter):
3010         (GenerateImplementation):
3011         * bindings/scripts/test/V8/V8TestObj.cpp:
3012         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
3013         * bindings/v8/PageScriptDebugServer.cpp:
3014         (WebCore::PageScriptDebugServer::addListener):
3015         * bindings/v8/ScriptController.cpp:
3016         (WebCore::ScriptController::setContextDebugId):
3017         (WebCore::ScriptController::contextDebugId):
3018         * bindings/v8/ScriptProfiler.cpp:
3019         (WebCore::ScriptProfiler::objectByHeapObjectId):
3020             - This code doesn't seem to do anything anymore.
3021         * bindings/v8/V8DOMConfiguration.h:
3022         (WebCore::V8DOMConfiguration::configureAttribute):
3023         * bindings/v8/V8DOMWindowShell.cpp:
3024         (WebCore::setInjectedScriptContextDebugId):
3025         * bindings/v8/V8DOMWrapper.cpp:
3026         (WebCore::V8DOMWrapper::maybeDOMWrapper):
3027         (WebCore::V8DOMWrapper::isWrapperOfType):
3028         * bindings/v8/V8EventListenerList.h:
3029         (WebCore::V8EventListenerList::doFindWrapper):
3030         (WebCore::V8EventListenerList::findOrCreateWrapper):
3031         * bindings/v8/WorkerContextExecutionProxy.cpp:
3032         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
3033         * bindings/v8/WrapperTypeInfo.h:
3034         (WebCore::WrapperTypeInfo::unwrap):
3035
3036 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
3037
3038         Unreviewed, rolling out r134800 and r134805.
3039         http://trac.webkit.org/changeset/134800
3040         http://trac.webkit.org/changeset/134805
3041         https://bugs.webkit.org/show_bug.cgi?id=102417
3042
3043         This patch broke chromium port (Requested by jianli on
3044         #webkit).
3045
3046         * Modules/mediastream/RTCPeerConnection.cpp:
3047         (WebCore::RTCPeerConnection::RTCPeerConnection):
3048         (WebCore::RTCPeerConnection::createOffer):
3049         (WebCore::RTCPeerConnection::createAnswer):
3050         (WebCore::RTCPeerConnection::setLocalDescription):
3051         (WebCore::RTCPeerConnection::localDescription):
3052         (WebCore::RTCPeerConnection::setRemoteDescription):
3053         (WebCore::RTCPeerConnection::remoteDescription):
3054         (WebCore::RTCPeerConnection::updateIce):
3055         (WebCore::RTCPeerConnection::addIceCandidate):
3056         (WebCore::RTCPeerConnection::readyState):
3057         (WebCore::RTCPeerConnection::iceState):
3058         (WebCore::RTCPeerConnection::addStream):
3059         (WebCore::RTCPeerConnection::close):
3060         (WebCore::RTCPeerConnection::stop):
3061         (WebCore::RTCPeerConnection::changeReadyState):
3062         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
3063         * Modules/mediastream/RTCPeerConnection.h:
3064         (RTCPeerConnection):
3065         * Modules/mediastream/RTCPeerConnection.idl:
3066         * dom/EventNames.h:
3067         (WebCore):
3068         * platform/mediastream/RTCDataChannelDescriptor.cpp:
3069         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
3070         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
3071         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
3072         (RTCPeerConnectionHandlerClient):
3073         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
3074         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
3075         (RTCPeerConnectionHandlerChromium):
3076
3077 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
3078
3079         Remove Node::aboutToUnload and be more explicit about what it was for
3080         https://bugs.webkit.org/show_bug.cgi?id=102357
3081
3082         Reviewed by Ryosuke Niwa.
3083
3084         Node::aboutToUnload was confusingly named because it was only called on
3085         the focused node, and it really only existed to support notifying the
3086         embedder that inputs should stop being editable on unload. Instead add
3087         a new method to HTMLInputElement that ends editing and call that
3088         explicitly in the FrameLoader so it's clear what this is about.
3089
3090         No new tests, this is just a refactoring.
3091
3092         * dom/Node.h:
3093         * html/HTMLInputElement.cpp:
3094         (WebCore::HTMLInputElement::endEditing):
3095             New method that handles finishing editing.
3096         * html/HTMLInputElement.h:
3097         (HTMLInputElement):
3098         * html/TextFieldInputType.cpp:
3099         (WebCore::TextFieldInputType::handleBlurEvent):
3100             Use the new method to reduce code duplication.
3101         * loader/FrameLoader.cpp:
3102         (WebCore::FrameLoader::stopLoading):
3103             Be explicit about what this check was for.
3104
3105 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
3106
3107         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
3108         https://bugs.webkit.org/show_bug.cgi?id=102386
3109
3110         Reviewed by Adam Barth.
3111
3112         Existing tests expanded to cover patch.
3113
3114         * platform/mediastream/RTCDataChannelDescriptor.cpp:
3115         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
3116         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
3117         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
3118         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
3119         (WebCore):
3120         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
3121         (WebKit):
3122         (RTCPeerConnectionHandlerChromium):
3123
3124 2012-11-15  Rick Byers  <rbyers@chromium.org>
3125
3126         No tests for changing mouse cursors
3127         https://bugs.webkit.org/show_bug.cgi?id=100550
3128
3129         Reviewed by Brent Fulgham.
3130
3131         Add infrastructure to keep track of the last set mouse cursor,
3132         and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
3133         we can reliably detect when an uninitialized Cursor object is used (such as
3134         the one that can be returned from OptionalCursor in the NoCursorChange scenario).
3135
3136         Test: fast/events/mouse-cursor.html
3137
3138         * WebCore.exp.in: Add Cursor copy ctor export
3139         * page/EventHandler.cpp:
3140         (WebCore::OptionalCursor::cursor):
3141         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
3142         * page/EventHandler.h:
3143         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
3144         * platform/Cursor.h:
3145         (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
3146         (WebCore::Cursor::type): Assert cursor type is valid.
3147         * testing/Internals.cpp:
3148         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
3149         (WebCore):
3150         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
3151         * testing/Internals.h: Declare getCurrentCursorInfo
3152         * testing/Internals.idl: Declare getCurrentCursorInfo
3153
3154 2012-11-13  Jer Noble  <jer.noble@apple.com>
3155
3156         Support loading of blob URLs in AVFoundation.
3157         https://bugs.webkit.org/show_bug.cgi?id=102182
3158
3159         Reviewed by Eric Carlson.
3160
3161         Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
3162
3163         Test: media/video-src-blob.html
3164
3165         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
3166         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3167         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
3168             media path if the key scheme is skp://.
3169         (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
3170             the media engine requests it.
3171         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
3172         
3173         Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
3174         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
3175         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
3176         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
3177         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
3178
3179         Add a new helper class to manage loading the CachedRawResource and feed the incoming
3180         data to the AVAssetResourceLoader.
3181         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
3182         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
3183         (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
3184         (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
3185         (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
3186         (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
3187         (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
3188         (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
3189             AVAssetResourceLoadingRequest.
3190         (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
3191         (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
3192             has completed.
3193         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
3194             field of the AVAssetResourceLoadingRequest.
3195
3196         Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
3197         document's cachedResourceLoader.
3198         * html/HTMLMediaElement.cpp:
3199         (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
3200         * html/HTMLMediaElement.h:
3201         * platform/graphics/MediaPlayer.cpp:
3202         (WebCore::MediaPlayer::cachedResourceLoader):
3203         * platform/graphics/MediaPlayer.h:
3204         (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
3205
3206         Add a convenience method to convert from MIME type -> UTI.
3207         * platform/network/mac/UTIUtilities.h:
3208         * platform/network/mac/UTIUtilities.mm:
3209         (WebCore::UTIFromMIMEType):
3210
3211         Add new files to project.
3212         * WebCore.xcodeproj/project.pbxproj:
3213
3214 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3215
3216         Remove initiallyFitToViewport attribute
3217         https://bugs.webkit.org/show_bug.cgi?id=102392
3218
3219         Reviewed by Noam Rosenthal.
3220
3221         Remove the initiallyFitToViewport which shouldn't have been
3222         added in the first place. We now reset userScalable to auto (-1)
3223         in case it was not explicitly set by the web author.
3224
3225         Same behavior, covered by existing tests.
3226
3227         * dom/ViewportArguments.cpp:
3228         (WebCore::ViewportArguments::resolve):
3229         * dom/ViewportArguments.h:
3230         (ViewportAttributes):
3231
3232 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
3233
3234         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
3235         https://bugs.webkit.org/show_bug.cgi?id=102382
3236
3237         Reviewed by Adam Barth.
3238
3239         Updating readyState & iceState, and adding iceGatheringState.
3240         Also safeguarding the event timer callback.
3241
3242         Patch covered by existing tests.
3243
3244         * Modules/mediastream/RTCPeerConnection.cpp:
3245         (WebCore::RTCPeerConnection::RTCPeerConnection):
3246         (WebCore::RTCPeerConnection::createOffer):
3247         (WebCore::RTCPeerConnection::createAnswer):
3248         (WebCore::RTCPeerConnection::setLocalDescription):
3249         (WebCore::RTCPeerConnection::localDescription):
3250         (WebCore::RTCPeerConnection::setRemoteDescription):
3251         (WebCore::RTCPeerConnection::remoteDescription):
3252         (WebCore::RTCPeerConnection::updateIce):
3253         (WebCore::RTCPeerConnection::addIceCandidate):
3254         (WebCore::RTCPeerConnection::readyState):
3255         (WebCore::RTCPeerConnection::iceGatheringState):
3256         (WebCore):
3257         (WebCore::RTCPeerConnection::iceState):
3258         (WebCore::RTCPeerConnection::addStream):
3259         (WebCore::RTCPeerConnection::close):
3260         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
3261         (WebCore::RTCPeerConnection::stop):
3262         (WebCore::RTCPeerConnection::changeReadyState):
3263         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
3264         * Modules/mediastream/RTCPeerConnection.h:
3265         (RTCPeerConnection):
3266         * Modules/mediastream/RTCPeerConnection.idl:
3267         * dom/EventNames.h:
3268         (WebCore):
3269         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
3270         (RTCPeerConnectionHandlerClient):
3271         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
3272         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
3273         (WebCore):
3274         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
3275         (RTCPeerConnectionHandlerChromium):
3276
3277 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
3278
3279         Unreviewed, rolling out r134649 and r134665.
3280         http://trac.webkit.org/changeset/134649
3281         http://trac.webkit.org/changeset/134665
3282         https://bugs.webkit.org/show_bug.cgi?id=102413
3283
3284         Broke a ton of downstream chromium tests (Requested by japhet
3285         on #webkit).
3286
3287         * loader/DocumentLoader.cpp:
3288         (WebCore::DocumentLoader::DocumentLoader):
3289         (WebCore::DocumentLoader::~DocumentLoader):
3290         (WebCore::DocumentLoader::finishedLoading):
3291         (WebCore::DocumentLoader::clearMainResourceLoader):
3292         (WebCore::DocumentLoader::isLoadingInAPISense):
3293         (WebCore::DocumentLoader::documentURL):
3294         (WebCore::DocumentLoader::isLoadingMainResource):
3295         (WebCore::DocumentLoader::startLoadingMainResource):
3296         * loader/DocumentLoader.h:
3297         (DocumentLoader):
3298         * loader/FrameLoader.cpp:
3299         (WebCore::FrameLoader::FrameLoader):
3300         (WebCore::FrameLoader::init):
3301         * loader/FrameLoaderStateMachine.cpp:
3302         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
3303         * loader/FrameLoaderStateMachine.h:
3304         * loader/MainResourceLoader.cpp:
3305         (WebCore::shouldLoadAsEmptyDocument):
3306         (WebCore):
3307         (WebCore::MainResourceLoader::continueAfterContentPolicy):
3308         (WebCore::MainResourceLoader::didReceiveResponse):
3309         (WebCore::MainResourceLoader::didFinishLoading):
3310         (WebCore::MainResourceLoader::handleEmptyLoad):
3311         (WebCore::MainResourceLoader::loadNow):
3312         (WebCore::MainResourceLoader::load):
3313         * loader/MainResourceLoader.h:
3314         (MainResourceLoader):
3315
3316 2012-11-15  Kentaro Hara  <haraken@chromium.org>
3317
3318         Correct syntax of old-style IDL files
3319         https://bugs.webkit.org/show_bug.cgi?id=102335
3320
3321         Reviewed by Adam Barth.
3322
3323         Recently tasak@ corrected an IDL syntax of almost all IDL files.
3324         We should correct the rest of them.
3325
3326         No tests. No change in behavior.
3327
3328         * html/canvas/OESElementIndexUint.idl:
3329         * page/PerformanceMark.idl:
3330         * page/PerformanceMeasure.idl:
3331
3332 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
3333
3334         Remove isHTMLInputElement since it's unused and toInputElement exists 
3335         https://bugs.webkit.org/show_bug.cgi?id=102358
3336
3337         Reviewed by Ojan Vafai.
3338
3339         Remove isHTMLInputElement as no one uses it. Everyone just uses
3340         Node::toInputElement and checks for a 0 return value instead.
3341
3342         toInputElement is also more reliable as there's no requirement that
3343         subclasses of HTMLInputElement have the tag name of inputTag so using
3344         this method in a check could potentially miss future subclasses with
3345         different tag names, though none exist right now.
3346
3347         No new tests, this just deletes dead code.
3348
3349         * html/HTMLInputElement.h:
3350
3351 2012-11-15  Erik Arvidsson  <arv@chromium.org>
3352
3353         Update DOMException name: NotSupportedError
3354         https://bugs.webkit.org/show_bug.cgi?id=102139
3355
3356         Reviewed by Ojan Vafai.
3357
3358         Patch 9 of 25 to update DOMException name to match the spec and Firefox.
3359
3360         Updated existing tests.
3361
3362         * dom/DOMCoreException.cpp:
3363
3364 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
3365
3366         Remove isHTMLInputElement since it's unused and toInputElement exists 
3367         https://bugs.webkit.org/show_bug.cgi?id=102358
3368
3369         Reviewed by Ojan Vafai.
3370
3371         Remove isHTMLInputElement as no one uses it. Everyone just uses
3372         Node::toInputElement and checks for a 0 return value instead.
3373
3374         toInputElement is also more reliable as there's no requirement that
3375         subclasses of HTMLInputElement have the tag name of inputTag so using
3376         this method in a check could potentially miss future subclasses with
3377         different tag names, though none exist right now.
3378
3379         No new tests, this just deletes dead code.
3380
3381         * html/HTMLInputElement.h:
3382
3383 2012-11-15  Erik Arvidsson  <arv@chromium.org>
3384
3385         Update DOMException name: NoModificationAllowedError
3386         https://bugs.webkit.org/show_bug.cgi?id=102134
3387
3388         Reviewed by Ojan Vafai.
3389
3390         Patch 7 of 25 to update DOMException name to match the spec and Firefox.
3391
3392         Updated existing tests.
3393
3394         * dom/DOMCoreException.cpp:
3395
3396 2012-11-15  Miguel Garcia  <miguelg@chromium.org>
3397
3398         Remove unnecesary dependencies INPUT_TYPE_COLOR
3399         https://bugs.webkit.org/show_bug.cgi?id=102379
3400
3401         Reviewed by Darin Adler.
3402
3403         Platforms should be able to enable INPUT_TYPE_COLOR without enabling
3404         CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
3405         compile errors in such configuration.
3406
3407         No new tests since this is not adding any extra functionality.
3408
3409         * WebCore.gyp/WebCore.gyp:
3410         * html/ColorInputType.cpp:
3411         (WebCore::ColorInputType::shouldShowSuggestions):
3412         * make-file-arrays.py:
3413         (main):
3414
3415 2012-11-15  Eric Carlson  <eric.carlson@apple.com>
3416
3417         Update computed line position algorithm
3418         https://bugs.webkit.org/show_bug.cgi?id=93779
3419
3420         Reviewed by Philippe Normand.
3421
3422         Compute the position of a text track relative to rendered tracks. This is needed to position
3423         cues correctly when there is more than one text track.
3424
3425         Test: media/track/track-cue-container-rendering-position.html
3426
3427         * html/track/TextTrack.cpp:
3428         (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
3429         (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
3430             to other rendered tracks.
3431         * html/track/TextTrack.h:
3432
3433         * html/track/TextTrackCue.cpp:
3434         (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
3435             instead of trackIndex() so cues are positioned correctly.
3436
3437         * html/track/TextTrackList.cpp:
3438         (TextTrackList::getTrackIndex): Change return type from unsigned to int.
3439         (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
3440         * html/track/TextTrackList.h:
3441
3442 2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
3443
3444         [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
3445         https://bugs.webkit.org/show_bug.cgi?id=101323
3446
3447         Reviewed by Martin Robinson.
3448
3449         Removing ifdef since we bumped Harfbuzz dependency. This is the
3450         real fix replacing the previous workaround of having a Chromium
3451         specific ifdef here, since Chromium uses a newer HarfBuzz version
3452         already.
3453
3454         No new tests, covered by css3/flexbox/inline-flex-crash.html
3455         which will not crash anymore even with the ifdef removed.
3456
3457         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
3458         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
3459
3460 2012-11-15  Andreas Kling  <kling@webkit.org>
3461
3462         REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
3463         <http://webkit.org/b/102304>
3464
3465         Reviewed by Anders Carlsson.
3466
3467         Test: fast/dom/cloneNode-below-body-attribute-merging.html
3468
3469         * html/parser/HTMLConstructionSite.cpp:
3470         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
3471
3472             Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
3473             we're merging attributes into.
3474
3475         * dom/ElementAttributeData.h:
3476         (ElementAttributeData):
3477
3478             Remove a now-unnecessary friend declaration.
3479
3480 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
3481
3482         Prevent creation of detached frames in ShadowRoot
3483         https://bugs.webkit.org/show_bug.cgi?id=102333
3484
3485         Reviewed by Dimitri Glazkov.
3486
3487         Similar to Bug 94717 you can create a loaded iframe in a detached
3488         subtree using ShadowRoot. To fix this we just need to make
3489         SubframeLoadingDisabler traverse through shadow boundaries.
3490
3491         Test: fast/frames/detached-shadow-frame.html
3492
3493         * html/HTMLFrameOwnerElement.h:
3494         (WebCore::SubframeLoadingDisabler::canLoadFrame):
3495
3496 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
3497
3498         Changing pseudoClass (:visited) should cause distribution.
3499         https://bugs.webkit.org/show_bug.cgi?id=101700
3500
3501         Reviewed by Dimitri Glazkov.
3502
3503         When href attribute of an anchor or area element is changed, we have to invalidate distribution.
3504
3505         Since we would like to check a few pseudoClasses at once, we make the argument of
3506         SelectRuleFeatureSet::hasSelectorFor int.
3507
3508         Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
3509                fast/dom/shadow/pseudoclass-update-visited-area.html
3510
3511         * dom/ElementShadow.cpp:
3512         (WebCore::invalidateParentDistributionIfNecessary):
3513         * dom/ElementShadow.h:
3514         (WebCore):
3515         * html/HTMLAnchorElement.cpp:
3516         (WebCore::HTMLAnchorElement::parseAttribute):
3517         * html/shadow/SelectRuleFeatureSet.h:
3518         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
3519
3520 2012-11-15  Balazs Kelemen  <kbalazs@webkit.org>
3521
3522         Coordinated Graphics: support the "freeze animations" API
3523         https://bugs.webkit.org/show_bug.cgi?id=100703
3524
3525         Reviewed by Noam Rosenthal.
3526
3527         Make animations resumable in Coordinated Graphics.
3528         Pausing was already implemented.
3529
3530         Tested with animations and transitions tests. No tests to be
3531         unskipped because these tests has been working without this API
3532         as well (although this is the preferred way).
3533
3534         * platform/graphics/GraphicsLayerAnimation.cpp:
3535         (WebCore::GraphicsLayerAnimation::apply):
3536         (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
3537         Do not consider the time while we was suspended as part of
3538         the total running time.
3539         (WebCore):
3540         (WebCore::GraphicsLayerAnimation::resume):
3541         (WebCore::GraphicsLayerAnimations::suspend):
3542         (WebCore::GraphicsLayerAnimations::resume):
3543         * platform/graphics/GraphicsLayerAnimation.h:
3544         (GraphicsLayerAnimation):
3545         (GraphicsLayerAnimations):
3546
3547 2012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>
3548
3549         Relocate the ARM NEON SVG filter optimizations
3550         https://bugs.webkit.org/show_bug.cgi?id=102214
3551
3552         Reviewed by Zoltan Herczeg.
3553
3554         Relocate the ARM filter optimizations into platform/graphics/cpu/arm
3555         to keep them together with the others.
3556         From now all graphics optimization for ARM NEON should go here.
3557
3558         * CMakeLists.txt:
3559         * GNUmakefile.am:
3560         * GNUmakefile.list.am:
3561         * Target.pri:
3562         * WebCore.gyp/WebCore.gyp:
3563         * WebCore.gypi:
3564         * WebCore.pri:
3565         * WebCore.xcodeproj/project.pbxproj:
3566         * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
3567         (WebCore):
3568         (FEBlendUtilitiesNEON):
3569         (WebCore::FEBlendUtilitiesNEON::div255):
3570         (WebCore::FEBlendUtilitiesNEON::normal):
3571         (WebCore::FEBlendUtilitiesNEON::multiply):
3572         (WebCore::FEBlendUtilitiesNEON::screen):
3573         (WebCore::FEBlendUtilitiesNEON::darken):
3574         (WebCore::FEBlendUtilitiesNEON::lighten):
3575         (WebCore::FEBlend::platformApplyNEON):
3576         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
3577         (WebCore):
3578         (WebCore::FEComposite::computeArithmeticPixelsNeon):
3579         (WebCore::FEComposite::platformArithmeticNeon):
3580         * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
3581         (WebCore):
3582         (WebCore::boxBlurNEON):
3583         * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
3584         (WebCore):
3585         (WebCore::feLightingConstantsForNeon):
3586         (WebCore::FELighting::platformApplyNeonWorker):
3587         (WebCore::FELighting::getPowerCoefficients):
3588         * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
3589         (WebCore):
3590         (FELightingFloatArgumentsForNeon):
3591         (FELightingPaintingDataForNeon):
3592         (WebCore::FELighting::platformApplyNeon):
3593         * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
3594         (WebCore):
3595         (WebCore::loadRGBA8AsFloat):
3596         (WebCore::storeFloatAsRGBA8):
3597
3598 2012-11-15  Mike West  <mkwst@chromium.org>
3599
3600         We should trigger a console warning when we encounter invalid sandbox flags.
3601         https://bugs.webkit.org/show_bug.cgi?id=101956
3602
3603         Reviewed by Adam Barth.
3604
3605         A developer who writes '<iframe sandbox="allowScripts">' probably has
3606         something in mind other than what the browser interprets. In these
3607         situations, we should log a console warning that notes 'allowScripts'
3608         is an invalid sandbox flag ('allow-scripts' is probably what she
3609         meant).
3610
3611         This patch does the simplest thing possible: it throws a warning that
3612         lists the invalid flags encountered for sandbox attributes on iframes,
3613         and for sandbox Content Security Policy directives.
3614
3615         Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
3616                http/tests/security/sandboxed-iframe-invalid.html
3617
3618         * dom/SecurityContext.cpp:
3619         (WebCore::SecurityContext::parseSandboxPolicy):
3620         * dom/SecurityContext.h:
3621         (SecurityContext):
3622             Accept a new out parameter, invalidTokensErrorMessage. If invalid
3623             tokens are encountered, build an error message string, and pass it
3624             back to the caller through this parameter.
3625         * html/HTMLIFrameElement.cpp:
3626         (WebCore::HTMLIFrameElement::parseAttribute):
3627         * page/ContentSecurityPolicy.cpp:
3628         (WebCore::CSPDirectiveList::applySandboxPolicy):
3629             When applying a sandbox policy, pass a string into
3630             SecurityContext::parseSandboxPolicy to grab any errors that might
3631             be encountered, and log a warning in that event.
3632         (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
3633         (WebCore):
3634         * page/ContentSecurityPolicy.h:
3635             Adding a new method to report invalid sandbox flags.
3636
3637 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3638
3639         Rename member vars in ViewportArgument to match css-device-adapt
3640         https://bugs.webkit.org/show_bug.cgi?id=102355
3641
3642         Reviewed by Gyuyoung Kim.
3643
3644         No behavior change, thus no new tests.
3645
3646         * dom/ViewportArguments.cpp:
3647         (WebCore::ViewportArguments::resolve):
3648         (WebCore::setViewportFeature):
3649         * dom/ViewportArguments.h:
3650         (WebCore::ViewportArguments::ViewportArguments):
3651         (ViewportArguments):
3652         (WebCore::ViewportArguments::operator==):
3653
3654 2012-11-15  Andrey Adaikin  <aandrey@chromium.org>
3655
3656         Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
3657         https://bugs.webkit.org/show_bug.cgi?id=102366
3658
3659         Reviewed by Vsevolod Vlasov.
3660
3661         * inspector/InjectedScriptCanvasModuleSource.js:
3662         (.):
3663
3664 2012-11-15  Mark Rowe  <mrowe@apple.com>
3665
3666         Build fix.
3667
3668         Disable deprecation warnings in a few places that need it.
3669
3670         * platform/graphics/ca/mac/TileCache.mm:
3671         (WebCore::TileCache::drawRepaintCounter):
3672         * platform/graphics/mac/FontMac.mm:
3673         (WebCore::showGlyphsWithAdvances):
3674         * platform/graphics/mac/WebLayer.mm:
3675         (drawLayerContents):
3676
3677 2012-11-15  Kent Tamura  <tkent@chromium.org>
3678
3679         Support stand-alone month names in calendar picker
3680         https://bugs.webkit.org/show_bug.cgi?id=102196
3681
3682         Reviewed by Kentaro Hara.
3683
3684         We have showed non stand-alone month names in any locales. However
3685         we should show stand-alone month names in some locales such as
3686         Russian.
3687
3688         This patch introduce PagePopupController::formatMonth. It is
3689         exposed to page-popups, and format year-month pairs in the same
3690         way as input[type=month].
3691
3692         No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
3693
3694         * Resources/pagepopups/calendarPicker.js:
3695         (Month.prototype.toLocaleString):
3696         Calls pagePopupController.formatMonth except Japanese locale.
3697         (handleArgumentsTimeout):
3698         Remove unnecessary default monthLabels.
3699         * page/PagePopupController.cpp:
3700         (WebCore::PagePopupController::formatMonth): Added.
3701         * page/PagePopupController.h:
3702         (PagePopupController): Declare formatMonth.
3703         * page/PagePopupController.idl: Add formatMonth.
3704
3705 2012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
3706
3707         Web Inspector: Fix new JS compiler warnings.
3708         https://bugs.webkit.org/show_bug.cgi?id=102341
3709
3710         Reviewed by Yury Semikhatsky.
3711
3712         New version of compiler finds new inconsistencies.
3713
3714         * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
3715         * inspector/front-end/DOMBreakpointsSidebarPane.js:
3716         Declared instance property on WebInspector.
3717         * inspector/front-end/Script.js: Normalized parameter notation.
3718
3719 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3720
3721         Unreviewed build fix.
3722
3723         * dom/ViewportArguments.cpp:
3724         (WebCore::convertToUserSpace): Add static
3725
3726 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3727
3728         Refactor ViewportArguments to only use CSS units
3729         https://bugs.webkit.org/show_bug.cgi?id=102287
3730
3731         Reviewed by Noam Rosenthal.
3732
3733         Refactor the ViewportArgument code to use a member method for
3734         resolving the viewport. This new method only uses arguments in
3735         CSS units.
3736
3737         This is preparation for adding the CSS Device Adaptation support.
3738
3739         Tested by existing tests fast/viewport.
3740
3741         * dom/ViewportArguments.cpp:
3742         (WebCore::clampLengthValue):
3743         (WebCore::clampScaleValue): New utility functions.
3744         (WebCore::ViewportArguments::resolve):
3745         (WebCore::convertToUserSpace): Added until everyone provides arguments
3746         only in CSS units and not device ones.
3747         (WebCore::computeViewportAttributes):
3748         (WebCore::computeMinimumScaleFactorForContentContained):
3749         (WebCore):
3750         (WebCore::restrictMinimumScaleFactorToViewportSize):
3751         * dom/ViewportArguments.h:
3752         (ViewportArguments):
3753
3754 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
3755
3756         Changing pseudoClass (:disabled) should cause distribution.
3757         https://bugs.webkit.org/show_bug.cgi?id=101901
3758
3759         Reviewed by Hajime Morita.
3760
3761         We have to invalidate distribution when pseudo-class (:disabled) is changed.
3762
3763         According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
3764         option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
3765         have 'disabled' state, but we need a command element to make it 'disabled' state.
3766
3767         Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
3768                fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
3769                fast/dom/shadow/pseudoclass-update-disabled-input.html
3770                fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
3771                fast/dom/shadow/pseudoclass-update-disabled-option.html
3772                fast/dom/shadow/pseudoclass-update-disabled-select.html
3773                fast/dom/shadow/pseudoclass-update-disabled-textarea.html
3774
3775         * html/HTMLFormControlElement.cpp:
3776         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
3777         * html/HTMLOptGroupElement.cpp:
3778         (WebCore::HTMLOptGroupElement::parseAttribute):
3779         * html/HTMLOptionElement.cpp:
3780         (WebCore::HTMLOptionElement::parseAttribute):
3781
3782 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3783
3784         Unreviewed, rolling out r134691, r134703, r134715, r134716,
3785         and r134733.
3786         http://trac.webkit.org/changeset/134691
3787         http://trac.webkit.org/changeset/134703
3788         http://trac.webkit.org/changeset/134715
3789         http://trac.webkit.org/changeset/134716
3790         http://trac.webkit.org/changeset/134733
3791         https://bugs.webkit.org/show_bug.cgi?id=102342
3792
3793         "Broke the Apple Windows Debug and GTK builds." (Requested by
3794         dydx on #webkit).
3795
3796         * WebCore.exp.in:
3797         * bindings/js/SerializedScriptValue.h:
3798         * testing/Internals.cpp:
3799         * testing/Internals.h:
3800         (WebCore):
3801         * testing/Internals.idl:
3802
3803 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
3804
3805         Not reviewed: fixing inspector tests under Qt.
3806
3807         * inspector/front-end/TestController.js:
3808         * inspector/front-end/utilities.js:
3809         (.):
3810
3811 2012-11-14  Kentaro Hara  <haraken@chromium.org>
3812
3813         Unreviewed. Rebaselined run-bindings-tests.
3814
3815         * bindings/scripts/test/V8/V8TestNode.h:
3816         (WebCore::toV8Fast):
3817
3818 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
3819
3820         Don't use temporary clip rects when hit testing
3821         https://bugs.webkit.org/show_bug.cgi?id=102329
3822
3823         Reviewed by Beth Dakin.
3824
3825         We now cache clip rects separately for painting, hit testing etc. Hit testing
3826         clip rects are always shrunk to exclude scrollbars (so that hit testing on
3827         the scrollbars works), so we no longer every need to use temporary clip rects
3828         during hit testing.
3829
3830         Added an assertion that the scrollbar relevancy when we computed the clip rects
3831         is the same as that when using them.
3832         
3833         * rendering/RenderLayer.cpp:
3834         (WebCore::RenderLayer::hitTestLayer):
3835         (WebCore::RenderLayer::updateClipRects):
3836         * rendering/RenderLayer.h:
3837         (WebCore::ClipRectsCache::ClipRectsCache):
3838         (ClipRectsCache):
3839
3840 2012-11-14  Dirk Schulze  <krit@webkit.org>
3841
3842         Support animation of basic shape 'polygon'
3843         https://bugs.webkit.org/show_bug.cgi?id=102080
3844
3845         Reviewed by Daniel Bates.
3846
3847         The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
3848         patch http://trac.webkit.org/changeset/134352.
3849         This is a follow-up patch to make 'polygon' animatable as well, as long as the number
3850         of vertices between start and end polygon is the same.
3851
3852         Added polygon animation test to existing test:
3853             fast/exclusions/shape-inside/shape-inside-animation.html
3854             css3/masking/clip-path-animation.html
3855
3856         * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
3857         * rendering/style/BasicShapes.cpp:
3858         (WebCore::BasicShape::canBlend): Polygons are allowed now.
3859         (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
3860
3861 2012-11-14  Kentaro Hara  <haraken@chromium.org>
3862
3863         Unreviewed. Fix code generator warnings.
3864
3865         * bindings/scripts/CodeGeneratorV8.pm:
3866         (GenerateFunctionCallback):
3867         (GenerateImplementation):
3868
3869 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
3870
3871         Changing pseudoClass (:checked) should cause distribution.
3872         https://bugs.webkit.org/show_bug.cgi?id=101902
3873
3874         Reviewed by Dimitri Glazkov.
3875
3876         When the 'checked' state is changed, we have to invalidate distribution.
3877
3878         According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
3879         a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
3880
3881         Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
3882                fast/dom/shadow/pseudoclass-update-checked-option.html
3883
3884         * html/HTMLInputElement.cpp:
3885         (WebCore::HTMLInputElement::setChecked):
3886         * html/HTMLOptionElement.cpp:
3887         (WebCore::HTMLOptionElement::setSelectedState):
3888
3889 2012-11-14  Kentaro Hara  <haraken@chromium.org>
3890
3891         [V8] Kill $implClassName from CodeGeneratorV8.pm
3892         https://bugs.webkit.org/show_bug.cgi?id=102312
3893
3894         Reviewed by Adam Barth.
3895
3896         $implClassName and $interfaceName are the same.
3897         Sometimes we are passing both $implClassName and $interfaceName to
3898         subroutines. We can kill $implClassName.
3899
3900         No tests. No change in behavior.
3901
3902         * bindings/scripts/CodeGeneratorV8.pm:
3903         (GenerateOpaqueRootForGC):
3904         (GenerateHeader):
3905         (GenerateDomainSafeFunctionGetter):
3906         (GenerateDomainSafeFunctionSetter):
3907         (GenerateConstructorGetter):
3908         (GenerateNormalAttrGetter):
3909         (GenerateReplaceableAttrSetter):
3910         (GenerateNormalAttrSetter):
3911         (GenerateEventListenerCallback):
3912         (GenerateOverloadedFunctionCallback):
3913         (GenerateFunctionCallback):
3914         (GenerateParametersCheck):
3915         (GenerateOverloadedConstructorCallback):
3916         (GenerateSingleConstructorCallback):
3917         (GenerateConstructorCallback):
3918         (GenerateEventConstructorCallback):
3919         (GenerateTypedArrayConstructorCallback):
3920         (GenerateNamedConstructorCallback):
3921         (GenerateImplementation):
3922         (GenerateFunctionCallString):
3923
3924 2012-11-14  Adam Barth  <abarth@webkit.org>
3925
3926         [V8] We can shave one instruction off toV8Fast
3927         https://bugs.webkit.org/show_bug.cgi?id=102297
3928
3929         Reviewed by Kentaro Hara.
3930
3931         There's no reason to store info.Holder in a local variable. Calling
3932         Holder() is essentially free because it's inlined to an offset read.
3933
3934         I doubt this patch moves the performance needle in any measurable way,
3935         but it makes the code slightly prettier.
3936
3937         * bindings/scripts/CodeGeneratorV8.pm:
3938         (GenerateHeader):
3939         * bindings/scripts/test/V8/V8TestNode.h:
3940         (WebCore::toV8Fast):
3941
3942 2012-11-14  Kentaro Hara  <haraken@chromium.org>
3943
3944         [V8] Get rid of a redundant branch in JSValueToNative()
3945         https://bugs.webkit.org/show_bug.cgi?id=102311
3946
3947         Reviewed by Adam Barth.
3948
3949         No tests. No change in behavior.
3950
3951         * bindings/scripts/CodeGeneratorV8.pm:
3952         (JSValueToNative):
3953         (NativeToJSValue):
3954
3955 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
3956
3957         Changing pseudoClass (:link) should cause distribution
3958         https://bugs.webkit.org/show_bug.cgi?id=101698
3959
3960         Reviewed by Hajime Morita.
3961
3962         CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
3963         we have to invalidate distribution.
3964
3965         According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
3966
3967         Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
3968                fast/dom/shadow/pseudoclass-update-link-area.html
3969
3970         * html/HTMLAnchorElement.cpp:
3971         (WebCore::HTMLAnchorElement::parseAttribute):
3972
3973 2012-11-14  Kentaro Hara  <haraken@chromium.org>
3974
3975         Remove unused functions from CodeGenerator.pm
3976         https://bugs.webkit.org/show_bug.cgi?id=102316
3977
3978         Reviewed by Adam Barth.
3979
3980         No tests. No change in behavior.
3981
3982         * bindings/scripts/CodeGenerator.pm:
3983         (GenerateCompileTimeCheckForEnumsIfNeeded):
3984
3985 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
3986
3987         [BlackBerry] Update BB10 form theme.
3988         https://bugs.webkit.org/show_bug.cgi?id=100760
3989
3990         Reviewed by Rob Buis.
3991
3992         RIM PR 225755
3993         Internally Reviewed by Eli Fidler.
3994         Update checkbox, radio and menulist button style. Adjust border width
3995         and line height.
3996
3997         * platform/blackberry/RenderThemeBlackBerry.cpp:
3998         (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
3999         * platform/blackberry/RenderThemeBlackBerry.h:
4000         (RenderThemeBlackBerry):
4001
4002 2012-11-14  Erik Arvidsson  <arv@chromium.org>
4003
4004         Update DOMException name: InvalidModificationError
4005         https://bugs.webkit.org/show_bug.cgi?id=102281
4006
4007         Reviewed by Kentaro Hara.
4008
4009         Patch 13 of 25 to update DOMException name to match the spec and Firefox.
4010
4011         DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
4012
4013         * dom/DOMCoreException.cpp:
4014
4015 2012-11-14  Adam Barth  <abarth@webkit.org>
4016
4017         document variable in Document::axObjectCache is actually the topDocument
4018         https://bugs.webkit.org/show_bug.cgi?id=101966
4019
4020         Reviewed by Chris Fleizach.
4021
4022         Name change requested by Darin Adler.
4023
4024         * dom/Document.cpp:
4025         (WebCore::Document::axObjectCache):
4026
4027 2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
4028
4029         [CF]: XMLHttpRequest "timeout" events firing as "error" events
4030         https://bugs.webkit.org/show_bug.cgi?id=102271
4031
4032         Reviewed by David Kilzer.
4033
4034         Initialize the tiemout flag if the error results from a timeout
4035         in the USE(CFNETWORK) cases.
4036
4037         No new tests. This is covered by http/tests/xmlhttprequest/timeout
4038         tests on ports that USE(CFNETWORK).
4039
4040         * platform/network/cf/ResourceErrorCF.cpp:
4041         (WebCore::ResourceError::ResourceError):
4042         * platform/network/mac/ResourceErrorMac.mm:
4043         (WebCore::ResourceError::ResourceError):
4044
4045 2012-11-14  Nico Weber  <thakis@chromium.org>
4046
4047         [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
4048         https://bugs.webkit.org/show_bug.cgi?id=102282
4049
4050         Reviewed by James Robinson.
4051
4052         Chromium uses skia, an