Creating "basic waveform" Oscillator nodes is not efficient
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-08-08  Raymond Toy  <rtoy@google.com>
2
3         Creating "basic waveform" Oscillator nodes is not efficient
4         https://bugs.webkit.org/show_bug.cgi?id=93194
5
6         Reviewed by Chris Rogers.
7
8         Cache the wavetables for the basic types so they don't have to be
9         recomputed every time.
10
11         Also fix a bug where oscillator type was always set to CUSTOM
12         instead of the specified oscillator type.  Test added for this.
13
14         Test: webaudio/oscillator-basic.html
15
16         * Modules/webaudio/Oscillator.cpp:
17         (WebCore):
18         (WebCore::Oscillator::setType): Use cached wavetables; fix bug in
19         setting the oscillator type.
20         * Modules/webaudio/Oscillator.h: 
21         (Oscillator): Define static variables to hold cached wavetables.
22
23 2012-08-08  Tom Sepez  <tsepez@chromium.org>
24
25         Avoid ASSERT(m_workerContext->isSharedWorkerContext()) in WorkerScriptController::initScript()
26         https://bugs.webkit.org/show_bug.cgi?id=93521
27
28         Reviewed by Adam Barth.
29
30         Changes WorkerContext and its subclasses so that we do not call functions that rely upon subclass
31         virtual methods from the superclass constructor.
32
33         Test: http/tests/security/contentSecurityPolicy/worker-set-timeout-blocked.html
34
35         * workers/DedicatedWorkerContext.cpp:
36         (WebCore):
37         (WebCore::DedicatedWorkerContext::create):
38         (WebCore::DedicatedWorkerContext::DedicatedWorkerContext):
39         * workers/DedicatedWorkerContext.h:
40         (DedicatedWorkerContext):
41         * workers/SharedWorkerContext.cpp:
42         (WebCore):
43         (WebCore::SharedWorkerContext::create):
44         (WebCore::SharedWorkerContext::SharedWorkerContext):
45         * workers/SharedWorkerContext.h:
46         (SharedWorkerContext):
47         * workers/WorkerContext.cpp:
48         (WebCore::WorkerContext::WorkerContext):
49         (WebCore::WorkerContext::applyContentSecurityPolicyFromString):
50         (WebCore):
51         * workers/WorkerContext.h:
52         (WorkerContext):
53
54 2012-08-08  Thiago Marcos P. Santos  <thiago.santos@intel.com>
55
56         CanvasRenderContext2D::setFont() should ignore inherited properties and default keyword value
57         https://bugs.webkit.org/show_bug.cgi?id=93491
58
59         Reviewed by Kenneth Rohde Christiansen.
60
61         Treat "inherit" as an invalid value. Also ignore the "default"
62         keyword that was previously treated as a font family. This second
63         change was done in the property validation and will also affect the
64         CSS font parsing, but it is probably harmless since font doesn't
65         recognize the default keyword anyway.
66
67         * css/CSSParser.cpp:
68         (WebCore::CSSParser::parseFontFamily):
69         * html/canvas/CanvasRenderingContext2D.cpp:
70         (WebCore::CanvasRenderingContext2D::setFont):
71
72 2012-08-08  James Robinson  <jamesr@chromium.org>
73
74         [chromium] Add missing OVERRIDE and virtual annotations in compositor
75         https://bugs.webkit.org/show_bug.cgi?id=93438
76
77         Reviewed by Adrienne Walker.
78
79         As the title suggests.
80
81         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
82         (BitmapCanvasLayerTextureUpdater):
83         * platform/graphics/chromium/ScrollbarLayerChromium.h:
84         (ScrollbarLayerChromium):
85         * platform/graphics/chromium/SolidColorLayerChromium.h:
86         (SolidColorLayerChromium):
87         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
88         * platform/graphics/chromium/cc/CCFrameRateController.h:
89         (CCFrameRateController):
90         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
91         (CCScrollbarLayerImpl):
92
93 2012-08-08  Eric Penner  <epenner@google.com>
94
95         [chromium] Refactor tile flags.
96         https://bugs.webkit.org/show_bug.cgi?id=93059
97
98         Reviewed by Adrienne Walker.
99
100         This has become a general refactoring patch to make updateTiles easier
101         to work with. The 'updated' flag had become convoluted and incorrect
102         and the function had lots of special cases piled into it which
103         makes for tangled depedancies that are hard to reason with.
104  
105         This refactors the updated flag into two flags ('validForFrame',
106         and 'occluded') for the two purposes it is actually used for,
107         simplifies the use of those flags.
108
109         'validForFrame' is improved to work for all tiles that are not dirty
110         before painting begins, rather than just the tiles that get touched via
111         updateTiles().
112
113         This refactors updateTiles() into several functions that more clearly
114         illustrate all the depedancies that have accumulated in there. After
115         doing that I managed to separate the occlusion pass from the painting
116         passes, ecapsulating the difficult dependancies in one documented
117         function 'markOcclusionsAndRequestTextures'.
118
119         Now update tiles doesn't need the 'idle' flag, and returns didPaint
120         as an out-param. The last remaining wierd output is m_failedPaint
121         which is needed in place of m_skipsIdlePaint to prevent infinite 
122         paints from being requested.
123
124         As a last step I was going to merge LayerChromium::update() and
125         LayerChromium::needsMoreUpdates() by having update() just return
126         a boolean, but this proved to be a big change so I'm holding off
127         on that. That would let us remove the m_failedPaint and get rid
128         of needsIdlePaint() altogether.
129
130         Tested by many existing tests.
131
132         * platform/graphics/chromium/TiledLayerChromium.cpp:
133         (UpdatableTile):
134         (WebCore::UpdatableTile::resetUpdateState):
135         (WebCore::UpdatableTile::markForUpdate):
136         (WebCore::UpdatableTile::UpdatableTile):
137         (WebCore::TiledLayerChromium::TiledLayerChromium):
138         (WebCore::TiledLayerChromium::pushPropertiesTo):
139         (WebCore):
140         (WebCore::TiledLayerChromium::updateTiles):
141         (WebCore::TiledLayerChromium::markOcclusionsAndRequestTextures):
142         (WebCore::TiledLayerChromium::haveTexturesForTiles):
143         (WebCore::TiledLayerChromium::markTilesForUpdate):
144         (WebCore::TiledLayerChromium::updateTileTextures):
145         (WebCore::TiledLayerChromium::resetUpdateState):
146         (WebCore::TiledLayerChromium::updateContentRect):
147         (WebCore::TiledLayerChromium::needsIdlePaint):
148         * platform/graphics/chromium/TiledLayerChromium.h:
149         (TiledLayerChromium):
150
151 2012-08-08  Beth Dakin  <bdakin@apple.com>
152
153         https://bugs.webkit.org/show_bug.cgi?id=93393
154         Overflow regions sometimes repaint incorrectly after going into or 
155         coming out of compositing mode
156         -and corresponding-
157         <rdar://problem/12006463>
158
159         Reviewed by Simon Fraser.
160
161         My first patch to fix this bug removed an if (parent()) check that is 
162         needed to prevent a table crash seen in 
163         fast/table/table-row-compositing-repaint-crash.html  
164         The parent() check was actually added originally to prevent this same 
165         crash. See http://trac.webkit.org/changeset/110456  
166         This patch adds that check back, but really we should delay the 
167         computation of repaint rects if layout has not happened yet.
168         * rendering/RenderLayerCompositor.cpp:
169         (WebCore::RenderLayerCompositor::updateBacking):
170
171 2012-08-08  Simon Fraser  <simon.fraser@apple.com>
172
173         Avoid backing store on layers created for CoreAnimation plugins
174         https://bugs.webkit.org/show_bug.cgi?id=93526
175         <rdar://problem/12052828>
176
177         Reviewed by Dean Jackson.
178
179         We create a compositing layer for <embed> objects whose plug-in supports
180         the CoreAnimation rendering model. When the embed's renderer is not styled,
181         we can avoid allocating backing store for it.
182
183         Test: compositing/plugins/no-backing-store.html
184
185         * rendering/RenderLayerBacking.cpp:
186         (WebCore::isCompositedPlugin):
187         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
188
189 2012-08-08  Erik Arvidsson  <arv@chromium.org>
190
191         DOM4: classList should be defined on Element and not on HTMLElement
192         https://bugs.webkit.org/show_bug.cgi?id=93015
193
194         Reviewed by Adam Barth.
195
196         DOM4 specs that Element should have the classList WebIDL attribute. This moves the
197         attribute to the correct IDL file.
198
199         Test: fast/dom/Element/class-list.html
200
201         * dom/Element.idl:
202         * html/HTMLElement.idl:
203
204 2012-08-08  Beth Dakin  <bdakin@apple.com>
205
206         https://bugs.webkit.org/show_bug.cgi?id=92275
207         Need a way to get a snapshot image that does not show the selection
208         -and corresponding-
209         <rdar://problem/11956802>
210
211         Reviewed by Anders Carlsson.
212
213         New function FrameView::paintContentsForSnapshot() has the option to 
214         exclude selection from the snapshot.
215
216         Export new function
217         * WebCore.exp.in:
218
219         Clear the selection from the RenderView when selection is to be excluded. Restore 
220         all of this information via FrameSelection::updateAppearance() after calling 
221         paintContents().
222         * page/FrameView.cpp:
223         (WebCore::FrameView::paintContentsForSnapshot):
224         (WebCore):
225         * page/FrameView.h:
226
227 2012-08-07  James Robinson  <jamesr@chromium.org>
228
229         [chromium] Only use public Platform API in NonCompositedContentHost
230         https://bugs.webkit.org/show_bug.cgi?id=93423
231
232         Reviewed by Adrienne Walker.
233
234         This renames the "NonCompositedContentHost" flag to "useLCDText", which is the primary purpose of the flag. We
235         also use this flag to control whether we have border texels or not on the "root" layer, but I can't think of a
236         clean name that encapsulates both behaviors.
237
238         * platform/graphics/chromium/LayerChromium.cpp:
239         (WebCore::LayerChromium::LayerChromium):
240         (WebCore::LayerChromium::setUseLCDText):
241         (WebCore::LayerChromium::pushPropertiesTo):
242         * platform/graphics/chromium/LayerChromium.h:
243         (LayerChromium):
244         (WebCore::LayerChromium::useLCDText):
245         * platform/graphics/chromium/TiledLayerChromium.cpp:
246         (WebCore::TiledLayerChromium::setUseLCDText):
247         * platform/graphics/chromium/TiledLayerChromium.h:
248         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
249         (WebCore::CCLayerImpl::CCLayerImpl):
250         * platform/graphics/chromium/cc/CCLayerImpl.h:
251         (WebCore::CCLayerImpl::setUseLCDText):
252         (WebCore::CCLayerImpl::useLCDText):
253         (CCLayerImpl):
254
255 2012-08-08  Beth Dakin  <bdakin@apple.com>
256
257         https://bugs.webkit.org/show_bug.cgi?id=93393
258         Overflow regions sometimes repaint incorrectly after going into or 
259         coming out of compositing mode
260         -and corresponding-
261         <rdar://problem/12006463>
262
263         Reviewed by Simon Fraser.
264
265         New RenderLayer function computeRepaintRectsIncludingDescendants()
266         * rendering/RenderLayer.cpp:
267         (WebCore):
268         (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
269         * rendering/RenderLayer.h:
270         (RenderLayer):
271
272         It is not sufficient to compute repaint rects just for the current 
273         layer when compositing changes. They must be recomputed for all 
274         descendant layers as well.
275         * rendering/RenderLayerCompositor.cpp:
276         (WebCore::RenderLayerCompositor::updateBacking):
277
278 2012-08-08  Alec Flett  <alecflett@chromium.org>
279
280         IndexedDB: new enums and openCursor stub
281         https://bugs.webkit.org/show_bug.cgi?id=93410
282
283         Reviewed by Adam Barth.
284
285         Introduce a new TaskType enum that will be used to prioritize
286         internal tasks. This is preliminary staging for
287         https://bugs.webkit.org/show_bug.cgi?id=91125.
288
289         No new tests, coming in bug 91125.
290
291         * Modules/indexeddb/IDBTransactionBackendInterface.h:
292
293 2012-08-08  Pavel Feldman  <pfeldman@chromium.org>
294
295         REGRESSION(r125046): Breaks debug build (assertion in protocol type checks) (Requested by pfeldman on #webkit).
296         https://bugs.webkit.org/show_bug.cgi?id=93505
297
298         Not reviewed: roll out.
299
300         * inspector/ConsoleMessage.cpp:
301         (WebCore::ConsoleMessage::addToFrontend):
302         * inspector/ConsoleMessage.h:
303         (ConsoleMessage):
304         * inspector/InjectedScript.cpp:
305         (WebCore::InjectedScript::wrapObject):
306         * inspector/InjectedScript.h:
307         (InjectedScript):
308         * inspector/InjectedScriptSource.js:
309         (.):
310         * inspector/InspectorConsoleAgent.cpp:
311         (WebCore::InspectorConsoleAgent::enable):
312         (WebCore::InspectorConsoleAgent::addConsoleMessage):
313         * inspector/front-end/ConsoleMessage.js:
314         (WebInspector.ConsoleMessageImpl.prototype._format):
315         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
316         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
317         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
318         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
319         (WebInspector.ConsoleMessageImpl.prototype._printArray):
320         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
321         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
322         * inspector/front-end/DOMExtension.js:
323         * inspector/front-end/ObjectPropertiesSection.js:
324         (WebInspector.ObjectPropertiesSection):
325         * inspector/front-end/PropertiesSection.js:
326         * inspector/front-end/RemoteObject.js:
327         (WebInspector.RemoteObject):
328         (WebInspector.RemoteObject.fromPayload):
329         * inspector/front-end/Section.js:
330         * inspector/front-end/inspector.css:
331         (.console-group-messages .section .header .title):
332         (.section .properties .name, .event-properties .name):
333
334 2012-08-08  Adam Barth  <abarth@webkit.org>
335
336         Crash when reloading a Chromium "platform" app
337         https://bugs.webkit.org/show_bug.cgi?id=93497
338
339         Reviewed by Eric Seidel.
340
341         The framework for Chromium "platform" apps executes a big blob of
342         script during the didCreateScriptContext callback. This blob of scripts
343         interacts with a bunch of JavaScript objects and triggers a number of
344         security checks.
345
346         When reloading a frame, the didCreateScriptContext is called during
347         Frame::setDocument (as a consequence of calling
348         ScriptController::updateDocument). At that time, the SecurityOrigin
349         object hasn't yet been copied over to the DOMWindow, and we crash
350         trying to grab it.
351
352         The long-term fix for this bug is to fix
353         https://bugs.webkit.org/show_bug.cgi?id=75793, at which point there
354         will no longer be a SecurityOrigin object on DOMWindow. In the
355         meantime, however, we can fix this crash by null checking the
356         DOMWindow's SecurityOrigin object.
357
358         * bindings/generic/BindingSecurity.cpp:
359         (WebCore::canAccessDocument):
360
361 2012-08-08  Dean Jackson  <dino@apple.com>
362
363         Unreviewed build fix for Mac port after http://trac.webkit.org/changeset/125051
364
365         Add CachedImageClient.h to project.
366
367         * WebCore.xcodeproj/project.pbxproj:
368
369 2012-08-08  Antonio Gomes  <agomes@rim.com>
370
371         [BlackBerry] Add boundsOrigin accessors to LayerOverride
372         https://bugs.webkit.org/show_bug.cgi?id=93479
373         PR #188677
374
375         Reviewed by Yong Li.
376
377         This is needed in order to allow us to directly set the boundsOrigin value
378         to the LayerCompositingThread and avoid it to get overridden by the respective
379         LayerWebKitThread's boundsOrigin value in the next commit.
380
381         No new tests, since this is another preparation PR.
382
383         * platform/graphics/blackberry/LayerCompositingThread.cpp:
384         (WebCore::LayerCompositingThread::updateAnimations):
385         * platform/graphics/blackberry/LayerCompositingThread.h:
386         (WebCore::LayerOverride::isBoundsOriginSet):
387         (WebCore::LayerOverride::boundsOrigin):
388         (WebCore::LayerOverride::setBoundsOrigin):
389         (LayerOverride):
390         (WebCore::LayerOverride::LayerOverride):
391
392 2012-08-08  Antonio Gomes  <agomes@rim.com>
393
394         [BlackBerry] Propagate GraphicsLayer::boundsOrigin down to the platform layers
395         https://bugs.webkit.org/show_bug.cgi?id=93478
396         PR #188657
397
398         Reviewed by Yong Li.
399
400         This property will be set from both WebKit and Compositing/UI
401         threads in order to fast scroll block elements.
402
403         No new tests, as it is a mid-step patch.
404
405         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
406         (WebCore::GraphicsLayerBlackBerry::setBoundsOrigin):
407         (WebCore):
408         (WebCore::GraphicsLayerBlackBerry::updateBoundsOrigin):
409         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
410         (GraphicsLayerBlackBerry):
411         * platform/graphics/blackberry/LayerCompositingThread.h:
412         (WebCore::LayerCompositingThread::setBoundsOrigin):
413         * platform/graphics/blackberry/LayerData.h:
414         (WebCore::LayerData::boundsOrigin):
415         (LayerData):
416         * platform/graphics/blackberry/LayerRenderer.cpp:
417         (WebCore::LayerRenderer::updateLayersRecursive):
418         * platform/graphics/blackberry/LayerWebKitThread.h:
419         (WebCore::LayerWebKitThread::setBoundsOrigin):
420         (LayerWebKitThread):
421
422 2012-08-08  Nate Chapin  <japhet@chromium.org>
423
424         [chromium] Upstream android's FlingAnimator
425         https://bugs.webkit.org/show_bug.cgi?id=92900
426
427         Reviewed by James Robinson.
428
429         No new tests yet, will be added once this code is called.
430
431         * WebCore.gypi:
432         * platform/chromium/support/PlatformGestureCurveFactory.cpp: Added.
433         (WebKit):
434         (WebKit::PlatformGestureCurveFactory::get):
435         (WebKit::PlatformGestureCurveFactory::createCurve):
436         (WebKit::PlatformGestureCurveFactory::setWebFlingAnimatorForTest):
437         * platform/chromium/support/PlatformGestureCurveFactory.h: Added.
438         (WebKit):
439         (PlatformGestureCurveFactory):
440         * platform/chromium/support/WebFlingAnimatorToGestureCurveAdapter.h: Added.
441         (WebKit):
442         (WebFlingAnimatorToGestureCurveAdapter):
443         (WebKit::WebFlingAnimatorToGestureCurveAdapter::create):
444         (WebKit::WebFlingAnimatorToGestureCurveAdapter::WebFlingAnimatorToGestureCurveAdapter):
445
446 2012-08-08  Anna Cavender  <annacc@chromium.org>
447
448         Update HTMLMediaElement to the new OO MediaSource API.
449         https://bugs.webkit.org/show_bug.cgi?id=91775
450
451         Reviewed by Eric Carlson.
452
453         This patch rips out the old-style MediaSource API and allows a
454         MediaSource object to be attached to HTMLMediaElement.
455         http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
456
457         Tests: updates to http/tests/media/media-source/*
458                http/tests/media/media-source/video-media-source-add-and-remove-buffers.html
459                http/tests/media/media-source/video-media-source-objects.html
460
461         * html/HTMLMediaElement.cpp:
462         (WebCore):
463         (WebCore::HTMLMediaElement::HTMLMediaElement): Remove old style API resources.
464         (WebCore::HTMLMediaElement::parseAttribute): Remove old style event attribute.
465         (WebCore::HTMLMediaElement::prepareForLoad): Set source state to "closed".
466         (WebCore::HTMLMediaElement::loadResource): Get MediaSource object from blob registry
467             look up and, if found, set it's MediaPlayer pointer to the current MediaPlayer.
468         (WebCore::HTMLMediaElement::noneSupported): Set source state to "closed".
469         (WebCore::HTMLMediaElement::mediaEngineError): Set source state to "closed".
470         (WebCore::HTMLMediaElement::mediaPlayerSourceOpened): Set source state to "open".
471         (WebCore::HTMLMediaElement::mediaPlayerSourceURL): Change to new blob URL.
472         (WebCore::HTMLMediaElement::seek): Check if source state is "closed".
473         (WebCore::HTMLMediaElement::setSourceState): Helper function so that we don't have to
474             keep checking for m_mediaSource.
475         (WebCore::HTMLMediaElement::userCancelledLoad): Set source state to "closed".
476         (WebCore::HTMLMediaElement::createMediaPlayer): If the current MediaPlayer is re-
477              created, notify the MediaSource and reset its MediaPlayer.
478
479         * html/HTMLMediaElement.h: Remove old style API code and add a MediaSource object.
480         (HTMLMediaElement):
481         * html/HTMLMediaElement.idl: Remove old style API.
482
483 2012-08-08  Dean Jackson  <dino@apple.com>
484
485         Unreviewed build fix for Mac port after http://trac.webkit.org/changeset/125051
486
487         * platform/mac/ClipboardMac.mm:
488
489 2012-08-08  Xan Lopez  <xlopez@igalia.com>
490
491         Evolution, empathy no longer build with webkint 1.9.6:  webkit_dom_html_element_set_class_name is gone
492         https://bugs.webkit.org/show_bug.cgi?id=93384
493
494         Reviewed by Adam Barth.
495
496         Provide custom backwards compatibility wrappers for HTMLElement
497         className accessors, since the attribute was moved to Element. The
498         previous fix attempted to define the attribute twice (once in each
499         class), but this is wrong, just provide again the old accessors
500         making them forward to the new methods.
501
502         * bindings/gobject/WebKitDOMCustom.cpp:
503         (webkit_dom_html_element_get_class_name): provide again
504         get_class_name for backwards compatibility.
505         (webkit_dom_html_element_set_class_name): provide again
506         set_class_name for backwards compatibility.
507         * bindings/gobject/WebKitDOMCustom.h: ditto.
508         * html/HTMLElement.idl: remove the className attribute
509         definition. Since it's already present in Element this will break
510         our bindings.
511
512 2012-08-07  Ojan Vafai  <ojan@chromium.org>
513
514         percentage height/width values in quirks mode are incorrectly resolved in flexbox children
515         https://bugs.webkit.org/show_bug.cgi?id=81809
516
517         Reviewed by Tony Chang.
518
519         When computing percentage logical heights we need to use the RenderBox helper methods
520         to make sure we handle all the edge cases correctly (e.g. walk up the containing block
521         ancestor chain in quirks mode until we find a definite size).
522
523         For widths, the containing block always has a definite size, so all we need to do
524         is call computeContentBoxLogicalWidth(valueForLength(...)), although I'm not sure
525         this does the right thing for the intrinsic sizing keywords.
526
527         Tests: css3/flexbox/box-sizing-min-max-sizes.html
528                css3/flexbox/percentage-sizes-quirks.html
529                css3/flexbox/percentage-sizes.html
530
531         * rendering/RenderBox.cpp:
532         (WebCore::RenderBox::computeLogicalClientHeight):
533         (WebCore):
534         * rendering/RenderBox.h:
535         (RenderBox):
536         * rendering/RenderFlexibleBox.cpp:
537         (WebCore::RenderFlexibleBox::computeMainAxisSizeForChild):
538         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
539         (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
540         * rendering/RenderFlexibleBox.h:
541
542 2012-08-08  Andrew Scherkus  <scherkus@chromium.org>
543
544         Fire suspend event whenever network state is set to NETWORK_IDLE.
545         https://bugs.webkit.org/show_bug.cgi?id=93052
546
547         Reviewed by Eric Carlson.
548
549         There was a regression in the Chromium port (http://crbug.com/139511) that revealed we didn't
550         have a layout test for suspend events. Upon further investigation it appeared we also had a bug
551         where we didn't fire the suspend event when a media engine reported they had completely loaded
552         the media.
553
554         Covered by new test http/tests/media/video-load-suspend.html.
555
556         * html/HTMLMediaElement.cpp: Move firing of suspend event to changeNetworkStateFromLoadingToIdle
557         (WebCore::HTMLMediaElement::setNetworkState):
558         (WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):
559
560 2012-08-08  Tom Sepez  <tsepez@chromium.org>
561
562         Video element image loader must persist after element detach.  
563         https://bugs.webkit.org/show_bug.cgi?id=90801
564
565         Reviewed by Eric Carlson.
566
567         We rely on the OwnPtr in the element to cleanup the loader.     
568
569         Test: fast/dom/beforeload/remove-video-poster-in-beforeload-listener.html
570
571         * html/HTMLVideoElement.cpp:
572         (WebCore):
573         * html/HTMLVideoElement.h:
574         (HTMLVideoElement):
575
576 2012-08-08  Nikhil Bhargava  <nbhargava@google.com>
577
578         Improve RenderObject.h compile time - split CachedImage and CachedImageClient
579         https://bugs.webkit.org/show_bug.cgi?id=93400
580
581         Reviewed by Eric Seidel.
582
583         Splits loader/cache/CachedImage.h into two files. The remaining changes are to repair existing #includes
584
585         No new tests. No changes to existing functions/functionality.
586
587         * css/CSSCrossfadeValue.h:
588         * loader/ImageLoader.h:
589         * loader/cache/CachedImage.cpp:
590         * loader/cache/CachedImage.h:
591         (WebCore):
592         * loader/cache/CachedImageClient.h: Added.
593         (WebCore):
594         (CachedImageClient):
595         (WebCore::CachedImageClient::~CachedImageClient):
596         (WebCore::CachedImageClient::expectedType):
597         (WebCore::CachedImageClient::resourceClientType):
598         (WebCore::CachedImageClient::imageChanged):
599         (WebCore::CachedImageClient::willRenderImage):
600         * platform/chromium/ClipboardChromium.h:
601         * rendering/RenderObject.h:
602         (WebCore):
603         * rendering/style/StyleCachedImage.cpp:
604         * rendering/style/StyleCachedImage.h:
605         (WebCore):
606         * rendering/style/StyleCachedImageSet.h:
607         * svg/graphics/SVGImage.cpp:
608
609 2012-08-08  Dan Bernstein  <mitz@apple.com>
610
611         REGRESSION (r123171): <svg> element with intrinsic size and max-width gets sized incorrectly
612         https://bugs.webkit.org/show_bug.cgi?id=93388
613
614         Reviewed by Beth Dakin.
615
616         Test: svg/css/max-width-3.html
617
618         * rendering/RenderReplaced.cpp:
619         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox): Added code to set
620         m_intrinsicSize in the no-contentRenderer branch of this function so that the calls to
621         RenderBox::computeReplacedLogical{Height,Width} in the end use the right intrinsic size.
622         This is similar to what the contentRenderer branch of this function already does.
623
624 2012-08-08  Keishi Hattori  <keishi@webkit.org>
625
626         Make slider tick mark snapping threshold configurable for each platform
627         https://bugs.webkit.org/show_bug.cgi?id=93429
628
629         Reviewed by Kent Tamura.
630
631         This makes the slider tick mark snapping threshold configurable for each platform.
632         And we increase the threshold for the Chromium port.
633
634         No new tests. Covered by range-snap-to-datalist.html.
635
636         * html/shadow/SliderThumbElement.cpp:
637         (WebCore::SliderThumbElement::setPositionFromPoint):
638         * rendering/RenderTheme.cpp:
639         (WebCore::RenderTheme::sliderTickSnappingThreshold):
640         (WebCore):
641         * rendering/RenderTheme.h:
642         (RenderTheme):
643         (WebCore::RenderTheme::sliderTickSnappingThreshold): Returns the threshold distance to the tick mark for snapping to occur.
644         * rendering/RenderThemeChromiumCommon.cpp:
645         (WebCore::RenderThemeChromiumCommon::sliderTickSnappingThreshold):
646         (WebCore):
647         * rendering/RenderThemeChromiumCommon.h:
648         (RenderThemeChromiumCommon):
649         * rendering/RenderThemeChromiumMac.h:
650         * rendering/RenderThemeChromiumMac.mm:
651         (WebCore):
652         (WebCore::RenderThemeChromiumMac::sliderTickSnappingThreshold):
653         * rendering/RenderThemeChromiumSkia.cpp:
654         (WebCore):
655         (WebCore::RenderThemeChromiumSkia::sliderTickSnappingThreshold):
656         * rendering/RenderThemeChromiumSkia.h:
657
658 2012-08-08  Mike West  <mkwst@chromium.org>
659
660         Until CSP fully supports paths, we should log a warning if we encounter a source with a path.
661         https://bugs.webkit.org/show_bug.cgi?id=93468
662
663         Reviewed by Adam Barth.
664
665         CSP 1.0 ignores path components of sources in directives' source lists.
666         'script-src http://example.com/path/to/directory' is treated exactly the
667         same as 'script-src http://example.com'. It's likely that this behavior
668         will change in CSP 1.1, which could break with developers' expectations.
669         This patch adds a warning when a path is encountered, alerting
670         developers to the fact that their current source is interpreted
671         differently than they might expect.
672
673         See http://crbug.com/128493 for additional context and discussion.
674
675         Tests for this change are covered by updating the existing Content
676         Security Policy tests to include the new console warnings.
677
678         * page/ContentSecurityPolicy.cpp:
679         (CSPSourceList):
680         (WebCore::CSPSourceList::CSPSourceList):
681             Passing the directive name down into CSPSourceList so that we can
682             generate informative error messages.
683         (WebCore::CSPSourceList::parse):
684             Create a 'path' string, pass it into 'parseSource', and use it after
685             parsing each source to determine whether a warning should be sent.
686         (WebCore::CSPSourceList::parseSource):
687             Adding a 'path' argument so that we can see whether or not a
688             specific source should generate a warning.
689         (WebCore::CSPDirective::CSPDirective):
690             Passing the directive name down into CSPSourceList so that we can
691             generate informative error messages.
692         (WebCore::ContentSecurityPolicy::reportIgnoredPathComponent):
693             Generate the new warning message.
694         (WebCore):
695         * page/ContentSecurityPolicy.h:
696
697 2012-08-08  Pavel Feldman  <pfeldman@chromium.org>
698
699         Web Inspector: generate preview for the objects dumped into the console upon logging.
700         https://bugs.webkit.org/show_bug.cgi?id=35801
701
702         Reviewed by Vsevolod Vlasov.
703
704         As of today, dumping an object (array) into console will result in objects' properties being
705         read upon console object expansion (i.e. lazily). This means that dumping the same object while
706         mutating it will be hard to debug using the console.
707
708         This change starts generating abbreviated previews for objects / arrays at the moment of their
709         logging and passes this information along into the front-end. This only happens when the front-end
710         is already opened, it only works for console.log(), not live console interaction.
711
712         Covered by the existing console tests + collections test has been expanded to capture both: pre and post-
713         front-end opening scenarios.
714
715         * inspector/ConsoleMessage.cpp:
716         (WebCore::ConsoleMessage::addToFrontend):
717         * inspector/ConsoleMessage.h:
718         (ConsoleMessage):
719         * inspector/InjectedScript.cpp:
720         (WebCore::InjectedScript::wrapObject):
721         * inspector/InjectedScript.h:
722         (InjectedScript):
723         * inspector/InjectedScriptSource.js:
724         (.):
725         * inspector/Inspector.json:
726         * inspector/InspectorConsoleAgent.cpp:
727         (WebCore::InspectorConsoleAgent::enable):
728         (WebCore::InspectorConsoleAgent::addConsoleMessage):
729         * inspector/front-end/ConsoleMessage.js:
730         (WebInspector.ConsoleMessageImpl.prototype._format):
731         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
732         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
733         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArrayOrObject):
734         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
735         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
736         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
737         (WebInspector.ConsoleMessageImpl.prototype._printArray):
738         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
739         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
740         * inspector/front-end/DOMExtension.js:
741         (Element.prototype.createTextChild):
742         * inspector/front-end/ObjectPropertiesSection.js:
743         (WebInspector.ObjectPropertiesSection):
744         * inspector/front-end/PropertiesSection.js:
745         * inspector/front-end/RemoteObject.js:
746         (WebInspector.RemoteObject):
747         (WebInspector.RemoteObject.fromPayload):
748         (WebInspector.RemoteObject.prototype.get previewProperties):
749         * inspector/front-end/Section.js:
750         * inspector/front-end/inspector.css:
751         (.console-group-messages .section .header .title):
752         (.section .console-formatted-node):
753         (.console-object-preview):
754         (.section .properties .name, .event-properties .name, .console-formatted-object .name):
755
756 2012-07-31  Philippe Normand  <pnormand@igalia.com>
757
758         [GStreamer] media/media-continues-playing-after-replace-source.html fails
759         https://bugs.webkit.org/show_bug.cgi?id=86310
760
761         Reviewed by Eric Carlson.
762
763         Reset the player's network and ready states, this allows the media
764         player client to potentially emit a timeupdate event while the new
765         location is being loaded. States are synchronized again after the
766         pipeline pre-rolled.
767
768         No new tests but fixes
769         media/media-continues-playing-after-replace-source.html
770
771         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
772         (WebCore::MediaPlayerPrivateGStreamer::load):
773
774 2012-08-08  Alexandru Chiculita  <achicu@adobe.com>
775
776         [Chromium] Skia assert triggered by custom filter unmultiplied results
777         https://bugs.webkit.org/show_bug.cgi?id=92758
778
779         Reviewed by Dean Jackson.
780
781         The FECustomFilter (which renders the CSS Shaders) used premultiplied colors for both input and ouput.
782         The problem with that is that some shaders do not pre-multiply the values and the reality is that
783         we cannot trust the shader to do that. The easy way would be to use only unpremultiplied colors and do the
784         computation in C++ code. This will be changed when the mix blending is implemented to do that in the shader itself. 
785
786         No new tests, just updated existing tests to take unpremultiplied colors instead.
787
788         * platform/graphics/filters/FECustomFilter.cpp:
789         (WebCore::FECustomFilter::platformApplySoftware):
790
791 2012-08-08  Philippe Normand  <pnormand@igalia.com>
792
793         Unreviewed, build fix after r125041.
794
795         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
796         (StreamingClient::didReceiveResponse): Fix arguments order of the
797         notifyGstTagsOnPad() call.
798
799 2012-08-08  Vineet Chaudhary  <rgf748@motorola.com>
800
801         Remove All Custom binding code for TypedArray.
802         https://bugs.webkit.org/show_bug.cgi?id=93371
803
804         Reviewed by Kentaro Hara.
805
806         Removing Custom bindings completely with help of [TypedArray] attribute.
807
808         Tests: TestTypedArray.idl
809         There should not be any behavioral change and all tests should pass.
810
811         * GNUmakefile.list.am: Removed Custom files.
812         * Target.pri: Ditto.
813         * UseJSC.cmake: Ditto.
814         * UseV8.cmake: Ditto.
815         * WebCore.gypi: Ditto.
816         * WebCore.xcodeproj/project.pbxproj: Ditto.
817         * bindings/js/JSBindingsAllInOne.cpp: Ditto.
818         * bindings/js/JSFloat32ArrayCustom.cpp: Removed.
819         * bindings/js/JSFloat64ArrayCustom.cpp: Removed.
820         * bindings/js/JSInt16ArrayCustom.cpp: Removed.
821         * bindings/js/JSInt32ArrayCustom.cpp: Removed.
822         * bindings/js/JSInt8ArrayCustom.cpp: Removed.
823         * bindings/js/JSUint16ArrayCustom.cpp: Removed.
824         * bindings/js/JSUint32ArrayCustom.cpp: Removed.
825         * bindings/js/JSUint8ArrayCustom.cpp: Removed.
826         * bindings/js/JSUint8ClampedArrayCustom.cpp: Removed.
827         * bindings/scripts/CodeGeneratorCPP.pm:
828         (GenerateHeader): Skip implementaion for TypedArray.
829         (GenerateImplementation): Skip implementaion for TypedArray.
830         * bindings/scripts/CodeGeneratorGObject.pm:
831         (GenerateFunction): Skip implementaion for TypedArray.
832         * bindings/scripts/CodeGeneratorJS.pm:
833         (GenerateImplementation): Generates binding for set() call.
834         (GenerateConstructorDefinition): ConstructorTemplate implementation for TypedArray.
835         * bindings/scripts/CodeGeneratorObjC.pm:
836         (GenerateHeader): Skip implementaion for TypedArray.
837         (GenerateImplementation): Skip implementaion for TypedArray.
838         * bindings/scripts/CodeGeneratorV8.pm:
839         (GenerateFunctionCallback): Generates binding for setCallback().
840         (GenerateTypedArrayConstructorCallback): Generates binding for constructorCallback().
841         (GenerateImplementation):
842         * bindings/scripts/IDLAttributes.txt: Support ConstructorTemplate for TypedArray as well.
843         * bindings/scripts/test/JS/JSFloat64Array.cpp: Binding tests results.
844         (WebCore::toJS):
845         (WebCore::JSFloat64Array::indexSetter):
846         (WebCore::JSFloat64ArrayConstructor::getConstructData):
847         (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
848         (WebCore::jsFloat64ArrayPrototypeFunctionSet):
849         * bindings/scripts/test/JS/JSFloat64Array.h: Binding tests results.
850         * bindings/scripts/test/TestTypedArray.idl: Binding tests.
851         * bindings/scripts/test/V8/V8Float64Array.cpp: Binding tests results.
852         (WebCore::Float64ArrayV8Internal::setCallback):
853         (Float64ArrayV8Internal):
854         (WebCore):
855         (WebCore::V8Float64Array::constructorCallback):
856         (WebCore::ConfigureV8Float64ArrayTemplate):
857         * bindings/v8/custom/V8Float32ArrayCustom.cpp: Removed.
858         * bindings/v8/custom/V8Float64ArrayCustom.cpp: Removed.
859         * bindings/v8/custom/V8Int16ArrayCustom.cpp: Removed.
860         * bindings/v8/custom/V8Int32ArrayCustom.cpp: Removed.
861         * bindings/v8/custom/V8Int8ArrayCustom.cpp: Removed.
862         * bindings/v8/custom/V8Uint16ArrayCustom.cpp: Removed.
863         * bindings/v8/custom/V8Uint32ArrayCustom.cpp: Removed.
864         * bindings/v8/custom/V8Uint8ArrayCustom.cpp: Removed.
865         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp: Removed.
866         * html/canvas/Float32Array.idl: Using [ConstructorTemplate = TypedArray] instead of custom implementaion.
867         * html/canvas/Float64Array.idl: Ditto.
868         * html/canvas/Int16Array.idl: Ditto.
869         * html/canvas/Int32Array.idl: Ditto.
870         * html/canvas/Int8Array.idl: Ditto.
871         * html/canvas/Uint16Array.idl: Ditto.
872         * html/canvas/Uint32Array.idl: Ditto.
873         * html/canvas/Uint8Array.idl: Ditto.
874         * html/canvas/Uint8ClampedArray.idl: Ditto.
875
876 2012-08-08  Philippe Normand  <pnormand@igalia.com>
877
878         [GStreamer] 0.11 build broken (again)
879         https://bugs.webkit.org/show_bug.cgi?id=93474
880
881         Reviewed by Martin Robinson.
882
883         Adapt the GStreamer media player backend to the latest GStreamer
884         0.11 API changes.
885
886         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
887         (WTF::adoptGRef):
888         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
889         (gstObjectIsFloating):
890         * platform/graphics/gstreamer/GStreamerVersioning.h:
891         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
892         (StreamingClient::didReceiveResponse):
893
894 2012-08-08  Loïc Yhuel  <loic.yhuel@softathome.com>
895
896         [Qt] Compile errors with OpenGLES2
897         https://bugs.webkit.org/show_bug.cgi?id=93206
898
899         Reviewed by Noam Rosenthal.
900
901         Fix build with OpenGLES2 on Linux desktop
902
903         * platform/graphics/OpenGLESShims.h: removed unused define conflicting with gl2ext.h from ANGLE
904
905 2012-08-08  Pavel Feldman  <pfeldman@chromium.org>
906
907         Web Inspector: store last evaluation result in $_
908         https://bugs.webkit.org/show_bug.cgi?id=93377
909
910         Reviewed by Vsevolod Vlasov.
911
912         All "console" evaluations end up in that variable on command line API.
913
914         Test: inspector/console/console-last-result.html
915
916         * inspector/InjectedScriptSource.js:
917         (.):
918
919 2012-08-08  Simon Hausmann  <simon.hausmann@nokia.com>
920
921         [Qt] Port internal findMethodIndex method matcher to use JSC C API
922         https://bugs.webkit.org/show_bug.cgi?id=93463
923
924         Reviewed by Kenneth Rohde Christiansen.
925
926         Based on patch by No'am Rosenthal.
927
928         * bridge/qt/qt_runtime.cpp:
929         (JSC::Bindings::setException):
930         (Bindings):
931         (JSC::Bindings::findMethodIndex): Fixed also coding style while at it.
932         (JSC::Bindings::QtRuntimeMetaMethod::call): Use new findMethodIndex. The
933         created JSValueRefs should not need GC protection because we only support
934         up to 10 method arguments and thus they will live on the stack storage
935         of the vector.
936         * bridge/qt/qt_runtime.h:
937         (Bindings):
938
939 2012-08-08  Alexander Pavlov  <apavlov@chromium.org>
940
941         Web Inspector: move setTouchEventEmulationEnabled from DOMAgent to PageAgent
942         https://bugs.webkit.org/show_bug.cgi?id=93437
943
944         Reviewed by Pavel Feldman.
945
946         * inspector/Inspector.json:
947         * inspector/InspectorDOMAgent.cpp:
948         (WebCore::InspectorDOMAgent::clearFrontend):
949         (WebCore::InspectorDOMAgent::restore):
950         * inspector/InspectorDOMAgent.h:
951         (InspectorDOMAgent):
952         * inspector/InspectorPageAgent.cpp:
953         (PageAgentState):
954         (WebCore::InspectorPageAgent::clearFrontend):
955         (WebCore::InspectorPageAgent::restore):
956         (WebCore):
957         (WebCore::InspectorPageAgent::updateTouchEventEmulationInPage):
958         (WebCore::InspectorPageAgent::setTouchEmulationEnabled):
959         * inspector/InspectorPageAgent.h:
960         * inspector/front-end/DOMAgent.js:
961         (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged):
962
963 2012-08-08  Alexis Menard  <alexis.menard@openbossa.org>
964
965         Unreviewed build fix for Qt on Linux.
966
967         * platform/qt/GamepadsQt.cpp:
968
969 2012-08-08  KwangYong Choi  <ky0.choi@samsung.com>
970
971         [EFL] Support DataList for <input type="range">
972         https://bugs.webkit.org/show_bug.cgi?id=92634
973
974         Reviewed by Kenneth Rohde Christiansen.
975
976         DataList theme for EFL is implemented. DataList feature of
977         <input type="range"> is supported.
978
979         Test: fast/forms/datalist/input-list.html
980
981         * platform/efl/RenderThemeEfl.cpp:
982         (WebCore::RenderThemeEfl::paintSliderTrack):
983         (WebCore::RenderThemeEfl::sliderTickSize):
984         (WebCore::RenderThemeEfl::sliderTickOffsetFromTrackCenter):
985         (WebCore::RenderThemeEfl::supportsDataListUI):
986         (WebCore):
987         * platform/efl/RenderThemeEfl.h:
988         (RenderThemeEfl):
989
990 2012-08-08  Sergey Rogulenko  <rogulenko@google.com>
991
992         Web Inspector: renaming DOMNodeHighlighter to InspectorOverlay
993         https://bugs.webkit.org/show_bug.cgi?id=93253
994
995         Reviewed by Pavel Feldman.
996
997         Renaming DOMNodeHighlighter to InspectorOverlay where necessary.
998
999         * CMakeLists.txt:
1000         * GNUmakefile.list.am:
1001         * Target.pri:
1002         * WebCore.gypi:
1003         * WebCore.vcproj/WebCore.vcproj:
1004         * WebCore.xcodeproj/project.pbxproj:
1005         * inspector/InspectorAllInOne.cpp:
1006         * inspector/InspectorController.cpp:
1007         * inspector/InspectorDOMAgent.cpp:
1008         * inspector/InspectorDOMAgent.h:
1009         * inspector/InspectorOverlay.cpp: Renamed from Source/WebCore/inspector/DOMNodeHighlighter.cpp.
1010         (WebCore::InspectorOverlay::InspectorOverlay):
1011         (WebCore):
1012         (WebCore::InspectorOverlay::paint):
1013         (WebCore::InspectorOverlay::drawOutline):
1014         (WebCore::InspectorOverlay::getHighlight):
1015         (WebCore::InspectorOverlay::setPausedInDebuggerMessage):
1016         (WebCore::InspectorOverlay::hideHighlight):
1017         (WebCore::InspectorOverlay::highlightNode):
1018         (WebCore::InspectorOverlay::highlightRect):
1019         (WebCore::InspectorOverlay::highlightedNode):
1020         (WebCore::InspectorOverlay::update):
1021         (WebCore::InspectorOverlay::drawNodeHighlight):
1022         (WebCore::InspectorOverlay::drawRectHighlight):
1023         (WebCore::InspectorOverlay::drawPausedInDebugger):
1024         * inspector/InspectorOverlay.h: Renamed from Source/WebCore/inspector/DOMNodeHighlighter.h.
1025         (WebCore):
1026         (HighlightConfig):
1027         (WebCore::Highlight::setColors):
1028         (Highlight):
1029         (InspectorOverlay):
1030         (WebCore::InspectorOverlay::create):
1031         * inspector/InspectorPageAgent.cpp:
1032         * inspector/PageDebuggerAgent.cpp:
1033         * page/GestureTapHighlighter.h:
1034         * testing/Internals.cpp:
1035
1036 2012-08-08  Chris Guan  <chris.guan@torchmobile.com.cn>
1037
1038         [Blackberry] missing a Multipart header when m_multipartResponse is null
1039         https://bugs.webkit.org/show_bug.cgi?id=93440
1040
1041         Reviewed by George Staikos.
1042
1043         when m_multipartResponse is null, we just created new one but not called 
1044         setHTTPHeaderField. So we missed this received multipart Header. We should 
1045         call setHTTPHeaderField for each reveived header.
1046
1047         No new tests, because those current multipart test cases (http/tests/multipart/*) 
1048         are enough.
1049
1050         * platform/network/blackberry/NetworkJob.cpp:
1051         (WebCore::NetworkJob::handleNotifyMultipartHeaderReceived):
1052
1053 2012-08-08  Mike West  <mkwst@chromium.org>
1054
1055         Refactor console logging out of CSPDirectiveList into ContentSecurityPolicy
1056         https://bugs.webkit.org/show_bug.cgi?id=93205
1057
1058         Reviewed by Adam Barth.
1059
1060         We currently pass a protected resource's ScriptExecutionContext down
1061         into CSPDirectiveList in order to log errors, grab the SecurityOrigin,
1062         resolve relative URLs, and one or two other bits. This implementation
1063         requires us to maintain state inside of low-level objects that shouldn't
1064         really know about the ScriptExecutionContext, and makes logging errors
1065         difficult, as CSPDirectiveList is the only piece of the puzzle that can
1066         interact with the console.
1067
1068         This patch removes the dependence on ScriptExecutionContext, replacing
1069         it with a pointer to the ContentSecurityPolicy object itself. The low-
1070         level objects like CSPDirectiveList now make requests to the policy
1071         object, which understands how to resolve them. This gives a cleaner
1072         separation between the CSP implementation and the rest of WebCore, and
1073         opens the door for future patches that teach the remaining low-level
1074         objects about the policy in which they're contained in order to improve
1075         error logging.
1076
1077         This should be a purely internal refactoring of the location from which
1078         warnings are logged to the console. No new tests have been added; the
1079         behavior should be covered by the existing CSP tests.
1080
1081         * page/ContentSecurityPolicy.cpp:
1082         (CSPSourceList):
1083         (WebCore::CSPSourceList::CSPSourceList):
1084             Pass the policy object into CSPSourceList, rather than a pointer to
1085             ScriptExecutionContext.
1086         (WebCore::CSPSourceList::parse):
1087         (WebCore::CSPSourceList::addSourceSelf):
1088             Read the SecurityOrigin from the policy object, rather than from the
1089             ScriptExecutionContext.
1090         (WebCore::CSPDirective::CSPDirective):
1091             Pass the policy object into CSPDirective, rather than a pointer to
1092             ScriptExecutionContext. Use it to read the protected resource's
1093             URL.
1094         (CSPDirectiveList):
1095         (WebCore::CSPDirectiveList::CSPDirectiveList):
1096             Pass the policy object into CSPSourceList, rather than a pointer to
1097             ScriptExecutionContext.
1098         (WebCore::CSPDirectiveList::create):
1099             Move the enforcement of eval restrictions out of CSPDirectiveList,
1100             and into ContentSecurityPolicy::ContentSecurityPolicy.
1101         (WebCore::CSPDirectiveList::reportViolation):
1102             Move most of the logic out of this method, and into
1103             ContentSecurityPolicy::reportViolation.
1104         (WebCore::CSPDirectiveList::parseDirective):
1105             Use the policy object for logging.
1106         (WebCore::CSPDirectiveList::parseReportURI):
1107             Use the policy object for logging, and URL completion.
1108         (WebCore::CSPDirectiveList::parseScriptNonce):
1109             Use the policy object for logging.
1110         (WebCore::CSPDirectiveList::setCSPDirective):
1111             Use the policy object for logging.
1112         (WebCore::CSPDirectiveList::applySandboxPolicy):
1113             Use the policy object for logging, and move enforcement to
1114             ContentSecurityPolicy::enforceSandboxFlags.
1115         (WebCore::CSPDirectiveList::addDirective):
1116             Use the policy object for logging.
1117         (WebCore::ContentSecurityPolicy::didReceiveHeader):
1118             Pass the policy object to CSPDirectiveList, and disable eval if
1119             necessary after parsing the policy.
1120         (WebCore::ContentSecurityPolicy::securityOrigin):
1121         (WebCore):
1122         (WebCore::ContentSecurityPolicy::url):
1123         (WebCore::ContentSecurityPolicy::completeURL):
1124         (WebCore::ContentSecurityPolicy::enforceSandboxFlags):
1125             Move the enforcement of the sandbox directive out of
1126             CSPDirectiveList and into the policy object.
1127         (WebCore::ContentSecurityPolicy::reportViolation):
1128         (WebCore::ContentSecurityPolicy::reportUnrecognizedDirective):
1129         (WebCore::ContentSecurityPolicy::reportDuplicateDirective):
1130         (WebCore::ContentSecurityPolicy::reportInvalidNonce):
1131             Move CSPDirectiveList::logXXX out to the policy object. The
1132             directive list is now responsible for reporting errors and
1133             violations; the policy decides what to do with them.
1134         (WebCore::ContentSecurityPolicy::logToConsole):
1135             Wrap the call to addConsoleMessage to make it simpler for the
1136             various ContentSecurityPolicy::reportXXX methods.
1137         * page/ContentSecurityPolicy.h:
1138         (WebCore):
1139
1140 2012-08-08  Kentaro Hara  <haraken@chromium.org>
1141
1142         [V8] Rename V8Helpers to V8BindingHelpers
1143         https://bugs.webkit.org/show_bug.cgi?id=93318
1144
1145         Reviewed by Eric Seidel.
1146
1147         For naming consistency, a file including binding utility methods
1148         should be prefixed by "V8Binding". In a follow-up patch, I'll move
1149         methods from V8Binding to V8BindingHelpers.
1150
1151         In addition this patch makes V8Binding.h include V8BindingHelpers.h,
1152         and removes #include V8BindingHelpers.h from binding files.
1153
1154         No tests. No change in behavior.
1155
1156         * UseV8.cmake:
1157         * WebCore.gypi:
1158         * bindings/v8/NPV8Object.cpp:
1159         * bindings/v8/V8BindingHelpers.cpp: Renamed from Source/WebCore/bindings/v8/V8Helpers.cpp.
1160         (WebCore):
1161         (WebCore::toV8Context):
1162         (WebCore::toV8Proxy):
1163         * bindings/v8/V8BindingHelpers.h: Renamed from Source/WebCore/bindings/v8/V8Helpers.h.
1164         (WebCore):
1165         * bindings/v8/V8NPObject.cpp:
1166
1167 2012-08-08  Kentaro Hara  <haraken@chromium.org>
1168
1169         'class WrapperTypeInfo' should be 'struct WrapperTypeInfo'
1170
1171         Unreviewed. Build fix for r125015.
1172
1173         * bindings/v8/V8BindingPerIsolateData.h:
1174         (WebCore):
1175
1176 2012-08-08  Matt Arsenault  <arsenm2@gmail.com>
1177
1178         Crash when inspecting an element with border-image
1179         https://bugs.webkit.org/show_bug.cgi?id=93380
1180
1181         Reviewed by Tim Horton.
1182
1183         The second value in the CSSPair should be the same as the first if
1184         we are in a shorthand and the next value is not a
1185         border-image-repeat keyword.
1186
1187         Test: fast/css/parse-border-image-repeat-null-crash.html
1188
1189         * css/CSSParser.cpp:
1190         (WebCore::CSSParser::parseBorderImageRepeat):
1191
1192 2012-08-08  Kentaro Hara  <haraken@chromium.org>
1193
1194         [V8] Factor out V8BindingPerIsolateData from V8Binding to a separate file
1195         https://bugs.webkit.org/show_bug.cgi?id=93333
1196
1197         Reviewed by Adam Barth.
1198
1199         This patch moves V8BindingPerIsolateData to V8BindingPerIsolateData.{h,cpp}.
1200
1201         To avoid circular #include dependency, I used OwnPtrs for m_stringCache,
1202         m_integerCache, m_hiddenPropertyName and m_gcEventData.
1203
1204         No tests. No change in behavior.
1205
1206         * UseV8.cmake:
1207         * WebCore.gypi:
1208         * bindings/v8/ScriptGCEvent.cpp:
1209         (WebCore::isolateGCEventData):
1210         (WebCore::ScriptGCEvent::addEventListener):
1211         (WebCore::ScriptGCEvent::removeEventListener):
1212         (WebCore::ScriptGCEvent::gcPrologueCallback):
1213         (WebCore::ScriptGCEvent::gcEpilogueCallback):
1214         * bindings/v8/V8Binding.cpp:
1215         * bindings/v8/V8Binding.h:
1216         (GCEventData):
1217         (WebCore):
1218         * bindings/v8/V8BindingPerIsolateData.cpp: Added.
1219         (WebCore):
1220         (WebCore::V8BindingPerIsolateData::V8BindingPerIsolateData):
1221         (WebCore::V8BindingPerIsolateData::~V8BindingPerIsolateData):
1222         (WebCore::V8BindingPerIsolateData::create):
1223         (WebCore::V8BindingPerIsolateData::ensureInitialized):
1224         (WebCore::V8BindingPerIsolateData::dispose):
1225         (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
1226         * bindings/v8/V8BindingPerIsolateData.h: Added.
1227         (WebCore):
1228         (V8BindingPerIsolateData):
1229         (WebCore::V8BindingPerIsolateData::current):
1230         (WebCore::V8BindingPerIsolateData::rawTemplateMap):
1231         (WebCore::V8BindingPerIsolateData::templateMap):
1232         (WebCore::V8BindingPerIsolateData::toStringName):
1233         (WebCore::V8BindingPerIsolateData::toStringTemplate):
1234         (WebCore::V8BindingPerIsolateData::lazyEventListenerToStringTemplate):
1235         (WebCore::V8BindingPerIsolateData::stringCache):
1236         (WebCore::V8BindingPerIsolateData::integerCache):
1237         (WebCore::V8BindingPerIsolateData::allStores):
1238         (WebCore::V8BindingPerIsolateData::hiddenPropertyName):
1239         (WebCore::V8BindingPerIsolateData::auxiliaryContext):
1240         (WebCore::V8BindingPerIsolateData::registerDOMDataStore):
1241         (WebCore::V8BindingPerIsolateData::unregisterDOMDataStore):
1242         (WebCore::V8BindingPerIsolateData::domDataStore):
1243         (WebCore::V8BindingPerIsolateData::setDOMDataStore):
1244         (WebCore::V8BindingPerIsolateData::recursionLevel):
1245         (WebCore::V8BindingPerIsolateData::incrementRecursionLevel):
1246         (WebCore::V8BindingPerIsolateData::decrementRecursionLevel):
1247         (WebCore::V8BindingPerIsolateData::globalHandleMap):
1248         (WebCore::V8BindingPerIsolateData::internalScriptRecursionLevel):
1249         (WebCore::V8BindingPerIsolateData::incrementInternalScriptRecursionLevel):
1250         (WebCore::V8BindingPerIsolateData::decrementInternalScriptRecursionLevel):
1251         (WebCore::V8BindingPerIsolateData::gcEventData):
1252         (WebCore::V8BindingPerIsolateData::setShouldCollectGarbageSoon):
1253         (WebCore::V8BindingPerIsolateData::clearShouldCollectGarbageSoon):
1254         (WebCore::V8BindingPerIsolateData::shouldCollectGarbageSoon):
1255
1256 2012-08-08  Pavel Feldman  <pfeldman@chromium.org>
1257
1258         Web Inspector: show whitespace nodes if they are the only tag's children.
1259         https://bugs.webkit.org/show_bug.cgi?id=93441
1260
1261         Reviewed by Vsevolod Vlasov.
1262
1263         Pass whitespace node info into the front-end when it is the only element's child.
1264
1265         * inspector/InspectorDOMAgent.cpp:
1266         (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
1267
1268 2012-08-08  Kentaro Hara  <haraken@chromium.org>
1269
1270         [V8] Pass Isolate to ArrayValue and Dictionary
1271         https://bugs.webkit.org/show_bug.cgi?id=93315
1272
1273         Reviewed by Adam Barth.
1274
1275         This patch passes Isolate to ArrayValue and Dictionary.
1276
1277         Rationale 1: We want to replace V8Proxy::throwError(ExceptionCode)
1278         with setDOMException(ExceptionCode, Isolate*). For the replacement,
1279         we need to pass Isolate to V8Utilities::extractTransferables().
1280         To pass Isolate to V8Utilities::extractTransferables(), ( ...omitted... ),
1281         we need to pass Isolate to ArrayValue and Dictionary.
1282
1283         Rationale 2: JSC already passes ExecState to ArrayValue and Dictionary.
1284
1285         Tests: storage/indexeddb/*
1286                fast/files/*
1287
1288         * bindings/scripts/CodeGeneratorV8.pm:
1289         (GenerateEventConstructorCallback):
1290         (JSValueToNative):
1291         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1292         (WebCore::V8TestEventConstructor::constructorCallback):
1293         * bindings/scripts/test/V8/V8TestObj.cpp:
1294         (WebCore::TestObjV8Internal::optionsObjectCallback):
1295         * bindings/v8/ArrayValue.cpp:
1296         (WebCore::ArrayValue::operator=):
1297         (WebCore::ArrayValue::get):
1298         * bindings/v8/ArrayValue.h:
1299         (WebCore::ArrayValue::ArrayValue):
1300         (ArrayValue):
1301         * bindings/v8/Dictionary.cpp:
1302         (WebCore::Dictionary::Dictionary):
1303         (WebCore::Dictionary::operator=):
1304         (WebCore::Dictionary::get):
1305         * bindings/v8/Dictionary.h:
1306         (Dictionary):
1307         * bindings/v8/custom/V8BlobCustom.cpp:
1308         (WebCore::V8Blob::constructorCallback):
1309         * bindings/v8/custom/V8IntentConstructor.cpp:
1310         (WebCore::V8Intent::constructorCallback):
1311
1312 2012-08-08  Yury Semikhatsky  <yurys@chromium.org>
1313
1314         Web Inspector: cached images memory instrumentation regression after r124744
1315         https://bugs.webkit.org/show_bug.cgi?id=93366
1316
1317         Reviewed by Vsevolod Vlasov.
1318
1319         CachedImage memory usage data no includes size of both encoded and
1320         decoded data.
1321
1322         Test: inspector/profiler/memory-instrumentation-cached-images.html
1323
1324         * loader/cache/CachedImage.cpp:
1325         (WebCore::CachedImage::reportMemoryUsage):
1326
1327 2012-08-08  Kentaro Hara  <haraken@chromium.org>
1328
1329         Optimize Element::hasAttribute() by replacing String with AtomicString
1330         https://bugs.webkit.org/show_bug.cgi?id=90273
1331
1332         Reviewed by Adam Barth.
1333
1334         Based on the observation described in this ChangeLog
1335         (http://trac.webkit.org/changeset/121439), this patch optimizes the
1336         performance of Element::hasAttribute() by replacing String with AtomicString.
1337
1338         Performance test: https://bugs.webkit.org/attachment.cgi?id=150144
1339
1340         hasAttribute (Chromium/Linux):
1341         329.60ms => 259.00ms
1342
1343         hasAttributeNS (Chromium/Linux):
1344         549.60ms => 435.80ms
1345
1346         * dom/Element.cpp:
1347         (WebCore::Element::hasAttribute):
1348         (WebCore::Element::hasAttributeNS):
1349         * dom/Element.h:
1350         (Element):
1351
1352 2012-08-08  Kentaro Hara  <haraken@chromium.org>
1353
1354         Optimize Element::removeAttribute() by replacing String with AtomicString
1355         https://bugs.webkit.org/show_bug.cgi?id=90265
1356
1357         Reviewed by Adam Barth.
1358
1359         Based on the observation described in this ChangeLog
1360         (http://trac.webkit.org/changeset/121439), this patch optimizes
1361         Element::removeAttribute() by replacing String with AtomicString.
1362
1363         Performance test: https://bugs.webkit.org/attachment.cgi?id=150140
1364
1365         removeAttribute (Chromium/Linux):
1366         334.20ms => 240.60ms
1367
1368         removeAttributeNS (Chromium/Linux):
1369         552.80ms => 421.60ms
1370
1371         * dom/Element.cpp:
1372         (WebCore::Element::removeAttribute):
1373         (WebCore::Element::removeAttributeNS):
1374         * dom/Element.h:
1375         (Element):
1376
1377 2012-08-08  Shinya Kawanaka  <shinyak@chromium.org>
1378
1379         Remove Element::ensureShadowRoot
1380         https://bugs.webkit.org/show_bug.cgi?id=77608
1381
1382         Reviewed by Ryosuke Niwa.
1383
1384         Since Element::ensureShadowRoot is not used anymore, we can remove this safely.
1385
1386         No new tests, no change in behavior.
1387
1388         * WebCore.order:
1389         * dom/Element.cpp:
1390         * dom/Element.h:
1391         (Element):
1392
1393 2012-08-08  Kentaro Hara  <haraken@chromium.org>
1394
1395         Remove an unused member variable.
1396
1397         Unreviewed, build fix for r124990.
1398
1399         * dom/ContainerNode.h:
1400         (WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
1401         (ChildNodesLazySnapshot):
1402
1403 2012-08-07  Vsevolod Vlasov  <vsevik@chromium.org>
1404
1405         Web Inspector: TabbedPane should use floating point width values for measuring.
1406         https://bugs.webkit.org/show_bug.cgi?id=93349
1407
1408         Reviewed by Pavel Feldman.
1409
1410         TabbedPane now uses getBoundingClientRect().width instead of offsetWidth for more precise calculation.
1411
1412         * inspector/front-end/TabbedPane.js:
1413         (WebInspector.TabbedPane.prototype._totalWidth):
1414         (WebInspector.TabbedPane.prototype._updateTabsDropDown):
1415         (WebInspector.TabbedPane.prototype._measureDropDownButton):
1416         (WebInspector.TabbedPane.prototype._updateWidths):
1417         (WebInspector.TabbedPaneTab.prototype._measure):
1418
1419 2012-08-08  Douglas Stockwell  <dstockwell@chromium.org>
1420
1421         'highlight' should not be parsed for a composite operation
1422         https://bugs.webkit.org/show_bug.cgi?id=92615
1423
1424         Reviewed by Ryosuke Niwa.
1425
1426         r88144 removed support for highlight as a composite operation but did
1427         not update the parser.
1428
1429         Test: fast/backgrounds/composite-highlight-is-invalid.html
1430
1431         * css/CSSParser.cpp:
1432         (WebCore::CSSParser::parseFillProperty):
1433
1434 2012-08-08  Takashi Sakamoto  <tasak@google.com>
1435
1436         showNodePath should show the age of ShadowRoot
1437         https://bugs.webkit.org/show_bug.cgi?id=93347
1438
1439         Reviewed by Ryosuke Niwa.
1440
1441         No new tests, because this patch is for fixing a bug of a method for
1442         debugging. If NDEBUG is defined, the method is not compiled.
1443
1444         * dom/Node.cpp:
1445         (WebCore::Node::showNodePathForThis):
1446         Fixed the bug to obtain the oldest shadow root from a shadow root.
1447         oldestShadowRootFor only works for an element node, not for a shadow root.
1448
1449 2012-08-07  Kent Tamura  <tkent@chromium.org>
1450
1451         Remove fractionDigits argument of WebCore::convertToLocalizedNumber()
1452         https://bugs.webkit.org/show_bug.cgi?id=93435
1453
1454         Reviewed by Kentaro Hara.
1455
1456         Remove the fractionDigits argument of convertToLocalizedNumber because
1457         we don't use it any more. Also, we can remove
1458         parseToDoubleForNumberTypeWithDecimalPlaces() functions, which are used
1459         to obtain the fractionDigits argument.
1460
1461         No new tests because of no behavior changes.
1462
1463         * platform/text/LocalizedNumber.h:
1464         (WebCore): Remove the fractionDigits argument of convertToLocalizedNumber.
1465         * platform/text/LocalizedNumberICU.cpp:
1466         (WebCore::convertToLocalizedNumber): ditto.
1467         * platform/text/LocalizedNumberNone.cpp:
1468         (WebCore::convertToLocalizedNumber): ditto.
1469         * platform/text/mac/LocalizedNumberMac.mm:
1470         (WebCore::convertToLocalizedNumber): ditto.
1471         * platform/text/win/LocalizedNumberWin.cpp:
1472         (WebCore::convertToLocalizedNumber): ditto.
1473
1474         * html/NumberInputType.cpp:
1475         (WebCore::NumberInputType::localizeValue):
1476         Remove the code to make the decimalPlace value.
1477         * html/parser/HTMLParserIdioms.cpp:
1478         Remove parseToDoubleForNumberTypeWithDecimalPlaces.
1479         * html/parser/HTMLParserIdioms.h: ditto.
1480
1481 2012-08-08  Mario Sanchez Prada  <msanchez@igalia.com>
1482
1483         REGRESSION(r65062): out of bound access in TextIterator (5 editing tests) on GTK
1484         https://bugs.webkit.org/show_bug.cgi?id=63611
1485
1486         Reviewed by Ryosuke Niwa.
1487
1488         Ensure document's layout is up-to-date before using TextIterator
1489         to properly calculate the offset for a text change when emitting
1490         accessibility related signals in GTK.
1491
1492         * accessibility/gtk/AXObjectCacheAtk.cpp:
1493         (WebCore::AXObjectCache::nodeTextChangePlatformNotification): Call
1494         to document->updateLayout() before using TextIterator.
1495
1496 2012-08-07  Hayato Ito  <hayato@chromium.org>
1497
1498         Unreviewed build fix after http://trac.webkit.org/changeset/124975
1499
1500         Remove assertion introduced in r124975.
1501
1502         * dom/EventDispatcher.cpp:
1503         (WebCore::EventDispatcher::EventDispatcher):
1504         (WebCore::EventDispatcher::dispatchEvent):
1505         * dom/EventDispatcher.h:
1506         (EventDispatcher):
1507
1508 2012-08-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1509
1510         Unreviewed, rolling out r124969.
1511         http://trac.webkit.org/changeset/124969
1512         https://bugs.webkit.org/show_bug.cgi?id=93436
1513
1514         Causes assertion failure in RenderQueue (Requested by toyoshim
1515         on #webkit).
1516
1517         * rendering/RenderObjectChildList.cpp:
1518         (WebCore::RenderObjectChildList::removeChildNode):
1519         (WebCore::RenderObjectChildList::appendChildNode):
1520         (WebCore::RenderObjectChildList::insertChildNode):
1521         * rendering/RenderQuote.cpp:
1522         (WebCore::adjustDepth):
1523         (WebCore::RenderQuote::RenderQuote):
1524         (WebCore::RenderQuote::~RenderQuote):
1525         (WebCore::RenderQuote::willBeDestroyed):
1526         (WebCore::RenderQuote::renderName):
1527         (WebCore):
1528         (WebCore::RenderQuote::placeQuote):
1529         (WebCore::RenderQuote::originalText):
1530         (WebCore::RenderQuote::computePreferredLogicalWidths):
1531         (WebCore::RenderQuote::rendererSubtreeAttached):
1532         (WebCore::RenderQuote::rendererRemovedFromTree):
1533         (WebCore::RenderQuote::styleDidChange):
1534         * rendering/RenderQuote.h:
1535         (RenderQuote):
1536         (WebCore::RenderQuote::isQuote):
1537         * rendering/RenderView.cpp:
1538         (WebCore::RenderView::RenderView):
1539         * rendering/RenderView.h:
1540         (WebCore):
1541         (RenderView):
1542         (WebCore::RenderView::addRenderQuote):
1543         (WebCore::RenderView::removeRenderQuote):
1544         (WebCore::RenderView::hasRenderQuotes):
1545         * rendering/style/RenderStyle.cpp:
1546         (WebCore::RenderStyle::diff):
1547
1548 2012-08-07  Kentaro Hara  <haraken@chromium.org>
1549
1550         Optimize ChildNode{Insertion,Removal}Notifier::notify() by lazily taking a snapshot of child nodes
1551         https://bugs.webkit.org/show_bug.cgi?id=92965
1552
1553         Reviewed by Adam Barth.
1554
1555         This patch improves performance of Dromaeo/dom-modify by 8.2% in both Chromium and Safari.
1556
1557         [Mac/Safari]     4590.33 runs/s  =>  4965.79 runs/s  (+8.18%)
1558         [Chromium/Linux] 3970.63 runs/s  =>  4299.65 runs/s  (+8.29%)
1559
1560         notifyDescendantRemovedFromDocument() cannot iterate child nodes in this way:
1561
1562         void notifyDescendantRemovedFromDocument(Node* node) {
1563             for (Node* child = node->firstChild(); child; child = child->nextSibling()) {
1564                 ...;
1565                 notifyNodeRemovedFromDocument(child);
1566             }
1567         }
1568
1569         This is because notifyNodeRemovedFromDocument(child) might dispatch events
1570         and the events might change child trees. To avoid security issues, the current
1571         code takes a snapshot of child nodes before starting the iteration.
1572
1573         void notifyDescendantRemovedFromDocument(Node* node) {
1574             NodeVector children;
1575             getChildNodes(node, children); // Take a snapshot.
1576             for (int i = 0; i < children.size(); i++) {
1577                 ...;
1578                 notifyNodeRemovedFromDocument(children[i]);
1579             }
1580         }
1581
1582         Based on the observation that in almost all cases events won't be dispatched
1583         from inside notifyNodeRemovedFromDocument(), this patch implements
1584         a "lazy" snapshot. The snapshot is taken at the point where
1585         EventDispatcher::dispatchEvent() is invoked. The snapshot is not taken unless
1586         any event is dispatched.
1587
1588         No tests. Confirm that all existing tests pass.
1589         Actually, at present there is (should be) no case where an event is
1590         dispatched from inside notifyNodeRemovedFromDocument(). Even DOMNodeInserted
1591         and DOMNodeRemoved events are not dispatched. Originally the snapshot was
1592         implemented "just in case" to protect the code from future attacks.
1593         I manually confirmed that the lazy snapshot works correctly by inserting
1594         takeChildNodesSnapshot() to notifyDescendantRemovedFromDocument()
1595         in a random manner.
1596
1597         * dom/ContainerNode.cpp:
1598         (WebCore):
1599         * dom/ContainerNode.h:
1600         (ChildNodesLazySnapshot):
1601         (WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
1602         (WebCore::ChildNodesLazySnapshot::~ChildNodesLazySnapshot):
1603         (WebCore::ChildNodesLazySnapshot::nextNode):
1604         (WebCore::ChildNodesLazySnapshot::takeSnapshot):
1605         (WebCore::ChildNodesLazySnapshot::nextSnapshot):
1606         (WebCore::ChildNodesLazySnapshot::hasSnapshot):
1607         (WebCore::ChildNodesLazySnapshot::takeChildNodesLazySnapshot):
1608         (WebCore):
1609         * dom/ContainerNodeAlgorithms.cpp:
1610         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
1611         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
1612         * dom/EventDispatcher.cpp:
1613         (WebCore::EventDispatcher::dispatchEvent):
1614
1615 2012-08-07  Ojan Vafai  <ojan@chromium.org>
1616
1617         percentage margins + flex incorrectly overflows the flexbox
1618         https://bugs.webkit.org/show_bug.cgi?id=93411
1619
1620         Reviewed by Tony Chang.
1621
1622         Percent margins should always be computed with respect to the containing
1623         block's width, not it's height. We were getting this wrong in column flows.
1624
1625         Test: css3/flexbox/percent-margins.html
1626
1627         * rendering/RenderFlexibleBox.cpp:
1628         (WebCore::RenderFlexibleBox::computeMarginValue):
1629         (WebCore):
1630         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
1631         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
1632         * rendering/RenderFlexibleBox.h:
1633
1634 2012-08-07  Kentaro Hara  <haraken@chromium.org>
1635
1636         [V8] Replace throwError(ExceptionCode, Isolate*) with setDOMException(ExceptionCode, Isolate*) in v8/* and v8/custom/*
1637         https://bugs.webkit.org/show_bug.cgi?id=93226
1638
1639         Reviewed by Eric Seidel.
1640
1641         Now throwError(ExceptionCode, Isolate*) is equivalent to
1642         setDOMException(ExceptionCode, Isolate*). We can replace the former with
1643         the latter. After this replacement, the rule becomes simple and sane:
1644         "Use throwError() for throwing JavaScript errors, use setDOMException()
1645         for throwing DOM exceptions".
1646
1647         No tests. No change in behavior.
1648
1649         * bindings/v8/SerializedScriptValue.cpp:
1650         (WebCore::SerializedScriptValue::transferArrayBuffers):
1651         (WebCore::SerializedScriptValue::SerializedScriptValue):
1652         * bindings/v8/custom/V8AudioContextCustom.cpp:
1653         (WebCore::V8AudioContext::constructorCallback):
1654         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
1655         (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
1656         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1657         (WebCore::V8DOMStringMap::namedPropertySetter):
1658         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1659         (WebCore::handlePostMessageCallback):
1660         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
1661         (WebCore::handlePostMessageCallback):
1662         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
1663         (WebCore::V8DirectoryEntry::getDirectoryCallback):
1664         (WebCore::V8DirectoryEntry::getFileCallback):
1665         * bindings/v8/custom/V8DocumentCustom.cpp:
1666         (WebCore::V8Document::evaluateCallback):
1667         * bindings/v8/custom/V8HistoryCustom.cpp:
1668         (WebCore::V8History::pushStateCallback):
1669         (WebCore::V8History::replaceStateCallback):
1670         * bindings/v8/custom/V8IntentConstructor.cpp:
1671         (WebCore::V8Intent::constructorCallback):
1672         * bindings/v8/custom/V8MessagePortCustom.cpp:
1673         (WebCore::handlePostMessageCallback):
1674         * bindings/v8/custom/V8MutationObserverCustom.cpp:
1675         (WebCore::V8MutationObserver::constructorCallback):
1676         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
1677         (WebCore::V8NotificationCenter::createHTMLNotificationCallback):
1678         (WebCore::V8NotificationCenter::createNotificationCallback):
1679         (WebCore::V8NotificationCenter::requestPermissionCallback):
1680         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
1681         (WebCore::V8SQLTransaction::executeSqlCallback):
1682         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
1683         (WebCore::V8SQLTransactionSync::executeSqlCallback):
1684         * bindings/v8/custom/V8StorageCustom.cpp:
1685         (WebCore::storageSetter):
1686         * bindings/v8/custom/V8WebSocketCustom.cpp:
1687         (WebCore::V8WebSocket::constructorCallback):
1688         (WebCore::V8WebSocket::sendCallback):
1689         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1690         (WebCore::V8WorkerContext::importScriptsCallback):
1691         * bindings/v8/custom/V8WorkerCustom.cpp:
1692         (WebCore::handlePostMessageCallback):
1693         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1694         (WebCore::V8XMLHttpRequest::responseTextAccessorGetter):
1695         (WebCore::V8XMLHttpRequest::openCallback):
1696         (WebCore::V8XMLHttpRequest::sendCallback):
1697
1698 2012-08-07  Kentaro Hara  <haraken@chromium.org>
1699
1700         [V8] Replace v8::Handle<v8::Value>() in custom bindings with v8Undefined()
1701         https://bugs.webkit.org/show_bug.cgi?id=93215
1702
1703         Reviewed by Eric Seidel.
1704
1705         We should use v8Undefined() everywhere in V8 bindings.
1706
1707         No tests. No change in behavior.
1708
1709         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
1710         (WebCore::V8CSSStyleDeclaration::namedPropertyGetter):
1711         (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
1712         * bindings/v8/custom/V8ConsoleCustom.cpp:
1713         (WebCore::V8Console::traceCallback):
1714         (WebCore::V8Console::assertCallback):
1715         (WebCore::V8Console::profileCallback):
1716         (WebCore::V8Console::profileEndCallback):
1717         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1718         (WebCore::V8DOMStringMap::namedPropertyGetter):
1719         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1720         (WebCore::V8DOMWindow::indexedPropertyGetter):
1721         (WebCore::V8DOMWindow::namedPropertyGetter):
1722         * bindings/v8/custom/V8DataViewCustom.cpp:
1723         (WebCore::V8DataView::setInt8Callback):
1724         (WebCore::V8DataView::setUint8Callback):
1725         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
1726         (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallback):
1727         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
1728         (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
1729         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
1730         (WebCore::V8DirectoryEntry::getDirectoryCallback):
1731         (WebCore::V8DirectoryEntry::getFileCallback):
1732         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
1733         (WebCore::getNamedItems):
1734         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
1735         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
1736         (WebCore::getNamedItems):
1737         (WebCore::V8HTMLCollection::namedPropertyGetter):
1738         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1739         (WebCore::V8HTMLDocument::GetNamedProperty):
1740         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
1741         (WebCore::V8HTMLFormElement::indexedPropertyGetter):
1742         (WebCore::V8HTMLFormElement::namedPropertyGetter):
1743         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
1744         (WebCore::V8HTMLFrameSetElement::namedPropertyGetter):
1745         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1746         (WebCore::V8HTMLOptionsCollection::indexedPropertyGetter):
1747         * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
1748         (WebCore::npObjectNamedGetter):
1749         (WebCore::npObjectNamedSetter):
1750         (WebCore::npObjectIndexedGetter):
1751         (WebCore::npObjectIndexedSetter):
1752         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
1753         (WebCore::V8HTMLSelectElement::indexedPropertyGetter):
1754         * bindings/v8/custom/V8LocationCustom.cpp:
1755         (WebCore::V8Location::reloadAccessorGetter):
1756         (WebCore::V8Location::replaceAccessorGetter):
1757         (WebCore::V8Location::assignAccessorGetter):
1758         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
1759         (WebCore::V8NamedNodeMap::indexedPropertyGetter):
1760         (WebCore::V8NamedNodeMap::namedPropertyGetter):
1761         * bindings/v8/custom/V8NodeListCustom.cpp:
1762         (WebCore::V8NodeList::namedPropertyGetter):
1763         * bindings/v8/custom/V8SVGLengthCustom.cpp:
1764         (WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
1765         * bindings/v8/custom/V8StorageCustom.cpp:
1766         (WebCore::storageGetter):
1767         (WebCore::V8Storage::namedPropertyGetter):
1768         (WebCore::storageSetter):
1769         * bindings/v8/custom/V8StyleSheetListCustom.cpp:
1770         (WebCore::V8StyleSheetList::namedPropertyGetter):
1771
1772 2012-08-07  Kentaro Hara  <haraken@chromium.org>
1773
1774         [V8] Replace v8::Handle<v8::Value>() in bindings/v8/* with v8Undefined()
1775         https://bugs.webkit.org/show_bug.cgi?id=93211
1776
1777         Reviewed by Eric Seidel.
1778
1779         We should use v8Undefined() everywhere in V8 bindings.
1780         Replacing v8::Local<v8::Value>() etc with v8Undefined() can cause build
1781         errors due to type conversion mismatch. I'll do the replacement in follow-up
1782         patches.
1783
1784         No tests. No change in behavior.
1785
1786         * bindings/v8/IDBBindingUtilities.cpp:
1787         (WebCore):
1788         * bindings/v8/ScriptDebugServer.cpp:
1789         (WebCore::ScriptDebugServer::pauseOnExceptionsState):
1790         (WebCore::ScriptDebugServer::handleV8DebugEvent):
1791         * bindings/v8/SerializedScriptValue.cpp:
1792         * bindings/v8/V8Binding.cpp:
1793         (WebCore::batchConfigureCallbacks):
1794         * bindings/v8/V8Collection.h:
1795         (WebCore::getV8Object):
1796         (WebCore::collectionNamedPropertyGetter):
1797         * bindings/v8/V8DOMWrapper.cpp:
1798         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
1799         * bindings/v8/V8NPObject.cpp:
1800         (WebCore::npObjectGetProperty):
1801         (WebCore::npObjectSetProperty):
1802         * bindings/v8/V8Proxy.cpp:
1803         (WebCore::V8Proxy::setDOMException):
1804         (WebCore::V8Proxy::throwError):
1805         * bindings/v8/WorkerScriptDebugServer.cpp:
1806         (WebCore::WorkerScriptDebugServer::addListener):
1807
1808 2012-08-07  Joe Mason  <jmason@rim.com>
1809
1810         Fix regression in credential storage when using Negotiate auth
1811         https://bugs.webkit.org/show_bug.cgi?id=93386
1812
1813         Reviewed by George Staikos.
1814
1815         r124205 regressed credential storage and lookup.  It added code to update the scheme used in
1816         credential storage if the scheme chosen by the network stack is different from that requested by
1817         webkit (currently this is only used when webkit requests Negotiate auth, but the Negotiate
1818         infrastructure isn't set up correctly, so the network stack falls back to another auth type, usually
1819         NTLM).  But the credentials are saved when a "success" status is received, and the scheme in the
1820         credentials is not updated until notifyAuthReceived is called to report the actual auth scheme used.
1821         The result is that the credentials are stored with the wrong auth scheme and can never be retreived.
1822
1823         Fixed by delaying the credential save until notifyAuthReceived.
1824
1825         RIM PR 166514
1826         Internally reviewed by George Staikos
1827
1828         * platform/network/blackberry/NetworkJob.cpp:
1829         (WebCore::NetworkJob::handleNotifyStatusReceived): Stop storing credentials here.
1830         (WebCore::NetworkJob::notifyAuthReceived): Store credentials here instead.
1831
1832 2012-08-07  Kent Tamura  <tkent@chromium.org>
1833
1834         [Mac] Do not reformat numbers in <input type=number>
1835         https://bugs.webkit.org/show_bug.cgi?id=93236
1836
1837         Reviewed by Hajime Morita.
1838
1839         We had bugs such as stripping leading zeros, dropping lower digits of
1840         large numbers because we parse a user-input string to a double value,
1841         and generate a string from the double value.
1842
1843         In order to avoid such reformatting, we use
1844         platform/text/NumberLocalizer, which maps ASCII digits to the
1845         corresponding localized digits.
1846
1847         Test: fast/forms/number/number-lossless-localization.html
1848
1849         * WebCore.xcodeproj/project.pbxproj:
1850         Add the following files:
1851          - platform/text/NumberLocalizer.cpp
1852          - platform/text/NumberLocalizer.h
1853          - platform/mac/LocaleMac.h
1854          - platform/mac/LocaleMac.mm
1855         * platform/text/mac/LocaleMac.h:
1856         (LocaleMac): Inherit NumberLocalizer, and declare
1857         initializeNumberLocalizerData() for it.
1858         Add m_didInitializeNumberData flag.
1859         * platform/text/mac/LocaleMac.mm:
1860         (WebCore::LocaleMac::LocaleMac): Initialize m_didInitializeNumberData
1861         (WebCore::LocaleMac::initializeNumberLocalizerData):
1862         Added. Prepare data for number localization, and call
1863         NumberLocalizer::setNumberLocalizerData().
1864         A tricky part is to format 9876543210 for m_locale. It seems OSX doesn't
1865         have API to get localized digits.
1866         * platform/text/mac/LocalizedNumberMac.mm:
1867         Remove many lines, and calls the corresponding functions of LocaleMac.
1868         (WebCore::convertToLocalizedNumber):
1869         (WebCore::convertFromLocalizedNumber):
1870         (WebCore::localizedDecimalSeparator):
1871
1872 2012-08-07  Kentaro Hara  <haraken@chromium.org>
1873
1874         [V8] Move V8BindingMacros.h from bindings/v8/custom/ to bindings/v8/
1875         https://bugs.webkit.org/show_bug.cgi?id=93254
1876
1877         Reviewed by Eric Seidel.
1878
1879         V8BindingMacros.h should exist in bindings/v8/.
1880         This patch also moves related enums from V8Binding.h to V8BindingMacros.h.
1881
1882         No tests. No change in behavior.
1883
1884         * WebCore.gypi:
1885         * bindings/v8/V8BindingMacros.h: Renamed from Source/WebCore/bindings/v8/custom/V8BindingMacros.h.
1886         (WebCore):
1887
1888 2012-08-07  Kentaro Hara  <haraken@chromium.org>
1889
1890         [V8] StringCache::m_lastStringImpl and StringCache::m_lastV8String should be in sync
1891         https://bugs.webkit.org/show_bug.cgi?id=93065
1892
1893         Reviewed by Eric Seidel.
1894
1895         StringCache::m_lastStringImpl caches a StringImpl that was accessed most
1896         recently. StringCache::m_lastV8String caches Persistent<String> corresponding
1897         to the StringImpl. Hence m_lastStringImpl and m_lastV8String should be in sync.
1898
1899         However, StringCache::remove() breaks the sync. StringCache::remove() clears
1900         m_lastStringImpl but does not clear m_lastV8String. As far as I analyze the code,
1901         this won't cause any problem, but we should fix it just in case.
1902
1903         No tests. No change in behavior.
1904
1905         * bindings/v8/V8Binding.cpp:
1906         (WebCore::StringCache::remove):
1907
1908 2012-08-07  Hayato Ito  <hayato@chromium.org>
1909
1910         Don't re-use the same EventDispatcher instance to dispatch events.
1911         https://bugs.webkit.org/show_bug.cgi?id=93322
1912
1913         Reviewed by Dimitri Glazkov.
1914
1915         It is potentially dangerous to call
1916         EventDispatcher::dispatchEvent(PassRefPtr<Event>) twice for the
1917         same EventDispatcher instance.  Some member functions in
1918         EventDispatcher assume that dispatchEvent(PassRefPtr<Event>) is
1919         never called more than once in its life cycle.
1920
1921         For example, EventDispatcher::ensureEventAncestor never
1922         recalculates ancestors of node even when
1923         dispatchEvent(PassRefPtr<Event)) is called again with a different
1924         event parameter.
1925
1926         A 'dblclick' event violates this rule. A 'dblclick' dispatching
1927         reuses the same dispatcher instance.  So stop re-using the same
1928         dispatcher and add ASSERT to make sure dispatchEvent() is never
1929         called more than once.
1930
1931         No new tests, no change in functionality.
1932
1933         * dom/EventDispatcher.cpp:
1934         (WebCore::EventDispatcher::EventDispatcher):
1935         (WebCore::EventDispatcher::dispatchEvent):
1936         * dom/EventDispatcher.h:
1937         (EventDispatcher):
1938         * dom/MouseEvent.cpp:
1939         (WebCore::MouseEventDispatchMediator::dispatchEvent):
1940
1941 2012-08-07  Joshua Bell  <jsbell@chromium.org>
1942
1943         Layout Test storage/indexeddb/intversion-omit-parameter.html is flaky
1944         https://bugs.webkit.org/show_bug.cgi?id=92952
1945
1946         Reviewed by Tony Chang.
1947
1948         Account for events being propagated from the back-end to front-end after
1949         front-end context is stopped (i.e. document is being destroyed). The IDBRequest
1950         lifecycle was tightened up in http://trac.webkit.org/changeset/123275 with more
1951         asserts but the stopped state wasn't accounted for.
1952
1953         Test: [chromium] webkit_unit_tests --gtest_filter='IDBRequestTest.EventsAfterStopping'
1954
1955         * Modules/indexeddb/IDBRequest.cpp:
1956         (WebCore::IDBRequest::abort):
1957         (WebCore::IDBRequest::onError):
1958         (WebCore::IDBRequest::onSuccess):
1959         (WebCore::IDBRequest::onSuccessWithContinuation):
1960
1961 2012-08-07  Kentaro Hara  <haraken@chromium.org>
1962
1963         Optimize Element::getAttributeNode() by replacing String with AtomicString
1964         https://bugs.webkit.org/show_bug.cgi?id=90274
1965
1966         Reviewed by Adam Barth.
1967
1968         Based on the observation described in this ChangeLog
1969         (http://trac.webkit.org/changeset/121439), this patch optimizes
1970         the performance of Element::getAttributeNode() by replacing String
1971         with AtomicString.
1972
1973         Performance test: https://bugs.webkit.org/attachment.cgi?id=150147
1974
1975         getAttributeNode (Chromium/Linux):
1976         375.20ms => 310.80ms
1977
1978         getAttributeNodeNS (Chromium/Linux):
1979         684.40ms => 539.00ms
1980
1981         * dom/Element.cpp:
1982         (WebCore::Element::getAttributeNode):
1983         (WebCore::Element::getAttributeNodeNS):
1984         * dom/Element.h:
1985         (Element):
1986
1987 2012-08-07  Michelangelo De Simone  <michelangelo@webkit.org>
1988
1989         CSSParser::parseTransform() refactor to accept valueList as argument
1990         https://bugs.webkit.org/show_bug.cgi?id=93295
1991
1992         Reviewed by Darin Adler.
1993
1994         CSS::parseTranform() is now accepting the related CSSParserValueList as
1995         argument. This change will be used by the code to parse the 3d-transforms
1996         within the custom() function, see bug #71443.
1997
1998         * css/CSSParser.cpp:
1999         (WebCore::CSSParser::parseValue):
2000         (WebCore::CSSParser::parseTransform):
2001         * css/CSSParser.h:
2002
2003 2012-08-07  Elliott Sprehn  <esprehn@gmail.com>
2004
2005         Reimplement RenderQuote placement algorithm
2006         https://bugs.webkit.org/show_bug.cgi?id=93056
2007
2008         Reviewed by Eric Seidel.
2009
2010         Greatly simplify the code that maintains the linked list of RenderQuotes. Now RenderQuote
2011         is placed into the linked list in computePreferredLogicalWidths on first access and is
2012         detached when destroyed (or explicitly removed).
2013
2014         The new algorithm doesn't require walking up the tree of renderers when there are no
2015         RenderQuotes in the tree yet, and also removes the need to walk over every subtree
2016         when inserting in rendererSubtreeAttached.
2017
2018         No new tests because this patch doesn't change any behavior.
2019
2020         * rendering/RenderObjectChildList.cpp:
2021         (WebCore::RenderObjectChildList::removeChildNode): Call detachQuote when removing from a child list.
2022         (WebCore::RenderObjectChildList::appendChildNode):
2023         (WebCore::RenderObjectChildList::insertChildNode):
2024         * rendering/RenderQuote.cpp:
2025         (WebCore::RenderQuote::RenderQuote):
2026         (WebCore::RenderQuote::~RenderQuote):
2027         (WebCore::RenderQuote::willBeDestroyed): Call detachQuote to ensure all destroyed quotes are detached.
2028         (WebCore::RenderQuote::originalText):
2029         (WebCore::RenderQuote::computePreferredLogicalWidths): Attach quote before computing the width.
2030         (WebCore):
2031         (WebCore::RenderQuote::attachQuote): Puts the RenderQuote in the linked list of quotes and computes the depth.
2032         (WebCore::RenderQuote::detachQuote): Removes the quote from the linked list.
2033         (WebCore::RenderQuote::updateDepth):
2034         * rendering/RenderQuote.h:
2035         (RenderQuote):
2036         * rendering/style/RenderStyle.cpp:
2037         (WebCore::RenderStyle::diff): Return StyleDifferenceLayout if quotes change and remove check in styleDidChange in RenderQuote.
2038         * rendering/RenderView.cpp:
2039         (WebCore::RenderView::RenderView):
2040         * rendering/RenderView.h:
2041         (WebCore):
2042         (WebCore::RenderView::setRenderQuoteHead):
2043         (WebCore::RenderView::renderQuoteHead): Stores the first quote in the document.
2044         (RenderView):
2045
2046 2012-08-07  Kentaro Hara  <haraken@chromium.org>
2047
2048         [V8] Remove a bunch of Persistent::New()s on setJSWrapperForXXXObject()
2049         https://bugs.webkit.org/show_bug.cgi?id=93342
2050
2051         Reviewed by Adam Barth.
2052
2053         There are a lot of custom bindings like this:
2054
2055             V8DOMWrapper::setJSWrapperForDOMObject(impl.release(), v8::Persistent<v8::Object>::New(args.Holder()));
2056
2057         Manually written Persistent::New() is error-prone. We can remove the
2058         Persistent::New() by allocating the Persistent handle inside
2059         setJSWrapperForDOMObject().
2060
2061         A new setJSWrapperForDOMObject() receives a wrapper object, allocates
2062         the Persistent handle of the wrapper object, and return the Persistent handle.
2063
2064         No tests. No change in behavior.
2065
2066         * bindings/scripts/CodeGeneratorV8.pm:
2067         (GenerateConstructorCallback):
2068         (GenerateEventConstructorCallback):
2069         (GenerateNamedConstructorCallback):
2070         (GenerateToV8Converters):
2071         * bindings/scripts/test/V8/V8Float64Array.cpp:
2072         (WebCore::V8Float64Array::wrapSlow):
2073         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2074         (WebCore::V8TestActiveDOMObject::wrapSlow):
2075         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2076         (WebCore::V8TestCustomNamedGetter::wrapSlow):
2077         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2078         (WebCore::V8TestEventConstructor::constructorCallback):
2079         (WebCore::V8TestEventConstructor::wrapSlow):
2080         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2081         (WebCore::V8TestEventTarget::wrapSlow):
2082         * bindings/scripts/test/V8/V8TestException.cpp:
2083         (WebCore::V8TestException::wrapSlow):
2084         * bindings/scripts/test/V8/V8TestInterface.cpp:
2085         (WebCore::V8TestInterface::constructorCallback):
2086         (WebCore::V8TestInterface::wrapSlow):
2087         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2088         (WebCore::V8TestMediaQueryListListener::wrapSlow):
2089         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2090         (WebCore::V8TestNamedConstructorConstructorCallback):
2091         (WebCore::V8TestNamedConstructor::wrapSlow):
2092         * bindings/scripts/test/V8/V8TestNode.cpp:
2093         (WebCore::V8TestNode::constructorCallback):
2094         (WebCore::V8TestNode::wrapSlow):
2095         * bindings/scripts/test/V8/V8TestObj.cpp:
2096         (WebCore::V8TestObj::constructorCallback):
2097         (WebCore::V8TestObj::wrapSlow):
2098         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2099         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
2100         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
2101         * bindings/v8/V8DOMWindowShell.cpp:
2102         (WebCore::V8DOMWindowShell::installDOMWindow):
2103         * bindings/v8/V8DOMWrapper.cpp:
2104         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
2105         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
2106         * bindings/v8/V8DOMWrapper.h:
2107         (V8DOMWrapper):
2108         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
2109         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
2110         * bindings/v8/WorkerContextExecutionProxy.cpp:
2111         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
2112         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
2113         (WebCore::V8ArrayBuffer::constructorCallback):
2114         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
2115         (WebCore::wrapArrayBufferView):
2116         (WebCore::constructWebGLArray):
2117         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
2118         (WebCore::V8DOMFormData::constructorCallback):
2119         * bindings/v8/custom/V8DataViewCustom.cpp:
2120         (WebCore::V8DataView::constructorCallback):
2121         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2122         (WebCore::v8HTMLImageElementConstructorCallback):
2123         * bindings/v8/custom/V8IntentConstructor.cpp:
2124         (WebCore::V8Intent::constructorCallback):
2125         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
2126         (WebCore::V8MessageChannel::constructorCallback):
2127         * bindings/v8/custom/V8MutationObserverCustom.cpp:
2128         (WebCore::V8MutationObserver::constructorCallback):
2129         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
2130         (WebCore::V8WebKitPoint::constructorCallback):
2131         * bindings/v8/custom/V8WebSocketCustom.cpp:
2132         (WebCore::V8WebSocket::constructorCallback):
2133         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
2134         (WebCore::V8XMLHttpRequest::constructorCallback):
2135
2136 2012-08-07  Erik Arvidsson  <arv@chromium.org>
2137
2138         Evolution, empathy no longer build with webkint 1.9.6:  webkit_dom_html_element_set_class_name is gone
2139         https://bugs.webkit.org/show_bug.cgi?id=93384
2140
2141         Reviewed by Adam Barth.
2142
2143         The GObject bindings do not do inheritance so when className was moved from HTMLElement to Element,
2144         webkit_dom_html_element_set_class_name was no longer defined. This patch re-adds the binding for the
2145         GObject bindings to HTMLElement.
2146
2147         No new tests.
2148
2149         * html/HTMLElement.idl:
2150
2151 2012-08-07  Dirk Pranke  <dpranke@chromium.org>
2152
2153         fix chromium win build after r124945
2154         https://bugs.webkit.org/show_bug.cgi?id=93421
2155
2156         Unreviewed, build fix.
2157
2158         Two Efl files were removed in r124945 but we forgot to remove
2159         them from WebCore.gypi.
2160
2161         * WebCore.gypi:
2162
2163 2012-08-07  Dean Jackson  <dino@apple.com>
2164
2165         Unreviewed build fix for Mac port after http://trac.webkit.org/changeset/124954
2166
2167         * html/HTMLPlugInElement.cpp:
2168         (WebCore::HTMLPlugInElement::isKeyboardFocusable):
2169
2170 2012-08-07  Kentaro Hara  <haraken@chromium.org>
2171
2172         [V8] Move setIsolatedWorldSecurityOrigin() from V8Proxy to ScriptController
2173         https://bugs.webkit.org/show_bug.cgi?id=93334
2174
2175         Reviewed by Adam Barth.
2176
2177         The goal is to move factor out V8Proxy methods to ScriptController.
2178         As a starting point, this patch moves setIsolatedWorldSecurityOrigin().
2179
2180         isolatedWorlds() and isolatedWorldSecurityOrigins() are temporary methods.
2181         They will be soon removed after moving all related methods
2182         and m_isolatedWorlds and m_isolatedWorldSecurityOrigins.
2183
2184         No tests. No change in behavior.
2185
2186         * bindings/v8/ScriptController.cpp:
2187         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
2188         * bindings/v8/V8Proxy.cpp:
2189         * bindings/v8/V8Proxy.h:
2190         (WebCore):
2191         (V8Proxy):
2192         (WebCore::V8Proxy::isolatedWorlds):
2193         (WebCore::V8Proxy::isolatedWorldSecurityOrigins):
2194
2195 2012-08-07  Yoshifumi Inoue  <yosin@chromium.org>
2196
2197         translateZ(0) shifts file name in file input
2198         https://bugs.webkit.org/show_bug.cgi?id=69248
2199
2200         Reviewed by Simon Fraser.
2201
2202         This patch changes to use relative y-coordinate rather than absolute
2203         y-coordinate for baseline of text of input type "file" what we've already
2204         done for file icon y-coordinate.
2205
2206         Test: file-appearance-transform-no-effects.html
2207
2208         * rendering/RenderFileUploadControl.cpp:
2209         (WebCore::RenderFileUploadControl::paintObject): Changed to use paintOffset
2210         instead of absoluteBoundingBoxRectIgnoringTransforms().
2211
2212 2012-08-07  Kentaro Hara  <haraken@chromium.org>
2213
2214         [V8] Replace throwError(ExceptionCode, Isolate*) with
2215         setDOMException(ExceptionCode, Isolate*) in CodeGeneratorV8.pm
2216         https://bugs.webkit.org/show_bug.cgi?id=93223
2217
2218         Reviewed by Adam Barth.
2219
2220         Now throwError(ExceptionCode, Isolate*) is equivalent to
2221         setDOMException(ExceptionCode, Isolate*). We can replace the former
2222         with the latter. After this replacement, the rule becomes simple
2223         and sane: "Use throwError() for throwing JavaScript errors, use
2224         setDOMException() for throwing DOM exceptions".
2225
2226         Test: bindings/scripts/test/TestObj.idl
2227
2228         * bindings/scripts/CodeGeneratorV8.pm:
2229         (GenerateParametersCheck):
2230         (GenerateConstructorCallback):
2231         (GenerateNamedConstructorCallback):
2232         * bindings/scripts/test/V8/V8TestInterface.cpp:
2233         (WebCore::V8TestInterface::constructorCallback):
2234         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2235         (WebCore::V8TestNamedConstructorConstructorCallback):
2236         * bindings/scripts/test/V8/V8TestObj.cpp:
2237         (WebCore::TestObjV8Internal::methodWithCallbackArgCallback):
2238         (WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
2239         (WebCore::TestObjV8Internal::methodWithCallbackAndOptionalArgCallback):
2240         (WebCore::TestObjV8Internal::overloadedMethod5Callback):
2241         (WebCore::V8TestObj::constructorCallback):
2242
2243 2012-08-07  Fady Samuel  <fsamuel@chromium.org>
2244
2245         Allow plugins to decide whether they are keyboard focusable
2246         https://bugs.webkit.org/show_bug.cgi?id=88958
2247
2248         Reviewed by Anders Carlsson.
2249
2250         * dom/Node.h:
2251         (WebCore::Node::isPluginElement):
2252         * html/HTMLEmbedElement.cpp:
2253         (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
2254         * html/HTMLEmbedElement.h:
2255         (HTMLEmbedElement):
2256         * html/HTMLObjectElement.cpp:
2257         (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
2258         * html/HTMLObjectElement.h:
2259         (HTMLObjectElement):
2260         * html/HTMLPlugInElement.cpp:
2261         (WebCore::HTMLPlugInElement::pluginWidget):
2262         (WebCore::HTMLPlugInElement::isKeyboardFocusable):
2263         (WebCore):
2264         (WebCore::HTMLPlugInElement::isPluginElement):
2265         * html/HTMLPlugInElement.h:
2266         (HTMLPlugInElement):
2267         * page/FocusController.cpp:
2268         (WebCore::FocusController::advanceFocusInDocumentOrder):
2269         * plugins/PluginViewBase.h:
2270         (WebCore::PluginViewBase::supportsKeyboardFocus):
2271
2272 2012-08-07  Anna Cavender  <annacc@chromium.org>
2273
2274         Create a MediaSource object.
2275         https://bugs.webkit.org/show_bug.cgi?id=91773
2276
2277         Reviewed by Eric Carlson.
2278
2279         MediaSource object is needed in order to implement the new
2280         object-oriented MediaSource API:
2281         http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
2282
2283         No new tests - will be able to test after landing:
2284         https://bugs.webkit.org/show_bug.cgi?id=91775
2285
2286         Adding new files to build files:
2287         * CMakeLists.txt:
2288         * DerivedSources.cpp:
2289         * DerivedSources.make:
2290         * DerivedSources.pri:
2291         * GNUmakefile.list.am:
2292         * Target.pri:
2293         * WebCore.gypi:
2294         * WebCore.vcproj/WebCore.vcproj:
2295         * WebCore.xcodeproj/project.pbxproj:
2296
2297         New MediaSource object:
2298         * Modules/mediasource/MediaSource.cpp: Added.
2299         * Modules/mediasource/MediaSource.h: Added.
2300         * Modules/mediasource/MediaSource.idl: Added.
2301
2302         Create a registry for the blob storage and lookup:
2303         * Modules/mediasource/MediaSourceRegistry.cpp: Added.
2304         * Modules/mediasource/MediaSourceRegistry.h: Added.
2305
2306         Connect SourceBuffer to MediaSource:
2307         * Modules/mediasource/SourceBuffer.cpp:
2308         (WebCore::SourceBuffer::SourceBuffer):
2309         (WebCore::SourceBuffer::buffered): Forward call to MediaSource.
2310         (WebCore::SourceBuffer::append): Ditto.
2311         (WebCore::SourceBuffer::abort): Ditto.
2312         * Modules/mediasource/SourceBuffer.h:
2313         (WebCore::SourceBuffer::create): Add a MediaSource to the constructor.
2314         (WebCore::SourceBuffer::clear): Clear the MediaSource.
2315         (SourceBuffer):
2316         * Modules/mediasource/SourceBufferList.cpp: include SourceBuffer.h
2317         * Modules/mediasource/SourceBufferList.h:
2318
2319         Make MediaSource an EventTarget:
2320         * dom/EventTarget.h:
2321         (WebCore):
2322         * dom/EventTargetFactory.in:
2323
2324         Enable creation of MediaSource object URL from JavaScript:
2325         * html/DOMURL.cpp:
2326         (WebCore):
2327         (WebCore::DOMURL::createObjectURL):
2328         (WebCore::DOMURL::revokeObjectURL):
2329         * html/DOMURL.h:
2330         (WebCore):
2331         (DOMURL):
2332         * html/DOMURL.idl:
2333         * html/PublicURLManager.h: create a new sourceURLs list for storing
2334             reigstered MediaSource URLS.
2335         (WebCore::PublicURLManager::contextDestroyed): make sure everything is
2336             removed from the sourceURLs list upon destruction.
2337         (PublicURLManager):
2338         (WebCore::PublicURLManager::sourceURLs): getter for the sourceURLs list.
2339
2340         New MediaSource constructor:
2341         * page/DOMWindow.idl:
2342
2343 2012-08-07  Kentaro Hara  <haraken@chromium.org>
2344
2345         [V8] Implement V8Proxy::registerExtensionIfNeeded() and remove redundant methods
2346         https://bugs.webkit.org/show_bug.cgi?id=93209
2347
2348         Reviewed by Adam Barth.
2349
2350         By implementing V8Proxy::registerExtensionIfNeeded(), we can remove
2351         registeredExtensionWithV8() and registerExtension().
2352
2353         No tests. No change in behavior.
2354
2355         * bindings/v8/V8DOMWindowShell.cpp:
2356         (WebCore::V8DOMWindowShell::createNewContext):
2357         * bindings/v8/V8Proxy.cpp:
2358         (WebCore::V8Proxy::registerExtensionIfNeeded):
2359         * bindings/v8/V8Proxy.h:
2360         (V8Proxy):
2361
2362 2012-08-07  Ryuan Choi  <ryuan.choi@samsung.com>
2363
2364         [EFL] Remove PlatformTouchEventEfl and PlatformTouchPointEfl
2365         https://bugs.webkit.org/show_bug.cgi?id=93270
2366
2367         Reviewed by Eric Seidel.
2368
2369         PlatformTouchEventEfl and PlatformTouchPointEfl initialize PlatformTouchEvent
2370         directly from Ewk_TouchEvent which is WebKit1/Efl API and they can not be
2371         shared with WebKit2/Efl.
2372
2373         In order to remove this WebKit dependency from WebCore, this patch removes Efl
2374         specific codes from PlatformTouchXXX and adds the classes which convert
2375         Ewk_Touch_XXX to PlatformTouchXXX.
2376
2377         No new tests. Just a refactoring.
2378
2379         * PlatformEfl.cmake: Removed PlatformTouchEventEfl.cpp and PlatformTouchPointEfl.cpp
2380         * platform/PlatformTouchEvent.h: Removed Efl specific codes.
2381         (PlatformTouchEvent):
2382         * platform/PlatformTouchPoint.h: Ditto.
2383         (PlatformTouchPoint):
2384         * platform/efl/PlatformTouchEventEfl.cpp: Removed.
2385         * platform/efl/PlatformTouchPointEfl.cpp: Removed.
2386
2387 2012-08-07  James Robinson  <jamesr@chromium.org>
2388
2389         [chromium] Avoid dependending on implicit WebString -> String conversion in compositor
2390         https://bugs.webkit.org/show_bug.cgi?id=93408
2391
2392         Reviewed by Adrienne Walker.
2393
2394         * platform/graphics/chromium/LayerRendererChromium.cpp:
2395         (WebCore::LayerRendererChromium::initialize):
2396         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
2397         (WebCore::CCResourceProvider::initialize):
2398
2399 2012-08-07  Kentaro Hara  <haraken@chromium.org>
2400
2401         [V8] Factor out V8Binding methods that configures DOM attributes and methods
2402         https://bugs.webkit.org/show_bug.cgi?id=93239
2403
2404         Reviewed by Adam Barth.
2405
2406         V8Binding is messy. This patch factors out V8Binding methods that configures
2407         DOM attributes and methods into another file. This patch just moves the methods
2408         from V8Binding.{h,cpp} to V8ConfigureDOMAttributesAndMethods.{h,cpp}.
2409
2410         No tests. No change in behavior.
2411
2412         * UseV8.cmake:
2413         * WebCore.gypi:
2414         * bindings/v8/V8Binding.cpp:
2415         * bindings/v8/V8Binding.h:
2416         (WebCore):
2417         * bindings/v8/V8ConfigureDOMAttributesAndMethods.cpp: Added.
2418         (WebCore):
2419         (WebCore::batchConfigureAttributes):
2420         (WebCore::batchConfigureConstants):
2421         (WebCore::batchConfigureCallbacks):
2422         (WebCore::configureTemplate):
2423         * bindings/v8/V8ConfigureDOMAttributesAndMethods.h: Added.
2424         (WebCore):
2425         (BatchedAttribute):
2426         (WebCore::configureAttribute):
2427         (BatchedConstant):
2428         (BatchedCallback):
2429
2430 2012-08-07  Kentaro Hara  <haraken@chromium.org>
2431
2432         [V8] Replace all V8 undefined values in the rest of custom bindings with v8Undefined()
2433         https://bugs.webkit.org/show_bug.cgi?id=93220
2434
2435         Reviewed by Eric Seidel.
2436
2437         We should use v8Undefined() everywhere in V8 bindings.
2438         This patch replaces all V8 undefined values in the rest of custom bindings
2439         with v8Undefined().
2440
2441         No tests. No change in behavior.
2442
2443         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2444         (WebCore::V8DOMStringMap::namedPropertyQuery): Simple refactoring not related to
2445         this patch. Since other bindings are using 0 instead of v8::None, we should use 0 here too.
2446         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2447         (WebCore::toV8):
2448         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
2449         (WebCore::toV8):
2450         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
2451         (WebCore::toV8):
2452
2453 2012-08-07  Kentaro Hara  <haraken@chromium.org>
2454
2455         [V8] Remove #include V8BindingMacros.h
2456         https://bugs.webkit.org/show_bug.cgi?id=93312
2457
2458         Reviewed by Eric Seidel.
2459
2460         We are factoring out V8Binding methods to separate files.
2461         After the refactoring, V8Binding.h will include binding related
2462         header files (e.g. V8BindingMacros.h, V8BindingHelper.h, etc), so that
2463         custom V8 binding files just need to include V8Binding.h only.
2464
2465         We can remove '#include V8BindingMacros.h' from V8 binding files.
2466
2467         No tests. No change in behavior.
2468
2469         * bindings/scripts/CodeGeneratorV8.pm:
2470         (GenerateNormalAttrSetter):
2471         (GenerateParametersCheck):
2472         (GenerateEventConstructorCallback):
2473         (ConvertToV8Parameter):
2474         * bindings/scripts/test/V8/V8Float64Array.cpp:
2475         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2476         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2477         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2478         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2479         * bindings/scripts/test/V8/V8TestInterface.cpp:
2480         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2481         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2482         * bindings/scripts/test/V8/V8TestObj.cpp:
2483         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2484         * bindings/v8/ScriptController.cpp:
2485         * bindings/v8/custom/V8BlobCustom.cpp:
2486         * bindings/v8/custom/V8ConsoleCustom.cpp:
2487         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2488         * bindings/v8/custom/V8DataViewCustom.cpp:
2489         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
2490         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
2491         * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
2492         * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
2493         * bindings/v8/custom/V8IntentConstructor.cpp:
2494         * bindings/v8/custom/V8MutationObserverCustom.cpp:
2495         * bindings/v8/custom/V8PerformanceCustom.cpp:
2496         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
2497         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
2498         * bindings/v8/custom/V8SVGLengthCustom.cpp:
2499         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2500         * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
2501         * bindings/v8/custom/V8WorkerContextCustom.cpp:
2502
2503 2012-08-07  Kentaro Hara  <haraken@chromium.org>
2504
2505         [V8] Remove #include Frame.h from V8Binding.h
2506         https://bugs.webkit.org/show_bug.cgi?id=93326
2507
2508         Reviewed by Adam Barth.
2509
2510         We want to remove unnecessary #include in V8Binding.h
2511         to avoid circular include dependency.
2512
2513         No tests. No change in behavior.
2514
2515         * bindings/scripts/CodeGeneratorV8.pm:
2516         (GenerateDomainSafeFunctionGetter):
2517         (GenerateNormalAttrGetter):
2518         (GenerateReplaceableAttrSetter):
2519         (GenerateFunctionCallback):
2520         (GenerateNamedConstructorCallback):
2521         (GenerateToV8Converters):
2522         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2523         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2524         * bindings/scripts/test/V8/V8TestNode.cpp:
2525         * bindings/v8/ScheduledAction.cpp:
2526         * bindings/v8/V8Binding.h:
2527         * bindings/v8/V8DOMWrapper.cpp:
2528         * bindings/v8/custom/V8DocumentCustom.cpp:
2529         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
2530         * testing/v8/WebCoreTestSupport.cpp:
2531
2532 2012-08-07  Kentaro Hara  <haraken@chromium.org>
2533
2534         [V8] Factor out V8Binding classes that manage V8 value's cache
2535         https://bugs.webkit.org/show_bug.cgi?id=93343
2536
2537         Reviewed by Adam Barth.
2538
2539         We are factoring out V8Binding methods to separate files.
2540         This patch moves V8Binding classes that manage V8 value's cache
2541         to V8ValueCache.{h,cpp}.
2542
2543         No tests. No change in behavior.
2544
2545         * UseV8.cmake:
2546         * WebCore.gypi:
2547         * bindings/v8/V8Binding.cpp:
2548         * bindings/v8/V8Binding.h:
2549         (WebCore):
2550         * bindings/v8/V8ValueCache.cpp: Added.
2551         (WebCore):
2552         (WebCore::makeExternalString):
2553         (WebCore::cachedStringCallback):
2554         (WebCore::StringCache::remove):
2555         (WebCore::StringCache::v8ExternalStringSlow):
2556         (WebCore::IntegerCache::createSmallIntegers):
2557         (WebCore::IntegerCache::~IntegerCache):
2558         * bindings/v8/V8ValueCache.h: Added.
2559         (WebCore):
2560         (StringCache):
2561         (WebCore::StringCache::StringCache):
2562         (WebCore::StringCache::v8ExternalString):
2563         (WebCore::StringCache::clearOnGC):
2564         (WebCoreStringResource):
2565         (WebCore::WebCoreStringResource::WebCoreStringResource):
2566         (WebCore::WebCoreStringResource::~WebCoreStringResource):
2567         (WebCore::WebCoreStringResource::data):
2568         (WebCore::WebCoreStringResource::length):
2569         (WebCore::WebCoreStringResource::webcoreString):
2570         (WebCore::WebCoreStringResource::atomicString):
2571         (WebCore::WebCoreStringResource::visitStrings): This method is used by inspector
2572         and thus is not performance-critical. To avoid circular #include dependency,
2573         I moved the implementation to cpp.
2574         (WebCore::WebCoreStringResource::toStringResource):
2575         (IntegerCache):
2576         (WebCore::IntegerCache::IntegerCache):
2577         (WebCore::IntegerCache::v8Integer):
2578         (WebCore::IntegerCache::v8UnsignedInteger):
2579
2580 2012-08-07  James Robinson  <jamesr@chromium.org>
2581
2582         [chromium] Switch PlatformLayer typedef to Platform API type for PLATFORM(CHROMIUM)
2583         https://bugs.webkit.org/show_bug.cgi?id=93335
2584
2585         Reviewed by Adrienne Walker.
2586
2587         This converts the PlatformLayer typedef to WebKit::WebLayer (part of the chromium Platform API) for the
2588         Chromium port. This involves some odd const_cast<>s in places since cross-platform interfaces assume that
2589         PlatformLayer is a potentially heavy implementation class, but WebLayer is a thin smart pointer type.
2590
2591         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2592         (WebCore::createScrollbarLayer):
2593         (WebCore::ScrollingCoordinator::setScrollLayer):
2594         (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
2595         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
2596         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
2597         * platform/graphics/PlatformLayer.h:
2598         (WebKit):
2599         (WebCore):
2600         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
2601         (WebCore::Canvas2DLayerBridge::layer):
2602         * platform/graphics/chromium/Canvas2DLayerBridge.h:
2603         (Canvas2DLayerBridge):
2604         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2605         (WebCore::DrawingBufferPrivate::layer):
2606         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2607         (WebCore::GraphicsLayerChromium::removeFromParent):
2608         (WebCore::GraphicsLayerChromium::setDrawsContent):
2609         (WebCore::GraphicsLayerChromium::setContentsVisible):
2610         (WebCore::GraphicsLayerChromium::setMaskLayer):
2611         (WebCore::GraphicsLayerChromium::setContentsToCanvas):
2612         (WebCore::GraphicsLayerChromium::setContentsToMedia):
2613         (WebCore::GraphicsLayerChromium::primaryLayer):
2614         (WebCore::GraphicsLayerChromium::platformLayer):
2615         (WebCore::GraphicsLayerChromium::updateChildList):
2616         * platform/graphics/chromium/GraphicsLayerChromium.h:
2617         (GraphicsLayerChromium):
2618
2619 2012-08-07  James Robinson  <jamesr@chromium.org>
2620
2621         [chromium] Use WebCompositor interface in Platform API instead of CCProxy to query threaded compositor status
2622         https://bugs.webkit.org/show_bug.cgi?id=93398
2623
2624         Reviewed by Adam Barth.
2625
2626         Converts non-compositor code that cares about threaded compositing status over to query WebCompositor instead of
2627         CCProxy.
2628
2629         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2630         * platform/chromium/support/WebCompositorImpl.cpp:
2631         (WebKit):
2632         (WebKit::WebCompositor::threadingEnabled):
2633         (WebKit::WebCompositor::onCompositorThread):
2634         (WebKit::WebCompositorImpl::threadingEnabled):
2635         * platform/chromium/support/WebCompositorImpl.h:
2636         (WebCompositorImpl):
2637         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
2638         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
2639         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2640         (WebCore::DrawingBuffer::DrawingBuffer):
2641
2642 2012-08-07  Anders Carlsson  <andersca@apple.com>
2643
2644         Knob slot animation is flipped
2645         https://bugs.webkit.org/show_bug.cgi?id=93396
2646
2647         Reviewed by Beth Dakin.
2648
2649         When painting the scrollbar knob slot, use rectForPart: since it correctly takes the expansion transition state into account.
2650
2651         * platform/mac/ScrollbarThemeMac.mm:
2652         (WebCore::scrollbarPainterPaint):
2653
2654 2012-08-07  Adrienne Walker  <enne@google.com>
2655
2656         50% fixed position coverage slow scroll heuristic is incorrect when invalidations aren't clipped
2657         https://bugs.webkit.org/show_bug.cgi?id=92011
2658
2659         Reviewed by Simon Fraser.
2660
2661         The heuristic in scrollContentsFastPath to slow scroll by invalidating
2662         the entire frame if fixed position elements cover 50% of the frame
2663         takes away the ability of ports to make their own decisions about how
2664         to best handle invalidations. Therefore, remove this heuristic.
2665
2666         * page/FrameView.cpp:
2667         (WebCore::FrameView::scrollContentsFastPath):
2668
2669 2012-08-07  Konrad Piascik  <kpiascik@rim.com>
2670
2671         [BlackBerry] Change how devicePixelRatio is set.
2672         https://bugs.webkit.org/show_bug.cgi?id=93385
2673
2674         Reviewed by Antonio Gomes.
2675
2676         Update the theme to adjust to a constant devicePixelRatio.
2677
2678         Not testable.
2679
2680         * platform/blackberry/RenderThemeBlackBerry.cpp:
2681         (WebCore::determineFullScreenMultiplier):
2682
2683 2012-08-07  James Robinson  <jamesr@chromium.org>
2684
2685         [chromium] Move WebCompositor interface into Platform API
2686         https://bugs.webkit.org/show_bug.cgi?id=93391
2687
2688         Reviewed by Adam Barth.
2689
2690         Moves the support files for WebCompositor into WebCore/platform/support/. CCThreadImpl is a helper class used
2691         only by WebCompositorImpl.
2692
2693         Refactor/renaming only, so no new tests.
2694
2695         * WebCore.gypi:
2696         * platform/chromium/support/CCThreadImpl.cpp: Renamed from Source/WebKit/chromium/src/CCThreadImpl.cpp.
2697         (WebKit):
2698         (GetThreadIDTask):
2699         (WebKit::GetThreadIDTask::GetThreadIDTask):
2700         (WebKit::GetThreadIDTask::~GetThreadIDTask):
2701         (WebKit::GetThreadIDTask::run):
2702         (CCThreadTaskAdapter):
2703         (WebKit::CCThreadTaskAdapter::CCThreadTaskAdapter):
2704         (WebKit::CCThreadTaskAdapter::~CCThreadTaskAdapter):
2705         (WebKit::CCThreadTaskAdapter::run):
2706         (WebKit::CCThreadImpl::create):
2707         (WebKit::CCThreadImpl::~CCThreadImpl):
2708         (WebKit::CCThreadImpl::postTask):
2709         (WebKit::CCThreadImpl::postDelayedTask):
2710         (WebKit::CCThreadImpl::threadID):
2711         (WebKit::CCThreadImpl::CCThreadImpl):
2712         * platform/chromium/support/CCThreadImpl.h: Renamed from Source/WebKit/chromium/src/CCThreadImpl.h.
2713         (WebKit):
2714         (CCThreadImpl):
2715         * platform/chromium/support/WebCompositorImpl.cpp: Renamed from Source/WebKit/chromium/src/WebCompositorImpl.cpp.
2716         (WebKit):
2717         (WebKit::WebCompositor::initialize):
2718         (WebKit::WebCompositor::shutdown):
2719         (WebKit::WebCompositor::setPerTilePaintingEnabled):
2720         (WebKit::WebCompositor::setPartialSwapEnabled):
2721         (WebKit::WebCompositor::setAcceleratedAnimationEnabled):
2722         (WebKit::WebCompositorImpl::initialize):
2723         (WebKit::WebCompositorImpl::initialized):
2724         (WebKit::WebCompositorImpl::shutdown):
2725         * platform/chromium/support/WebCompositorImpl.h: Renamed from Source/WebKit/chromium/src/WebCompositorImpl.h.
2726         (WebCore):
2727         (WebKit):
2728         (WebCompositorImpl):
2729
2730 2012-08-07  Abhishek Arya  <inferno@chromium.org>
2731
2732         Crash in ContainerNode::cloneChildNodes.
2733         https://bugs.webkit.org/show_bug.cgi?id=93378
2734
2735         Reviewed by Levi Weintraub.
2736
2737         Re-enabling the editing delete button controller in cloneChildNode was causing style changes,
2738         thereby causing load events to fire. The load event can blow our nodes from underneath. This causes
2739         crashes when we are nested inside cloneChildNodes. The patch just skips the delete button controller's
2740         container element from being cloned and removes the hacky enable/disable logic. 
2741
2742         Test: fast/dom/clone-node-load-event-crash.html
2743
2744         * dom/ContainerNode.cpp:
2745         (WebCore::ContainerNode::cloneChildNodes):
2746
2747 2012-08-07  No'am Rosenthal  <noam.rosenthal@nokia.com>
2748
2749         GraphicsLayerAnimation shouldn't use HashMap<String>
2750         https://bugs.webkit.org/show_bug.cgi?id=93284
2751
2752         Reviewed by Kenneth Rohde Christiansen.
2753
2754         Use a vector containing all the animations instead of a map of String to Vector.
2755         The HashMap contains very few elements, which makes it inefficient relatively to a vector.
2756         This has been shown to be a bottleneck in valgrind.
2757
2758         Covered by existing animation tests.
2759
2760         * platform/graphics/GraphicsLayerAnimation.cpp:
2761         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
2762         (WebCore::GraphicsLayerAnimations::hasActiveAnimationsOfType):
2763         (WebCore::GraphicsLayerAnimations::hasRunningAnimations):
2764         (WebCore::GraphicsLayerAnimations::add):
2765         (WebCore::GraphicsLayerAnimations::pause):
2766         (WebCore::GraphicsLayerAnimations::remove):
2767         (WebCore::GraphicsLayerAnimations::apply):
2768         * platform/graphics/GraphicsLayerAnimation.h:
2769         (GraphicsLayerAnimation):
2770         (WebCore::GraphicsLayerAnimation::name):
2771         (GraphicsLayerAnimations):
2772         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2773         (WebCore::GraphicsLayerTextureMapper::addAnimation):
2774
2775 2012-08-07  Marcelo Lira  <marcelo.lira@openbossa.org>
2776
2777         [Qt] Add support for the Gamepad API
2778         https://bugs.webkit.org/show_bug.cgi?id=90637
2779
2780         Reviewed by Alexis Menard.
2781
2782         Adds support for Gamepad API on the Qt port.
2783
2784         The implementation of this class relies on the Linux
2785         kernel joystick API.
2786
2787         Gamepad devices are recognized through the GamepadsQt
2788         class, which uses the udev library to watch for connection,
2789         disconnection and other gamepad related events.
2790
2791         Tests for this feature already exist.
2792
2793         * DerivedSources.pri:
2794         * Target.pri:
2795         * WebCore.pri:
2796         * platform/qt/GamepadsQt.cpp: Added.
2797         (WebCore):
2798         (GamepadDeviceLinuxQt):
2799         (WebCore::GamepadDeviceLinuxQt::create):
2800         (WebCore::GamepadDeviceLinuxQt::GamepadDeviceLinuxQt):
2801         (WebCore::GamepadDeviceLinuxQt::~GamepadDeviceLinuxQt):
2802         (WebCore::GamepadDeviceLinuxQt::readCallback):
2803         (GamepadsQt):
2804         (WebCore::GamepadsQt::GamepadsQt):
2805         (WebCore::GamepadsQt::~GamepadsQt):
2806         (WebCore::GamepadsQt::isGamepadDevice):
2807         (WebCore::GamepadsQt::onGamePadChange):
2808         (WebCore::GamepadsQt::registerDevice):
2809         (WebCore::GamepadsQt::unregisterDevice):
2810         (WebCore::GamepadsQt::updateGamepadList):
2811         (WebCore::sampleGamepads):
2812
2813 2012-08-07  Mike Reed  <reed@google.com>
2814
2815         reimplement fastMod w/o (soon to be) private skia macros
2816         https://bugs.webkit.org/show_bug.cgi?id=93370
2817
2818         Reviewed by Adrienne Walker.
2819
2820         fastMod() reimplemented (same functionality) to stop using soon-to-be private macros in
2821         SkMath.h. The new version is functionally identical.
2822
2823         No new tests -- existing layouttests exercise GraphicsContext::strokeArc(), the only caller
2824
2825         * platform/graphics/skia/GraphicsContextSkia.cpp:
2826
2827 2012-08-07  Brian Anderson  <brianderson@chromium.org>
2828
2829         Add CCDelayBasedTimeSource::setTimebaseAndInterval
2830         https://bugs.webkit.org/show_bug.cgi?id=92825
2831
2832         Reviewed by James Robinson.
2833
2834         Allows CCDelayBaseTimeSource to have it's timebase and interval updated
2835         on the fly.  Accounts for double ticking due to jitter or resetting the
2836         timer multiple times quickly.
2837
2838         CCDelayBasedTimeSourceTest updated with two tests for proper handling
2839         of jittery timebase/interval source and immediate handling of
2840         significant timebase/interval changes.
2841
2842         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
2843         (WebCore::CCDelayBasedTimeSource::CCDelayBasedTimeSource):
2844         (WebCore::CCDelayBasedTimeSource::nextTickTime):
2845         (WebCore):
2846         (WebCore::CCDelayBasedTimeSource::onTimerFired):
2847         (WebCore::CCDelayBasedTimeSource::setTimebaseAndInterval):
2848         (WebCore::CCDelayBasedTimeSource::postNextTickTask):
2849         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
2850
2851 2012-07-23  Alexandru Chiculita  <achicu@adobe.com>
2852
2853         [CSS Shaders] Reuse precompiled shaders across elements
2854         https://bugs.webkit.org/show_bug.cgi?id=88427
2855
2856         Reviewed by Dean Jackson.
2857
2858         Added CustomFilterProgramInfo as a link between the CustomFilterProgram and the CustomFilterCompiledProgram.
2859         CustomFilterGlobalContext now acts as a cache for the compiled shaders. Note that only the shaders displayed on the page
2860         are cached, making it useful in animations or when more elements share the same shader filter.
2861
2862         For CSS Shaders we need two files, vertex and fragment shaders, so that's why we have a CustomFilterProgram. 
2863         CustomFilterProgram is the platform object, so StyleCustomFilterProgram implements it and is referenced from the RenderStyle.
2864
2865         StyleCustomFilterProgram is also the one that actually keeps references to the CachedShaders and has all the loading logic.
2866         The only problem is that there might be multiple StyleCustomFilterProgram with the same set of CachedShaders.
2867         That's why in this patch I've added CustomFilterProgramInfo as a simple class to be used as a key in a hash map.
2868
2869         For now CustomFilterProgramInfo should act similar to a pair<String, String>. There's only one exception: one of the strings
2870         is allowed to be null. A null string is the placeholder for the default shader.
2871
2872         Note that alpha compositing and blending will be added to the CustomFilterProgramInfo after the mix() 
2873         function parsing will land in https://bugs.webkit.org/show_bug.cgi?id=90101 .
2874
2875         Test: css3/filters/custom/custom-filter-shader-reuse.html
2876
2877         * CMakeLists.txt:
2878         * GNUmakefile.list.am:
2879         * WebCore.gypi:
2880         * WebCore.vcproj/WebCore.vcproj:
2881         * WebCore.xcodeproj/project.pbxproj:
2882         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
2883         (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
2884         (WebCore::CustomFilterCompiledProgram::getDefaultShaderString): Returns the default shader based on the type.
2885         (WebCore):
2886         (WebCore::CustomFilterCompiledProgram::compileShader): Added check for isNull and used the default shader in that case.
2887         (WebCore::CustomFilterCompiledProgram::~CustomFilterCompiledProgram): Added call to CustomFilterGlobalContext::removeCompiledProgram.
2888         * platform/graphics/filters/CustomFilterCompiledProgram.h:
2889         (WebCore::CustomFilterCompiledProgram::detachFromGlobalContext): Called from ~CustomFilterGlobalContext, so that it doesn't call into a deleted object later when ~CustomFilterCompiledProgram is called. It should only happen when CustomFilterGlobalContext dies before the 
2890         CustomFilterCompiledPrograms that it caches.
2891         (WebCore):
2892         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
2893         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
2894         (WebCore::CustomFilterGlobalContext::getCompiledProgram): Gets or creates a compiled shader for a specific CustomFilterProgramInfo.
2895         (WebCore):
2896         (WebCore::CustomFilterGlobalContext::removeCompiledProgram): Called by ~CustomFilterCompiledProgram.
2897         * platform/graphics/filters/CustomFilterGlobalContext.h:
2898         (WebCore):
2899         (CustomFilterGlobalContext):
2900         * platform/graphics/filters/CustomFilterProgram.cpp:
2901         (WebCore::CustomFilterProgram::programInfo):
2902         * platform/graphics/filters/CustomFilterProgram.h:
2903         (WebCore):
2904         * platform/graphics/filters/CustomFilterProgramInfo.cpp: Added.
2905         (WebCore):
2906         (WebCore::hashPossiblyNullString): We need to allow null strings in the hash, so this is a helper to check for isNull 
2907         before asking for the hash.
2908         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
2909         (WebCore::CustomFilterProgramInfo::isEmptyValue):
2910         (WebCore::CustomFilterProgramInfo::isHashTableDeletedValue):
2911         (WebCore::CustomFilterProgramInfo::hash):
2912         (WebCore::CustomFilterProgramInfo::operator==):
2913         * platform/graphics/filters/CustomFilterProgramInfo.h: Added.
2914         (WebCore):
2915         (CustomFilterProgramInfo):
2916         (WebCore::CustomFilterProgramInfo::vertexShaderString):
2917         (WebCore::CustomFilterProgramInfo::fragmentShaderString):
2918         (WebCore::CustomFilterProgramInfoHash::hash):
2919         (WebCore::CustomFilterProgramInfoHash::equal):
2920         (CustomFilterProgramInfoHash): Structures needed to make this a key in the hash map.
2921         (CustomFilterProgramInfoHashTraits):
2922         (WebCore::CustomFilterProgramInfoHashTraits::isEmptyValue): I've used the deleted strings value to mark a deleted
2923         CustomFilterProgramInfo object. Those are not safe to compare to deleted, so there's a need to set safeToCompareToEmptyOrDeleted to false, meaning that there's a need to manually check for empty values.
2924         (WTF):
2925         * platform/graphics/filters/FECustomFilter.cpp:
2926         (WebCore::FECustomFilter::initializeContext): Moved to using the cached shader instead.
2927
2928 2012-08-07  Florin Malita  <fmalita@chromium.org>
2929
2930         [Chromium] Unreviewed build fix after r124879.
2931
2932         * WebCore.gypi: Remove deleted file references.
2933
2934 2012-08-07  George Staikos  <staikos@webkit.org>
2935
2936         [BlackBerry] We should fail the HTTP auth silently for non-main loads
2937         in the non-viewer process.
2938         https://bugs.webkit.org/show_bug.cgi?id=93230
2939
2940         Reviewed by Rob Buis.
2941
2942         No way to test this in WebKit.
2943
2944         * platform/network/blackberry/NetworkJob.cpp: Add early return.
2945         (WebCore::NetworkJob::sendRequestWithCredentials):
2946
2947 2012-08-07  Alexander Pavlov  <apavlov@chromium.org>
2948
2949         Web Inspector: Typing backslash in Console traverses the panel history when using German keyboard layout
2950         https://bugs.webkit.org/show_bug.cgi?id=93357
2951
2952         Reviewed by Vsevolod Vlasov.
2953
2954         For some reason, in the German keyboard layout keyIdentifier for '\' is the same as that for '['
2955         in the ordinary English-US layout.
2956         Remove a too-safe-side check and never switch panels on key combinations that result in "keypress" events.
2957
2958         * inspector/front-end/InspectorView.js:
2959         (WebInspector.InspectorView):
2960         (WebInspector.InspectorView.prototype._keyPress):
2961
2962 2012-08-07  Robin Cao  <robin.cao@torchmobile.com.cn>
2963
2964         [BlackBerry] GL scissor test is accidentally turned off
2965         https://bugs.webkit.org/show_bug.cgi?id=93360
2966         PR #161020
2967
2968         Reviewed by Antonio Gomes.
2969
2970         The GL scissor test is accidentally turned off inside drawTextures().
2971         This is wrong and should be removed.
2972
2973         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2974         (WebCore::LayerCompositingThread::drawTextures):
2975
2976 2012-08-07  Abhishek Arya  <inferno@chromium.org>
2977
2978         Crash in InlineFlowBox::deleteLine.
2979         https://bugs.webkit.org/show_bug.cgi?id=88795
2980
2981         Reviewed by Tony Chang.
2982
2983         When we move the fullscreen object from its parent to RenderFullScreen, we forgot to clear the
2984         line box tree underneath the object's containing block and mark it for layout. Before the patch,
2985         the containing block never got laid out and maintained references to removed line boxes (since the
2986         object moved under RenderFullScreen did get laid out and its lineboxes replaced with new ones).
2987
2988         Test: fullscreen/full-screen-line-boxes-crash.html
2989
2990         * rendering/RenderFullScreen.cpp:
2991         (RenderFullScreen::wrapRenderer):
2992
2993 2012-08-07  Vsevolod Vlasov  <vsevik@chromium.org>
2994
2995         Web Inspector: Do not disable network tracking while profiling cpu.
2996         https://bugs.webkit.org/show_bug.cgi?id=93359
2997
2998         Reviewed by Yury Semikhatsky.
2999
3000         Removed network tracking enabling/disabling machinery.
3001
3002         * inspector/front-end/CPUProfileView.js:
3003         (WebInspector.CPUProfileType.prototype.buttonClicked):
3004         * inspector/front-end/NetworkManager.js:
3005         (WebInspector.NetworkManager.get this):
3006         (WebInspector.NetworkManager.get NetworkAgent):
3007         (WebInspector.NetworkManager):
3008         * inspector/front-end/ResourceTreeModel.js:
3009         (WebInspector.ResourceTreeModel):
3010
3011 2012-08-07  Alexei Filippov  <alexeif@chromium.org>
3012
3013         Web Inspector: make the MemoryClassInfo class a not-template
3014         https://bugs.webkit.org/show_bug.cgi?id=93265
3015
3016         Reviewed by Yury Semikhatsky.
3017
3018         * bindings/js/ScriptWrappable.h:
3019         (WebCore::ScriptWrappable::reportMemoryUsage):
3020         * bindings/v8/DOMDataStore.cpp:
3021         (WebCore::DOMDataStore::reportMemoryUsage):
3022         * bindings/v8/IntrusiveDOMWrapperMap.h:
3023         (WebCore::ChunkedTable::reportMemoryUsage):
3024         * bindings/v8/ScriptWrappable.h:
3025         (WebCore::ScriptWrappable::reportMemoryUsage):
3026         * bindings/v8/V8Binding.cpp:
3027         (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
3028         (WebCore::StringCache::reportMemoryUsage):
3029         * bindings/v8/V8DOMMap.h:
3030         * css/CSSAspectRatioValue.cpp:
3031         (WebCore::CSSAspectRatioValue::reportDescendantMemoryUsage):
3032         * css/CSSBorderImageSliceValue.cpp:
3033         (WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
3034         * css/CSSCalculationValue.cpp:
3035         (WebCore::CSSCalcValue::reportDescendantMemoryUsage):
3036         * css/CSSCanvasValue.cpp:
3037         (WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
3038         * css/CSSCharsetRule.cpp:
3039         (WebCore::CSSCharsetRule::reportDescendantMemoryUsage):
3040         * css/CSSComputedStyleDeclaration.cpp:
3041         (WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
3042         * css/CSSCrossfadeValue.cpp:
3043         (WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
3044         * css/CSSCursorImageValue.cpp:
3045         (WebCore::CSSCursorImageValue::reportDescendantMemoryUsage):
3046         * css/CSSFontFaceRule.cpp:
3047         (WebCore::CSSFontFaceRule::reportDescendantMemoryUsage):
3048         * css/CSSFontFaceSrcValue.cpp:
3049         (WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
3050         * css/CSSFunctionValue.cpp:
3051         (WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
3052         * css/CSSGradientValue.cpp:
3053         (WebCore::CSSGradientColorStop::reportMemoryUsage):
3054         (WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
3055         (WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
3056         (WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
3057         * css/CSSImageGeneratorValue.cpp:
3058         (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
3059         * css/CSSImageSetValue.cpp:
3060         (WebCore::CSSImageSetValue::reportDescendantMemoryUsage):
3061         (WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
3062         * css/CSSImageValue.cpp:
3063         (WebCore::CSSImageValue::reportDescendantMemoryUsage):
3064         * css/CSSImportRule.cpp:
3065         (WebCore::CSSImportRule::reportDescendantMemoryUsage):
3066         * css/CSSInheritedValue.cpp:
3067         (WebCore::CSSInheritedValue::reportDescendantMemoryUsage):
3068         * css/CSSInitialValue.cpp:
3069         (WebCore::CSSInitialValue::reportDescendantMemoryUsage):
3070         * css/CSSLineBoxContainValue.cpp:
3071         (WebCore::CSSLineBoxContainValue::reportDescendantMemoryUsage):
3072         * css/CSSMediaRule.cpp:
3073         (WebCore::CSSMediaRule::reportDescendantMemoryUsage):
3074         * css/CSSPageRule.cpp:
3075         (WebCore::CSSPageRule::reportDescendantMemoryUsage):
3076         * css/CSSPrimitiveValue.cpp:
3077         (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
3078         * css/CSSProperty.cpp:
3079         (WebCore::CSSProperty::reportMemoryUsage):
3080         * css/CSSReflectValue.cpp:
3081         (WebCore::CSSReflectValue::reportDescendantMemoryUsage):
3082         * css/CSSRule.cpp:
3083         (WebCore::CSSRule::reportBaseClassMemoryUsage):
3084         * css/CSSRuleList.cpp:
3085         (WebCore::StaticCSSRuleList::reportMemoryUsage):
3086         * css/CSSRuleList.h:
3087         * css/CSSSelectorList.cpp:
3088         (WebCore::CSSSelectorList::reportMemoryUsage):
3089         * css/CSSStyleRule.cpp:
3090         (WebCore::CSSStyleRule::reportDescendantMemoryUsage):
3091         * css/CSSStyleSheet.cpp:
3092         (WebCore::CSSStyleSheet::reportMemoryUsage):
3093         * css/CSSTimingFunctionValue.cpp:
3094         (WebCore::CSSLinearTimingFunctionValue::reportDescendantMemoryUsage):
3095         (WebCore::CSSCubicBezierTimingFunctionValue::reportDescendantMemoryUsage):
3096         (WebCore::CSSStepsTimingFunctionValue::reportDescendantMemoryUsage):
3097         * css/CSSUnicodeRangeValue.cpp:
3098         (WebCore::CSSUnicodeRangeValue::reportDescendantMemoryUsage):
3099         * css/CSSUnknownRule.h:
3100         (WebCore::CSSUnknownRule::reportDescendantMemoryUsage):
3101         * css/CSSValue.cpp:
3102         (WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
3103         * css/CSSValueList.cpp:
3104         (WebCore::CSSValueList::reportDescendantMemoryUsage):
3105         * css/CSSVariableValue.h:
3106         (WebCore::CSSVariableValue::reportDescendantMemoryUsage):
3107         * css/FontFeatureValue.cpp:
3108         (WebCore::FontFeatureValue::reportDescendantMemoryUsage):
3109         * css/FontValue.cpp:
3110         (WebCore::FontValue::reportDescendantMemoryUsage):
3111         * css/MediaList.cpp:
3112         (WebCore::MediaQuerySet::reportMemoryUsage):
3113         (WebCore::MediaList::reportMemoryUsage):
3114         * css/MediaQuery.cpp:
3115         (WebCore::MediaQuery::reportMemoryUsage):
3116         * css/MediaQueryExp.cpp:
3117         (WebCore::MediaQueryExp::reportMemoryUsage):
3118         * css/PropertySetCSSStyleDeclaration.cpp:
3119         (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
3120         (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
3121         (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
3122         * css/ShadowValue.cpp:
3123         (WebCore::ShadowValue::reportDescendantMemoryUsage):
3124         * css/StylePropertySet.cpp:
3125         (WebCore::StylePropertySet::reportMemoryUsage):
3126         * css/StyleResolver.cpp:
3127         (WebCore::StyleResolver::Features::reportMemoryUsage):
3128         (WebCore::StyleResolver::collectMatchingRulesForList):
3129         * css/StyleRule.cpp:
3130         (WebCore::StyleRuleBase::reportMemoryUsage):
3131         (WebCore::StyleRule::reportDescendantMemoryUsage):
3132         (WebCore::StyleRulePage::reportDescendantMemoryUsage):
3133         (WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
3134         (WebCore::StyleRuleBlock::reportDescendantMemoryUsage):
3135         (WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
3136         (WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
3137         * css/StyleRuleImport.cpp:
3138         (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
3139         * css/StyleSheetContents.cpp:
3140         (WebCore::StyleSheetContents::reportMemoryUsage):
3141         * css/WebKitCSSFilterValue.cpp:
3142         (WebCore::WebKitCSSFilterValue::reportDescendantMemoryUsage):
3143         * css/WebKitCSSKeyframeRule.cpp:
3144         (WebCore::StyleKeyframe::reportMemoryUsage):
3145         (WebCore::WebKitCSSKeyframeRule::reportDescendantMemoryUsage):
3146         * css/WebKitCSSKeyframesRule.cpp:
3147         (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
3148         (WebCore::WebKitCSSKeyframesRule::reportDescendantMemoryUsage):
3149         * css/WebKitCSSMixFunctionValue.cpp:
3150         (WebCore::WebKitCSSMixFunctionValue::reportDescendantMemoryUsage):
3151         * css/WebKitCSSRegionRule.cpp:
3152         (WebCore::WebKitCSSRegionRule::reportDescendantMemoryUsage):
3153         * css/WebKitCSSSVGDocumentValue.cpp:
3154         (WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
3155         * css/WebKitCSSShaderValue.cpp:
3156         (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
3157         * css/WebKitCSSTransformValue.cpp:
3158         (WebCore::WebKitCSSTransformValue::reportDescendantMemoryUsage):
3159         * dom/CharacterData.cpp:
3160         (WebCore::CharacterData::reportMemoryUsage):
3161         * dom/ContainerNode.h:
3162         (WebCore::ContainerNode::reportMemoryUsage):
3163         * dom/Document.cpp:
3164         (WebCore::Document::reportMemoryUsage):
3165         * dom/Element.h:
3166         (WebCore::Element::reportMemoryUsage):
3167         * dom/ElementAttributeData.cpp:
3168         (WebCore::ElementAttributeData::reportMemoryUsage):
3169         * dom/MemoryInstrumentation.h:
3170         (MemoryInstrumentation):
3171         (MemoryObjectInfo):
3172         (WebCore::MemoryObjectInfo::reportObjectInfo):
3173         (MemoryClassInfo):
3174         (WebCore::MemoryClassInfo::MemoryClassInfo):
3175         * dom/Node.cpp:
3176         (WebCore::Node::reportMemoryUsage):
3177         * dom/QualifiedName.h:
3178         (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
3179         (WebCore::QualifiedName::reportMemoryUsage):
3180         * loader/DocumentLoader.cpp:
3181         (WebCore::DocumentLoader::reportMemoryUsage):
3182         * loader/FrameLoader.cpp:
3183         (WebCore::FrameLoader::reportMemoryUsage):
3184         * loader/ResourceLoader.cpp:
3185         (WebCore::ResourceLoader::reportMemoryUsage):
3186         * loader/cache/CachedCSSStyleSheet.cpp:
3187         (WebCore::CachedCSSStyleSheet::reportMemoryUsage):
3188         * loader/cache/CachedFont.cpp:
3189         (WebCore::CachedFont::reportMemoryUsage):
3190         * loader/cache/CachedImage.cpp:
3191         (WebCore::CachedImage::reportMemoryUsage):
3192         * loader/cache/CachedRawResource.cpp:
3193         (WebCore::CachedRawResource::reportMemoryUsage):
3194         * loader/cache/CachedResource.cpp:
3195         (WebCore::CachedResource::reportMemoryUsage):
3196         * loader/cache/CachedResourceHandle.cpp:
3197         (WebCore::CachedResourceHandleBase::reportMemoryUsage):
3198         * loader/cache/CachedResourceLoader.cpp:
3199         (WebCore::CachedResourceLoader::reportMemoryUsage):
3200         * loader/cache/CachedSVGDocument.cpp:
3201         (WebCore::CachedSVGDocument::reportMemoryUsage):
3202         * loader/cache/CachedScript.cpp:
3203         (WebCore::CachedScript::reportMemoryUsage):
3204         * loader/cache/CachedShader.cpp:
3205         (WebCore::CachedShader::reportMemoryUsage):
3206         * loader/cache/CachedXSLStyleSheet.cpp:
3207         (WebCore::CachedXSLStyleSheet::reportMemoryUsage):
3208         * loader/cache/MemoryCache.cpp:
3209         (WebCore::MemoryCache::reportMemoryUsage):
3210         * page/Frame.cpp:
3211         (WebCore::Frame::reportMemoryUsage):
3212         * platform/SharedBuffer.cpp:
3213         (WebCore::SharedBuffer::reportMemoryUsage):
3214         * platform/TreeShared.h:
3215         (WebCore::TreeShared::reportMemoryUsage):
3216         * rendering/style/RenderStyle.cpp:
3217         (WebCore::RenderStyle::reportMemoryUsage):
3218         * rendering/style/StyleRareInheritedData.cpp:
3219         (WebCore::StyleRareInheritedData::reportMemoryUsage):
3220         * rendering/style/StyleRareNonInheritedData.cpp:
3221         (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
3222         * svg/SVGColor.cpp:
3223         (WebCore::SVGColor::reportDescendantMemoryUsage):
3224         * svg/SVGPaint.cpp:
3225         (WebCore::SVGPaint::reportDescendantMemoryUsage):
3226
3227 2012-08-02  Simon Hausmann  <simon.hausmann@nokia.com>
3228
3229         [Qt] Remove Qt 4 specific code paths
3230         https://bugs.webkit.org/show_bug.cgi?id=88161
3231
3232         Reviewed by Kenneth Rohde Christiansen.
3233
3234         * Target.pri:
3235         * WebCore.pri:
3236         * bridge/qt/qt_class.cpp:
3237         (JSC::Bindings::QtClass::fallbackObject):
3238         * bridge/qt/qt_instance.cpp:
3239         (JSC::Bindings::QtInstance::getPropertyNames):
3240         (JSC::Bindings::QtInstance::stringValue):
3241         (JSC::Bindings::QtField::setValueToInstance):
3242         * bridge/qt/qt_runtime.h:
3243         (QtConnectionObject):
3244         * bridge/qt/qt_runtime_qt4.cpp: Removed.
3245         * editing/qt/SmartReplaceQt.cpp: Removed.
3246         * page/qt/EventHandlerQt.cpp:
3247         (WebCore::EventHandler::tabsToAllFormControls):
3248         * platform/graphics/GraphicsContext3D.h:
3249         * platform/graphics/OpenGLShims.cpp:
3250         (WebCore::getProcAddress):
3251         * platform/graphics/OpenGLShims.h:
3252         * platform/graphics/gstreamer/PlatformVideoWindowPrivate.h:
3253         * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
3254         (FullScreenVideoWindow::FullScreenVideoWindow):
3255         (FullScreenVideoWindow::keyPressEvent):
3256         (FullScreenVideoWindow::event):
3257         (FullScreenVideoWindow::showFullScreen):
3258         (PlatformVideoWindow::PlatformVideoWindow):
3259         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3260         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
3261         (WebCore::GraphicsContext3DPrivate::makeCurrentIfNeeded):
3262         * platform/graphics/qt/GraphicsContextQt.cpp:
3263         (WebCore::GraphicsContext::releaseWindowsContext):
3264         * platform/graphics/qt/ImageQt.cpp:
3265         (WebCore::BitmapImage::create):
3266         * platform/graphics/qt/SimpleFontDataQt.cpp:
3267         (WebCore::SimpleFontData::platformInit):
3268         * platform/graphics/texmap/TextureMapper.h:
3269         * platform/graphics/texmap/TextureMapperGL.cpp:
3270         (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
3271         * platform/qt/DeviceMotionProviderQt.h:
3272         * platform/qt/DeviceOrientationProviderQt.h:
3273         * platform/qt/KURLQt.cpp:
3274         (WebCore::KURL::operator QUrl):
3275         * platform/qt/PlatformScreenQt.cpp:
3276         (WebCore::screenDepth):
3277         (WebCore::screenDepthPerComponent):
3278         (WebCore::screenIsMonochrome):
3279         (WebCore::screenRect):
3280         (WebCore::screenAvailableRect):
3281         * platform/qt/QWebPageClient.h:
3282         (QWebPageClient):
3283         * platform/qt/RenderThemeQt.cpp:
3284         * platform/text/qt/TextBreakIteratorQt.cpp: Removed.
3285         * plugins/qt/PluginContainerQt.cpp: Removed.
3286         * plugins/qt/PluginContainerQt.h: Removed.
3287         * plugins/qt/PluginPackageQt.cpp:
3288         (WebCore::PluginPackage::isPluginBlacklisted):
3289         * plugins/qt/PluginViewQt.cpp:
3290         (WebCore::PluginView::setFocus):
3291         (WebCore::PluginView::paintUsingXPixmap):
3292         (WebCore::setSharedXEventFields):
3293         (WebCore::PluginView::setNPWindowIfNeeded):
3294         (WebCore::PluginView::setParentVisible):
3295         (WebCore::PluginView::platformGetValue):
3296         (WebCore::PluginView::invalidateRect):
3297         (WebCore::getVisualAndColormap):
3298         (WebCore::PluginView::platformStart):
3299         * plugins/win/PluginViewWin.cpp:
3300         (windowHandleForPageClient):
3301
3302 2012-08-06  Andrey Kosyakov  <caseq@chromium.org>
3303
3304         Web Inspector: implement reusable progress bar
3305         https://bugs.webkit.org/show_bug.cgi?id=93267
3306
3307         - Generic progress bar implementation to be used
3308             by various long-running operations in inspector.
3309
3310         Test: inspector/progress-bar.html
3311
3312         Reviewed by Pavel Feldman.
3313
3314         * WebCore.gypi: Added ProgressBar.js
3315         * WebCore.vcproj/WebCore.vcproj: ditto.
3316         * inspector/compile-front-end.py: ditto.
3317         * inspector/front-end/AdvancedSearchController.js: renamed style for stop button.
3318         (WebInspector.SearchView):
3319         * inspector/front-end/ProgressBar.js: Added.
3320         (WebInspector.Progress): Interface for both ProgressIndicator and SubProgress.
3321         (WebInspector.Progress.prototype.setTotalWork):
3322         (WebInspector.Progress.prototype.setTitle):
3323         (WebInspector.Progress.prototype.setWorked):
3324         (WebInspector.Progress.prototype.done):
3325         (WebInspector.Progress.prototype.isCanceled):
3326         (WebInspector.ProgressIndicator): A UI control that implements Progress.
3327         (WebInspector.ProgressIndicator.prototype.show):
3328         (WebInspector.ProgressIndicator.prototype.hide):
3329         (WebInspector.ProgressIndicator.prototype.done):
3330         (WebInspector.ProgressIndicator.prototype._cancel):
3331         (WebInspector.ProgressIndicator.prototype.isCanceled):
3332         (WebInspector.ProgressIndicator.prototype.setTitle):
3333         (WebInspector.ProgressIndicator.prototype.setTotalWork):
3334         (WebInspector.ProgressIndicator.prototype.setWorked):
3335         (WebInspector.CompositeProgress): A progress bar that is composed of several SubProgress bars and uses a Progress to display total progress of all tasks.
3336         (WebInspector.CompositeProgress.prototype._childDone):
3337         (WebInspector.CompositeProgress.prototype.createSubProgress):
3338         (WebInspector.CompositeProgress.prototype._update):
3339         (WebInspector.SubProgress): A child of CompositeProgress, implements Progress interface.
3340         (WebInspector.SubProgress.prototype.isCanceled):
3341         (WebInspector.SubProgress.prototype.setTitle):
3342         (WebInspector.SubProgress.prototype.done):
3343         (WebInspector.SubProgress.prototype.setTotalWork):
3344         (WebInspector.SubProgress.prototype.setWorked):
3345         * inspector/front-end/WebKit.qrc: Added ProgressBar.js
3346         * inspector/front-end/inspector.css:
3347         (.progress-bar-stop-button-item):
3348         (.progress-bar-stop-button .glyph):
3349         (.progress-bar-container):
3350         (.progress-bar-container span):
3351         (.progress-bar-container progress):
3352         (.progress-bar-container button.status-bar-item):
3353         * inspector/front-end/inspector.html:
3354
3355 2012-08-07  Peter Rybin  <peter.rybin@gmail.com>
3356
3357         Web Inspector: display function scope in UI
3358         https://bugs.webkit.org/show_bug.cgi?id=90631
3359
3360         Reviewed by Yury Semikhatsky.
3361
3362         Two new tree element types added: function scope group node and scope node.
3363         Scope node is only used to represent closure and catch scopes. Scopes that
3364         have a real object beneath are represented as a property node.
3365         A method that reads properties from RemoteObject and populate tree element
3366         is factored out from RemoteObjectTreeElement for reuse.
3367
3368         * inspector/front-end/ObjectPropertiesSection.js:
3369         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
3370         (WebInspector.ObjectPropertyTreeElement.Populate.callback):
3371         (WebInspector.ObjectPropertyTreeElement.Populate):
3372         (WebInspector.FunctionScopeMainTreeElement):
3373         (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate.didGetDetails):
3374         (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
3375         (WebInspector.FunctionScopeMainTreeElement.prototype.onattach):
3376         (WebInspector.FunctionScopeMainTreeElement.prototype.update):
3377         (WebInspector.ScopeTreeElement):
3378         (WebInspector.ScopeTreeElement.prototype.onpopulate):
3379         (WebInspector.ScopeTreeElement.prototype.onattach):
3380         (WebInspector.ScopeTreeElement.prototype.update):
3381         * inspector/front-end/RemoteObject.js:
3382         (WebInspector.RemoteObjectProperty.fromScopeValue):
3383
3384
3385 2012-08-07  Vineet Chaudhary  <rgf748@motorola.com>
3386
3387         [V8] Remove custom toV8() calls for TypedArray.
3388         https://bugs.webkit.org/show_bug.cgi?id=93248
3389
3390         Reviewed by Kentaro Hara.
3391
3392         With the support of [TypedArray] we can remove the custom calls toV8().
3393         TypedArray spec : http://www.khronos.org/registry/typedarray/specs/latest/#7
3394
3395         Tests: TestTypedArray.idl
3396         Tests under below folders should pass as this does not cause any behavioral changes.
3397                fast/canvas/webgl
3398                compositing/webgl
3399
3400         * bindings/js/JSInt8ArrayCustom.cpp:
3401         * bindings/js/JSUint8ArrayCustom.cpp:
3402         * bindings/js/JSUint8ClampedArrayCustom.cpp:
3403         * bindings/scripts/CodeGeneratorV8.pm:
3404         (GenerateImplementation): Modified Generator code to generate bindings for toV8().
3405         (IsWrapperType):
3406         (GetTypeNameOfExternalTypedArray): Method to get view type of TypedArray.
3407         * bindings/scripts/test/V8/V8Float64Array.cpp: Tests results.
3408         (WebCore::toV8):
3409         * bindings/v8/custom/V8Float32ArrayCustom.cpp: Removed custom call toV8().
3410         * bindings/v8/custom/V8Float64ArrayCustom.cpp: Ditto.
3411         * bindings/v8/custom/V8Int16ArrayCustom.cpp: Ditto.
3412         * bindings/v8/custom/V8Int32ArrayCustom.cpp: Ditto.
3413         * bindings/v8/custom/V8Int8ArrayCustom.cpp: Ditto.
3414         * bindings/v8/custom/V8Uint16ArrayCustom.cpp: Ditto.
3415         * bindings/v8/custom/V8Uint32ArrayCustom.cpp: Ditto.
3416         * bindings/v8/custom/V8Uint8ArrayCustom.cpp: Ditto.
3417         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp: Ditto.
3418         * html/canvas/Int8Array.idl: Using TypedArray.
3419         * html/canvas/Uint8Array.idl: Ditto.
3420         * html/canvas/Uint8ClampedArray.idl: Ditto.
3421
3422 2012-08-07  Pavel Feldman  <pfeldman@chromium.org>
3423
3424         Web Inspector: [regression r121673] restore link between the command and the result.
3425         https://bugs.webkit.org/show_bug.cgi?id=93280
3426
3427         Reviewed by Vsevolod Vlasov.
3428
3429         Passing lost parameter along.
3430
3431         Test: inspector/console/console-originating-command.html
3432
3433         * inspector/front-end/ConsoleView.js:
3434         (WebInspector.ConsoleView.prototype.runScript.runCallback):
3435         (WebInspector.ConsoleView.prototype.runScript):
3436         (WebInspector.ConsoleView.prototype._printResult):
3437
3438 2012-08-07  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3439
3440         CUSTOM_SCHEME_HANDLER flag should depend on REGISTER_PROTOCOL_HANDLER
3441         https://bugs.webkit.org/show_bug.cgi?id=93081
3442
3443         Reviewed by Adam Barth.
3444
3445         CUSTOM_SCHEME_HANDLER #if guards are enclosed in the REGISTER_PROTOCOL_HANDLER guards.
3446         The whole NavigatorRegisterProtocolHandler interface is conditional on REGISTER_PROTOCOL_HANDLER
3447         CUSTOM_SCHEME_HANDLER-specific methods only are conditional on CUSTOM_SCHEME_HANDLER.
3448
3449         No new tests. No new functionality is added.
3450
3451         * Modules/protocolhandler/NavigatorRegisterProtocolHandler.cpp:
3452         (WebCore::NavigatorRegisterProtocolHandler::registerProtocolHandler):
3453         * Modules/protocolhandler/NavigatorRegisterProtocolHandler.h:
3454         (NavigatorRegisterProtocolHandler):
3455         * Modules/protocolhandler/NavigatorRegisterProtocolHandler.idl:
3456         * Modules/protocolhandler/RegisterProtocolHandlerClient.h:
3457
3458 2012-08-07  Xingnan Wang  <xingnan.wang@intel.com>
3459
3460         IndexedDB: Size the Vector in encodeInt/encodeVarInt/encodeString
3461         https://bugs.webkit.org/show_bug.cgi?id=91813
3462
3463         Reviewed by Kentaro Hara.
3464
3465         To avoid memory re-allocation in Vector, init the capability or size of Vector in encodeIn