1 2012-08-08 Raymond Toy <rtoy@google.com>
3 Creating "basic waveform" Oscillator nodes is not efficient
4 https://bugs.webkit.org/show_bug.cgi?id=93194
6 Reviewed by Chris Rogers.
8 Cache the wavetables for the basic types so they don't have to be
11 Also fix a bug where oscillator type was always set to CUSTOM
12 instead of the specified oscillator type. Test added for this.
14 Test: webaudio/oscillator-basic.html
16 * Modules/webaudio/Oscillator.cpp:
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.
23 2012-08-08 Tom Sepez <tsepez@chromium.org>
25 Avoid ASSERT(m_workerContext->isSharedWorkerContext()) in WorkerScriptController::initScript()
26 https://bugs.webkit.org/show_bug.cgi?id=93521
28 Reviewed by Adam Barth.
30 Changes WorkerContext and its subclasses so that we do not call functions that rely upon subclass
31 virtual methods from the superclass constructor.
33 Test: http/tests/security/contentSecurityPolicy/worker-set-timeout-blocked.html
35 * workers/DedicatedWorkerContext.cpp:
37 (WebCore::DedicatedWorkerContext::create):
38 (WebCore::DedicatedWorkerContext::DedicatedWorkerContext):
39 * workers/DedicatedWorkerContext.h:
40 (DedicatedWorkerContext):
41 * workers/SharedWorkerContext.cpp:
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):
51 * workers/WorkerContext.h:
54 2012-08-08 Thiago Marcos P. Santos <thiago.santos@intel.com>
56 CanvasRenderContext2D::setFont() should ignore inherited properties and default keyword value
57 https://bugs.webkit.org/show_bug.cgi?id=93491
59 Reviewed by Kenneth Rohde Christiansen.
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.
68 (WebCore::CSSParser::parseFontFamily):
69 * html/canvas/CanvasRenderingContext2D.cpp:
70 (WebCore::CanvasRenderingContext2D::setFont):
72 2012-08-08 James Robinson <jamesr@chromium.org>
74 [chromium] Add missing OVERRIDE and virtual annotations in compositor
75 https://bugs.webkit.org/show_bug.cgi?id=93438
77 Reviewed by Adrienne Walker.
79 As the title suggests.
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):
93 2012-08-08 Eric Penner <epenner@google.com>
95 [chromium] Refactor tile flags.
96 https://bugs.webkit.org/show_bug.cgi?id=93059
98 Reviewed by Adrienne Walker.
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.
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.
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
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'.
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.
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.
130 Tested by many existing tests.
132 * platform/graphics/chromium/TiledLayerChromium.cpp:
134 (WebCore::UpdatableTile::resetUpdateState):
135 (WebCore::UpdatableTile::markForUpdate):
136 (WebCore::UpdatableTile::UpdatableTile):
137 (WebCore::TiledLayerChromium::TiledLayerChromium):
138 (WebCore::TiledLayerChromium::pushPropertiesTo):
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):
151 2012-08-08 Beth Dakin <bdakin@apple.com>
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
157 <rdar://problem/12006463>
159 Reviewed by Simon Fraser.
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):
171 2012-08-08 Simon Fraser <simon.fraser@apple.com>
173 Avoid backing store on layers created for CoreAnimation plugins
174 https://bugs.webkit.org/show_bug.cgi?id=93526
175 <rdar://problem/12052828>
177 Reviewed by Dean Jackson.
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.
183 Test: compositing/plugins/no-backing-store.html
185 * rendering/RenderLayerBacking.cpp:
186 (WebCore::isCompositedPlugin):
187 (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
189 2012-08-08 Erik Arvidsson <arv@chromium.org>
191 DOM4: classList should be defined on Element and not on HTMLElement
192 https://bugs.webkit.org/show_bug.cgi?id=93015
194 Reviewed by Adam Barth.
196 DOM4 specs that Element should have the classList WebIDL attribute. This moves the
197 attribute to the correct IDL file.
199 Test: fast/dom/Element/class-list.html
202 * html/HTMLElement.idl:
204 2012-08-08 Beth Dakin <bdakin@apple.com>
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
209 <rdar://problem/11956802>
211 Reviewed by Anders Carlsson.
213 New function FrameView::paintContentsForSnapshot() has the option to
214 exclude selection from the snapshot.
219 Clear the selection from the RenderView when selection is to be excluded. Restore
220 all of this information via FrameSelection::updateAppearance() after calling
222 * page/FrameView.cpp:
223 (WebCore::FrameView::paintContentsForSnapshot):
227 2012-08-07 James Robinson <jamesr@chromium.org>
229 [chromium] Only use public Platform API in NonCompositedContentHost
230 https://bugs.webkit.org/show_bug.cgi?id=93423
232 Reviewed by Adrienne Walker.
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.
238 * platform/graphics/chromium/LayerChromium.cpp:
239 (WebCore::LayerChromium::LayerChromium):
240 (WebCore::LayerChromium::setUseLCDText):
241 (WebCore::LayerChromium::pushPropertiesTo):
242 * platform/graphics/chromium/LayerChromium.h:
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):
255 2012-08-08 Beth Dakin <bdakin@apple.com>
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
261 <rdar://problem/12006463>
263 Reviewed by Simon Fraser.
265 New RenderLayer function computeRepaintRectsIncludingDescendants()
266 * rendering/RenderLayer.cpp:
268 (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
269 * rendering/RenderLayer.h:
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):
278 2012-08-08 Alec Flett <alecflett@chromium.org>
280 IndexedDB: new enums and openCursor stub
281 https://bugs.webkit.org/show_bug.cgi?id=93410
283 Reviewed by Adam Barth.
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.
289 No new tests, coming in bug 91125.
291 * Modules/indexeddb/IDBTransactionBackendInterface.h:
293 2012-08-08 Pavel Feldman <pfeldman@chromium.org>
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
298 Not reviewed: roll out.
300 * inspector/ConsoleMessage.cpp:
301 (WebCore::ConsoleMessage::addToFrontend):
302 * inspector/ConsoleMessage.h:
304 * inspector/InjectedScript.cpp:
305 (WebCore::InjectedScript::wrapObject):
306 * inspector/InjectedScript.h:
308 * inspector/InjectedScriptSource.js:
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):
334 2012-08-08 Adam Barth <abarth@webkit.org>
336 Crash when reloading a Chromium "platform" app
337 https://bugs.webkit.org/show_bug.cgi?id=93497
339 Reviewed by Eric Seidel.
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
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
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.
358 * bindings/generic/BindingSecurity.cpp:
359 (WebCore::canAccessDocument):
361 2012-08-08 Dean Jackson <dino@apple.com>
363 Unreviewed build fix for Mac port after http://trac.webkit.org/changeset/125051
365 Add CachedImageClient.h to project.
367 * WebCore.xcodeproj/project.pbxproj:
369 2012-08-08 Antonio Gomes <agomes@rim.com>
371 [BlackBerry] Add boundsOrigin accessors to LayerOverride
372 https://bugs.webkit.org/show_bug.cgi?id=93479
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.
381 No new tests, since this is another preparation PR.
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):
390 (WebCore::LayerOverride::LayerOverride):
392 2012-08-08 Antonio Gomes <agomes@rim.com>
394 [BlackBerry] Propagate GraphicsLayer::boundsOrigin down to the platform layers
395 https://bugs.webkit.org/show_bug.cgi?id=93478
400 This property will be set from both WebKit and Compositing/UI
401 threads in order to fast scroll block elements.
403 No new tests, as it is a mid-step patch.
405 * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
406 (WebCore::GraphicsLayerBlackBerry::setBoundsOrigin):
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):
416 * platform/graphics/blackberry/LayerRenderer.cpp:
417 (WebCore::LayerRenderer::updateLayersRecursive):
418 * platform/graphics/blackberry/LayerWebKitThread.h:
419 (WebCore::LayerWebKitThread::setBoundsOrigin):
422 2012-08-08 Nate Chapin <japhet@chromium.org>
424 [chromium] Upstream android's FlingAnimator
425 https://bugs.webkit.org/show_bug.cgi?id=92900
427 Reviewed by James Robinson.
429 No new tests yet, will be added once this code is called.
432 * platform/chromium/support/PlatformGestureCurveFactory.cpp: Added.
434 (WebKit::PlatformGestureCurveFactory::get):
435 (WebKit::PlatformGestureCurveFactory::createCurve):
436 (WebKit::PlatformGestureCurveFactory::setWebFlingAnimatorForTest):
437 * platform/chromium/support/PlatformGestureCurveFactory.h: Added.
439 (PlatformGestureCurveFactory):
440 * platform/chromium/support/WebFlingAnimatorToGestureCurveAdapter.h: Added.
442 (WebFlingAnimatorToGestureCurveAdapter):
443 (WebKit::WebFlingAnimatorToGestureCurveAdapter::create):
444 (WebKit::WebFlingAnimatorToGestureCurveAdapter::WebFlingAnimatorToGestureCurveAdapter):
446 2012-08-08 Anna Cavender <annacc@chromium.org>
448 Update HTMLMediaElement to the new OO MediaSource API.
449 https://bugs.webkit.org/show_bug.cgi?id=91775
451 Reviewed by Eric Carlson.
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
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
461 * html/HTMLMediaElement.cpp:
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.
479 * html/HTMLMediaElement.h: Remove old style API code and add a MediaSource object.
481 * html/HTMLMediaElement.idl: Remove old style API.
483 2012-08-08 Dean Jackson <dino@apple.com>
485 Unreviewed build fix for Mac port after http://trac.webkit.org/changeset/125051
487 * platform/mac/ClipboardMac.mm:
489 2012-08-08 Xan Lopez <xlopez@igalia.com>
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
494 Reviewed by Adam Barth.
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.
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
512 2012-08-07 Ojan Vafai <ojan@chromium.org>
514 percentage height/width values in quirks mode are incorrectly resolved in flexbox children
515 https://bugs.webkit.org/show_bug.cgi?id=81809
517 Reviewed by Tony Chang.
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).
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.
527 Tests: css3/flexbox/box-sizing-min-max-sizes.html
528 css3/flexbox/percentage-sizes-quirks.html
529 css3/flexbox/percentage-sizes.html
531 * rendering/RenderBox.cpp:
532 (WebCore::RenderBox::computeLogicalClientHeight):
534 * rendering/RenderBox.h:
536 * rendering/RenderFlexibleBox.cpp:
537 (WebCore::RenderFlexibleBox::computeMainAxisSizeForChild):
538 (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
539 (WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
540 * rendering/RenderFlexibleBox.h:
542 2012-08-08 Andrew Scherkus <scherkus@chromium.org>
544 Fire suspend event whenever network state is set to NETWORK_IDLE.
545 https://bugs.webkit.org/show_bug.cgi?id=93052
547 Reviewed by Eric Carlson.
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
554 Covered by new test http/tests/media/video-load-suspend.html.
556 * html/HTMLMediaElement.cpp: Move firing of suspend event to changeNetworkStateFromLoadingToIdle
557 (WebCore::HTMLMediaElement::setNetworkState):
558 (WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):
560 2012-08-08 Tom Sepez <tsepez@chromium.org>
562 Video element image loader must persist after element detach.
563 https://bugs.webkit.org/show_bug.cgi?id=90801
565 Reviewed by Eric Carlson.
567 We rely on the OwnPtr in the element to cleanup the loader.
569 Test: fast/dom/beforeload/remove-video-poster-in-beforeload-listener.html
571 * html/HTMLVideoElement.cpp:
573 * html/HTMLVideoElement.h:
576 2012-08-08 Nikhil Bhargava <nbhargava@google.com>
578 Improve RenderObject.h compile time - split CachedImage and CachedImageClient
579 https://bugs.webkit.org/show_bug.cgi?id=93400
581 Reviewed by Eric Seidel.
583 Splits loader/cache/CachedImage.h into two files. The remaining changes are to repair existing #includes
585 No new tests. No changes to existing functions/functionality.
587 * css/CSSCrossfadeValue.h:
588 * loader/ImageLoader.h:
589 * loader/cache/CachedImage.cpp:
590 * loader/cache/CachedImage.h:
592 * loader/cache/CachedImageClient.h: Added.
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:
603 * rendering/style/StyleCachedImage.cpp:
604 * rendering/style/StyleCachedImage.h:
606 * rendering/style/StyleCachedImageSet.h:
607 * svg/graphics/SVGImage.cpp:
609 2012-08-08 Dan Bernstein <mitz@apple.com>
611 REGRESSION (r123171): <svg> element with intrinsic size and max-width gets sized incorrectly
612 https://bugs.webkit.org/show_bug.cgi?id=93388
614 Reviewed by Beth Dakin.
616 Test: svg/css/max-width-3.html
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.
624 2012-08-08 Keishi Hattori <keishi@webkit.org>
626 Make slider tick mark snapping threshold configurable for each platform
627 https://bugs.webkit.org/show_bug.cgi?id=93429
629 Reviewed by Kent Tamura.
631 This makes the slider tick mark snapping threshold configurable for each platform.
632 And we increase the threshold for the Chromium port.
634 No new tests. Covered by range-snap-to-datalist.html.
636 * html/shadow/SliderThumbElement.cpp:
637 (WebCore::SliderThumbElement::setPositionFromPoint):
638 * rendering/RenderTheme.cpp:
639 (WebCore::RenderTheme::sliderTickSnappingThreshold):
641 * rendering/RenderTheme.h:
643 (WebCore::RenderTheme::sliderTickSnappingThreshold): Returns the threshold distance to the tick mark for snapping to occur.
644 * rendering/RenderThemeChromiumCommon.cpp:
645 (WebCore::RenderThemeChromiumCommon::sliderTickSnappingThreshold):
647 * rendering/RenderThemeChromiumCommon.h:
648 (RenderThemeChromiumCommon):
649 * rendering/RenderThemeChromiumMac.h:
650 * rendering/RenderThemeChromiumMac.mm:
652 (WebCore::RenderThemeChromiumMac::sliderTickSnappingThreshold):
653 * rendering/RenderThemeChromiumSkia.cpp:
655 (WebCore::RenderThemeChromiumSkia::sliderTickSnappingThreshold):
656 * rendering/RenderThemeChromiumSkia.h:
658 2012-08-08 Mike West <mkwst@chromium.org>
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
663 Reviewed by Adam Barth.
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.
673 See http://crbug.com/128493 for additional context and discussion.
675 Tests for this change are covered by updating the existing Content
676 Security Policy tests to include the new console warnings.
678 * page/ContentSecurityPolicy.cpp:
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.
695 * page/ContentSecurityPolicy.h:
697 2012-08-08 Pavel Feldman <pfeldman@chromium.org>
699 Web Inspector: generate preview for the objects dumped into the console upon logging.
700 https://bugs.webkit.org/show_bug.cgi?id=35801
702 Reviewed by Vsevolod Vlasov.
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.
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.
712 Covered by the existing console tests + collections test has been expanded to capture both: pre and post-
713 front-end opening scenarios.
715 * inspector/ConsoleMessage.cpp:
716 (WebCore::ConsoleMessage::addToFrontend):
717 * inspector/ConsoleMessage.h:
719 * inspector/InjectedScript.cpp:
720 (WebCore::InjectedScript::wrapObject):
721 * inspector/InjectedScript.h:
723 * inspector/InjectedScriptSource.js:
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):
756 2012-07-31 Philippe Normand <pnormand@igalia.com>
758 [GStreamer] media/media-continues-playing-after-replace-source.html fails
759 https://bugs.webkit.org/show_bug.cgi?id=86310
761 Reviewed by Eric Carlson.
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
768 No new tests but fixes
769 media/media-continues-playing-after-replace-source.html
771 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
772 (WebCore::MediaPlayerPrivateGStreamer::load):
774 2012-08-08 Alexandru Chiculita <achicu@adobe.com>
776 [Chromium] Skia assert triggered by custom filter unmultiplied results
777 https://bugs.webkit.org/show_bug.cgi?id=92758
779 Reviewed by Dean Jackson.
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.
786 No new tests, just updated existing tests to take unpremultiplied colors instead.
788 * platform/graphics/filters/FECustomFilter.cpp:
789 (WebCore::FECustomFilter::platformApplySoftware):
791 2012-08-08 Philippe Normand <pnormand@igalia.com>
793 Unreviewed, build fix after r125041.
795 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
796 (StreamingClient::didReceiveResponse): Fix arguments order of the
797 notifyGstTagsOnPad() call.
799 2012-08-08 Vineet Chaudhary <rgf748@motorola.com>
801 Remove All Custom binding code for TypedArray.
802 https://bugs.webkit.org/show_bug.cgi?id=93371
804 Reviewed by Kentaro Hara.
806 Removing Custom bindings completely with help of [TypedArray] attribute.
808 Tests: TestTypedArray.idl
809 There should not be any behavioral change and all tests should pass.
811 * GNUmakefile.list.am: Removed Custom files.
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.
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):
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.
876 2012-08-08 Philippe Normand <pnormand@igalia.com>
878 [GStreamer] 0.11 build broken (again)
879 https://bugs.webkit.org/show_bug.cgi?id=93474
881 Reviewed by Martin Robinson.
883 Adapt the GStreamer media player backend to the latest GStreamer
886 * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
888 * platform/graphics/gstreamer/GStreamerVersioning.cpp:
889 (gstObjectIsFloating):
890 * platform/graphics/gstreamer/GStreamerVersioning.h:
891 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
892 (StreamingClient::didReceiveResponse):
894 2012-08-08 Loïc Yhuel <loic.yhuel@softathome.com>
896 [Qt] Compile errors with OpenGLES2
897 https://bugs.webkit.org/show_bug.cgi?id=93206
899 Reviewed by Noam Rosenthal.
901 Fix build with OpenGLES2 on Linux desktop
903 * platform/graphics/OpenGLESShims.h: removed unused define conflicting with gl2ext.h from ANGLE
905 2012-08-08 Pavel Feldman <pfeldman@chromium.org>
907 Web Inspector: store last evaluation result in $_
908 https://bugs.webkit.org/show_bug.cgi?id=93377
910 Reviewed by Vsevolod Vlasov.
912 All "console" evaluations end up in that variable on command line API.
914 Test: inspector/console/console-last-result.html
916 * inspector/InjectedScriptSource.js:
919 2012-08-08 Simon Hausmann <simon.hausmann@nokia.com>
921 [Qt] Port internal findMethodIndex method matcher to use JSC C API
922 https://bugs.webkit.org/show_bug.cgi?id=93463
924 Reviewed by Kenneth Rohde Christiansen.
926 Based on patch by No'am Rosenthal.
928 * bridge/qt/qt_runtime.cpp:
929 (JSC::Bindings::setException):
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
936 * bridge/qt/qt_runtime.h:
939 2012-08-08 Alexander Pavlov <apavlov@chromium.org>
941 Web Inspector: move setTouchEventEmulationEnabled from DOMAgent to PageAgent
942 https://bugs.webkit.org/show_bug.cgi?id=93437
944 Reviewed by Pavel Feldman.
946 * inspector/Inspector.json:
947 * inspector/InspectorDOMAgent.cpp:
948 (WebCore::InspectorDOMAgent::clearFrontend):
949 (WebCore::InspectorDOMAgent::restore):
950 * inspector/InspectorDOMAgent.h:
952 * inspector/InspectorPageAgent.cpp:
954 (WebCore::InspectorPageAgent::clearFrontend):
955 (WebCore::InspectorPageAgent::restore):
957 (WebCore::InspectorPageAgent::updateTouchEventEmulationInPage):
958 (WebCore::InspectorPageAgent::setTouchEmulationEnabled):
959 * inspector/InspectorPageAgent.h:
960 * inspector/front-end/DOMAgent.js:
961 (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged):
963 2012-08-08 Alexis Menard <alexis.menard@openbossa.org>
965 Unreviewed build fix for Qt on Linux.
967 * platform/qt/GamepadsQt.cpp:
969 2012-08-08 KwangYong Choi <ky0.choi@samsung.com>
971 [EFL] Support DataList for <input type="range">
972 https://bugs.webkit.org/show_bug.cgi?id=92634
974 Reviewed by Kenneth Rohde Christiansen.
976 DataList theme for EFL is implemented. DataList feature of
977 <input type="range"> is supported.
979 Test: fast/forms/datalist/input-list.html
981 * platform/efl/RenderThemeEfl.cpp:
982 (WebCore::RenderThemeEfl::paintSliderTrack):
983 (WebCore::RenderThemeEfl::sliderTickSize):
984 (WebCore::RenderThemeEfl::sliderTickOffsetFromTrackCenter):
985 (WebCore::RenderThemeEfl::supportsDataListUI):
987 * platform/efl/RenderThemeEfl.h:
990 2012-08-08 Sergey Rogulenko <rogulenko@google.com>
992 Web Inspector: renaming DOMNodeHighlighter to InspectorOverlay
993 https://bugs.webkit.org/show_bug.cgi?id=93253
995 Reviewed by Pavel Feldman.
997 Renaming DOMNodeHighlighter to InspectorOverlay where necessary.
1000 * GNUmakefile.list.am:
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):
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.
1027 (WebCore::Highlight::setColors):
1030 (WebCore::InspectorOverlay::create):
1031 * inspector/InspectorPageAgent.cpp:
1032 * inspector/PageDebuggerAgent.cpp:
1033 * page/GestureTapHighlighter.h:
1034 * testing/Internals.cpp:
1036 2012-08-08 Chris Guan <chris.guan@torchmobile.com.cn>
1038 [Blackberry] missing a Multipart header when m_multipartResponse is null
1039 https://bugs.webkit.org/show_bug.cgi?id=93440
1041 Reviewed by George Staikos.
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.
1047 No new tests, because those current multipart test cases (http/tests/multipart/*)
1050 * platform/network/blackberry/NetworkJob.cpp:
1051 (WebCore::NetworkJob::handleNotifyMultipartHeaderReceived):
1053 2012-08-08 Mike West <mkwst@chromium.org>
1055 Refactor console logging out of CSPDirectiveList into ContentSecurityPolicy
1056 https://bugs.webkit.org/show_bug.cgi?id=93205
1058 Reviewed by Adam Barth.
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.
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
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.
1081 * page/ContentSecurityPolicy.cpp:
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
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):
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:
1140 2012-08-08 Kentaro Hara <haraken@chromium.org>
1142 [V8] Rename V8Helpers to V8BindingHelpers
1143 https://bugs.webkit.org/show_bug.cgi?id=93318
1145 Reviewed by Eric Seidel.
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.
1151 In addition this patch makes V8Binding.h include V8BindingHelpers.h,
1152 and removes #include V8BindingHelpers.h from binding files.
1154 No tests. No change in behavior.
1158 * bindings/v8/NPV8Object.cpp:
1159 * bindings/v8/V8BindingHelpers.cpp: Renamed from Source/WebCore/bindings/v8/V8Helpers.cpp.
1161 (WebCore::toV8Context):
1162 (WebCore::toV8Proxy):
1163 * bindings/v8/V8BindingHelpers.h: Renamed from Source/WebCore/bindings/v8/V8Helpers.h.
1165 * bindings/v8/V8NPObject.cpp:
1167 2012-08-08 Kentaro Hara <haraken@chromium.org>
1169 'class WrapperTypeInfo' should be 'struct WrapperTypeInfo'
1171 Unreviewed. Build fix for r125015.
1173 * bindings/v8/V8BindingPerIsolateData.h:
1176 2012-08-08 Matt Arsenault <arsenm2@gmail.com>
1178 Crash when inspecting an element with border-image
1179 https://bugs.webkit.org/show_bug.cgi?id=93380
1181 Reviewed by Tim Horton.
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.
1187 Test: fast/css/parse-border-image-repeat-null-crash.html
1189 * css/CSSParser.cpp:
1190 (WebCore::CSSParser::parseBorderImageRepeat):
1192 2012-08-08 Kentaro Hara <haraken@chromium.org>
1194 [V8] Factor out V8BindingPerIsolateData from V8Binding to a separate file
1195 https://bugs.webkit.org/show_bug.cgi?id=93333
1197 Reviewed by Adam Barth.
1199 This patch moves V8BindingPerIsolateData to V8BindingPerIsolateData.{h,cpp}.
1201 To avoid circular #include dependency, I used OwnPtrs for m_stringCache,
1202 m_integerCache, m_hiddenPropertyName and m_gcEventData.
1204 No tests. No change in behavior.
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:
1218 * bindings/v8/V8BindingPerIsolateData.cpp: Added.
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.
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):
1256 2012-08-08 Pavel Feldman <pfeldman@chromium.org>
1258 Web Inspector: show whitespace nodes if they are the only tag's children.
1259 https://bugs.webkit.org/show_bug.cgi?id=93441
1261 Reviewed by Vsevolod Vlasov.
1263 Pass whitespace node info into the front-end when it is the only element's child.
1265 * inspector/InspectorDOMAgent.cpp:
1266 (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
1268 2012-08-08 Kentaro Hara <haraken@chromium.org>
1270 [V8] Pass Isolate to ArrayValue and Dictionary
1271 https://bugs.webkit.org/show_bug.cgi?id=93315
1273 Reviewed by Adam Barth.
1275 This patch passes Isolate to ArrayValue and Dictionary.
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.
1283 Rationale 2: JSC already passes ExecState to ArrayValue and Dictionary.
1285 Tests: storage/indexeddb/*
1288 * bindings/scripts/CodeGeneratorV8.pm:
1289 (GenerateEventConstructorCallback):
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):
1301 * bindings/v8/Dictionary.cpp:
1302 (WebCore::Dictionary::Dictionary):
1303 (WebCore::Dictionary::operator=):
1304 (WebCore::Dictionary::get):
1305 * bindings/v8/Dictionary.h:
1307 * bindings/v8/custom/V8BlobCustom.cpp:
1308 (WebCore::V8Blob::constructorCallback):
1309 * bindings/v8/custom/V8IntentConstructor.cpp:
1310 (WebCore::V8Intent::constructorCallback):
1312 2012-08-08 Yury Semikhatsky <yurys@chromium.org>
1314 Web Inspector: cached images memory instrumentation regression after r124744
1315 https://bugs.webkit.org/show_bug.cgi?id=93366
1317 Reviewed by Vsevolod Vlasov.
1319 CachedImage memory usage data no includes size of both encoded and
1322 Test: inspector/profiler/memory-instrumentation-cached-images.html
1324 * loader/cache/CachedImage.cpp:
1325 (WebCore::CachedImage::reportMemoryUsage):
1327 2012-08-08 Kentaro Hara <haraken@chromium.org>
1329 Optimize Element::hasAttribute() by replacing String with AtomicString
1330 https://bugs.webkit.org/show_bug.cgi?id=90273
1332 Reviewed by Adam Barth.
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.
1338 Performance test: https://bugs.webkit.org/attachment.cgi?id=150144
1340 hasAttribute (Chromium/Linux):
1341 329.60ms => 259.00ms
1343 hasAttributeNS (Chromium/Linux):
1344 549.60ms => 435.80ms
1347 (WebCore::Element::hasAttribute):
1348 (WebCore::Element::hasAttributeNS):
1352 2012-08-08 Kentaro Hara <haraken@chromium.org>
1354 Optimize Element::removeAttribute() by replacing String with AtomicString
1355 https://bugs.webkit.org/show_bug.cgi?id=90265
1357 Reviewed by Adam Barth.
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.
1363 Performance test: https://bugs.webkit.org/attachment.cgi?id=150140
1365 removeAttribute (Chromium/Linux):
1366 334.20ms => 240.60ms
1368 removeAttributeNS (Chromium/Linux):
1369 552.80ms => 421.60ms
1372 (WebCore::Element::removeAttribute):
1373 (WebCore::Element::removeAttributeNS):
1377 2012-08-08 Shinya Kawanaka <shinyak@chromium.org>
1379 Remove Element::ensureShadowRoot
1380 https://bugs.webkit.org/show_bug.cgi?id=77608
1382 Reviewed by Ryosuke Niwa.
1384 Since Element::ensureShadowRoot is not used anymore, we can remove this safely.
1386 No new tests, no change in behavior.
1393 2012-08-08 Kentaro Hara <haraken@chromium.org>
1395 Remove an unused member variable.
1397 Unreviewed, build fix for r124990.
1399 * dom/ContainerNode.h:
1400 (WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
1401 (ChildNodesLazySnapshot):
1403 2012-08-07 Vsevolod Vlasov <vsevik@chromium.org>
1405 Web Inspector: TabbedPane should use floating point width values for measuring.
1406 https://bugs.webkit.org/show_bug.cgi?id=93349
1408 Reviewed by Pavel Feldman.
1410 TabbedPane now uses getBoundingClientRect().width instead of offsetWidth for more precise calculation.
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):
1419 2012-08-08 Douglas Stockwell <dstockwell@chromium.org>
1421 'highlight' should not be parsed for a composite operation
1422 https://bugs.webkit.org/show_bug.cgi?id=92615
1424 Reviewed by Ryosuke Niwa.
1426 r88144 removed support for highlight as a composite operation but did
1427 not update the parser.
1429 Test: fast/backgrounds/composite-highlight-is-invalid.html
1431 * css/CSSParser.cpp:
1432 (WebCore::CSSParser::parseFillProperty):
1434 2012-08-08 Takashi Sakamoto <tasak@google.com>
1436 showNodePath should show the age of ShadowRoot
1437 https://bugs.webkit.org/show_bug.cgi?id=93347
1439 Reviewed by Ryosuke Niwa.
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.
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.
1449 2012-08-07 Kent Tamura <tkent@chromium.org>
1451 Remove fractionDigits argument of WebCore::convertToLocalizedNumber()
1452 https://bugs.webkit.org/show_bug.cgi?id=93435
1454 Reviewed by Kentaro Hara.
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.
1461 No new tests because of no behavior changes.
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.
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.
1481 2012-08-08 Mario Sanchez Prada <msanchez@igalia.com>
1483 REGRESSION(r65062): out of bound access in TextIterator (5 editing tests) on GTK
1484 https://bugs.webkit.org/show_bug.cgi?id=63611
1486 Reviewed by Ryosuke Niwa.
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.
1492 * accessibility/gtk/AXObjectCacheAtk.cpp:
1493 (WebCore::AXObjectCache::nodeTextChangePlatformNotification): Call
1494 to document->updateLayout() before using TextIterator.
1496 2012-08-07 Hayato Ito <hayato@chromium.org>
1498 Unreviewed build fix after http://trac.webkit.org/changeset/124975
1500 Remove assertion introduced in r124975.
1502 * dom/EventDispatcher.cpp:
1503 (WebCore::EventDispatcher::EventDispatcher):
1504 (WebCore::EventDispatcher::dispatchEvent):
1505 * dom/EventDispatcher.h:
1508 2012-08-07 Sheriff Bot <webkit.review.bot@gmail.com>
1510 Unreviewed, rolling out r124969.
1511 http://trac.webkit.org/changeset/124969
1512 https://bugs.webkit.org/show_bug.cgi?id=93436
1514 Causes assertion failure in RenderQueue (Requested by toyoshim
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):
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:
1536 (WebCore::RenderQuote::isQuote):
1537 * rendering/RenderView.cpp:
1538 (WebCore::RenderView::RenderView):
1539 * rendering/RenderView.h:
1542 (WebCore::RenderView::addRenderQuote):
1543 (WebCore::RenderView::removeRenderQuote):
1544 (WebCore::RenderView::hasRenderQuotes):
1545 * rendering/style/RenderStyle.cpp:
1546 (WebCore::RenderStyle::diff):
1548 2012-08-07 Kentaro Hara <haraken@chromium.org>
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
1553 Reviewed by Adam Barth.
1555 This patch improves performance of Dromaeo/dom-modify by 8.2% in both Chromium and Safari.
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%)
1560 notifyDescendantRemovedFromDocument() cannot iterate child nodes in this way:
1562 void notifyDescendantRemovedFromDocument(Node* node) {
1563 for (Node* child = node->firstChild(); child; child = child->nextSibling()) {
1565 notifyNodeRemovedFromDocument(child);
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.
1573 void notifyDescendantRemovedFromDocument(Node* node) {
1574 NodeVector children;
1575 getChildNodes(node, children); // Take a snapshot.
1576 for (int i = 0; i < children.size(); i++) {
1578 notifyNodeRemovedFromDocument(children[i]);
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.
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()
1597 * dom/ContainerNode.cpp:
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):
1609 * dom/ContainerNodeAlgorithms.cpp:
1610 (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
1611 (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
1612 * dom/EventDispatcher.cpp:
1613 (WebCore::EventDispatcher::dispatchEvent):
1615 2012-08-07 Ojan Vafai <ojan@chromium.org>
1617 percentage margins + flex incorrectly overflows the flexbox
1618 https://bugs.webkit.org/show_bug.cgi?id=93411
1620 Reviewed by Tony Chang.
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.
1625 Test: css3/flexbox/percent-margins.html
1627 * rendering/RenderFlexibleBox.cpp:
1628 (WebCore::RenderFlexibleBox::computeMarginValue):
1630 (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
1631 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
1632 * rendering/RenderFlexibleBox.h:
1634 2012-08-07 Kentaro Hara <haraken@chromium.org>
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
1639 Reviewed by Eric Seidel.
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".
1647 No tests. No change in behavior.
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):
1698 2012-08-07 Kentaro Hara <haraken@chromium.org>
1700 [V8] Replace v8::Handle<v8::Value>() in custom bindings with v8Undefined()
1701 https://bugs.webkit.org/show_bug.cgi?id=93215
1703 Reviewed by Eric Seidel.
1705 We should use v8Undefined() everywhere in V8 bindings.
1707 No tests. No change in behavior.
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):
1772 2012-08-07 Kentaro Hara <haraken@chromium.org>
1774 [V8] Replace v8::Handle<v8::Value>() in bindings/v8/* with v8Undefined()
1775 https://bugs.webkit.org/show_bug.cgi?id=93211
1777 Reviewed by Eric Seidel.
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
1784 No tests. No change in behavior.
1786 * bindings/v8/IDBBindingUtilities.cpp:
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):
1808 2012-08-07 Joe Mason <jmason@rim.com>
1810 Fix regression in credential storage when using Negotiate auth
1811 https://bugs.webkit.org/show_bug.cgi?id=93386
1813 Reviewed by George Staikos.
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.
1823 Fixed by delaying the credential save until notifyAuthReceived.
1826 Internally reviewed by George Staikos
1828 * platform/network/blackberry/NetworkJob.cpp:
1829 (WebCore::NetworkJob::handleNotifyStatusReceived): Stop storing credentials here.
1830 (WebCore::NetworkJob::notifyAuthReceived): Store credentials here instead.
1832 2012-08-07 Kent Tamura <tkent@chromium.org>
1834 [Mac] Do not reformat numbers in <input type=number>
1835 https://bugs.webkit.org/show_bug.cgi?id=93236
1837 Reviewed by Hajime Morita.
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.
1843 In order to avoid such reformatting, we use
1844 platform/text/NumberLocalizer, which maps ASCII digits to the
1845 corresponding localized digits.
1847 Test: fast/forms/number/number-lossless-localization.html
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):
1872 2012-08-07 Kentaro Hara <haraken@chromium.org>
1874 [V8] Move V8BindingMacros.h from bindings/v8/custom/ to bindings/v8/
1875 https://bugs.webkit.org/show_bug.cgi?id=93254
1877 Reviewed by Eric Seidel.
1879 V8BindingMacros.h should exist in bindings/v8/.
1880 This patch also moves related enums from V8Binding.h to V8BindingMacros.h.
1882 No tests. No change in behavior.
1885 * bindings/v8/V8BindingMacros.h: Renamed from Source/WebCore/bindings/v8/custom/V8BindingMacros.h.
1888 2012-08-07 Kentaro Hara <haraken@chromium.org>
1890 [V8] StringCache::m_lastStringImpl and StringCache::m_lastV8String should be in sync
1891 https://bugs.webkit.org/show_bug.cgi?id=93065
1893 Reviewed by Eric Seidel.
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.
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.
1903 No tests. No change in behavior.
1905 * bindings/v8/V8Binding.cpp:
1906 (WebCore::StringCache::remove):
1908 2012-08-07 Hayato Ito <hayato@chromium.org>
1910 Don't re-use the same EventDispatcher instance to dispatch events.
1911 https://bugs.webkit.org/show_bug.cgi?id=93322
1913 Reviewed by Dimitri Glazkov.
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.
1921 For example, EventDispatcher::ensureEventAncestor never
1922 recalculates ancestors of node even when
1923 dispatchEvent(PassRefPtr<Event)) is called again with a different
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.
1931 No new tests, no change in functionality.
1933 * dom/EventDispatcher.cpp:
1934 (WebCore::EventDispatcher::EventDispatcher):
1935 (WebCore::EventDispatcher::dispatchEvent):
1936 * dom/EventDispatcher.h:
1938 * dom/MouseEvent.cpp:
1939 (WebCore::MouseEventDispatchMediator::dispatchEvent):
1941 2012-08-07 Joshua Bell <jsbell@chromium.org>
1943 Layout Test storage/indexeddb/intversion-omit-parameter.html is flaky
1944 https://bugs.webkit.org/show_bug.cgi?id=92952
1946 Reviewed by Tony Chang.
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.
1953 Test: [chromium] webkit_unit_tests --gtest_filter='IDBRequestTest.EventsAfterStopping'
1955 * Modules/indexeddb/IDBRequest.cpp:
1956 (WebCore::IDBRequest::abort):
1957 (WebCore::IDBRequest::onError):
1958 (WebCore::IDBRequest::onSuccess):
1959 (WebCore::IDBRequest::onSuccessWithContinuation):
1961 2012-08-07 Kentaro Hara <haraken@chromium.org>
1963 Optimize Element::getAttributeNode() by replacing String with AtomicString
1964 https://bugs.webkit.org/show_bug.cgi?id=90274
1966 Reviewed by Adam Barth.
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
1973 Performance test: https://bugs.webkit.org/attachment.cgi?id=150147
1975 getAttributeNode (Chromium/Linux):
1976 375.20ms => 310.80ms
1978 getAttributeNodeNS (Chromium/Linux):
1979 684.40ms => 539.00ms
1982 (WebCore::Element::getAttributeNode):
1983 (WebCore::Element::getAttributeNodeNS):
1987 2012-08-07 Michelangelo De Simone <michelangelo@webkit.org>
1989 CSSParser::parseTransform() refactor to accept valueList as argument
1990 https://bugs.webkit.org/show_bug.cgi?id=93295
1992 Reviewed by Darin Adler.
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.
1998 * css/CSSParser.cpp:
1999 (WebCore::CSSParser::parseValue):
2000 (WebCore::CSSParser::parseTransform):
2003 2012-08-07 Elliott Sprehn <esprehn@gmail.com>
2005 Reimplement RenderQuote placement algorithm
2006 https://bugs.webkit.org/show_bug.cgi?id=93056
2008 Reviewed by Eric Seidel.
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).
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.
2018 No new tests because this patch doesn't change any behavior.
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.
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:
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:
2042 (WebCore::RenderView::setRenderQuoteHead):
2043 (WebCore::RenderView::renderQuoteHead): Stores the first quote in the document.
2046 2012-08-07 Kentaro Hara <haraken@chromium.org>
2048 [V8] Remove a bunch of Persistent::New()s on setJSWrapperForXXXObject()
2049 https://bugs.webkit.org/show_bug.cgi?id=93342
2051 Reviewed by Adam Barth.
2053 There are a lot of custom bindings like this:
2055 V8DOMWrapper::setJSWrapperForDOMObject(impl.release(), v8::Persistent<v8::Object>::New(args.Holder()));
2057 Manually written Persistent::New() is error-prone. We can remove the
2058 Persistent::New() by allocating the Persistent handle inside
2059 setJSWrapperForDOMObject().
2061 A new setJSWrapperForDOMObject() receives a wrapper object, allocates
2062 the Persistent handle of the wrapper object, and return the Persistent handle.
2064 No tests. No change in behavior.
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:
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):
2136 2012-08-07 Erik Arvidsson <arv@chromium.org>
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
2141 Reviewed by Adam Barth.
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.
2149 * html/HTMLElement.idl:
2151 2012-08-07 Dirk Pranke <dpranke@chromium.org>
2153 fix chromium win build after r124945
2154 https://bugs.webkit.org/show_bug.cgi?id=93421
2156 Unreviewed, build fix.
2158 Two Efl files were removed in r124945 but we forgot to remove
2159 them from WebCore.gypi.
2163 2012-08-07 Dean Jackson <dino@apple.com>
2165 Unreviewed build fix for Mac port after http://trac.webkit.org/changeset/124954
2167 * html/HTMLPlugInElement.cpp:
2168 (WebCore::HTMLPlugInElement::isKeyboardFocusable):
2170 2012-08-07 Kentaro Hara <haraken@chromium.org>
2172 [V8] Move setIsolatedWorldSecurityOrigin() from V8Proxy to ScriptController
2173 https://bugs.webkit.org/show_bug.cgi?id=93334
2175 Reviewed by Adam Barth.
2177 The goal is to move factor out V8Proxy methods to ScriptController.
2178 As a starting point, this patch moves setIsolatedWorldSecurityOrigin().
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.
2184 No tests. No change in behavior.
2186 * bindings/v8/ScriptController.cpp:
2187 (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
2188 * bindings/v8/V8Proxy.cpp:
2189 * bindings/v8/V8Proxy.h:
2192 (WebCore::V8Proxy::isolatedWorlds):
2193 (WebCore::V8Proxy::isolatedWorldSecurityOrigins):
2195 2012-08-07 Yoshifumi Inoue <yosin@chromium.org>
2197 translateZ(0) shifts file name in file input
2198 https://bugs.webkit.org/show_bug.cgi?id=69248
2200 Reviewed by Simon Fraser.
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.
2206 Test: file-appearance-transform-no-effects.html
2208 * rendering/RenderFileUploadControl.cpp:
2209 (WebCore::RenderFileUploadControl::paintObject): Changed to use paintOffset
2210 instead of absoluteBoundingBoxRectIgnoringTransforms().
2212 2012-08-07 Kentaro Hara <haraken@chromium.org>
2214 [V8] Replace throwError(ExceptionCode, Isolate*) with
2215 setDOMException(ExceptionCode, Isolate*) in CodeGeneratorV8.pm
2216 https://bugs.webkit.org/show_bug.cgi?id=93223
2218 Reviewed by Adam Barth.
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".
2226 Test: bindings/scripts/test/TestObj.idl
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):
2243 2012-08-07 Fady Samuel <fsamuel@chromium.org>
2245 Allow plugins to decide whether they are keyboard focusable
2246 https://bugs.webkit.org/show_bug.cgi?id=88958
2248 Reviewed by Anders Carlsson.
2251 (WebCore::Node::isPluginElement):
2252 * html/HTMLEmbedElement.cpp:
2253 (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
2254 * html/HTMLEmbedElement.h:
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):
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):
2272 2012-08-07 Anna Cavender <annacc@chromium.org>
2274 Create a MediaSource object.
2275 https://bugs.webkit.org/show_bug.cgi?id=91773
2277 Reviewed by Eric Carlson.
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
2283 No new tests - will be able to test after landing:
2284 https://bugs.webkit.org/show_bug.cgi?id=91775
2286 Adding new files to build files:
2288 * DerivedSources.cpp:
2289 * DerivedSources.make:
2290 * DerivedSources.pri:
2291 * GNUmakefile.list.am:
2294 * WebCore.vcproj/WebCore.vcproj:
2295 * WebCore.xcodeproj/project.pbxproj:
2297 New MediaSource object:
2298 * Modules/mediasource/MediaSource.cpp: Added.
2299 * Modules/mediasource/MediaSource.h: Added.
2300 * Modules/mediasource/MediaSource.idl: Added.
2302 Create a registry for the blob storage and lookup:
2303 * Modules/mediasource/MediaSourceRegistry.cpp: Added.
2304 * Modules/mediasource/MediaSourceRegistry.h: Added.
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.
2316 * Modules/mediasource/SourceBufferList.cpp: include SourceBuffer.h
2317 * Modules/mediasource/SourceBufferList.h:
2319 Make MediaSource an EventTarget:
2320 * dom/EventTarget.h:
2322 * dom/EventTargetFactory.in:
2324 Enable creation of MediaSource object URL from JavaScript:
2327 (WebCore::DOMURL::createObjectURL):
2328 (WebCore::DOMURL::revokeObjectURL):
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.
2338 (WebCore::PublicURLManager::sourceURLs): getter for the sourceURLs list.
2340 New MediaSource constructor:
2341 * page/DOMWindow.idl:
2343 2012-08-07 Kentaro Hara <haraken@chromium.org>
2345 [V8] Implement V8Proxy::registerExtensionIfNeeded() and remove redundant methods
2346 https://bugs.webkit.org/show_bug.cgi?id=93209
2348 Reviewed by Adam Barth.
2350 By implementing V8Proxy::registerExtensionIfNeeded(), we can remove
2351 registeredExtensionWithV8() and registerExtension().
2353 No tests. No change in behavior.
2355 * bindings/v8/V8DOMWindowShell.cpp:
2356 (WebCore::V8DOMWindowShell::createNewContext):
2357 * bindings/v8/V8Proxy.cpp:
2358 (WebCore::V8Proxy::registerExtensionIfNeeded):
2359 * bindings/v8/V8Proxy.h:
2362 2012-08-07 Ryuan Choi <ryuan.choi@samsung.com>
2364 [EFL] Remove PlatformTouchEventEfl and PlatformTouchPointEfl
2365 https://bugs.webkit.org/show_bug.cgi?id=93270
2367 Reviewed by Eric Seidel.
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.
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.
2377 No new tests. Just a refactoring.
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.
2387 2012-08-07 James Robinson <jamesr@chromium.org>
2389 [chromium] Avoid dependending on implicit WebString -> String conversion in compositor
2390 https://bugs.webkit.org/show_bug.cgi?id=93408
2392 Reviewed by Adrienne Walker.
2394 * platform/graphics/chromium/LayerRendererChromium.cpp:
2395 (WebCore::LayerRendererChromium::initialize):
2396 * platform/graphics/chromium/cc/CCResourceProvider.cpp:
2397 (WebCore::CCResourceProvider::initialize):
2399 2012-08-07 Kentaro Hara <haraken@chromium.org>
2401 [V8] Factor out V8Binding methods that configures DOM attributes and methods
2402 https://bugs.webkit.org/show_bug.cgi?id=93239
2404 Reviewed by Adam Barth.
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}.
2410 No tests. No change in behavior.
2414 * bindings/v8/V8Binding.cpp:
2415 * bindings/v8/V8Binding.h:
2417 * bindings/v8/V8ConfigureDOMAttributesAndMethods.cpp: Added.
2419 (WebCore::batchConfigureAttributes):
2420 (WebCore::batchConfigureConstants):
2421 (WebCore::batchConfigureCallbacks):
2422 (WebCore::configureTemplate):
2423 * bindings/v8/V8ConfigureDOMAttributesAndMethods.h: Added.
2426 (WebCore::configureAttribute):
2430 2012-08-07 Kentaro Hara <haraken@chromium.org>
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
2435 Reviewed by Eric Seidel.
2437 We should use v8Undefined() everywhere in V8 bindings.
2438 This patch replaces all V8 undefined values in the rest of custom bindings
2441 No tests. No change in behavior.
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:
2448 * bindings/v8/custom/V8ScriptProfileCustom.cpp:
2450 * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
2453 2012-08-07 Kentaro Hara <haraken@chromium.org>
2455 [V8] Remove #include V8BindingMacros.h
2456 https://bugs.webkit.org/show_bug.cgi?id=93312
2458 Reviewed by Eric Seidel.
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.
2465 We can remove '#include V8BindingMacros.h' from V8 binding files.
2467 No tests. No change in behavior.
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:
2503 2012-08-07 Kentaro Hara <haraken@chromium.org>
2505 [V8] Remove #include Frame.h from V8Binding.h
2506 https://bugs.webkit.org/show_bug.cgi?id=93326
2508 Reviewed by Adam Barth.
2510 We want to remove unnecessary #include in V8Binding.h
2511 to avoid circular include dependency.
2513 No tests. No change in behavior.
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:
2532 2012-08-07 Kentaro Hara <haraken@chromium.org>
2534 [V8] Factor out V8Binding classes that manage V8 value's cache
2535 https://bugs.webkit.org/show_bug.cgi?id=93343
2537 Reviewed by Adam Barth.
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}.
2543 No tests. No change in behavior.
2547 * bindings/v8/V8Binding.cpp:
2548 * bindings/v8/V8Binding.h:
2550 * bindings/v8/V8ValueCache.cpp: Added.
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.
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):
2576 (WebCore::IntegerCache::IntegerCache):
2577 (WebCore::IntegerCache::v8Integer):
2578 (WebCore::IntegerCache::v8UnsignedInteger):
2580 2012-08-07 James Robinson <jamesr@chromium.org>
2582 [chromium] Switch PlatformLayer typedef to Platform API type for PLATFORM(CHROMIUM)
2583 https://bugs.webkit.org/show_bug.cgi?id=93335
2585 Reviewed by Adrienne Walker.
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.
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:
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):
2619 2012-08-07 James Robinson <jamesr@chromium.org>
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
2624 Reviewed by Adam Barth.
2626 Converts non-compositor code that cares about threaded compositing status over to query WebCompositor instead of
2629 * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2630 * platform/chromium/support/WebCompositorImpl.cpp:
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):
2642 2012-08-07 Anders Carlsson <andersca@apple.com>
2644 Knob slot animation is flipped
2645 https://bugs.webkit.org/show_bug.cgi?id=93396
2647 Reviewed by Beth Dakin.
2649 When painting the scrollbar knob slot, use rectForPart: since it correctly takes the expansion transition state into account.
2651 * platform/mac/ScrollbarThemeMac.mm:
2652 (WebCore::scrollbarPainterPaint):
2654 2012-08-07 Adrienne Walker <enne@google.com>
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
2659 Reviewed by Simon Fraser.
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.
2666 * page/FrameView.cpp:
2667 (WebCore::FrameView::scrollContentsFastPath):
2669 2012-08-07 Konrad Piascik <kpiascik@rim.com>
2671 [BlackBerry] Change how devicePixelRatio is set.
2672 https://bugs.webkit.org/show_bug.cgi?id=93385
2674 Reviewed by Antonio Gomes.
2676 Update the theme to adjust to a constant devicePixelRatio.
2680 * platform/blackberry/RenderThemeBlackBerry.cpp:
2681 (WebCore::determineFullScreenMultiplier):
2683 2012-08-07 James Robinson <jamesr@chromium.org>
2685 [chromium] Move WebCompositor interface into Platform API
2686 https://bugs.webkit.org/show_bug.cgi?id=93391
2688 Reviewed by Adam Barth.
2690 Moves the support files for WebCompositor into WebCore/platform/support/. CCThreadImpl is a helper class used
2691 only by WebCompositorImpl.
2693 Refactor/renaming only, so no new tests.
2696 * platform/chromium/support/CCThreadImpl.cpp: Renamed from Source/WebKit/chromium/src/CCThreadImpl.cpp.
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.
2715 * platform/chromium/support/WebCompositorImpl.cpp: Renamed from Source/WebKit/chromium/src/WebCompositorImpl.cpp.
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.
2728 (WebCompositorImpl):
2730 2012-08-07 Abhishek Arya <inferno@chromium.org>
2732 Crash in ContainerNode::cloneChildNodes.
2733 https://bugs.webkit.org/show_bug.cgi?id=93378
2735 Reviewed by Levi Weintraub.
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.
2742 Test: fast/dom/clone-node-load-event-crash.html
2744 * dom/ContainerNode.cpp:
2745 (WebCore::ContainerNode::cloneChildNodes):
2747 2012-08-07 No'am Rosenthal <noam.rosenthal@nokia.com>
2749 GraphicsLayerAnimation shouldn't use HashMap<String>
2750 https://bugs.webkit.org/show_bug.cgi?id=93284
2752 Reviewed by Kenneth Rohde Christiansen.
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.
2758 Covered by existing animation tests.
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):
2775 2012-08-07 Marcelo Lira <marcelo.lira@openbossa.org>
2777 [Qt] Add support for the Gamepad API
2778 https://bugs.webkit.org/show_bug.cgi?id=90637
2780 Reviewed by Alexis Menard.
2782 Adds support for Gamepad API on the Qt port.
2784 The implementation of this class relies on the Linux
2785 kernel joystick API.
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.
2791 Tests for this feature already exist.
2793 * DerivedSources.pri:
2796 * platform/qt/GamepadsQt.cpp: Added.
2798 (GamepadDeviceLinuxQt):
2799 (WebCore::GamepadDeviceLinuxQt::create):
2800 (WebCore::GamepadDeviceLinuxQt::GamepadDeviceLinuxQt):
2801 (WebCore::GamepadDeviceLinuxQt::~GamepadDeviceLinuxQt):
2802 (WebCore::GamepadDeviceLinuxQt::readCallback):
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):
2813 2012-08-07 Mike Reed <reed@google.com>
2815 reimplement fastMod w/o (soon to be) private skia macros
2816 https://bugs.webkit.org/show_bug.cgi?id=93370
2818 Reviewed by Adrienne Walker.
2820 fastMod() reimplemented (same functionality) to stop using soon-to-be private macros in
2821 SkMath.h. The new version is functionally identical.
2823 No new tests -- existing layouttests exercise GraphicsContext::strokeArc(), the only caller
2825 * platform/graphics/skia/GraphicsContextSkia.cpp:
2827 2012-08-07 Brian Anderson <brianderson@chromium.org>
2829 Add CCDelayBasedTimeSource::setTimebaseAndInterval
2830 https://bugs.webkit.org/show_bug.cgi?id=92825
2832 Reviewed by James Robinson.
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.
2838 CCDelayBasedTimeSourceTest updated with two tests for proper handling
2839 of jittery timebase/interval source and immediate handling of
2840 significant timebase/interval changes.
2842 * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
2843 (WebCore::CCDelayBasedTimeSource::CCDelayBasedTimeSource):
2844 (WebCore::CCDelayBasedTimeSource::nextTickTime):
2846 (WebCore::CCDelayBasedTimeSource::onTimerFired):
2847 (WebCore::CCDelayBasedTimeSource::setTimebaseAndInterval):
2848 (WebCore::CCDelayBasedTimeSource::postNextTickTask):
2849 * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
2851 2012-07-23 Alexandru Chiculita <achicu@adobe.com>
2853 [CSS Shaders] Reuse precompiled shaders across elements
2854 https://bugs.webkit.org/show_bug.cgi?id=88427
2856 Reviewed by Dean Jackson.
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.
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.
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.
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.
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 .
2875 Test: css3/filters/custom/custom-filter-shader-reuse.html
2878 * GNUmakefile.list.am:
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.
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.
2892 * platform/graphics/filters/CustomFilterGlobalContext.cpp:
2893 (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
2894 (WebCore::CustomFilterGlobalContext::getCompiledProgram): Gets or creates a compiled shader for a specific CustomFilterProgramInfo.
2896 (WebCore::CustomFilterGlobalContext::removeCompiledProgram): Called by ~CustomFilterCompiledProgram.
2897 * platform/graphics/filters/CustomFilterGlobalContext.h:
2899 (CustomFilterGlobalContext):
2900 * platform/graphics/filters/CustomFilterProgram.cpp:
2901 (WebCore::CustomFilterProgram::programInfo):
2902 * platform/graphics/filters/CustomFilterProgram.h:
2904 * platform/graphics/filters/CustomFilterProgramInfo.cpp: Added.
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.
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.
2925 * platform/graphics/filters/FECustomFilter.cpp:
2926 (WebCore::FECustomFilter::initializeContext): Moved to using the cached shader instead.
2928 2012-08-07 Florin Malita <fmalita@chromium.org>
2930 [Chromium] Unreviewed build fix after r124879.
2932 * WebCore.gypi: Remove deleted file references.
2934 2012-08-07 George Staikos <staikos@webkit.org>
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
2940 Reviewed by Rob Buis.
2942 No way to test this in WebKit.
2944 * platform/network/blackberry/NetworkJob.cpp: Add early return.
2945 (WebCore::NetworkJob::sendRequestWithCredentials):
2947 2012-08-07 Alexander Pavlov <apavlov@chromium.org>
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
2952 Reviewed by Vsevolod Vlasov.
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.
2958 * inspector/front-end/InspectorView.js:
2959 (WebInspector.InspectorView):
2960 (WebInspector.InspectorView.prototype._keyPress):
2962 2012-08-07 Robin Cao <robin.cao@torchmobile.com.cn>
2964 [BlackBerry] GL scissor test is accidentally turned off
2965 https://bugs.webkit.org/show_bug.cgi?id=93360
2968 Reviewed by Antonio Gomes.
2970 The GL scissor test is accidentally turned off inside drawTextures().
2971 This is wrong and should be removed.
2973 * platform/graphics/blackberry/LayerCompositingThread.cpp:
2974 (WebCore::LayerCompositingThread::drawTextures):
2976 2012-08-07 Abhishek Arya <inferno@chromium.org>
2978 Crash in InlineFlowBox::deleteLine.
2979 https://bugs.webkit.org/show_bug.cgi?id=88795
2981 Reviewed by Tony Chang.
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).
2988 Test: fullscreen/full-screen-line-boxes-crash.html
2990 * rendering/RenderFullScreen.cpp:
2991 (RenderFullScreen::wrapRenderer):
2993 2012-08-07 Vsevolod Vlasov <vsevik@chromium.org>
2995 Web Inspector: Do not disable network tracking while profiling cpu.
2996 https://bugs.webkit.org/show_bug.cgi?id=93359
2998 Reviewed by Yury Semikhatsky.
3000 Removed network tracking enabling/disabling machinery.
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):
3011 2012-08-07 Alexei Filippov <alexeif@chromium.org>
3013 Web Inspector: make the MemoryClassInfo class a not-template
3014 https://bugs.webkit.org/show_bug.cgi?id=93265
3016 Reviewed by Yury Semikhatsky.
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):
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):
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):
3164 (WebCore::Document::reportMemoryUsage):
3166 (WebCore::Element::reportMemoryUsage):
3167 * dom/ElementAttributeData.cpp:
3168 (WebCore::ElementAttributeData::reportMemoryUsage):
3169 * dom/MemoryInstrumentation.h:
3170 (MemoryInstrumentation):
3172 (WebCore::MemoryObjectInfo::reportObjectInfo):
3174 (WebCore::MemoryClassInfo::MemoryClassInfo):
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):
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):
3223 (WebCore::SVGColor::reportDescendantMemoryUsage):
3225 (WebCore::SVGPaint::reportDescendantMemoryUsage):
3227 2012-08-02 Simon Hausmann <simon.hausmann@nokia.com>
3229 [Qt] Remove Qt 4 specific code paths
3230 https://bugs.webkit.org/show_bug.cgi?id=88161
3232 Reviewed by Kenneth Rohde Christiansen.
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:
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):
3302 2012-08-06 Andrey Kosyakov <caseq@chromium.org>
3304 Web Inspector: implement reusable progress bar
3305 https://bugs.webkit.org/show_bug.cgi?id=93267
3307 - Generic progress bar implementation to be used
3308 by various long-running operations in inspector.
3310 Test: inspector/progress-bar.html
3312 Reviewed by Pavel Feldman.
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:
3355 2012-08-07 Peter Rybin <peter.rybin@gmail.com>
3357 Web Inspector: display function scope in UI
3358 https://bugs.webkit.org/show_bug.cgi?id=90631
3360 Reviewed by Yury Semikhatsky.
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.
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):
3385 2012-08-07 Vineet Chaudhary <rgf748@motorola.com>
3387 [V8] Remove custom toV8() calls for TypedArray.
3388 https://bugs.webkit.org/show_bug.cgi?id=93248
3390 Reviewed by Kentaro Hara.
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
3395 Tests: TestTypedArray.idl
3396 Tests under below folders should pass as this does not cause any behavioral changes.
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().
3406 (GetTypeNameOfExternalTypedArray): Method to get view type of TypedArray.
3407 * bindings/scripts/test/V8/V8Float64Array.cpp: Tests results.
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.
3422 2012-08-07 Pavel Feldman <pfeldman@chromium.org>
3424 Web Inspector: [regression r121673] restore link between the command and the result.
3425 https://bugs.webkit.org/show_bug.cgi?id=93280
3427 Reviewed by Vsevolod Vlasov.
3429 Passing lost parameter along.
3431 Test: inspector/console/console-originating-command.html
3433 * inspector/front-end/ConsoleView.js:
3434 (WebInspector.ConsoleView.prototype.runScript.runCallback):
3435 (WebInspector.ConsoleView.prototype.runScript):
3436 (WebInspector.ConsoleView.prototype._printResult):
3438 2012-08-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
3440 CUSTOM_SCHEME_HANDLER flag should depend on REGISTER_PROTOCOL_HANDLER
3441 https://bugs.webkit.org/show_bug.cgi?id=93081
3443 Reviewed by Adam Barth.
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.
3449 No new tests. No new functionality is added.
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:
3458 2012-08-07 Xingnan Wang <xingnan.wang@intel.com>
3460 IndexedDB: Size the Vector in encodeInt/encodeVarInt/encodeString
3461 https://bugs.webkit.org/show_bug.cgi?id=91813
3463 Reviewed by Kentaro Hara.
3465 To avoid memory re-allocation in Vector, init the capability or size of Vector in encodeIn