1 2012-03-23 Kentaro Hara <haraken@chromium.org>
3 Support [ImplementedAs] for attributes
4 https://bugs.webkit.org/show_bug.cgi?id=81605
6 Reviewed by Adam Barth.
8 [ImplementedAs] just supports methods. [ImplementedAs] should support
11 Explained here: https://trac.webkit.org/wiki/WebKitIDL#ImplementedAs
13 Test: bindings/scripts/test/TestObj.idl
15 * bindings/scripts/CodeGenerator.pm: Modified to support [ImplementedAs] for attributes.
16 (AttributeNameForGetterAndSetter):
18 * bindings/scripts/test/TestObj.idl: Added a test case.
20 * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
21 (WebDOMTestObj::strawberry):
22 (WebDOMTestObj::setStrawberry):
23 * bindings/scripts/test/CPP/WebDOMTestObj.h:
24 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
25 (webkit_dom_test_obj_get_strawberry):
26 (webkit_dom_test_obj_set_strawberry):
27 (webkit_dom_test_obj_get_property):
28 (webkit_dom_test_obj_class_init):
29 * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
30 * bindings/scripts/test/JS/JSTestObj.cpp:
32 (WebCore::jsTestObjStrawberry):
33 (WebCore::setJSTestObjStrawberry):
34 * bindings/scripts/test/JS/JSTestObj.h:
36 * bindings/scripts/test/ObjC/DOMTestObj.h:
37 * bindings/scripts/test/ObjC/DOMTestObj.mm:
38 (-[DOMTestObj strawberry]):
39 (-[DOMTestObj setStrawberry:]):
40 * bindings/scripts/test/V8/V8TestObj.cpp:
41 (WebCore::TestObjInternal::strawberryAttrGetter):
43 (WebCore::TestObjInternal::strawberryAttrSetter):
46 2012-03-23 Tommy Widenflycht <tommyw@google.com>
48 The JSC code generator doesn't generate correct code for Constructors
49 https://bugs.webkit.org/show_bug.cgi?id=82046
51 Reviewed by Kentaro Hara.
53 The main bulk of generated code for constructors uses the name jsConstructor
54 for the created object, and then calls GenerateParametersCheck which generates
55 code that uses the name castedThis.
57 * bindings/scripts/CodeGeneratorJS.pm:
58 (GenerateConstructorDefinition):
59 * bindings/scripts/test/JS/JSTestInterface.cpp:
60 (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
61 * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
62 (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
63 * bindings/scripts/test/JS/JSTestObj.cpp:
64 (WebCore::JSTestObjConstructor::finishCreation):
65 (WebCore::JSTestObjConstructor::constructJSTestObj):
66 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
67 (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
68 * bindings/scripts/test/TestObj.idl:
69 * bindings/scripts/test/V8/V8TestObj.cpp:
70 (WebCore::V8TestObj::constructorCallback):
72 2012-03-23 Tommy Widenflycht <tommyw@google.com>
74 The JSC code generator can't handle boolean arguments for Callbacks
75 https://bugs.webkit.org/show_bug.cgi?id=82045
77 Reviewed by Kentaro Hara.
79 CodeGeneratorJS.pm only handles DOMStrings and objects as arguments
80 for a Callback, so I added support for boolean values as well.
82 * bindings/scripts/CodeGeneratorJS.pm:
83 (GenerateCallbackImplementation):
84 * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
85 (WebDOMTestCallback::callbackWithBoolean):
86 * bindings/scripts/test/CPP/WebDOMTestCallback.h:
88 * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
89 (webkit_dom_test_callback_callback_with_boolean):
90 * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
91 * bindings/scripts/test/JS/JSTestCallback.cpp:
92 (WebCore::JSTestCallback::callbackWithBoolean):
94 * bindings/scripts/test/JS/JSTestCallback.h:
96 * bindings/scripts/test/ObjC/DOMTestCallback.h:
97 * bindings/scripts/test/ObjC/DOMTestCallback.mm:
98 (-[DOMTestCallback callbackWithBoolean:]):
99 * bindings/scripts/test/TestCallback.idl:
100 * bindings/scripts/test/V8/V8TestCallback.cpp:
101 (WebCore::V8TestCallback::callbackWithBoolean):
103 * bindings/scripts/test/V8/V8TestCallback.h:
106 2012-03-23 Allan Sandfeld Jensen <allan.jensen@nokia.com>
108 Touch adjustment forgets some subtarget quads.
109 https://bugs.webkit.org/show_bug.cgi?id=82044
111 Reviewed by Kenneth Rohde Christiansen.
113 Do not uncritically skip all nodes that are ancestors to other test results.
114 Instead return the inner-most element if multiple nodes have the same distance.
116 Test: touchadjustment/block-testing.html
118 * page/TouchAdjustment.cpp:
119 (WebCore::TouchAdjustment::compileSubtargetList):
120 (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
122 2012-03-23 Allan Sandfeld Jensen <allan.jensen@nokia.com>
124 TouchAdjustment does not correct for frame position
125 https://bugs.webkit.org/show_bug.cgi?id=82043
127 Reviewed by Kenneth Rohde Christiansen.
129 Convert geometry to window coordinates before calculating distance.
131 Test: touchadjustment/iframe.html
133 * page/TouchAdjustment.cpp:
134 (WebCore::TouchAdjustment::distanceSquaredToTargetCenterLine):
136 2012-03-23 Vlad Voicu <vladv@rosedu.org>
138 Fixed minor WebInspector display issue
139 Clicking on disabled sections in Styles Sidebar Pane creates new elements.
140 https://bugs.webkit.org/show_bug.cgi?id=81925
142 Reviewed by Timothy Hatcher
144 No new tests should be required.
146 * inspector/front-end/StylesSidebarPane.js:
147 (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
148 (WebInspector.StylePropertyTreeElement.prototype):
150 2012-03-23 Kentaro Hara <haraken@chromium.org>
152 Unreviewed, rebaselined run-bindings-tests results.
154 * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
155 * bindings/scripts/test/CPP/WebDOMTestObj.h:
156 * bindings/scripts/test/JS/JSTestObj.cpp:
157 (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
158 (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
159 (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
160 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
161 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
162 * bindings/scripts/test/V8/V8TestObj.cpp:
163 (WebCore::TestObjInternal::methodWithCallbackArgCallback):
164 (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
165 (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
166 (WebCore::TestObjInternal::overloadedMethod5Callback):
167 (WebCore::TestObjInternal::overloadedMethodCallback):
169 2012-03-23 Ryosuke Niwa <rniwa@webkit.org>
171 cssText should use StringBuilder
172 https://bugs.webkit.org/show_bug.cgi?id=82028
174 Reviewed by Hajime Morita.
176 Make StylePropertySet::asText more efficient by deploying StringBuilder;
177 avoids heap churn by String::operator+ and String::operator+=.
179 * css/StylePropertySet.cpp:
180 (WebCore::StylePropertySet::asText):
182 2012-03-23 Ryosuke Niwa <rniwa@webkit.org>
184 REGRESSION(r111754): plugins/reloadplugins-and-pages.html fails on all platforms
185 https://bugs.webkit.org/show_bug.cgi?id=82035
187 Rollout r111754 since it caused a test to fail and the test added by the patch
188 is failing on Mac WebKit 2.
191 * html/HTMLPlugInElement.cpp:
192 (WebCore::HTMLPlugInElement::detach):
194 (WebCore::HTMLPlugInElement::removedFromDocument):
195 * html/HTMLPlugInElement.h:
197 * testing/Internals.cpp:
198 * testing/Internals.h:
200 * testing/Internals.idl:
202 2012-03-23 Adam Barth <abarth@webkit.org>
204 Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 2)
205 https://bugs.webkit.org/show_bug.cgi?id=82026
207 Reviewed by Kentaro Hara.
209 This patch removes DOMWindow::resetNotifications, which was unneeded
210 special-case logic for clearing the notifications center. The previous
211 patch that tried to accomplish the same thing did not override
212 willDetachPage, which is why it caused crashes.
214 There's actually a cleaner way to handle these cases, which will let us
215 implement reconnectFrame, but that will need to wait for the next
218 * notifications/DOMWindowNotifications.cpp:
219 (WebCore::DOMWindowNotifications::DOMWindowNotifications):
220 (WebCore::DOMWindowNotifications::from):
221 (WebCore::DOMWindowNotifications::webkitNotifications):
223 (WebCore::DOMWindowNotifications::disconnectFrame):
224 (WebCore::DOMWindowNotifications::willDetachPage):
225 (WebCore::DOMWindowNotifications::reset):
226 * notifications/DOMWindowNotifications.h:
227 (DOMWindowNotifications):
228 * page/DOMWindow.cpp:
229 (WebCore::DOMWindow::willDetachPage):
230 (WebCore::DOMWindow::disconnectDOMWindowProperties):
231 (WebCore::DOMWindow::clearDOMWindowProperties):
235 (WebCore::Frame::willDetachPage):
237 2012-03-22 Adam Barth <abarth@webkit.org>
239 Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 1)
240 https://bugs.webkit.org/show_bug.cgi?id=82015
242 Reviewed by Kentaro Hara.
244 This patch moves DOMWindow.webkitNotifications from DOMWindow.idl to
245 DOMWindowNotificiations.idl in preparation for moving notificiations
248 A future patch will remove DOMWindow::resetNotificaitions in favor of
249 more general mechanisms.
252 * DerivedSources.make:
253 * DerivedSources.pri:
254 * GNUmakefile.list.am:
257 * WebCore.vcproj/WebCore.vcproj:
258 * WebCore.xcodeproj/project.pbxproj:
259 * notifications/DOMWindowNotifications.cpp: Added.
261 (WebCore::DOMWindowNotifications::DOMWindowNotifications):
262 (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
263 (WebCore::DOMWindowNotifications::from):
264 (WebCore::DOMWindowNotifications::webkitNotifications):
265 (WebCore::DOMWindowNotifications::reset):
266 (WebCore::DOMWindowNotifications::supplementName):
267 * notifications/DOMWindowNotifications.h: Added.
269 (DOMWindowNotifications):
270 * notifications/DOMWindowNotifications.idl: Added.
271 * page/DOMWindow.cpp:
272 (WebCore::DOMWindow::~DOMWindow):
274 (WebCore::DOMWindow::resetNotifications):
278 * page/DOMWindow.idl:
280 2012-03-22 Li Yin <li.yin@intel.com>
282 A client MUST close a connection if it detects a masked frame
283 https://bugs.webkit.org/show_bug.cgi?id=81361
285 Reviewed by Kent Tamura.
287 A server must not mask any frames that it sends to the client.
288 Change the test case, not mask the frames from server to client.
290 Test: http/tests/websocket/tests/hybi/invalid-masked-frames-from-server.html
292 * Modules/websockets/WebSocketChannel.cpp:
293 (WebCore::WebSocketChannel::processFrame):
295 2012-03-22 Li Yin <li.yin@intel.com>
297 [WebSocket]The minimal number of bytes MUST be used to encode the length
298 https://bugs.webkit.org/show_bug.cgi?id=81443
300 Reviewed by Kent Tamura.
302 From RFC 6455 http://tools.ietf.org/html/rfc6455#section-5.2
303 the minimal number of bytes MUST be used to encode the length
305 New test case : http/tests/websocket/tests/hybi/invalid-encode-length.html
307 * Modules/websockets/WebSocketChannel.cpp:
308 (WebCore::WebSocketChannel::parseFrame):
310 2012-03-22 Adam Barth <abarth@webkit.org>
312 Unreviewed. Sort xcodeproj file.
314 * WebCore.xcodeproj/project.pbxproj:
316 2012-03-22 Mao Yujie <yujie.mao@intel.com>
318 Implement strict testing criterion for callback function definition
319 https://bugs.webkit.org/show_bug.cgi?id=80005
321 Reviewed by Adam Barth.
323 Callback function should be defined as the function type instead of
326 LayoutTest: fast/dom/MediaStream/argument-types.html
328 * bindings/scripts/CodeGeneratorJS.pm:
329 (GenerateParametersCheckExpression):
330 (GenerateParametersCheck):
331 * bindings/scripts/CodeGeneratorV8.pm:
332 (GenerateParametersCheckExpression):
333 (GenerateParametersCheck):
335 2012-03-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
337 Convert hasGrammarMarker to use Internals interface
338 https://bugs.webkit.org/show_bug.cgi?id=82004
340 Reviewed by Ryosuke Niwa.
342 Remove hasGrammarMarker functions, because it is able to work in the
343 cross-port way through the Internals interface.
345 No new tests, since we are improving here the infra-structure
346 for testing a specific method.
348 * testing/Internals.cpp:
349 (WebCore::Internals::hasGrammarMarker):
351 * testing/Internals.h:
353 * testing/Internals.idl:
355 2012-03-22 Xingnan Wang <xingnan.wang@intel.com>
357 Add exception for the setter of "fftSize" in RealtimeAnalyserNode
358 https://bugs.webkit.org/show_bug.cgi?id=81748
360 Reviewed by Chris Rogers.
362 * Modules/webaudio/RealtimeAnalyser.cpp:
363 (WebCore::RealtimeAnalyser::setFftSize):
364 * Modules/webaudio/RealtimeAnalyser.h:
366 * Modules/webaudio/RealtimeAnalyserNode.cpp:
367 (WebCore::RealtimeAnalyserNode::setFftSize):
369 * Modules/webaudio/RealtimeAnalyserNode.h:
370 (RealtimeAnalyserNode):
371 * Modules/webaudio/RealtimeAnalyserNode.idl:
373 2012-03-22 Leo Yang <leo.yang@torchmobile.com.cn>
375 [BlackBerry] Add HistoryItemViewState for BlackBerry port
376 https://bugs.webkit.org/show_bug.cgi?id=81867
378 Reviewed by Rob Buis.
380 HistoryItemViewState is the blackberry specific field of HistoryItem.
381 It's used to maintain the porting specific view state.
383 No new test because the port can't be built yet.
385 * history/HistoryItem.h:
387 (WebCore::HistoryItem::viewState):
389 2012-03-22 SravanKumar Sandela <ssandela@innominds.com>
391 Fieldset unexpectedly stretches to minimum intrinsic width
392 https://bugs.webkit.org/show_bug.cgi?id=79128
394 Reviewed by Julien Chaffraix.
396 Fieldset element width will now check if css width is specified explicitly
397 before stretching to minimum intrinsic width. The reference
398 can be taken from IE9, instead of FF(FF acknowledged the broken behavior).
400 Tests: fast/forms/fieldset-width-nostretch-ifspecified-expected.html
401 fast/forms/fieldset-width-nostretch-ifspecified.html
403 * rendering/RenderFieldset.cpp:
404 (WebCore::RenderFieldset::stretchesToMinIntrinsicLogicalWidth):
406 * rendering/RenderFieldset.h:
409 2012-03-22 Shawn Singh <shawnsingh@chromium.org>
411 [chromium] Target surface should be damaged for a new layers even when layer had no changes
412 https://bugs.webkit.org/show_bug.cgi?id=81879
414 Reviewed by Adrienne Walker.
416 Unit test added to CCDamageTrackerTest.
418 * platform/graphics/chromium/cc/CCDamageTracker.cpp:
419 (WebCore::CCDamageTracker::removeRectFromCurrentFrame): added a
420 boolean arg to detect if the layer is new on this update.
422 (WebCore::CCDamageTracker::extendDamageForLayer): added logic that
423 damages the target surface if the layer is new.
425 (WebCore::CCDamageTracker::extendDamageForRenderSurface): added
426 logic that damages the target surface if the descendant surface is
427 new; similar logic for the surface's replica if the replica is new.
429 * platform/graphics/chromium/cc/CCDamageTracker.h:
432 2012-03-22 Charles Wei <charles.wei@torchmobile.com.cn>
434 [BlackBerry] Need to store the meta info of a page in the ViewState of the history
435 https://bugs.webkit.org/show_bug.cgi?id=82000
437 Reviewed by Rob Buis.
439 Internally reviewed by George Staikos.
441 No new tests, BlackBerry porting doesn't build yet upstreaming.
443 * history/blackberry/HistoryItemViewState.h:
444 (WebCore::HistoryItemViewState::HistoryItemViewState):
445 (HistoryItemViewState):
447 2012-03-22 Adam Klein <adamk@chromium.org>
449 [v8] wrapSlow methods should ref underlying object before creating wrapper
450 https://bugs.webkit.org/show_bug.cgi?id=81919
452 Reviewed by Adam Barth.
454 Because instatiating the wrapper can trigger GC, it's important that
455 wrapSlow() hold a reference to an object when creating a wrapper for
456 that object. Once the V8 wrapper exists and is associated with the object,
457 the reference can be handed off (via leakRef) to be handled by the normal
458 binding code logic (where derefObject is called if the handle is GCed).
460 Binding tests have been updated to reflect this change.
462 Testing the change directly is hard. Any test landed today would only
463 be a valid test until V8's logic about when to GC changes, at which point
464 it would become dead weight. So I don't think it's worth landing a
465 layout test along with this.
467 * bindings/scripts/CodeGeneratorV8.pm:
468 (GenerateHeader): Make wrapSlow take a PassRefPtr for RefCounted objects.
469 (GenerateToV8Converters): Get rid of the explicit call to ref() and
470 instead call leakRef() when adding a RefCounted object to the DOM map.
471 (GetPassRefPtrType): Helper to generate "PassRefPtr<T>", or "PassRefPtr<T<U> >" as appropriate.
472 * bindings/scripts/test/V8/V8Float64Array.cpp:
473 (WebCore::V8Float64Array::wrapSlow):
474 * bindings/scripts/test/V8/V8Float64Array.h:
476 * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
477 (WebCore::V8TestActiveDOMObject::wrapSlow):
478 * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
479 (V8TestActiveDOMObject):
480 * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
481 (WebCore::V8TestCustomNamedGetter::wrapSlow):
482 * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
483 (V8TestCustomNamedGetter):
484 * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
485 (WebCore::V8TestEventConstructor::wrapSlow):
486 * bindings/scripts/test/V8/V8TestEventConstructor.h:
487 (V8TestEventConstructor):
488 * bindings/scripts/test/V8/V8TestEventTarget.cpp:
489 (WebCore::V8TestEventTarget::wrapSlow):
490 * bindings/scripts/test/V8/V8TestEventTarget.h:
492 * bindings/scripts/test/V8/V8TestInterface.cpp:
493 (WebCore::V8TestInterface::wrapSlow):
494 * bindings/scripts/test/V8/V8TestInterface.h:
496 * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
497 (WebCore::V8TestMediaQueryListListener::wrapSlow):
498 * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
499 (V8TestMediaQueryListListener):
500 * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
501 (WebCore::V8TestNamedConstructor::wrapSlow):
502 * bindings/scripts/test/V8/V8TestNamedConstructor.h:
503 (V8TestNamedConstructor):
504 * bindings/scripts/test/V8/V8TestObj.cpp:
505 (WebCore::V8TestObj::wrapSlow):
506 * bindings/scripts/test/V8/V8TestObj.h:
508 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
509 (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
510 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
511 (V8TestSerializedScriptValueInterface):
513 2012-03-22 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
515 [BlackBerry] add interface clearCredentials() and clearNeverRememberSites()
516 https://bugs.webkit.org/show_bug.cgi?id=81887
518 Reviewed by Rob Buis.
520 Fixed SQL issue when clearing table logins and table never_remember.
524 * platform/network/blackberry/CredentialBackingStore.cpp:
525 (WebCore::CredentialBackingStore::clearLogins):
526 (WebCore::CredentialBackingStore::clearNeverRemember):
528 2012-03-22 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
530 [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
531 https://bugs.webkit.org/show_bug.cgi?id=80135
533 Reviewed by Rob Buis.
535 Modified the interface function authenticationChallenge() in class
536 PageClientBlackBerry, moved Credential from return value to the
537 function's reference parameter, and returned a bool to indicate if
538 user pressed Ok button or not.
539 Removed the logic which checks m_currentWebChallenge not null,
540 because we should challenge user again if the last provided credential
541 is not valid; also added the logic that will popup challenge
542 dialog again immediately if user press Ok buttton directly without
547 * platform/blackberry/PageClientBlackBerry.h:
548 * platform/network/blackberry/NetworkJob.cpp:
549 (WebCore::NetworkJob::handleAuthHeader):
550 (WebCore::NetworkJob::sendRequestWithCredentials):
552 2012-03-22 Jason Liu <jason.liu@torchmobile.com.cn>
554 [BlackBerry] Synchronize platform/network/blackberry
555 https://bugs.webkit.org/show_bug.cgi?id=81874
557 We changed a lot in these files locally. But the changes are not upstreamed.
558 It is not convenient to do the other upstreaming work based on these differences.
559 So upstream these changes.
561 Reviewed by Rob Buis.
563 No new tests. Just synchronize codes.
565 * platform/network/blackberry/NetworkJob.cpp:
566 (WebCore::NetworkJob::NetworkJob):
567 (WebCore::NetworkJob::initialize):
568 (WebCore::NetworkJob::handleNotifyHeaderReceived):
569 (WebCore::NetworkJob::handleNotifyDataReceived):
570 (WebCore::NetworkJob::sendResponseIfNeeded):
571 (WebCore::NetworkJob::sendRequestWithCredentials):
572 (WebCore::NetworkJob::handleAbout):
573 * platform/network/blackberry/NetworkJob.h:
574 (WebCore::NetworkJob::isError):
576 * platform/network/blackberry/NetworkManager.cpp:
577 (WebCore::NetworkManager::startJob):
578 * platform/network/blackberry/ResourceRequest.h:
579 (WebCore::ResourceRequest::ResourceRequest):
580 * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
581 (WebCore::platformTargetTypeForRequest):
583 2012-03-22 Tom Sepez <tsepez@chromium.org>
585 XSS Auditor bypass via script tag src=data:, URLS.
586 https://bugs.webkit.org/show_bug.cgi?id=81948
588 Reviewed by Adam Barth.
590 This change fixes an XSSAuditor bypass wherby a script with a data: URL src
591 attribute could evade detection by using characters from the page to create
592 a snippet for matching not found in the URL's reflected vector. This change
593 terminates the snippet for matching earlier in these cases.
595 Test: http/tests/security/xssAuditor/script-tag-with-source-data-url2.html
597 * html/parser/XSSAuditor.cpp:
598 (WebCore::XSSAuditor::decodedSnippetForAttribute):
600 2012-03-22 Dana Jansens <danakj@chromium.org>
602 [chromium] Incorrect assert on animating opacity for a surface
603 https://bugs.webkit.org/show_bug.cgi?id=81994
605 Reviewed by Adrienne Walker.
607 Draw opacity and animation state match on the surface itself. A
608 surface with animating opacity always has an owning layer without
609 animation, as the surface does the animation for it.
611 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
612 (WebCore::CCLayerTreeHost::paintLayerContents):
614 2012-03-22 Dana Jansens <danakj@chromium.org>
616 [chromium] Skip frames when checkerboarding an animation
617 https://bugs.webkit.org/show_bug.cgi?id=81716
619 Reviewed by Adrienne Walker.
621 This will stop drawing frames when prepareToDraw fails, if the draw is
622 not forced. The expected behaviour is outlined below by the unit tests.
624 When a draw fails, we:
625 1. Set m_needsRedraw to try again next vsync
626 2. Set m_needsCommit because we need more data from webkit to succeed
627 3. Set m_drawIfPossibleFailed. This allows us to try draw again within
628 the same vsync *if* a commit finishes during this time.
630 Unit test: CCSchedulerTest.RequestRedrawInsideFailedDraw
631 CCSchedulerTest.RequestCommitInsideFailedDraw
632 CCSchedulerTest.NoBeginFrameWhenDrawFails
633 CCSchedulerStateMachineTest.TestFailedDrawSetsNeedsCommitAndDoesNotDrawAgain
634 CCSchedulerStateMachineTest.TestSetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw
635 CCSchedulerStateMachineTest.TestCommitAfterFailedDrawAllowsDrawInSameFrame
636 CCSchedulerStateMachineTest.TestCommitAfterFailedAndSuccessfulDrawDoesNotAllowDrawInSameFrame
637 CCSchedulerStateMachineTest.TestFailedDrawIsRetriedNextVSync
639 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
640 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
641 (WebCore::CCLayerTreeHostImpl::prepareToDraw):
642 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
643 (CCLayerTreeHostImpl):
644 * platform/graphics/chromium/cc/CCScheduler.cpp:
645 (WebCore::CCScheduler::processScheduledActions):
646 * platform/graphics/chromium/cc/CCScheduler.h:
648 * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
649 (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
650 (WebCore::CCSchedulerStateMachine::nextAction):
651 (WebCore::CCSchedulerStateMachine::updateState):
652 (WebCore::CCSchedulerStateMachine::didDrawIfPossibleCompleted):
654 * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
655 (CCSchedulerStateMachine):
656 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
657 (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
659 (WebCore::CCThreadProxy::scheduledActionDrawAndSwapIfPossible):
660 (WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced):
661 * platform/graphics/chromium/cc/CCThreadProxy.h:
664 2012-03-22 W. James MacLean <wjmaclean@chromium.org>
666 [chromium] Force update of nonFastScrollableRegion if target CCLayerImpl has been freshly created.
667 https://bugs.webkit.org/show_bug.cgi?id=81968
669 Reviewed by Adrienne Walker.
671 Added unit test to existing tests for TreeSynchronizer.
673 When creating a new CCLayerImpl during tree synchronization, make sure we transfer the nonFastScrollableRegion as
674 the new CCLayerImpl will default to an empty region.
676 * platform/graphics/chromium/LayerChromium.h:
677 (WebCore::LayerChromium::nonFastScrollableRegion):
678 (WebCore::LayerChromium::setNonFastScrollableRegionChanged):
679 * platform/graphics/chromium/TreeSynchronizer.cpp:
680 (WebCore::TreeSynchronizer::reuseOrCreateCCLayerImpl):
682 2012-03-22 Raphael Kubo da Costa <rakuco@FreeBSD.org>
684 [CMake] Unreviewed build fix after r111778.
686 * CMakeLists.txt: Replace ${JAVASCRIPTCORE_DIR}/wtf includes with
689 2012-03-22 Tony Chang <tony@chromium.org>
691 Unreviewed, fix chromium build after wtf move.
693 Only use newwtf, remove references to wtf.
695 * WebCore.gyp/WebCore.gyp:
697 2012-03-22 Benjamin Poulain <bpoulain@apple.com>
699 Remove an obsolete comment regarding magic frames from Geolocation
700 https://bugs.webkit.org/show_bug.cgi?id=81871
702 Reviewed by Alexey Proskuryakov.
704 Moving a frame into another document is no longer possible after r111361. The comment
707 * Modules/geolocation/Geolocation.cpp:
708 (WebCore::Geolocation::stop):
710 2012-03-22 Csaba Osztrogonác <ossy@webkit.org>
712 Actually move WTF files to their new home
713 https://bugs.webkit.org/show_bug.cgi?id=81844
715 [Qt] Unreviewed buildfix after r111778.
719 2012-03-22 Kentaro Hara <haraken@chromium.org>
721 run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl
722 https://bugs.webkit.org/show_bug.cgi?id=81852
724 Reviewed by Adam Barth.
726 run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl:
728 Use of uninitialized value in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2743.
729 Use of uninitialized value $name in substitution (s///) at WebCore/bindings/scripts/CodeGenerator.pm line 119.
730 Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2969.
731 Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2972.
732 Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 367.
733 Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 368.
736 This is because [Constructor(...)] does not yet support [Optional] arguments.
737 It just supports [Optional=DefaultIsUndefined] and [Optional=DefaultIsNullString] arguments:
738 https://trac.webkit.org/wiki/WebKitIDL#Constructor
740 This patch replaces [Optional] with [Optional=DefaultIsUndefined]
741 in TestSerializedScriptValueInterface.idl.
743 Test: bindings/scripts/test/TestSerializedScriptValueInterface.idl
745 * bindings/scripts/CodeGeneratorJS.pm:
746 (GenerateConstructorDefinition):
747 * bindings/scripts/CodeGeneratorV8.pm:
748 (GenerateConstructorCallback):
749 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
750 (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
751 * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
752 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
753 (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
755 2012-03-22 Michal Mocny <mmocny@google.com>
757 [chromium] LayerRendererChromium should use GpuMemoryAllocationChanged callback to explicitly manage framebuffer.
758 https://bugs.webkit.org/show_bug.cgi?id=81823
760 Reviewed by Adrienne Walker.
762 New UnitTests: LayerRendererChromiumTest
764 * platform/graphics/chromium/LayerRendererChromium.cpp:
765 (LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
766 (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::create):
767 (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::~LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
768 (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChanged):
769 (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
771 (WebCore::LayerRendererChromium::LayerRendererChromium):
772 (WebCore::LayerRendererChromium::initialize):
773 (WebCore::LayerRendererChromium::~LayerRendererChromium):
774 (WebCore::LayerRendererChromium::setVisible):
775 (WebCore::LayerRendererChromium::swapBuffers):
776 (WebCore::LayerRendererChromium::discardFramebuffer):
777 (WebCore::LayerRendererChromium::ensureFramebuffer):
778 * platform/graphics/chromium/LayerRendererChromium.h:
780 (LayerRendererChromiumClient):
781 (LayerRendererChromium):
782 (WebCore::LayerRendererChromium::isFramebufferDiscarded):
783 (ScopedEnsureFramebufferAllocation):
784 (WebCore::ScopedEnsureFramebufferAllocation::ScopedEnsureFramebufferAllocation):
785 (WebCore::ScopedEnsureFramebufferAllocation::~ScopedEnsureFramebufferAllocation):
786 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
787 (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
788 (LayerRendererCapabilities):
789 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
790 (WebCore::CCLayerTreeHostImpl::setVisible):
791 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
792 (CCLayerTreeHostImpl):
793 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
794 (WebCore::CCSingleThreadProxy::compositeAndReadback):
795 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
796 (WebCore::CCThreadProxy::compositeAndReadback):
798 2012-03-22 Adam Barth <abarth@webkit.org>
800 ContainerNode::insertedIntoTree and removedFromTree use weak iteration patterns
801 https://bugs.webkit.org/show_bug.cgi?id=80570
803 Reviewed by Ryosuke Niwa.
805 These functions use weak iteration patterns, but as far as I can tell,
806 we never execute script below these functions. This patch adds ASSERTs
807 to help us avoid adding events in the future.
809 * dom/ContainerNode.cpp:
810 (WebCore::ContainerNode::insertedIntoTree):
811 (WebCore::ContainerNode::removedFromTree):
812 * html/HTMLMediaElement.cpp:
813 (WebCore::HTMLMediaElement::loadInternal):
814 - There's a somewhat complex call chain from insertedIntoTree into
815 HTMLMediaElement, and somewhat complex control flow below
816 loadInternal that eventually leads to the BeforeLoad event being
817 fired. In studying this code, I don't see a way for the
818 BeforeLoad event to be fired during insertedIntoTree, but I've
819 added this assert here to make sure we don't call loadInternal
820 when we're not supposed to dispatch events. This ASSERT should
821 help us catch these BeforeLoad errors more quickly.
823 2012-03-22 Raphael Kubo da Costa <rakuco@FreeBSD.org>
825 Crash in fast/dom/navigator-detached-nocrash.html
826 https://bugs.webkit.org/show_bug.cgi?id=81773
828 Reviewed by Adam Barth.
830 BatteryManager::create() blindly assumes the Navigator* it
831 receives has a valid Frame, which is not always the case, as made
832 evident by the crashing test.
834 Follow abarth's suggestion and just stop
835 NavigatorBattery::webkitBattery() before it reaches the call to
836 BatteryManager::create() if that's the case.
838 No new tests, covered by fast/dom/navigator-detached-nocrash.html.
840 * Modules/battery/NavigatorBattery.cpp:
841 (WebCore::NavigatorBattery::webkitBattery):
843 2012-03-22 Emil A Eklund <eae@chromium.org>
845 Unreviewed, add missing include statement for CSSValueList.h.
847 * css/CSSStyleSelector.h:
849 2012-03-22 Tony Chang <tony@chromium.org>
851 flexbox flexing implementation should match the spec
852 https://bugs.webkit.org/show_bug.cgi?id=70796
854 Reviewed by Ojan Vafai.
856 Match the algorithm in the spec. Handling min/max constraints are slightly improved.
857 http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
859 New test cases in css3/flexbox/flex-algorithm-min-max.html.
861 * rendering/RenderFlexibleBox.cpp:
862 (WebCore::adjustFlexSizeForMinAndMax): Step 5 of resolving flexible lengths.
864 (WebCore::RenderFlexibleBox::Violation::Violation):
865 (RenderFlexibleBox::Violation):
866 (WebCore::RenderFlexibleBox::freezeViolations): Used by step 6.
867 (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
868 * rendering/RenderFlexibleBox.h:
870 2012-03-22 Emil A Eklund <eae@chromium.org>
872 Unreviewed, add missing import.
874 * rendering/RenderThemeMac.mm:
876 2012-03-22 Anders Carlsson <andersca@apple.com>
878 ASSERT(!needsLayout) in RenderView.cpp when visiting http://www.panic.com/blog/
879 https://bugs.webkit.org/show_bug.cgi?id=81953
880 <rdar://problem/11086998>
882 Reviewed by Sam Weinig.
884 If a page ends up creating CATiledLayers, CA transactions can be committed outside of the normal
885 CA run loop observer, so we can't call setNeedsDisplay on tile cache layers directly because then
886 we'll end up calling into painting code before all the layers have been flushed.
888 Fix this by adding a list of dirty rects to platformCALayerDidCreateTiles and change GraphicsLayerCA to
889 mark them as dirty. This ensures that any CA transaction commits won't cause newly added layers to be painted.
891 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
892 (WebCore::LayerClient::platformCALayerDidCreateTiles):
893 * platform/graphics/ca/GraphicsLayerCA.cpp:
894 (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
895 * platform/graphics/ca/GraphicsLayerCA.h:
897 * platform/graphics/ca/PlatformCALayerClient.h:
898 (PlatformCALayerClient):
899 * platform/graphics/ca/mac/TileCache.mm:
900 (WebCore::TileCache::setScale):
901 (WebCore::TileCache::revalidateTiles):
902 * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
903 (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDidCreateTiles):
905 2012-03-19 Robert Hogan <robert@webkit.org>
907 Text should overflow when list item height set to 0
908 https://bugs.webkit.org/show_bug.cgi?id=78726
910 Reviewed by Julien Chaffraix.
912 Tests: css2.1/20110323/height-applies-to-010a-expected.html
913 fast/css/heightless-list-item-expected.html
914 fast/css/heightless-list-item.html
916 * rendering/RenderListItem.cpp:
917 (WebCore::RenderListItem::paint):
918 If the list item has height:0, only paint it if the list item allows any block or inline content
919 to overflow unclipped. The zero-height check is a shortcut to avoid unnecessary painting and
920 this seems to be the only case where there's something to do.
922 2012-03-22 Dave Michael <dmichael@chromium.org>
924 HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
925 https://bugs.webkit.org/show_bug.cgi?id=80428
927 Reviewed by Eric Seidel.
929 Make HTMLPluginElement release its m_NPObject in detach() to break a
930 reference-counting cycle that happens on reload or navigation. With this
931 change, HTMLPlugInElement::removedFromDocument is unnecessary, so it
932 was removed. Note that Releasing m_NPObject does not result in a call to
933 the plugin; it simply releases a reference count on the wrapper object
934 for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked
935 when the render tree is destroyed, when PluginView calls
936 PluginPackage::unload.) Thus, it is safe to release m_NPObject in
937 detach, because it can not result in layout or style changes.
939 Also added numberOfLiveNodes() and numberOfLiveDocuments() to
940 window.internals to enable testing.
942 Test: plugins/netscape-dom-access-and-reload.html
945 * html/HTMLPlugInElement.cpp:
946 (WebCore::HTMLPlugInElement::detach):
947 * html/HTMLPlugInElement.h:
949 * testing/Internals.cpp:
950 (WebCore::Internals::numberOfLiveDocuments):
951 (WebCore::Internals::numberOfLiveNodes):
953 * testing/Internals.h:
955 * testing/Internals.idl:
957 2012-03-22 Shawn Singh <shawnsingh@chromium.org>
959 [chromium] Make CCDamageTracker robust to empty layer lists
960 https://bugs.webkit.org/show_bug.cgi?id=81831
962 Reviewed by Adrienne Walker.
964 Added a unit test in CCDamageTrackerTest that causes a crash in
965 the old code. With this patch applied, the crash will not occur.
966 In theory, that crash should never occur anyway, unless there is a
967 bug outside the damage tracker, but for robustness it's
968 appropriate to handle it properly.
970 In addition to this fix, performed some trivial maintenance on the
973 * platform/graphics/chromium/cc/CCDamageTracker.cpp:
974 (WebCore::CCDamageTracker::updateDamageTrackingState): removed
975 unclean code that accessed the targetSurface to get necessary
976 information. Instead, we now pass those args through the damage
979 * platform/graphics/chromium/cc/CCDamageTracker.h:
980 (CCDamageTracker): modified args passed to damage tracker on update.
982 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
983 (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):
984 modified args passed to damage tracker on update.
986 2012-03-22 Julien Chaffraix <jchaffraix@webkit.org>
988 Enable style sharing for elements with a style attribute
989 https://bugs.webkit.org/show_bug.cgi?id=81523
991 Reviewed by Antti Koivisto.
993 Memory improvement change only.
995 Overall, this is a performance wash (some benchmarks may regress a bit due to the increase in time taken
996 by CSSStyleSelector::locateSharedStyle as we try more nodes, others increase their performance due to style sharing).
998 Instrumenting our style sharing, this should give us some nice memory shavings on some benchmarks:
999 - HTML5 isn't impacted as it doesn't use much inline style
1000 - page cyclers' intl1 showed a 6% increase in style sharing.
1002 * css/CSSStyleSelector.cpp:
1003 (WebCore::CSSStyleSelector::canShareStyleWithElement):
1004 This method now handles inline style like presentation attributes on the element.
1006 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1007 (WebCore::CSSStyleSelector::locateSharedStyle):
1008 Don't bail out for an element with an inline style declaration.
1010 (WebCore::CSSStyleSelector::stylesEqual):
1011 Generalized attributeStylesEqual to share the logic between attribute and
1012 inline style property set. This means that attribute checks are actually
1013 doing a little extra more work but that didn't impact our benchmarks.
1015 2012-03-22 Kevin Ollivier <kevino@theolliviers.com>
1017 [wx] Unreviewed. WebDOM build fix after array type changes.
1019 * bindings/scripts/CodeGeneratorCPP.pm:
1022 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1024 Web Inspector: text gutter decorations should move upon edits.
1025 https://bugs.webkit.org/show_bug.cgi?id=81932
1027 Reviewed by Vsevolod Vlasov.
1029 Decorations set by the line number now shift as editing inserts / removes lines.
1031 * inspector/front-end/TextViewer.js:
1032 (WebInspector.TextViewer.prototype._syncLineHeight):
1033 (WebInspector.TextEditorGutterPanel):
1034 (WebInspector.TextEditorGutterPanel.prototype.textChanged):
1035 (WebInspector.TextEditorGutterPanel.prototype.syncClientHeight):
1036 (WebInspector.TextEditorGutterPanel.prototype.addDecoration):
1037 (WebInspector.TextEditorGutterPanel.prototype.removeDecoration):
1039 2012-03-21 Robert Hogan <robert@webkit.org>
1041 CSS 2.1 failure: fixed-table-layout-006 fails
1042 https://bugs.webkit.org/show_bug.cgi?id=78412
1044 Reviewed by Julien Chaffraix.
1046 Tests: css2.1/20110323/fixed-table-layout-006.htm
1047 fast/css/fixed-table-layout-cell-padding.htm
1049 In fixed tables, positive width specified on a column should include borders and padding.
1050 See the thread at http://lists.w3.org/Archives/Public/www-style/2011Oct/0502.html. The discussion
1051 there resulted in a whole new set of tests for section 17.5.2.1 in the CSS 2.1 spec. See
1052 http://test.csswg.org/harness/test/CSS21_DEV/section/17.5.2.1/. This patch allows WebKit
1053 to pass all of them, and all tests for the 17.5.2.1 section as a whole. I'll land them all separately.
1055 * rendering/FixedTableLayout.cpp:
1056 (WebCore::FixedTableLayout::calcWidthArray): Include border width and cell padding in the width of the column.
1057 Note that borderAndPaddingLogicalWidth() returns the border width for separate and collapsed borders as appropriate.
1059 2012-03-22 Simon Fraser <simon.fraser@apple.com>
1061 Factor compositing layer updates after scroll into a new method
1062 https://bugs.webkit.org/show_bug.cgi?id=81943
1064 Reviewed by Dean Jackson.
1066 Move some code that updates compositing layers after scrolling
1067 into its own method, for cleanliness.
1069 * rendering/RenderLayer.cpp:
1070 (WebCore::RenderLayer::scrollTo):
1071 (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
1073 * rendering/RenderLayer.h:
1076 2012-03-22 Gavin Barraclough <barraclough@apple.com>
1078 Add JSValue::isFunction
1079 https://bugs.webkit.org/show_bug.cgi?id=81935
1081 Reviewed by Geoff Garen.
1083 This would be useful in the WebCore bindings code.
1084 Also, remove asFunction, replace with jsCast<JSFunction*>.
1086 * bindings/js/JSInjectedScriptHostCustom.cpp:
1087 (WebCore::JSInjectedScriptHost::functionDetails):
1088 * bindings/js/ScriptCallStackFactory.cpp:
1089 (WebCore::createScriptCallStack):
1091 2012-03-22 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
1093 TiledBackingStore: Fix test regressions that appeared with r111560.
1094 https://bugs.webkit.org/show_bug.cgi?id=81519
1096 Reviewed by Kenneth Rohde Christiansen.
1098 The visible rect wasn't intersected with the contents rect anymore which
1099 could lead to an astronomical layer size to check for intersecting tiles.
1101 Add a visibleContentsRect that doesn't do the conversion and use it
1102 in visibleAreaIsCovered.
1104 * platform/graphics/TiledBackingStore.cpp:
1105 (WebCore::TiledBackingStore::visibleContentsRect):
1107 (WebCore::TiledBackingStore::visibleRect):
1108 (WebCore::TiledBackingStore::visibleAreaIsCovered):
1109 * platform/graphics/TiledBackingStore.h:
1110 (TiledBackingStore):
1112 2012-03-22 Joe Thomas <joethomas@motorola.com>
1114 Make Length Calculation functions non-inline
1115 https://bugs.webkit.org/show_bug.cgi?id=81733
1117 Currently length calculation functions in LengthFunctions.h are inline. These functions are pretty big to be inline.
1118 And these functions are expected to grow again when new length units will be introduced in bug 27160.
1120 A decent rule of thumb is to not inline a function if it is more than 10 lines long. Also it's typically not cost effective to inline
1121 functions with loops or switch statements. (Reference: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Inline_Functions).
1123 Ran PerformanceTests/Parser/html5-full-render.html on Mac Snow-Leopard with and without the patch and did not see much performance difference.
1125 Reviewed by Antti Koivisto.
1128 * GNUmakefile.list.am:
1131 * WebCore.vcproj/WebCore.vcproj:
1132 * WebCore.xcodeproj/project.pbxproj:
1133 * css/LengthFunctions.cpp: Added.
1135 (WebCore::miminumValueForLength):
1136 (WebCore::valueForLength):
1137 (WebCore::floatValueForLength):
1138 * css/LengthFunctions.h:
1141 2012-03-22 Alexis Menard <alexis.menard@openbossa.org>
1143 Increase code sharing between CSSParser and CSSPropertyLonghand.
1144 https://bugs.webkit.org/show_bug.cgi?id=81587
1146 Reviewed by Antti Koivisto.
1148 Expose the longhands declaration for a given shorthand in CSSPropertyLonghand and
1149 make CSSParser use them. It will make the declaration of longhands in one place only.
1150 Remove the map of CSSPropertyLonghand and replace it by a regular switch/case.
1151 The map doesn't bring much here and it's cleaner and faster to use the switch.
1152 It also shows a little performance improvement in CSS/CSSPropertySetterGetter.html.
1154 No new tests : no behavior change.
1156 * css/CSSParser.cpp:
1157 (WebCore::CSSParser::parseValue):
1158 (WebCore::CSSParser::parseAnimationShorthand):
1159 (WebCore::CSSParser::parseTransitionShorthand):
1160 (WebCore::CSSParser::parseShorthand):
1161 Modify the prototype of this function to directly use the CSSPropertyLonghand.
1165 * css/CSSPropertyLonghand.cpp:
1167 (WebCore::backgroundLonghand):
1168 (WebCore::backgroundPositionLonghand):
1169 (WebCore::backgroundRepeatLonghand):
1170 (WebCore::borderLonghand):
1171 (WebCore::borderBottomLonghand):
1172 (WebCore::borderColorLonghand):
1173 (WebCore::borderImageLonghand):
1174 (WebCore::borderLeftLonghand):
1175 (WebCore::borderRadiusLonghand):
1176 (WebCore::borderRightLonghand):
1177 (WebCore::borderSpacingLonghand):
1178 (WebCore::borderStyleLonghand):
1179 (WebCore::borderTopLonghand):
1180 (WebCore::borderWidthLonghand):
1181 (WebCore::listStyleLonghand):
1182 (WebCore::fontLonghand):
1183 (WebCore::marginLonghand):
1184 (WebCore::outlineLonghand):
1185 (WebCore::overflowLonghand):
1186 (WebCore::paddingLonghand):
1187 (WebCore::webkitAnimationLonghand):
1188 (WebCore::webkitBorderAfterLonghand):
1189 (WebCore::webkitBorderBeforeLonghand):
1190 (WebCore::webkitBorderEndLonghand):
1191 (WebCore::webkitBorderStartLonghand):
1192 (WebCore::webkitColumnsLonghand):
1193 (WebCore::webkitColumnRuleLonghand):
1194 (WebCore::webkitFlexFlowLonghand):
1195 (WebCore::webkitMarginCollapseLonghand):
1196 (WebCore::webkitMarqueeLonghand):
1197 (WebCore::webkitMaskLonghand):
1198 (WebCore::webkitMaskPositionLonghand):
1199 (WebCore::webkitMaskRepeatLonghand):
1200 (WebCore::webkitTextEmphasisLonghand):
1201 (WebCore::webkitTextStrokeLonghand):
1202 (WebCore::webkitTransitionLonghand):
1203 (WebCore::webkitTransformOriginLonghand):
1204 (WebCore::webkitWrapLonghand):
1205 (WebCore::longhandForProperty):
1206 * css/CSSPropertyLonghand.h:
1209 2012-03-22 Emil A Eklund <eae@chromium.org>
1211 Unreviewed, touching file to force bots to pick up CSS_SHADERS flag change.
1213 * css/CSSStyleSelector.h:
1216 2012-03-22 Xingnan Wang <xingnan.wang@intel.com>
1218 ReverbConvolver::latencyFrames() should return 0.
1219 https://bugs.webkit.org/show_bug.cgi?id=81806
1221 Reviewed by Chris Rogers.
1223 * platform/audio/ReverbConvolver.cpp:
1224 (WebCore::ReverbConvolver::latencyFrames):
1226 2012-03-22 Tony Chang <tony@chromium.org>
1228 refactor flexbox in preparation for flex-line-pack
1229 https://bugs.webkit.org/show_bug.cgi?id=81843
1231 Reviewed by Ojan Vafai.
1233 Replace WrapReverseContext with a vector of LineContexts that contain
1234 the same information, plus values needed for flex-align.
1236 alignChildren has been moved to after all the lines have been
1237 positioned. We want to align children after flex-line-pack has changed
1238 the size of each line to avoid unnecessary layouts.
1240 Take 2: Remove the assert. If there are no children, then there are no
1241 flex lines. Instead, assert that child is not null.
1243 No new tests, just refactoring.
1245 * rendering/RenderFlexibleBox.cpp:
1246 (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
1247 holds information needed for wrap-reverse and aligning children.
1248 (RenderFlexibleBox::LineContext):
1249 (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
1250 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
1251 (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
1252 (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
1253 * rendering/RenderFlexibleBox.h:
1255 2012-03-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
1257 Event dispatching in XMLHttpRequestProgressEventThrottle should go through XMLHttpRequestProgressEventThrottle::dispatchEvent
1258 https://bugs.webkit.org/show_bug.cgi?id=46743
1260 Reviewed by Julien Chaffraix
1261 Based on original patch by Anton D'Auria
1263 In preparation for platform-specific queuing of XMLHttpRequest events,
1264 this patch changes all calls to m_target->dispatchEvent to
1265 XMLHttpRequestProgressEventThrottle::dispatchEvent.
1266 Currently, we queue only one progress event on suspend() if we have
1267 throttled progress events. We should be able to queue all XHR events
1268 that can be generated after suspend(), if the platform network layer
1269 continues to receive data.
1270 XMLHttpRequest uses XMLHttpRequestProgressEventThrottle to dispatch only
1271 download events, so this doesn't change behavior of upload events, which
1272 aren't throttled or queued.
1274 * xml/XMLHttpRequest.cpp:
1275 (WebCore::XMLHttpRequest::callReadyStateChangeListener):
1276 * xml/XMLHttpRequestProgressEventThrottle.cpp:
1277 (WebCore::XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent):
1278 (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent):
1279 (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
1280 (WebCore::XMLHttpRequestProgressEventThrottle::dispatchPausedEvent):
1281 (WebCore::XMLHttpRequestProgressEventThrottle::fired):
1282 * xml/XMLHttpRequestProgressEventThrottle.h:
1283 (XMLHttpRequestProgressEventThrottle):
1285 2012-03-22 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
1287 [EFL] Map BackSpace key code to Unicode value
1288 https://bugs.webkit.org/show_bug.cgi?id=81130
1290 Reviewed by Gustavo Noronha Silva.
1292 Test: fast/events/backspace-navigates-back.html
1294 * platform/efl/EflKeyboardUtilities.cpp:
1295 (WebCore::createKeyMap): Map BackSpace to Unicode value
1297 2012-03-22 Abhishek Arya <inferno@chromium.org>
1299 Incorrect beforeChild parent calculation in RenderRubyBase::moveChildren.
1300 https://bugs.webkit.org/show_bug.cgi?id=80297
1302 Reviewed by Julien Chaffraix.
1304 beforeChild might share the same anonymous block parent with other previous
1305 siblings. Before moving the children across ruby bases, we need to make sure
1306 to split the tree across the beforeChild correctly.
1308 Test: fast/ruby/ruby-text-before-child-split.html
1310 * rendering/RenderRubyBase.cpp:
1311 (WebCore::RenderRubyBase::moveChildren):
1313 2012-03-22 Kristóf Kosztyó <kkristof@inf.u-szeged.hu>
1315 [Qt] Fix Qt minimal build after r111692
1317 Reviewed by Csaba Osztrogonác.
1319 * bindings/js/JSScriptProfileNodeCustom.cpp:
1321 2012-03-22 Adrienne Walker <enne@google.com>
1323 [chromium] Fix scrollbar layers holding onto invalid textures after lost context
1324 https://bugs.webkit.org/show_bug.cgi?id=81841
1326 Reviewed by James Robinson.
1328 Unit test: CCLayerTreeHostImplTest.scrollbarLayerLostContext
1330 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1331 (WebCore::CCScrollbarLayerImpl::willDraw):
1333 2012-03-22 Philippe Normand <pnormand@igalia.com>
1335 [GTK] ASSERT bug in WebAudio (AudioFileReader)
1336 https://bugs.webkit.org/show_bug.cgi?id=81777
1338 Reviewed by Martin Robinson.
1340 * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
1341 (WebCore::AudioFileReader::decodeAudioForBusCreation): Don't steal
1342 the GstBus floating reference.
1343 (WebCore::AudioFileReader::createBus): Ditto.
1345 2012-03-22 Ilya Tikhonovsky <loislo@chromium.org>
1347 Unreviewed: Web Inspector: fix syntax error in text.
1349 * English.lproj/localizedStrings.js:
1350 * inspector/front-end/HeapSnapshotProxy.js:
1351 (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
1353 2012-03-22 Sheriff Bot <webkit.review.bot@gmail.com>
1355 Unreviewed, rolling out r111688.
1356 http://trac.webkit.org/changeset/111688
1357 https://bugs.webkit.org/show_bug.cgi?id=81912
1359 "Heap profiler test fails" (Requested by yurys on #webkit).
1361 * inspector/front-end/HeapSnapshot.js:
1362 (WebInspector.HeapSnapshot.prototype._buildRetainers):
1364 2012-03-22 Dana Jansens <danakj@chromium.org>
1366 [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
1367 https://bugs.webkit.org/show_bug.cgi?id=81437
1369 Reviewed by Adrienne Walker.
1371 Split CCLayerTreeHostImpl::drawLayers() into two phases:
1372 prepareToDraw() and drawLayers().
1374 When calculating a RenderPass, and we checkerboard a quad on a
1375 layer, bubble this info back up to CCLayerTreeHostImpl. If the
1376 layer is transforming in an animation, then abort the prepareToDraw()
1377 phase and cause it to return false back to the thread proxy.
1379 Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
1381 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1382 (WebCore::CCLayerImpl::appendQuads):
1383 * platform/graphics/chromium/cc/CCLayerImpl.h:
1385 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1386 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1387 (WebCore::CCLayerTreeHostImpl::prepareToDraw):
1389 (WebCore::CCLayerTreeHostImpl::drawLayers):
1390 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1391 (CCLayerTreeHostImpl):
1393 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1394 (WebCore::CCQuadCuller::append):
1395 * platform/graphics/chromium/cc/CCQuadCuller.h:
1397 * platform/graphics/chromium/cc/CCRenderPass.cpp:
1398 (WebCore::CCRenderPass::appendQuadsForLayer):
1399 * platform/graphics/chromium/cc/CCRenderPass.h:
1401 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1402 (WebCore::CCScrollbarLayerImpl::appendQuads):
1403 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
1404 (CCScrollbarLayerImpl):
1405 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1406 (WebCore::CCSingleThreadProxy::doComposite):
1407 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
1408 (WebCore::CCSolidColorLayerImpl::appendQuads):
1409 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
1410 (CCSolidColorLayerImpl):
1411 * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
1412 (WebCore::CCTextureLayerImpl::appendQuads):
1413 * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
1414 (CCTextureLayerImpl):
1415 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1416 (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
1417 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1418 (WebCore::CCTiledLayerImpl::appendQuads):
1419 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1421 * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1422 (WebCore::CCVideoLayerImpl::appendQuads):
1423 * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1426 2012-03-22 Levi Weintraub <leviw@chromium.org>
1428 Correct LayoutUnit usage in Accessibility code
1429 https://bugs.webkit.org/show_bug.cgi?id=81789
1431 Reviewed by Eric Seidel.
1433 Reverting Accessibility hit testing code back to integers. Accessibility hit tests originate from
1434 the embedder and don't accumulate offsets, so we get nothing from using LayoutUnits, and needlessly
1435 expose them to the embedder.
1437 No new tests. No change in behavior.
1439 * accessibility/AccessibilityListBox.cpp:
1440 (WebCore::AccessibilityListBox::elementAccessibilityHitTest): See above.
1441 * accessibility/AccessibilityListBox.h:
1442 (AccessibilityListBox):
1443 * accessibility/AccessibilityObject.cpp:
1444 (WebCore::AccessibilityObject::clickPoint): This value is only ever used to display a context menu,
1445 which is always done with integer coordinates.
1446 (WebCore::AccessibilityObject::boundingBoxForQuads): This is a bounding box built from floats. We
1447 don't pixel snap floats, so we return an integer bounding box.
1448 (WebCore::AccessibilityObject::elementAccessibilityHitTest): See above.
1449 (WebCore::AccessibilityObject::scrollToMakeVisible): Pixel snapping the bounding box and simplifying
1450 up the code to position it at (0,0).
1451 * accessibility/AccessibilityObject.h:
1452 (WebCore::AccessibilityObject::accessibilityHitTest): See above.
1453 (AccessibilityObject):
1454 (WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect): Convenience method for embedder callers.
1455 * accessibility/AccessibilityRenderObject.cpp:
1456 (WebCore::AccessibilityRenderObject::visiblePositionForPoint): The point passed in here is comes from
1457 screen coordinates and originates in embedder code. Reverting it to take an integer.
1458 (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest): See above.
1459 (WebCore::AccessibilityRenderObject::accessibilityHitTest): See above.
1460 * accessibility/AccessibilityRenderObject.h:
1461 (AccessibilityRenderObject):
1462 * accessibility/AccessibilityScrollView.cpp:
1463 (WebCore::AccessibilityScrollView::accessibilityHitTest): See above.
1464 * accessibility/AccessibilityScrollView.h:
1465 (AccessibilityScrollView):
1466 * accessibility/AccessibilitySlider.cpp:
1467 (WebCore::AccessibilitySlider::elementAccessibilityHitTest): See above.
1468 * accessibility/AccessibilitySlider.h:
1469 (AccessibilitySlider):
1471 2012-03-21 Ilya Tikhonovsky <loislo@chromium.org>
1473 Web Inspector: HeapProfiler: Heap snapshot worker has to report the errors to the front-end
1474 https://bugs.webkit.org/show_bug.cgi?id=81804
1476 Sometimes the worker process of HeapSnapshot does some wrong thing and throw an Exception.
1477 At this momemnt we have no way to see the error in the front-end.
1479 Reviewed by Yury Semikhatsky.
1481 * English.lproj/localizedStrings.js:
1482 * inspector/front-end/HeapSnapshotProxy.js: check the exception field and dump it into front-end's console.
1483 (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
1484 * inspector/front-end/HeapSnapshotWorkerDispatcher.js: catch the exception and transfer it's text to requester's side.
1485 (WebInspector.HeapSnapshotWorkerDispatcher.prototype.dispatchMessage):
1487 2012-03-22 Carlos Garcia Campos <cgarcia@bb-webkit-rel-64.local.igalia.com>
1489 [GTK] Use the angle-bracket form to include wtf headers
1490 https://bugs.webkit.org/show_bug.cgi?id=81884
1492 Reviewed by Eric Seidel.
1494 Use #include <wtf/foo> instead of #include "foo".
1496 * platform/graphics/freetype/FontPlatformData.h:
1497 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1498 * platform/gtk/DataObjectGtk.h:
1499 * platform/network/ResourceHandleInternal.h:
1500 * platform/network/soup/SocketStreamHandleSoup.cpp:
1502 2012-03-22 Alexander Pavlov <apavlov@chromium.org>
1504 Web Inspector: Case of the elements of the xml document should be shown as it is in the console
1505 https://bugs.webkit.org/show_bug.cgi?id=81902
1507 When registering a detached root, DOMAgent always presumes it is a node,
1508 while it can also be a document.
1510 Reviewed by Vsevolod Vlasov.
1512 Test: inspector/console/console-xml-document.html
1514 * inspector/front-end/ConsoleMessage.js:
1515 (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
1516 * inspector/front-end/DOMAgent.js:
1517 (WebInspector.DOMAgent.prototype._setDetachedRoot):
1519 2012-03-22 Vsevolod Vlasov <vsevik@chromium.org>
1521 Web Inspector: Introduce ScriptBound/ScriptUnbound events in ScriptMapping.
1522 https://bugs.webkit.org/show_bug.cgi?id=81904
1524 Reviewed by Pavel Feldman.
1526 This is another step on the way to cleaner BreakpointManager logic.
1527 Here we extract ScriptBound/ScriptUnbound events from UISourceCodeListChanged event.
1528 This allows us to handle script-uiSourceCode binding separately from
1529 uiSourceCode creation/deletion and to handle unbinding that was not
1530 possible at all before.
1532 * inspector/front-end/CompilerScriptMapping.js:
1533 (WebInspector.CompilerScriptMapping.prototype._uiSourceCodesForSourceMap):
1534 (WebInspector.CompilerScriptMapping.prototype.addScript.get this):
1535 (WebInspector.CompilerScriptMapping.prototype.addScript):
1536 (WebInspector.CompilerScriptMapping.prototype.reset):
1537 * inspector/front-end/ResourceScriptMapping.js:
1538 (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
1539 * inspector/front-end/ScriptMapping.js:
1540 (WebInspector.MainScriptMapping):
1541 (WebInspector.MainScriptMapping.prototype._updateLiveLocation):
1542 (WebInspector.MainScriptMapping.prototype._handleUISourceCodeListChanged):
1543 (WebInspector.MainScriptMapping.prototype._handleScriptBound):
1544 (WebInspector.MainScriptMapping.prototype._handleScriptUnbound):
1545 * inspector/front-end/SnippetsModel.js:
1546 (WebInspector.SnippetsScriptMapping.prototype.addScript.get this):
1547 (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
1548 (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
1549 (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved.get this):
1550 (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved):
1551 (WebInspector.SnippetsScriptMapping.prototype.reset):
1553 2012-03-22 Vineet Chaudhary <rgf748@motorola.com>
1555 https://bugs.webkit.org/show_bug.cgi?id=81893
1556 Remove custom bindings form ScriptProfileNode.idl of attribute type Array.
1558 Reviewed by Kentaro Hara.
1560 Replace [CustomGetter] Array with sequence<ScriptProfileNode>.
1561 To remove the custom bindings code.
1563 Test: No new tests. LayoutTests/fast/profiler/* test are enough for this.
1565 * bindings/js/JSScriptProfileNodeCustom.cpp: Removed custom function.
1566 (WebCore::JSScriptProfileNode::callUID):
1567 * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: Removed custom function.
1569 * inspector/ScriptProfileNode.idl: Replaced Array with sequence<ScriptProfileNode>.
1571 2012-03-22 Andrey Kosyakov <caseq@chromium.org>
1573 Web Inspector: only update timeline overview categories strips when these are visible
1574 https://bugs.webkit.org/show_bug.cgi?id=81903
1576 Reviewed by Pavel Feldman.
1578 - factor out category strips update into a separate method;
1579 - only invoke it when "Timeline" overview mode is selected.
1581 * inspector/front-end/TimelineOverviewPane.js:
1582 (WebInspector.TimelineOverviewPane.prototype._showTimelines):
1583 (WebInspector.TimelineOverviewPane.prototype.update):
1584 (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
1586 2012-03-22 Levi Weintraub <leviw@chromium.org>
1588 Update LayoutUnit usage in FrameSelection
1589 https://bugs.webkit.org/show_bug.cgi?id=81754
1591 Reviewed by Eric Seidel.
1593 FrameSelection stores its caret and repaint bounds in absolute coordinates. Absolute coordinates
1594 we treat as pixel values, so this patch changes these values to integers. Sub-pixel precision
1595 will still be used when these coordinates are passed down and used locally.
1597 No new tests. No change in behavior.
1599 * editing/FrameSelection.cpp:
1600 (WebCore::absoluteCaretY): Uses absolute coordinates, which are ints.
1601 (WebCore::FrameSelection::modify): Uses absolute coordinates to handle vertical selection
1602 modification. Sub-pixel precision will be used when these values are converted to local ones.
1603 (WebCore::CaretBase::absoluteBoundsForLocalRect): Absolute coordinates -> ints.
1604 (WebCore::FrameSelection::absoluteCaretBounds): Ditto.
1605 (WebCore::CaretBase::caretRepaintRect): The caret repaint rect is stored in absolute coordinates.
1606 Reverting the values to ints.
1607 (WebCore::FrameSelection::recomputeCaretRect): Ditto.
1608 * editing/FrameSelection.h:
1610 * editing/mac/FrameSelectionMac.mm:
1611 (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Switching to store absolute
1612 coordinates as integers.
1614 2012-03-22 Alexei Filippov <alexeif@chromium.org>
1616 Web Inspector: Speed up the build retainers phase.
1617 https://bugs.webkit.org/show_bug.cgi?id=81763
1619 Replacing the edge iterator with a raw loop makes it
1620 faster by more than 10 times.
1622 Reviewed by Yury Semikhatsky.
1624 * inspector/front-end/HeapSnapshot.js:
1625 (WebInspector.HeapSnapshot.prototype._buildRetainers):
1627 2012-03-22 No'am Rosenthal <noam.rosenthal@nokia.com>
1629 [Qt][WK2] The background appears to have one extra pixel from the contents
1630 https://bugs.webkit.org/show_bug.cgi?id=81830
1632 Reviewed by Kenneth Rohde Christiansen.
1634 TextureMapperGL applied a 1-offset that was covering for another bug,
1635 which was already fixed.
1637 No new tests, this would be tested once we test GL rendering results.
1639 * platform/graphics/texmap/TextureMapperGL.cpp:
1640 (WebCore::TextureMapperGLData::SharedGLData::scissorClip):
1642 2012-03-22 W. James MacLean <wjmaclean@chromium.org>
1644 Rename touchpad fling curve, add curve parameters to constructor.
1645 https://bugs.webkit.org/show_bug.cgi?id=81820
1647 Reviewed by Adrienne Walker.
1649 Covered by existing unit tests.
1651 * GNUmakefile.list.am:
1653 * platform/ScrollAnimatorNone.cpp:
1654 (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
1655 * platform/TouchpadFlingPlatformGestureCurve.cpp: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.cpp.
1657 (WebCore::TouchpadFlingPlatformGestureCurve::create):
1658 (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
1659 (WebCore::TouchpadFlingPlatformGestureCurve::~TouchpadFlingPlatformGestureCurve):
1660 (WebCore::TouchpadFlingPlatformGestureCurve::apply):
1661 * platform/TouchpadFlingPlatformGestureCurve.h: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.h.
1663 (TouchpadFlingPlatformGestureCurve):
1665 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1667 Web Inspector: make CSS and JavaScript files editable by default.
1668 https://bugs.webkit.org/show_bug.cgi?id=81787
1670 Reviewed by Vsevolod Vlasov.
1672 This change removes cancelEditing and setReadOnly capabilities from source frame.
1673 It removes dblclick handler as well since one does not need to enter editing mode.
1674 It also establishes proper content dispatching so that views are updated with the
1675 resource content. All these are inter-dependent, need to be landed simultaneously.
1676 Drive-by follow up to the r111675 where range is modified prior to the exiting
1679 * inspector/front-end/JavaScriptSourceFrame.js:
1680 (WebInspector.JavaScriptSourceFrame):
1681 (WebInspector.JavaScriptSourceFrame.prototype.requestContent):
1682 (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
1683 (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
1684 (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
1685 (WebInspector.JavaScriptSourceFrame.prototype._lineNumberAfterEditing):
1686 * inspector/front-end/ResourceView.js:
1687 (WebInspector.ResourceSourceFrame):
1688 (WebInspector.ResourceSourceFrame.prototype.suggestedFileName):
1689 (WebInspector.ResourceSourceFrame.prototype._contentChanged):
1690 (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
1691 (WebInspector.EditableResourceSourceFrame.prototype.editContent.callbackWrapper):
1692 (WebInspector.EditableResourceSourceFrame.prototype.editContent):
1693 (WebInspector.EditableResourceSourceFrame.prototype._contentChanged):
1694 * inspector/front-end/ResourcesPanel.js:
1695 (WebInspector.ResourcesPanel.prototype._innerShowView):
1696 (WebInspector.FrameResourceTreeElement.prototype._appendRevision):
1697 * inspector/front-end/ScriptsPanel.js:
1698 (WebInspector.ScriptsPanel.prototype.setScriptSourceIsDirty):
1699 * inspector/front-end/Settings.js:
1700 (WebInspector.ExperimentsSettings):
1701 * inspector/front-end/SourceFrame.js:
1702 (WebInspector.SourceFrame):
1703 (WebInspector.SourceFrame.prototype.wasShown):
1704 (WebInspector.SourceFrame.prototype.willHide):
1705 (WebInspector.SourceFrame.prototype.beforeTextChanged):
1706 (WebInspector.SourceFrame.prototype.setContent):
1707 (WebInspector.SourceFrame.prototype.commitEditing):
1708 (WebInspector.SourceFrame.prototype.didEditContent):
1709 (WebInspector.SourceFrame.prototype.editContent):
1710 * inspector/front-end/TextPrompt.js:
1711 (WebInspector.TextPrompt.prototype._startEditing):
1712 (WebInspector.TextPrompt.prototype._stopEditing):
1713 * inspector/front-end/TextViewer.js:
1714 (WebInspector.TextViewer):
1715 (WebInspector.TextViewer.prototype._registerShortcuts):
1716 (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
1718 2012-03-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
1720 [Qt] Enable FAST_MOBILE_SCROLLING when scrolling is delegated.
1721 https://bugs.webkit.org/show_bug.cgi?id=81889
1723 Reviewed by Kenneth Rohde Christiansen.
1725 On the Qt platform only enable the fast mobile scroll feature when scrolling is delegated.
1727 * rendering/RenderObject.cpp:
1728 (WebCore::RenderObject::styleWillChange):
1730 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1732 Web Inspector: dispatch styleSheetChanged event synchronously.
1733 https://bugs.webkit.org/show_bug.cgi?id=81892
1735 Reviewed by Vsevolod Vlasov.
1737 Today, backend generates stylesheet change event synchronously from within set* command.
1738 But CSSStyleModel defers its dispatching until the stylesheet content is available. This
1739 prevents us from ignoring update events from within commands that initiated those updates.
1741 This change makes stylesheet change event dispatch synchronously and delegates stylesheet
1742 content fetching to the event client.
1744 * inspector/front-end/CSSStyleModel.js:
1745 (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
1746 (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
1747 (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
1748 (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent.callbackWrapper):
1749 (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent):
1750 (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.callback):
1751 (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
1752 (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged):
1754 2012-03-21 Ian Vollick <vollick@chromium.org>
1756 [chromium] timing functions are getting incorrectly applied for accelerated css transitions
1757 https://bugs.webkit.org/show_bug.cgi?id=81692
1759 Reviewed by Adrienne Walker.
1761 Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
1763 * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
1765 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1767 Web Inspector: allow on-hover popover while in edit mode.
1768 https://bugs.webkit.org/show_bug.cgi?id=81898
1770 Reviewed by Vsevolod Vlasov.
1772 This change allows popover while in-edit mode, hides it upon Esc. It also introduces anchorOverride
1773 concept in ObjectPopoverHelper that allows dynamically switching the anchor (say if we want to highlight anchor itself).
1775 * inspector/front-end/DetailedHeapshotView.js:
1776 * inspector/front-end/ElementsPanel.js:
1777 * inspector/front-end/JavaScriptSourceFrame.js:
1778 (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover.showObjectPopover):
1779 (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
1780 (WebInspector.JavaScriptSourceFrame.prototype._onKeyDown):
1781 * inspector/front-end/NetworkPanel.js:
1782 * inspector/front-end/ObjectPopoverHelper.js:
1783 (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
1784 (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
1785 * inspector/front-end/Popover.js:
1786 (WebInspector.PopoverHelper.prototype.isPopoverVisible):
1787 * inspector/front-end/TimelinePanel.js:
1789 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1791 Web Inspector: breakpoints should shift when line break is inserted in the middle of the line.
1792 https://bugs.webkit.org/show_bug.cgi?id=81896
1794 Reviewed by Vsevolod Vlasov.
1796 There is a bug that collapses selection prior to exiting change mode, we should never
1797 collapse edit area prior committing.
1799 * inspector/front-end/TextEditorModel.js:
1800 (WebInspector.TextEditorModel.endsWithBracketRegex.):
1801 * inspector/front-end/TextViewer.js:
1802 (WebInspector.TextViewer):
1803 (WebInspector.TextEditorMainPanel.prototype.highlightLine):
1804 (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.callback):
1805 (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
1807 2012-03-22 Zoltan Herczeg <zherczeg@webkit.org>
1809 Merge SVGImageBufferTools to SVGRenderingContext
1810 https://bugs.webkit.org/show_bug.cgi?id=81890
1812 Reviewed by Nikolas Zimmermann.
1814 Copy the code to SVGRenderingContext and delete
1815 SVGImageBufferTools[.cpp.h]. Update build systems,
1816 no functionality change. This is the first step
1817 towards making SVGImageBufferTools stageful.
1819 Existing tests cover this issue.
1822 * GNUmakefile.list.am:
1825 * WebCore.xcodeproj/project.pbxproj:
1826 * platform/graphics/filters/FETile.cpp:
1827 (WebCore::FETile::platformApplySoftware):
1828 * rendering/svg/RenderSVGAllInOne.cpp:
1829 * rendering/svg/RenderSVGInlineText.cpp:
1830 (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
1831 * rendering/svg/RenderSVGResourceClipper.cpp:
1832 (WebCore::RenderSVGResourceClipper::applyClippingToContext):
1833 (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
1834 * rendering/svg/RenderSVGResourceFilter.cpp:
1835 (WebCore::RenderSVGResourceFilter::applyResource):
1836 * rendering/svg/RenderSVGResourceGradient.cpp:
1837 (WebCore::createMaskAndSwapContextForTextGradient):
1838 (WebCore::clipToTextMask):
1839 * rendering/svg/RenderSVGResourceMasker.cpp:
1840 (WebCore::RenderSVGResourceMasker::applyResource):
1841 (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
1842 * rendering/svg/RenderSVGResourcePattern.cpp:
1843 (WebCore::RenderSVGResourcePattern::applyResource):
1844 (WebCore::RenderSVGResourcePattern::createTileImage):
1845 * rendering/svg/SVGImageBufferTools.cpp: Removed.
1846 * rendering/svg/SVGImageBufferTools.h: Removed.
1847 * rendering/svg/SVGInlineTextBox.cpp:
1848 * rendering/svg/SVGRenderingContext.cpp:
1849 (WebCore::currentContentTransformation):
1851 (WebCore::SVGRenderingContext::calculateTransformationToOutermostSVGCoordinateSystem):
1852 (WebCore::SVGRenderingContext::createImageBuffer):
1853 (WebCore::SVGRenderingContext::createImageBufferForPattern):
1854 (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):
1855 (WebCore::SVGRenderingContext::clipToImageBuffer):
1856 (WebCore::SVGRenderingContext::clampedAbsoluteTargetRect):
1857 (WebCore::SVGRenderingContext::clampedAbsoluteSize):
1858 (WebCore::SVGRenderingContext::clear2DRotation):
1859 * rendering/svg/SVGRenderingContext.h:
1860 (SVGRenderingContext):
1861 (WebCore::SVGRenderingContext::calculateImageBufferRect):
1862 * svg/graphics/filters/SVGFEImage.cpp:
1863 (WebCore::FEImage::platformApplySoftware):
1865 2012-03-22 Hyowon Kim <hw1008.kim@samsung.com>
1867 [EFL] Add PageClientEfl to WebCoreSupport.
1868 https://bugs.webkit.org/show_bug.cgi?id=80748
1870 Reviewed by Noam Rosenthal.
1872 * platform/Widget.h: Use PageClientEfl as type for PlatformPageClient.
1874 * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1875 (WebCore::GraphicsContext3DPrivate::createSurface): Change the argument type.
1876 * plugins/efl/PluginViewEfl.cpp:
1877 (WebCore::PluginView::platformGetValue): Use PageClientEfl.
1879 2012-03-22 Kaustubh Atrawalkar <kaustubh@motorola.com>
1881 blur() on shadow host should work when a shadow host contains a focused element in its shadow DOM subtrees
1882 https://bugs.webkit.org/show_bug.cgi?id=81102
1884 Reviewed by Hajime Morita.
1886 This implementation will support blur for a focused element when its shadowHost's blur() is called.
1887 To achieve this Element::blur() function is modified to blur the focused node in it's treeScope.
1889 Test: fast/dom/shadow/shadow-root-blur.html
1892 (WebCore::Element::blur): Modified to blur current treeScope's focused node.
1894 (WebCore::ShadowRoot::activeElement): Rework for code sharing.
1895 * dom/TreeScope.cpp:
1896 (WebCore::TreeScope::focusedNode): Added new function to share code for getting focused node.
1898 (TreeScope): New function declartion.
1899 * html/HTMLDocument.cpp:
1900 (WebCore::HTMLDocument::activeElement): Rework for code sharing.
1902 2012-03-22 Vsevolod Vlasov <vsevik@chromium.org>
1904 Web Inspector: RawSourceCode does not need uiSourceCode lists because it never has more than one.
1905 https://bugs.webkit.org/show_bug.cgi?id=81894
1907 RawSourceCode never has more than one uiSourceCode, uiSourceCodeList
1908 are just remains of older implementation. This patch switches RawSourceCode
1909 and SourceMappings from uiSourceCodeList to uiSourceCode.
1911 Reviewed by Pavel Feldman.
1913 * inspector/front-end/RawSourceCode.js:
1914 (WebInspector.RawSourceCode.prototype.uiSourceCode):
1915 (WebInspector.RawSourceCode.prototype._saveSourceMapping):
1916 (WebInspector.RawSourceCode.SourceMapping.prototype.uiLocationToRawLocation):
1917 (WebInspector.RawSourceCode.SourceMapping.prototype.uiSourceCode):
1918 (WebInspector.RawSourceCode.PlainSourceMapping):
1919 (WebInspector.RawSourceCode.PlainSourceMapping.prototype.rawLocationToUILocation):
1920 (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiLocationToRawLocation):
1921 (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiSourceCode):
1922 (WebInspector.RawSourceCode.FormattedSourceMapping):
1923 (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
1924 (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiLocationToRawLocation):
1925 (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiSourceCode):
1926 * inspector/front-end/ResourceScriptMapping.js:
1927 (WebInspector.ResourceScriptMapping.prototype.uiSourceCodeList):
1928 (WebInspector.ResourceScriptMapping.prototype.addScript):
1929 (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeChanged):
1930 (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
1931 (WebInspector.ResourceScriptMapping.prototype.reset):
1933 2012-03-22 Mario Sanchez Prada <msanchez@igalia.com>
1935 [GTK] Fix the only remaining coding style issue in GTK accessibility code
1936 https://bugs.webkit.org/show_bug.cgi?id=81885
1938 Reviewed by Xan Lopez.
1940 Add needed extra line and remove an unneeded one.
1942 * accessibility/gtk/AccessibilityObjectAtk.cpp:
1944 2012-03-22 Kent Tamura <tkent@chromium.org>
1946 Expand RenderTextControlSingleLine::controlClipRect() to contain contentRect().
1947 https://bugs.webkit.org/show_bug.cgi?id=81866
1949 Reviewed by Hajime Morita.
1951 We need to expand the controlClipRect because the existing shadow
1952 tree of a text field can be wrapped by another shadow tree. e.g.
1954 A current situation:
1959 ┌────────────┐<input>'s border box
1965 Wrapped by another ShadowRoot:
1969 ┣ <shadow> represents the existing shadow tree
1970 ┃ ┗ container element
1971 ┗ D: an additional decoration element
1972 ┌────────────┐<input>'s border box
1974 ││container box │ D ││
1977 In this case, if we clip child renderers by container box, D is not
1978 drawn. We should clip by the content box of the <input>.
1980 A search field has an exceptional behavior. It can have the container
1981 box of which height is taller than the content box height. The
1982 controlClipRect should contain both of the container box and the content
1983 box in this case. In other cases, the container box is equivalent to the
1984 content box. So the code always unites them.
1986 No new tests. This won't make any behavior change for now.
1988 * rendering/RenderTextControlSingleLine.cpp:
1989 (WebCore::RenderTextControlSingleLine::controlClipRect):
1991 2012-03-22 Yoshifumi Inoue <yosin@chromium.org>
1993 [Forms] The option element should not be form associated element.
1994 https://bugs.webkit.org/show_bug.cgi?id=79764
1996 Reviewed by Kent Tamura.
1998 This patch changes base class of HTMLOptionELement to HTMLElement
1999 from HTMLFormControlElement for saving memory space and iteration
2000 time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
2001 and matching the HTML5 specification for ease of maintenance.
2003 This patch changes behavior of handling of CSS pseudo classes "invalid"
2004 and "valid". The "option" elements no longer use these CSS pseudo classes
2005 as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
2007 Changes of TextIterator is lead by usage of isFormControlElement. This
2008 changes will be replaced with more meaningful predicate as part of
2009 https://bugs.webkit.org/show_bug.cgi?id=80381
2011 No new tests but updated select-live-pseudo-selectors.html test.
2013 * css/CSSStyleSelector.cpp:
2014 (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
2015 * css/SelectorChecker.cpp:
2016 (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
2017 * html/HTMLKeygenElement.cpp:
2018 (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
2019 * html/HTMLOptionElement.cpp:
2020 (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
2021 (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
2022 (WebCore::HTMLOptionElement::attach): Changeid base class.
2023 (WebCore::HTMLOptionElement::detach): Changed base class.
2024 (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
2025 (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
2026 (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
2027 * html/HTMLOptionElement.h:
2028 (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
2029 (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
2030 * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
2032 2012-03-21 Pavel Podivilov <podivilov@chromium.org>
2034 Web Inspector: rename ClosureCompilerSourceMapping to SourceMapParser and move it to CompilerScriptMapping.js.
2035 https://bugs.webkit.org/show_bug.cgi?id=81780
2037 Reviewed by Pavel Feldman.
2040 * WebCore.vcproj/WebCore.vcproj:
2041 * inspector/compile-front-end.py:
2042 * inspector/front-end/CompilerScriptMapping.js:
2043 (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
2044 (WebInspector.SourceMapParserPayload):
2045 (WebInspector.SourceMapParser):
2046 (WebInspector.SourceMapParser.prototype.load):
2047 (WebInspector.SourceMapParser.prototype.compiledLocationToSourceLocation):
2048 (WebInspector.SourceMapParser.prototype.sourceLocationToCompiledLocation):
2049 (WebInspector.SourceMapParser.prototype.sources):
2050 (WebInspector.SourceMapParser.prototype.loadSourceCode):
2051 (WebInspector.SourceMapParser.prototype._findMapping):
2052 (WebInspector.SourceMapParser.prototype._parseMappingPayload):
2053 (WebInspector.SourceMapParser.prototype._parseSections):
2054 (WebInspector.SourceMapParser.prototype._parseMap):
2055 (WebInspector.SourceMapParser.prototype._isSeparator):
2056 (WebInspector.SourceMapParser.prototype._decodeVLQ):
2057 (WebInspector.SourceMapParser.prototype._canonicalizeURL):
2058 (WebInspector.SourceMapParser.StringCharIterator):
2059 (WebInspector.SourceMapParser.StringCharIterator.prototype.next):
2060 (WebInspector.SourceMapParser.StringCharIterator.prototype.peek):
2061 (WebInspector.SourceMapParser.StringCharIterator.prototype.hasNext):
2062 * inspector/front-end/CompilerSourceMapping.js: Removed.
2063 * inspector/front-end/WebKit.qrc:
2064 * inspector/front-end/inspector.html:
2066 2012-03-21 Vsevolod Vlasov <vsevik@chromium.org>
2068 Web Inspector: IndexedDB transaction is not closed when requesting data.
2069 https://bugs.webkit.org/show_bug.cgi?id=81837
2071 Reviewed by Pavel Feldman.
2073 * inspector/InspectorIndexedDBAgent.cpp: Added missing IDBCursorBackendInterface::postSuccessHandlerCallback() call.
2076 2012-03-21 Yury Semikhatsky <yurys@chromium.org>
2078 Web Inspector: event listeners section is broken for about:blank page
2079 https://bugs.webkit.org/show_bug.cgi?id=81795
2081 Parse about:blank as a valid URL.
2083 Reviewed by Pavel Feldman.
2085 Test: inspector/elements/event-listeners-about-blank.html
2087 * inspector/front-end/utilities.js:
2088 (String.prototype.asParsedURL):
2090 2012-03-21 Dan Bernstein <mitz@apple.com>
2092 REGRESSION (r111635): Assertion failure in RenderFlexibleBox::layoutFlexItems() (!lineContexts.size()) in many flexbox tests
2093 https://bugs.webkit.org/show_bug.cgi?id=81870
2095 Reverted r111635, the fix for bug 81843.
2097 * rendering/RenderFlexibleBox.cpp:
2098 (WebCore::RenderFlexibleBox::WrapReverseContext::WrapReverseContext):
2099 (WebCore::RenderFlexibleBox::WrapReverseContext::addCrossAxisOffset):
2100 (RenderFlexibleBox::WrapReverseContext):
2101 (WebCore::RenderFlexibleBox::WrapReverseContext::addNumberOfChildrenOnLine):
2102 (WebCore::RenderFlexibleBox::WrapReverseContext::lineCrossAxisDelta):
2103 (WebCore::RenderFlexibleBox::layoutFlexItems):
2104 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
2105 (WebCore::RenderFlexibleBox::alignChildren):
2106 (WebCore::RenderFlexibleBox::flipForWrapReverse):
2107 * rendering/RenderFlexibleBox.h:
2109 2012-03-21 Emil A Eklund <eae@chromium.org>
2111 Unreviewed change touching CustomFilterProgram.h to try
2112 to force the chromium-win bots to rebuilt it and pick up
2113 on the fact that CSS_SHADERS is not set (since r111610).
2115 * platform/graphics/filters/CustomFilterProgram.h:
2117 2012-03-21 Vangelis Kokkevis <vangelis@chromium.org>
2119 [chromium] FPS counter causes garbage to be displayed at top left corner
2120 https://bugs.webkit.org/show_bug.cgi?id=81851
2122 The HUD expects the PlatformCanvas it paints on to be cleared on creation which is
2123 no longer true after http://src.chromium.org/viewvc/chrome?view=rev&revision=127196 .
2124 This patch does an explicit clearRect before the HUD contents are painted.
2126 Reviewed by Adrienne Walker.
2128 TEST=Manually verified that --show-fps-counter and --show-composited-layer-tree work correctly.
2130 * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2131 (WebCore::CCHeadsUpDisplay::draw):
2133 2012-03-21 Ryosuke Niwa <rniwa@webkit.org>
2135 Touch a file to make Chromium Windows bots happy.
2137 * css/CSSValueKeywords.in:
2139 2012-03-19 Igor Oliveira <igor.o@sisa.samsung.com>
2141 Every call to RenderObject::setAnimatableStyle() iterates through all m_compositeAnimations: potentially O(N^2)
2142 https://bugs.webkit.org/show_bug.cgi?id=38025
2144 Implement updateAnimationTimerForRender. This reduces unnecessary animation
2145 steps on the current RenderObject by checking the value of timeToNextService
2146 before starting a new timer.
2148 Reviewed by Dean Jackson.
2150 Test: animations/animation-welcome-safari.html
2152 * page/animation/AnimationController.cpp:
2153 (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
2155 (WebCore::AnimationController::updateAnimations):
2156 * page/animation/AnimationControllerPrivate.h:
2157 (AnimationControllerPrivate):
2159 2012-03-21 Sheriff Bot <webkit.review.bot@gmail.com>
2161 Unreviewed, rolling out r111616.
2162 http://trac.webkit.org/changeset/111616
2163 https://bugs.webkit.org/show_bug.cgi?id=81862
2165 broke chromium mac (Requested by eae on #webkit).
2167 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2168 (WebCore::CCLayerImpl::appendQuads):
2169 * platform/graphics/chromium/cc/CCLayerImpl.h:
2171 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2172 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2173 (WebCore::CCLayerTreeHostImpl::drawLayers):
2174 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2175 (CCLayerTreeHostImpl):
2176 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2177 (WebCore::CCQuadCuller::append):
2178 * platform/graphics/chromium/cc/CCQuadCuller.h:
2180 * platform/graphics/chromium/cc/CCRenderPass.cpp:
2181 (WebCore::CCRenderPass::appendQuadsForLayer):
2182 * platform/graphics/chromium/cc/CCRenderPass.h:
2184 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2185 (WebCore::CCScrollbarLayerImpl::appendQuads):
2186 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2187 (CCScrollbarLayerImpl):
2188 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2189 (WebCore::CCSingleThreadProxy::doComposite):
2190 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2191 (WebCore::CCSolidColorLayerImpl::appendQuads):
2192 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2193 (CCSolidColorLayerImpl):
2194 * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2195 (WebCore::CCTextureLayerImpl::appendQuads):
2196 * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
2197 (CCTextureLayerImpl):
2198 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2199 (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
2200 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2201 (WebCore::CCTiledLayerImpl::appendQuads):
2202 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2204 * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2205 (WebCore::CCVideoLayerImpl::appendQuads):
2206 * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2209 2012-03-21 Beth Dakin <bdakin@apple.com>
2211 https://bugs.webkit.org/show_bug.cgi?id=80322
2214 Reviewed by Dean Jackson.
2216 This initial implementation of -webkit-image-set.
2217 http://lists.w3.org/Archives/Public/www-style/2012Feb/1103.html
2218 The idea behind the feature is to allow authors to provide multiple variants
2219 of the same image at differing resolutions, and to allow the User Agent to
2220 choose the resource that is most appropriate at the time. This patch will
2221 choose the most appropriate image based on device scale factor.
2223 CSSImageSetValue inherits from CSSValueList and behaves a lot like
2225 * WebCore.xcodeproj/project.pbxproj:
2226 * css/CSSImageSetValue.h: Added.
2229 (WebCore::CSSImageSetValue::create):
2230 (WebCore::CSSImageSetValue::isPending):
2232 (WebCore::CSSImageSetValue::compareByScaleFactor):
2233 * css/CSSImageSetValue.cpp: Added.
2235 (WebCore::CSSImageSetValue::CSSImageSetValue):
2236 (WebCore::CSSImageSetValue::~CSSImageSetValue):
2237 (WebCore::CSSImageSetValue::cachedOrPendingImageSet):
2238 (WebCore::CSSImageSetValue::customCssText):
2240 fillImageSet() iterates through the value list and turns the information into
2241 a sorted Vector of ImageWithScales (which is a struct containing image URLs
2243 (WebCore::CSSImageSetValue::fillImageSet):
2245 cachedImageSet() finds which image is most appropriate based on the device
2246 scale factor, and it loads only that image. In the future, additional scale
2247 factors will be taken into account.
2248 (WebCore::CSSImageSetValue::bestImageForScaleFactor):
2249 (WebCore::CSSImageSetValue::cachedImageSet):
2251 parseImageSet() is called everywhere in the CSSParser that a regular image or
2252 generated image can be found.
2253 * css/CSSParser.cpp:
2254 (WebCore::CSSParser::parseValue):
2255 (WebCore::CSSParser::parseContent):
2256 (WebCore::CSSParser::parseFillImage):
2257 (WebCore::CSSParser::parseBorderImage):
2259 (WebCore::CSSParser::parseImageSet):
2262 Since CSSImageSetValue is implemented as a value list,
2263 ApplyPropertyFillLayer::applyValue() needs to be more specific when it's
2264 looking for a list of multiple URLs.
2265 * css/CSSStyleApplyProperty.cpp:
2266 (WebCore::ApplyPropertyFillLayer::applyValue):
2268 Handle image-set as a valid image value.
2269 * css/CSSStyleSelector.cpp:
2270 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2271 * css/CSSStyleSelector.h:
2274 (WebCore::CSSValue::cssText):
2275 (WebCore::CSSValue::destroy):
2278 (WebCore::CSSValue::isImageSetValue):
2280 computeIntrinsicDimensions() now takes an optional scaleFactor parameter that represents the author-enforced "intrinsic" scale factor of the image.
2281 * loader/cache/CachedImage.cpp:
2282 (WebCore::CachedImage::computeIntrinsicDimensions):
2283 * loader/cache/CachedImage.h:
2285 * platform/graphics/GeneratedImage.h:
2287 * platform/graphics/GeneratorGeneratedImage.cpp:
2288 (WebCore::GeneratedImage::computeIntrinsicDimensions):
2289 * platform/graphics/Image.cpp:
2290 (WebCore::Image::computeIntrinsicDimensions):
2291 * platform/graphics/Image.h:
2293 * platform/graphics/cg/PDFDocumentImage.cpp:
2294 (WebCore::PDFDocumentImage::computeIntrinsicDimensions):
2295 * platform/graphics/cg/PDFDocumentImage.h:
2297 * svg/graphics/SVGImage.cpp:
2298 (WebCore::SVGImage::computeIntrinsicDimensions):
2299 * svg/graphics/SVGImage.h:
2302 Inherits from StyleImage and returns a scaled size for imageSize() and
2303 computeIntrinsicDimensions().
2304 * rendering/style/StyleCachedImageSet.cpp: Added.
2306 (WebCore::StyleCachedImageSet::StyleCachedImageSet):
2307 (WebCore::StyleCachedImageSet::cssValue):
2308 (WebCore::StyleCachedImageSet::canRender):
2309 (WebCore::StyleCachedImageSet::isLoaded):
2310 (WebCore::StyleCachedImageSet::errorOccurred):
2311 (WebCore::StyleCachedImageSet::imageSize):
2312 (WebCore::StyleCachedImageSet::imageHasRelativeWidth):
2313 (WebCore::StyleCachedImageSet::imageHasRelativeHeight):
2314 (WebCore::StyleCachedImageSet::computeIntrinsicDimensions):
2315 (WebCore::StyleCachedImageSet::usesImageContainerSize):
2316 (WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
2317 (WebCore::StyleCachedImageSet::addClient):
2318 (WebCore::StyleCachedImageSet::removeClient):
2319 (WebCore::StyleCachedImageSet::image):
2320 * rendering/style/StyleCachedImageSet.h: Added.
2322 (StyleCachedImageSet):
2323 (WebCore::StyleCachedImageSet::create):
2324 (WebCore::StyleCachedImageSet::data):
2325 (WebCore::StyleCachedImageSet::cachedImage):
2328 * rendering/style/StyleImage.h:
2329 (WebCore::StyleImage::isCachedImageSet):
2330 (WebCore::StyleImage::StyleImage):
2332 * rendering/style/StylePendingImage.h:
2333 (StylePendingImage):
2334 (WebCore::StylePendingImage::cssImageSetValue):
2336 2012-03-21 David Barton <dbarton@mathscribe.com>
2338 MathML internals - improve naming in RenderMathMLSquareRoot.cpp and RenderMathMLRoot.cpp
2339 https://bugs.webkit.org/show_bug.cgi?id=81850
2341 Reviewed by Eric Seidel.
2343 This prepares these files for bug fixes, and eventually combining their common code. To
2344 understand this patch, I suggest you start with RenderMathMLSquareRoot.cpp, as it's
2345 simpler than RenderMathMLRoot.cpp.
2347 No new tests. LayoutTests/mathml/presentation/roots.xhtml is thorough enough for this.
2349 * rendering/mathml/RenderMathMLRoot.cpp:
2351 (WebCore::RenderMathMLRoot::addChild):
2352 (WebCore::RenderMathMLRoot::paint):
2353 (WebCore::RenderMathMLRoot::layout):
2354 * rendering/mathml/RenderMathMLRoot.h:
2357 * rendering/mathml/RenderMathMLSquareRoot.cpp:
2359 (WebCore::RenderMathMLSquareRoot::paint):
2360 (WebCore::RenderMathMLSquareRoot::layout):
2361 * rendering/mathml/RenderMathMLSquareRoot.h:
2363 (RenderMathMLSquareRoot):
2364 * rendering/mathml/RenderMathMLSubSup.h:
2367 2012-03-21 Tony Chang <tony@chromium.org>
2369 refactor flexbox in preparation for flex-line-pack
2370 https://bugs.webkit.org/show_bug.cgi?id=81843
2372 Reviewed by Ojan Vafai.
2374 Replace WrapReverseContext with a vector of LineContexts that contain
2375 the same information, plus values needed for flex-align.
2377 alignChildren has been moved to after all the lines have been
2378 positioned. We want to align children after flex-line-pack has changed
2379 the size of each line to avoid unnecessary layouts.
2381 No new tests, just refactoring.
2383 * rendering/RenderFlexibleBox.cpp:
2384 (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
2385 holds information needed for wrap-reverse and aligning children.
2386 (RenderFlexibleBox::LineContext):
2387 (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
2388 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
2389 (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
2390 (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
2391 * rendering/RenderFlexibleBox.h:
2393 2012-03-21 Ryosuke Niwa <rniwa@webkit.org>
2395 BDI element should have dir=auto by default
2396 https://bugs.webkit.org/show_bug.cgi?id=68773
2398 Reviewed by Daniel Bates.
2400 Treat bdi elements without dir content attribute as if they have dir=auto per spec:
2401 http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-bdi-element
2403 The patch tries to encapsulate the logic to look for dir content attribute and dir=auto.
2405 It also adds HTMLBDIElement interface (binding remains to use HTMLElement) to set
2406 selfOrAncestorHasDirAutoAttribute flag true by default, which is used by functions like
2407 directionalityIfhasDirAutoAttribute to look for elements with dir=auto. Since dir=auto-ness of bdi
2408 elements can be overridden by dir content attribute, we must change and only change the default value.
2410 Tests: fast/text/international/bdi-dir-default-to-auto-expected.html
2411 fast/text/international/bdi-dir-default-to-auto.html
2413 * GNUmakefile.list.am:
2416 * WebCore.vcproj/WebCore.vcproj:
2417 * WebCore.xcodeproj/project.pbxproj:
2418 * css/CSSStyleSelector.cpp:
2419 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2420 * html/HTMLBDIElement.h: Added.
2423 (WebCore::HTMLBDIElement::create):
2424 (WebCore::HTMLBDIElement::HTMLBDIElement): Sets selfOrAncestorHasDirAutoAttribute to true because
2425 bdi elements are treated as if it has dir=auto by default.
2426 * html/HTMLElement.cpp:
2427 (WebCore::elementAffectsDirectionality): Added. Checks if the specified element is bdi or
2428 has dir content attribute.
2430 (WebCore::setHasDirAutoFlagRecursively):
2431 (WebCore::HTMLElement::hasDirectionAuto): Added. Checks if the specified element should be treated
2432 as if it has dir=auto (bdi or element with dir=auto).
2433 (WebCore::HTMLElement::directionalityIfhasDirAutoAttribute):
2434 (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
2435 (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
2436 * html/HTMLElement.h:
2438 * html/HTMLTagNames.in: Use HTMLBDIElement instead of HTMLElement for constructing bdi element
2439 to set selfOrAncestorHasDirAutoAttribute true but still use HTMLElement for binding.
2441 2012-03-21 Luke Macpherson <macpherson@chromium.org>
2443 Use CSSPrimitiveValue::convertToLength() in a few places.
2444 https://bugs.webkit.org/show_bug.cgi?id=81492
2446 Reviewed by Eric Seidel.
2448 No new tests - refactoring only.
2450 CSSPrimitiveValue::convertToLength() provides the same functionality that is duplicated
2451 in many places in CSSStyleSelector. This patch removes some of that code duplication.
2453 * css/CSSStyleApplyProperty.cpp:
2454 (WebCore::ApplyPropertyVerticalAlign::applyValue):
2455 * css/CSSStyleSelector.cpp:
2456 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2458 2012-03-21 Patrick Gansterer <paroga@webkit.org>
2460 Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r111601.
2462 * rendering/svg/RenderSVGRoot.cpp:
2464 2012-03-21 Patrick Gansterer <paroga@webkit.org>
2466 Build fix for !ENABLE(INSPECTOR) after r104831.
2468 * bindings/js/ScriptDebugServer.cpp:
2469 (WebCore::ScriptDebugServer::dispatchDidParseSource):
2471 2012-03-21 Xiaomei Ji <xji@chromium.org>
2473 visual word movement: using cache to decrease the number of collectLeafBoxesInLogicalOrder on RootInlineBox
2474 https://bugs.webkit.org/show_bug.cgi?id=81408
2476 Reviewed by Ryosuke Niwa.
2478 Cache logically ordered leaf boxes under a particular root box.
2479 Also, move 'Vector<UChar, 1024> string' declared in visualWordPosition() to outside of loop (it is always
2480 clear-ed before use).
2482 * editing/visible_units.cpp:
2483 (CachedLogicallyOrderedLeafBoxes): Add class to cache logically ordered leaf boxes under a particular root box.
2484 (WebCore::CachedLogicallyOrderedLeafBoxes::size):
2485 (WebCore::CachedLogicallyOrderedLeafBoxes::firstBox):
2487 (WebCore::CachedLogicallyOrderedLeafBoxes::CachedLogicallyOrderedLeafBoxes):
2488 (WebCore::CachedLogicallyOrderedLeafBoxes::previousTextBox):
2489 (WebCore::CachedLogicallyOrderedLeafBoxes::nextTextBox):
2490 (WebCore::CachedLogicallyOrderedLeafBoxes::collectBoxes):
2491 (WebCore::CachedLogicallyOrderedLeafBoxes::boxIndexInLeaves):
2492 (WebCore::logicallyPreviousBox): Pass CachedLogicallyOrderedLeafBoxes object around.
2493 (WebCore::logicallyNextBox):
2494 (WebCore::wordBreakIteratorForMinOffsetBoundary):
2495 (WebCore::wordBreakIteratorForMaxOffsetBoundary):
2496 (WebCore::visualWordPosition):
2498 2012-03-21 Dana Jansens <danakj@chromium.org>
2500 [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
2501 https://bugs.webkit.org/show_bug.cgi?id=81437
2503 Reviewed by Adrienne Walker.
2505 Split CCLayerTreeHostImpl::drawLayers() into two phases:
2506 prepareToDraw() and drawLayers().
2508 When calculating a RenderPass, and we checkerboard a quad on a
2509 layer, bubble this info back up to CCLayerTreeHostImpl. If the
2510 layer is transforming in an animation, then abort the prepareToDraw()
2511 phase and cause it to return false back to the thread proxy.
2513 Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
2515 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2516 (WebCore::CCLayerImpl::appendQuads):
2517 * platform/graphics/chromium/cc/CCLayerImpl.h:
2519 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2520 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2521 (WebCore::CCLayerTreeHostImpl::prepareToDraw):
2523 (WebCore::CCLayerTreeHostImpl::drawLayers):
2524 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2525 (CCLayerTreeHostImpl):
2527 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2528 (WebCore::CCQuadCuller::append):
2529 * platform/graphics/chromium/cc/CCQuadCuller.h:
2531 * platform/graphics/chromium/cc/CCRenderPass.cpp:
2532 (WebCore::CCRenderPass::appendQuadsForLayer):
2533 * platform/graphics/chromium/cc/CCRenderPass.h:
2535 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2536 (WebCore::CCScrollbarLayerImpl::appendQuads):
2537 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2538 (CCScrollbarLayerImpl):
2539 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2540 (WebCore::CCSingleThreadProxy::doComposite):
2541 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2542 (WebCore::CCSolidColorLayerImpl::appendQuads):
2543 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2544 (CCSolidColorLayerImpl):
2545 * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2546 (WebCore::CCTextureLayerImpl::appendQuads):
2547 * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
2548 (CCTextureLayerImpl):
2549 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2550 (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
2551 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2552 (WebCore::CCTiledLayerImpl::appendQuads):
2553 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2555 * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2556 (WebCore::CCVideoLayerImpl::appendQuads):
2557 * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2560 2012-03-21 Enrica Casucci <enrica@apple.com>
2562 WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters.
2563 https://bugs.webkit.org/show_bug.cgi?id=81835
2564 <rdar://problem/11082749>
2566 Reviewed by Brady Eidson.
2568 When writing the URL in the pasteboard for the WebURLWithTitles format,
2569 we use the user visible string instead of the original URL.
2570 In case of URL with Unicode characters, we lose the encoding.
2572 Added TestWebKitAPI test.
2574 * platform/mac/PasteboardMac.mm:
2575 (WebCore::writeURLForTypes): Writes to the pasteboard the original URL.
2577 2012-03-21 Levi Weintraub <leviw@chromium.org>
2579 Correct LayoutUnit usage in VisiblePosition.cpp
2580 https://bugs.webkit.org/show_bug.cgi?id=81775
2582 Reviewed by Eric Seidel.
2584 Correcting a mismatch between the .h and .cpp for the definition of localCaretRect,
2585 and properly using LayoutUnits for local coordinates.
2587 No new tests. No change in behavior.
2589 * editing/VisiblePosition.cpp:
2590 (WebCore::VisiblePosition::localCaretRect): Switching to return a LayoutRect, as in the
2591 header. Local coordinates are in LayoutUnits.
2592 (WebCore::VisiblePosition::absoluteCaretBounds): Using LayoutRect for the localCaretRect.
2593 (WebCore::VisiblePosition::lineDirectionPointForBlockDirectionNavigation): Ditto.
2595 2012-03-21 Adam Klein <adamk@chromium.org>
2597 "this" argument for MutationCallbacks should be the MutationObserver
2598 https://bugs.webkit.org/show_bug.cgi?id=81712
2600 Reviewed by Adam Barth.
2602 Test: fast/mutation/callback-arguments.html
2604 * bindings/js/JSCallbackData.cpp:
2605 (WebCore::JSCallbackData::invokeCallback): Add an overload that takes
2606 an explicit this argument and have the old method call the new one.
2607 * bindings/js/JSCallbackData.h:
2609 * bindings/js/JSMutationCallbackCustom.cpp:
2610 (WebCore::JSMutationCallback::handleEvent): Call the new overload.
2611 * bindings/v8/custom/V8CustomVoidCallback.cpp:
2612 (WebCore::invokeCallback): Add an overload that takes an explicit this
2613 argument and have the old method call the new one.
2614 * bindings/v8/custom/V8CustomVoidCallback.h:
2616 * bindings/v8/custom/V8MutationCallbackCustom.cpp:
2617 (WebCore::V8MutationCallback::handleEvent): Call the new overload.
2619 2012-03-21 Alexandru Chiculita <achicu@adobe.com>
2621 [CSS Shaders] Make CSS Shaders compile on Chromium
2622 https://bugs.webkit.org/show_bug.cgi?id=81435
2624 Reviewed by Stephen White.
2626 This patch enables the CSS Shaders compile time flag, but keeps the runtime flag disabled.
2627 The only way to test the functionality now is to use the overridePreference from dump render tree.
2629 Also part of this patch I fix a layering violation: I removed the "Document" reference from the FECustomFilter.cpp and passed the
2630 HostWindow directly. There should be no problem when the HostWindow changes, because the RenderLayer and the FECustomFilter
2631 get recreated anyway.
2633 No new tests. I've updated the existing custom filter tests to run under Chromium and added the expected results.
2634 I've just added window.layoutTestController.overridePreference("WebKitCSSCustomFilterEnabled", "1") to force
2635 enable the feature at runtime.
2637 * loader/cache/CachedResource.cpp: Made CachedResource::ShaderResource report as ResourceRequest::TargetIsSubresource for Chromium.
2638 (WebCore::cachedResourceTypeToTargetType):
2640 * platform/graphics/filters/FECustomFilter.cpp:
2641 (WebCore::FECustomFilter::FECustomFilter): Removed Document and just used the HostWindow directly.
2642 (WebCore::FECustomFilter::create):
2643 (WebCore::FECustomFilter::initializeContext):
2644 (WebCore::FECustomFilter::bindVertexAttribute): There was a typo and instead of using the "size" parameter it always used 4 component attribute.
2645 Other drivers didn't complain about it, but it was clearly a bug.
2646 (WebCore::FECustomFilter::bindProgramAndBuffers): Reading the image back from GPU will flip vertically the framebuffer in Chromium. I've flipped the
2647 projection matrix only on Chromium, so that we get the correct result.
2649 * rendering/FilterEffectRenderer.cpp:
2650 (WebCore::FilterEffectRenderer::build): Passing the HostWindow instead of the Document.
2652 2012-03-21 Mark Pilgrim <pilgrim@chromium.org>
2654 Realphabetize about webaudio move
2655 https://bugs.webkit.org/show_bug.cgi?id=81825
2657 Reviewed by Adam Barth.
2659 No new tests, all existing tests pass.
2663 2012-03-21 Anders Carlsson <andersca@apple.com>
2665 Evict tiles from pages in background tabs
2666 https://bugs.webkit.org/show_bug.cgi?id=81829
2667 <rdar://problem/10866152>
2669 Reviewed by Andreas Kling.
2671 When the tile cache for a page is no longer in a window (which happens when it's moved to
2672 a background tab), schedule a tile revalidation after 4 seconds. This tile revalidation
2673 will ensure that tiles outside of the visible rect will be dropped.
2675 * platform/graphics/ca/mac/TileCache.h:
2677 * platform/graphics/ca/mac/TileCache.mm:
2678 (WebCore::TileCache::tileCacheLayerBoundsChanged):
2679 (WebCore::TileCache::setIsInWindow):
2680 (WebCore::TileCache::tileCoverageRect):
2682 (WebCore::TileCache::scheduleTileRevalidation):
2683 (WebCore::TileCache::revalidateTiles):
2685 2012-03-21 Stephen Chenney <schenney@chromium.org>
2687 SVG layout leaves objects still needing layout
2688 https://bugs.webkit.org/show_bug.cgi?id=81006
2690 Reviewed by Nikolas Zimmermann.
2692 Change the layout of SVG objects such that resources that trigger
2693 layout of other objects are handled in a distinct pass, and then
2694 objects still requiring layout are laid out again.
2696 Test: svg/custom/delete-text-innerText-crash.html
2698 * rendering/svg/RenderSVGResourceContainer.cpp:
2699 (WebCore::RenderSVGResourceContainer::layout):
2700 * rendering/svg/RenderSVGResourceMarker.cpp:
2701 (WebCore::RenderSVGResourceMarker::layout):
2702 * rendering/svg/RenderSVGRoot.cpp:
2703 (WebCore::RenderSVGRoot::layout):
2704 (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
2706 * rendering/svg/RenderSVGRoot.h:
2709 2012-03-21 Tim Horton <timothy_horton@apple.com>
2711 Make use of CG rounded-rect primitives
2712 https://bugs.webkit.org/show_bug.cgi?id=79932
2713 <rdar://problem/9274953>
2715 Reviewed by Simon Fraser.
2717 Portions of patch by Nikolas Zimmermann and Mustafizur Rahaman.
2719 Dispatch to potentially platform-specific rounded rectangle path
2720 construction from addPathForRoundedRect. Make use of this to call
2721 wkCGPathAddRoundedRect on Lion and above, as long as the rounded
2722 corners are all equivalent.
2724 The origin of the stroke dash differs between the bezier approach
2725 and the path added by wkCGPathAddRoundedRect, so Path::addRoundedRect()
2726 takes a new parameter allowing code which is sensitive to stroke dash
2727 origin (i.e. SVG) to fall back to the old behavior if need be.
2729 Make use of the new Path::addRoundedRect() parameter to fall back to
2730 the old (bezier) rounded-rect behavior when constructing a dashed SVG path,
2731 in order to continue complying with the spec.
2733 No new tests, as this is covered by many that use rounded corners,
2734 and is only a performance improvement.
2737 * platform/graphics/Path.cpp:
2738 (WebCore::Path::addRoundedRect):
2740 (WebCore::Path::addPathForRoundedRect):
2741 * platform/graphics/Path.h:
2743 * platform/graphics/cg/PathCG.cpp:
2744 (WebCore::Path::platformAddPathForRoundedRect):
2746 * platform/mac/WebCoreSystemInterface.h:
2747 * platform/mac/WebCoreSystemInterface.mm:
2748 * rendering/svg/SVGPathData.cpp:
2749 (WebCore::updatePathFromRectElement):
2751 2012-03-21 David Reveman <reveman@chromium.org>
2753 [Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support.
2754 https://bugs.webkit.org/show_bug.cgi?id=80988
2756 Reviewed by Adrienne Walker.
2758 Expose EXT_occlusion_query API to WebKit compositor. Add
2759 GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query
2762 * platform/graphics/chromium/Extensions3DChromium.h:
2763 (Extensions3DChromium):
2765 2012-03-21 Tony Chang <tony@chromium.org>
2767 compute the sign of flexibility for new flexbox
2768 https://bugs.webkit.org/show_bug.cgi?id=81722
2770 Reviewed by Ojan Vafai.
2772 This implements the computation of the sign of flexibility used by the
2773 new flexing algorithm.
2774 http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
2776 No new tests, we don't use the sign of flexibility yet.
2778 * rendering/RenderFlexibleBox.cpp:
2779 (WebCore::RenderFlexibleBox::layoutFlexItems):
2780 (WebCore::RenderFlexibleBox::computeNextFlexLine): Compute the size
2781 adjusted for min/max as well as not adjusted.
2782 (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Renamed to match
2784 * rendering/RenderFlexibleBox.h: Added enum for flex sign.
2786 2012-03-21 Vsevolod Vlasov <vsevik@chromium.org>
2788 Web Inspector: Extract WebInspector.UIBreakpoint from WebInspector.Breakpoint.
2789 https://bugs.webkit.org/show_bug.cgi?id=81669
2791 Reviewed by Pavel Feldman.
2793 * inspector/front-end/BreakpointManager.js:
2794 (WebInspector.BreakpointManager.get for):
2795 (WebInspector.BreakpointManager):
2796 (WebInspector.BreakpointManager.prototype.uiSourceCodeAdded):
2797 (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
2798 (WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode):
2799 (WebInspector.BreakpointManager.prototype.setBreakpoint):
2800 (WebInspector.BreakpointManager.prototype.removeBreakpoint):
2801 (WebInspector.BreakpointManager.prototype._innerRemoveBreakpoint):
2802 (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
2803 (WebInspector.BreakpointManager.prototype._moveBreakpointInUI):
2804 (WebInspector.BreakpointManager.prototype._uiBreakpoints.get this):
2805 (WebInspector.BreakpointManager.prototype._uiBreakpoints):
2806 (WebInspector.BreakpointManager.prototype.get _uiBreakpoint):
2807 (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
2808 (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
2809 (WebInspector.BreakpointManager.prototype._breakpoints):
2810 (WebInspector.BreakpointManager.prototype._breakpoint):
2811 (WebInspector.BreakpointManager.prototype._addBreakpointToModel):
2812 (WebInspector.BreakpointManager.prototype._removeBreakpointFromModel):
2813 (WebInspector.BreakpointManager.prototype._forEachBreakpoint):
2814 (WebInspector.BreakpointManager.prototype._setBreakpointInDebugger):
2815 (WebInspector.BreakpointManager.prototype._removeBreakpointFromDebugger):
2816 (WebInspector.BreakpointManager.prototype.debuggerReset):
2817 (WebInspector.Breakpoint.prototype.serialize):
2818 (WebInspector.Breakpoint.prototype.get uiBreakpoint):
2819 (WebInspector.Breakpoint.prototype.createUIBreakpoint):
2820 (WebInspector.Breakpoint.prototype.removeUIBreakpoint):
2821 (WebInspector.UIBreakpoint):
2822 * inspector/front-end/DebuggerPresentationModel.js:
2823 (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
2824 (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
2825 (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
2826 (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
2827 * inspector/front-end/ScriptsPanel.js:
2829 2012-03-21 Anders Carlsson <andersca@apple.com>
2831 TileCache needs to know if its containing page is in a window
2832 https://bugs.webkit.org/show_bug.cgi?id=81821
2834 Reviewed by Andreas Kling.
2836 This is in preparation for throwing away invisible tiles in background tabs to reduce memory usage.
2838 * page/FrameView.cpp:
2839 (WebCore::FrameView::didMoveOnscreen):
2840 (WebCore::FrameView::willMoveOffscreen):
2842 (WebCore::Page::Page):
2843 (WebCore::Page::didMoveOnscreen):
2844 (WebCore::Page::willMoveOffscreen):
2846 (WebCore::Page::isOnscreen):
2848 * platform/graphics/TiledBacking.h:
2850 * platform/graphics/ca/mac/TileCache.h:
2852 * platform/graphics/ca/mac/TileCache.mm:
2853 (WebCore::TileCache::TileCache):
2854 (WebCore::TileCache::setIsInWindow):
2856 * rendering/RenderLayerBacking.cpp:
2857 (WebCore::RenderLayerBacking::RenderLayerBacking):
2859 2012-03-21 Xingnan Wang <xingnan.wang@intel.com>
2861 Web audio layout test failed in debug with an ASSERT error in ReverbConvolverStage.cpp
2862 https://bugs.webkit.org/show_bug.cgi?id=81744
2864 Reviewed by Chris Rogers.
2866 * platform/audio/ReverbConvolverStage.cpp:
2867 (WebCore::ReverbConvolverStage::ReverbConvolverStage):
2869 2012-03-21 Xiaomei Ji <xji@chromium.org>
2871 [chromium] Font fallback in cr-win is wrong for string contains zero-width-space.
2872 https://bugs.webkit.org/show_bug.cgi?id=79961
2874 Reviewed by Adam Barth.
2876 Treat zero-width-space (\u200B) as true for treatAsZeroWidthSpaceInComplexScipt().
2878 * platform/graphics/Font.h:
2879 (WebCore::Font::treatAsZeroWidthSpaceInComplexScript):
2880 * platform/graphics/mac/ComplexTextController.cpp:
2881 (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
2882 * platform/graphics/win/UniscribeController.cpp:
2883 (WebCore::UniscribeController::shapeAndPlaceItem):
2885 2012-03-21 Patrick Gansterer <paroga@webkit.org>
2887 Build fix for !ENABLE(INSPECTOR) after r111005.
2889 * inspector/ContentSearchUtils.h:
2891 2012-03-21 Ulan Degenbaev <ulan@chromium.org>
2893 [V8] V8GCForContextDispose should indicate whether a context is disposed for the main frame or not
2894 https://bugs.webkit.org/show_bug.cgi?id=81200
2896 Reviewed by Adam Barth.
2898 Pass a hint to V8::IdleNotification that requests more aggressive GC
2899 when a main frame context is disposed and requests incremental GC otherwise.
2901 * bindings/v8/V8DOMWindowShell.cpp:
2902 (WebCore::V8DOMWindowShell::disposeContextHandles):
2903 * bindings/v8/V8GCForContextDispose.cpp:
2904 (WebCore::V8GCForContextDispose::V8GCForContextDispose):
2905 (WebCore::V8GCForContextDispose::notifyContextDisposed):
2906 (WebCore::V8GCForContextDispose::pseudoIdleTimerFired):
2907 * bindings/v8/V8GCForContextDispose.h:
2908 (V8GCForContextDispose):
2910 2012-03-21 Nat Duca <nduca@chromium.org>
2912 [chromium] CCThreadProxy must initialize frameBeginTime to monotonicallyIncreasingTime rather than zero
2913 https://bugs.webkit.org/show_bug.cgi?id=81790
2915 Reviewed by James Robinson.
2917 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2918 (WebCore::CCThreadProxy::scheduledActionBeginFrame):
2920 2012-03-21 Xingnan Wang <xingnan.wang@intel.com>
2922 Add multichannel support in RealtimeAnalyser
2923 https://bugs.webkit.org/show_bug.cgi?id=81745
2925 Reviewed by Chris Rogers.
2927 * Modules/webaudio/RealtimeAnalyser.cpp:
2928 (WebCore::RealtimeAnalyser::writeInput):
2931 2012-03-21 Eric Carlson <eric.carlson@apple.com>
2933 Removing HTMLTrackElement does not delete TextTrack
2934 https://bugs.webkit.org/show_bug.cgi?id=80873
2936 Reviewed by Antti Koivisto.
2938 No new tests, but media/track/track-language-preference.html has been updated
2941 * html/HTMLMediaElement.cpp:
2942 (WebCore::HTMLMediaElement::didAddTrack): Renamed from trackWasAdded.
2943 (WebCore::HTMLMediaElement::willRemoveTrack): Renamed from trackWasRemoved because it is
2944 called before the track is removed, to allow the TextTrack to be removed.
2945 * html/HTMLMediaElement.h:
2947 * html/HTMLTrackElement.cpp:
2948 (WebCore::HTMLTrackElement::insertedIntoTree): Renamed from insertedIntoDocument
2949 (WebCore::HTMLTrackElement::willRemove): Renamed from removedFromDocument.
2950 * html/HTMLTrackElement.h:
2952 * html/track/LoadableTextTrack.cpp:
2953 (WebCore::LoadableTextTrack::trackElementIndex): Don't include tracks that are not in the
2954 document in the calcualtion.
2956 2012-03-21 Zeno Albisser <zeno@webkit.org>
2958 [Qt][Mac] ranlib segfaults when creating symbol tables for libWebCore.a.
2959 https://bugs.webkit.org/show_bug.cgi?id=81750
2961 Building WebCore on mac currently creates an archive that is bigger than
2962 4GB. But ranlib fails to create a symbol table for such a big archive,
2963 even on 64bit machines.
2964 Therefore we start using SVGAllInOne.cpp when building debug
2965 on mac. This reduces the size of the archive by about 300MB.
2967 Reviewed by Tor Arne Vestbø.
2971 2012-03-21 Tommy Widenflycht <tommyw@google.com>
2973 [chromium] MediaStream API (JSEP): Introducing WebSessionDescription and WebIceCandidate
2974 https://bugs.webkit.org/show_bug.cgi?id=81339
2976 Reviewed by Adam Barth.
2978 Not possible to test until the entire JSEP feature is commited.
2980 * Modules/mediastream/IceCandidate.cpp:
2981 (WebCore::IceCandidate::toSdp):
2982 * Modules/mediastream/SessionDescription.cpp:
2983 (WebCore::SessionDescription::toSdp):
2984 * platform/mediastream/IceCandidateDescriptor.cpp:
2985 (WebCore::IceCandidateDescriptor::toSDP):
2986 * platform/mediastream/IceCandidateDescriptor.h:
2987 (IceCandidateDescriptor):
2988 * platform/mediastream/MediaStreamCenter.cpp:
2989 (WebCore::MediaStreamCenter::constructSDP):
2990 * platform/mediastream/MediaStreamCenter.h:
2991 (MediaStreamCenter):
2992 * platform/mediastream/SessionDescriptionDescriptor.cpp:
2993 (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
2994 (WebCore::SessionDescriptionDescriptor::toSDP):
2995 (WebCore::SessionDescriptionDescriptor::initialSDP):
2996 * platform/mediastream/SessionDescriptionDescriptor.h:
2997 (SessionDescriptionDescriptor):
2999 2012-03-21 Yuta Kitamura <yutak@chromium.org>
3001 Use RFC version of WebSocket protocol by default
3002 https://bugs.webkit.org/show_bug.cgi?id=81718
3004 Reviewed by Kent Tamura.
3006 Flip the default value of Settings::m_useHixie76WebSocketProtocol so WebKit ports will use
3007 RFC version of WebSocket protocol by default.
3009 All the existing ports already use the RFC protocol as of now, so this change will not make
3010 any impact (hopefully).
3012 No new tests. No change in functionality.
3014 * page/Settings.cpp:
3015 (WebCore::Settings::Settings):
3017 2012-03-21 Andrey Kosyakov <caseq@chromium.org>
3019 Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel
3020 https://bugs.webkit.org/show_bug.cgi?id=81798
3022 Reviewed by Pavel Feldman.
3024 * bindings/js/JSInjectedScriptHostCustom.cpp:
3025 (WebCore::getJSListenerFunctions):
3026 * bindings/js/ScriptEventListener.cpp:
3027 (WebCore::eventListenerHandlerBody):
3028 (WebCore::eventListenerHandlerLocation):
3029 * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3030 (WebCore::getJSListenerFunctions):
3031 * inspector/InspectorDOMAgent.cpp:
3032 (WebCore::InspectorDOMAgent::getEventListeners):
3034 2012-03-21 Andrey Kosyakov <caseq@chromium.org>
3036 EventListener::Type enum has unused member InspectorDOMAgentType
3037 https://bugs.webkit.org/show_bug.cgi?id=81794
3039 Reviewed by Pavel Feldman.
3041 * dom/EventListener.h:
3043 2012-03-21 Tom Hudson <tomhudson@google.com>
3045 Incremental cleanup of BitmapImage: inlined virtual functions
3046 https://bugs.webkit.org/show_bug.cgi?id=81688
3048 Reviewed by James Robinson.
3050 No change in functionality, so no new tests.
3052 Move virtual functions defined in headers into .cpp files.
3055 * platform/graphics/BitmapImage.cpp:
3056 (WebCore::BitmapImage::isBitmapImage):
3058 (WebCore::BitmapImage::hasSingleSecurityOrigin):
3059 (WebCore::BitmapImage::nativeImageForCurrentFrame):
3060 (WebCore::BitmapImage::currentFrameHasAlpha):
3061 (WebCore::BitmapImage::notSolidColor):
3062 (WebCore::BitmapImage::decodedSize):
3063 (WebCore::BitmapImage::mayFillWithSolidColor):
3064 (WebCore::BitmapImage::solidColor):
3065 * platform/graphics/BitmapImage.h:
3067 * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Added.
3069 (WebCore::BitmapImageSingleFrameSkia::isBitmapImage):
3070 (WebCore::BitmapImageSingleFrameSkia::currentFrameHasAlpha):
3071 (WebCore::BitmapImageSingleFrameSkia::size):
3072 (WebCore::BitmapImageSingleFrameSkia::destroyDecodedData):
3073 (WebCore::BitmapImageSingleFrameSkia::decodedSize):
3074 (WebCore::BitmapImageSingleFrameSkia::nativeImageForCurrentFrame):
3075 (WebCore::BitmapImageSingleFrameSkia::notSolidColor):
3076 * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
3077 (BitmapImageSingleFrameSkia):
3079 2012-03-21 Alexey Proskuryakov <ap@apple.com>
3081 Remove obsolete File attributes
3082 https://bugs.webkit.org/show_bug.cgi?id=79383
3084 Reviewed by Hajime Morita.
3086 * bindings/objc/PublicDOMInterfaces.h:
3089 Removed fileName and fileSize, they have different names now.
3091 * html/FileInputType.cpp:
3092 (WebCore::FileInputType::appendFormData):
3093 (WebCore::FileInputType::getTypeSpecificValue):
3094 (WebCore::FileInputType::defaultToolTip):
3095 Updated to use new function names.
3097 2012-03-21 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
3099 TiledBackingStore: Create the first round of tiles synchronously after setting the visible rect.
3100 https://bugs.webkit.org/show_bug.cgi?id=81762
3102 Reviewed by Kenneth Rohde Christiansen.
3104 The first round of tiles should cover completely the visible rect.
3105 Creating the tiles synchronously allows us to get the new tiles immediately
3106 and prevents an extra AC layers sync to be able to remove the old tiles.
3108 At some point it might also make sense to remove the tile creation timer
3111 * platform/graphics/TiledBackingStore.cpp:
3112 (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
3114 2012-03-19 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
3116 TiledBackingStore: When checking if the visible area is covered, only convert to scaled coordinates once.
3117 https://bugs.webkit.org/show_bug.cgi?id=81519
3119 Reviewed by Kenneth Rohde Christiansen.
3121 Both visibleRect and coverageRatio call mapFromContents on the input rect,
3122 this woulc cause the coverageRatio to never reach 1.0 when the contents is
3125 * platform/graphics/TiledBackingStore.cpp:
3126 (WebCore::TiledBackingStore::visibleAreaIsCovered):
3128 2012-03-21 Mao Yujie <yujie.mao@intel.com>
3130 MediaStream API: Need to support MediaStream constructor for JSC
3131 https://bugs.webkit.org/show_bug.cgi?id=78781
3133 Reviewed by Adam Barth.
3137 * Modules/mediastream/DOMWindowMediaStream.idl:
3138 * bindings/generic/RuntimeEnabledFeatures.h:
3139 (WebCore::RuntimeEnabledFeatures::webkitMediaStreamEnabled):
3141 2012-03-21 Philip Rogers <pdr@google.com>
3143 Skip building resources if SVGTRef is not in a document
3144 https://bugs.webkit.org/show_bug.cgi?id=81473
3146 Reviewed by Nikolas Zimmermann.
3148 We can skip the building of pending resources in SVGTRef if we're not
3149 yet in a document. This mirrors the nearly identical logic in
3150 SVGUseElement::buildPendingResource() and
3151 SVGFEImageElement::buildPendingResource().
3153 Test: http/tests/svg/tref-adoptNode-crash.html
3155 * svg/SVGTRefElement.cpp:
3156 (WebCore::SVGTRefElement::buildPendingResource):
3158 2012-03-21 Sami Kyostila <skyostil@chromium.org>
3160 [chromium] Use floating point scroll deltas for layers
3161 https://bugs.webkit.org/show_bug.cgi?id=81546
3163 Reviewed by James Robinson.
3165 Use floating point scroll deltas for layers instead of integral scroll
3166 deltas. This is because due to page scaling it may be necessary to
3167 scroll layers in sub-CSS-pixel steps to avoid visible jumps. When the
3168 floating point scroll offset is committed to the main thread, it is
3169 truncated to integer, but the fractional part is kept on the CC side to
3170 make sure fractional scroll offsets are accumulated correctly over
3173 Test: CCLayerTreeHostTestFractionalScroll
3175 * platform/graphics/FloatPoint.h:
3178 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3179 (WebCore::CCLayerImpl::scrollBy):
3180 (WebCore::CCLayerImpl::setScrollDelta):
3181 * platform/graphics/chromium/cc/CCLayerImpl.h:
3182 (WebCore::CCLayerImpl::scrollDelta):
3184 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3185 (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
3186 (WebCore::CCLayerTreeHostImpl::adjustScrollsForPageScaleChange):
3187 (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
3188 (WebCore::CCLayerTreeHostImpl::animatePageScale):
3190 2012-03-21 Li Yin <li.yin@intel.com>
3192 [WebSocket]The Sec-WebSocket-Accept MUST NOT appear more than once in an HTTP response
3193 https://bugs.webkit.org/show_bug.cgi?id=81655
3195 Reviewed by Adam Barth.
3197 Test: http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header.html
3199 * Modules/websockets/WebSocketHandshake.cpp:
3200 (WebCore::WebSocketHandshake::readHTTPHeaders):
3202 2012-03-21 Alexei Filippov <alexeif@chromium.org>
3204 Web Inspector: Speedup heap snapshot loading.
3205 https://bugs.webkit.org/show_bug.cgi?id=81788
3207 Reviewed by Yury Semikhatsky.
3209 * inspector/front-end/HeapSnapshot.js:
3210 (WebInspector.HeapSnapshotLoader.prototype._parseNodes):
3212 2012-03-21 Pavel Feldman <pfeldman@chromium.org>
3214 Web Inspector: get rid of isInEditMode, use isBeingEdited on particular element.
3215 https://bugs.webkit.org/show_bug.cgi?id=81766
3217 Reviewed by Yury Semikhatsky.
3219 We should check event target and its ancestors for being edited, not use some
3220 global property. This change also introduces Event.prototype.consume so that we
3221 were consistently consuming events.
3223 * inspector/front-end/AdvancedSearchController.js:
3224 (WebInspector.SearchView.prototype._onKeyDown):
3225 * inspector/front-end/BreakpointsSidebarPane.js:
3226 (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointCheckboxClicked):
3227 * inspector/front-end/CSSSelectorProfileView.js:
3228 * inspector/front-end/Checkbox.js:
3229 (WebInspector.Checkbox.prototype.addEventListener):
3230 * inspector/front-end/ConsoleView.js:
3231 (WebInspector.ConsoleView.prototype._enterKeyPressed):
3232 (WebInspector.ConsoleGroup.prototype._titleClicked):
3233 * inspector/front-end/ContextMenu.js:
3234 (WebInspector.ContextMenu.prototype.show):
3235 * inspector/front-end/DataGrid.js:
3236 (WebInspector.DataGrid.prototype._keyDown):
3237 * inspector/front-end/DatabaseQueryView.js:
3238 (WebInspector.DatabaseQueryView.prototype._enterKeyPressed):
3239 * inspector/front-end/DetailedHeapshotView.js:
3240 (WebInspector.DetailedHeapshotView.prototype._mouseDownInContentsGrid):
3241 (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging):
3242 (WebInspector.DetailedHeapshotView.prototype._retainersHeaderDragging):
3243 (WebInspector.DetailedHeapshotView.prototype._endRetainersHeaderDragging):
3244 * inspector/front-end/Dialog.js:
3245 (WebInspector.Dialog.prototype._onKeyDown):
3246 * inspector/front-end/Drawer.js:
3247 (WebInspector.Drawer.prototype._startStatusBarDragging):
3248 (WebInspector.Drawer.prototype._statusBarDragging):
3249 (WebInspector.Drawer.prototype._endStatusBarDragging):
3250 * inspector/front-end/EventListenersSidebarPane.js:
3251 (WebInspector.EventListenersSidebarPane.get if):
3252 * inspector/front-end/HelpScreen.js:
3253 (WebInspector.HelpScreen.prototype._onKeyDown):
3254 * inspector/front-end/InspectorView.js:
3255 (WebInspector.InspectorView.prototype._keyDown):
3256 * inspector/front-end/MetricsSidebarPane.js:
3257 (WebInspector.MetricsSidebarPane.prototype._highlightDOMNode):
3258 * inspector/front-end/NetworkPanel.js:
3259 * inspector/front-end/Object.js:
3260 (WebInspector.Event.prototype.preventDefault):
3261 (WebInspector.Event.prototype.consume):
3262 * inspector/front-end/ObjectPropertiesSection.js:
3263 (WebInspector.ObjectPropertyTreeElement.prototype._promptKeyDown):
3264 * inspector/front-end/ProfileView.js:
3265 * inspector/front-end/SearchController.js:
3266 (WebInspector.SearchController.prototype._onKeyDown):
3267 * inspector/front-end/Section.js:
3268 (WebInspector.Section.prototype.handleClick):
3269 * inspector/front-end/Settings.js:
3270 (WebInspector.ExperimentsSettings):
3271 * inspector/front-end/SoftContextMenu.js:
3272 (.WebInspector.SoftContextMenu.prototype.show):
3273 (.WebInspector.SoftContextMenu.prototype._menuItemMouseDown):
3274 (.WebInspector.SoftContextMenu.prototype._menuKeyDown):
3275 (.WebInspector.SoftContextMenu.prototype._discardMenu):
3276 * inspector/front-end/Spectrum.js:
3277 (WebInspector.Spectrum.draggable.consume):
3278 (WebInspector.Spectrum.draggable.start):
3279 (WebInspector.Spectrum.draggable.stop):
3280 (WebInspector.Spectrum.draggable):
3281 (WebInspector.Spectrum.prototype._onKeyDown):
3282 * inspector/front-end/StylesSidebarPane.js:
3283 (WebInspector.StylesSidebarPane.muteEventListener):
3284 (WebInspector.StylesSidebarPane):
3285 (WebInspector.StylesSidebarPane.prototype.set _createNewRule):
3286 (WebInspector.StylesSidebarPane.prototype._toggleElementStatePane):
3287 (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
3288 (WebInspector.StylePropertiesSection.prototype._handleSelectorClick):
3289 (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
3290 (WebInspector.StylePropertyTreeElement.prototype):
3291 * inspector/front-end/TextPrompt.js:
3292 (WebInspector.TextPrompt.prototype.onKeyDown):
3293 (WebInspector.TextPromptWithHistory.prototype.defaultKeyHandler):
3294 (WebInspector.TextPrompt.SuggestBox.prototype._onItemMouseDown):
3295 * inspector/front-end/TextViewer.js:
3296 (WebInspector.TextViewer.prototype._handleKeyDown):
3297 * inspector/front-end/Toolbar.js:
3298 (WebInspector.ToolbarDropdown.prototype._onKeyDown):
3299 * inspector/front-end/UIUtils.js:
3300 (WebInspector.isBeingEdited):
3301 (WebInspector.startEditing):
3302 * inspector/front-end/View.js:
3303 (WebInspector.View.prototype._doLoadCSS):
3304 * inspector/front-end/WatchExpressionsSidebarPane.js:
3305 (WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked):
3306 (WebInspector.WatchExpressionsSidebarPane.prototype._refreshButtonClicked):
3307 * inspector/front-end/inspector.js:
3308 (WebInspector.documentClick.followLink):
3309 (WebInspector.documentClick):
3310 (WebInspector.documentKeyDown):
3311 (WebInspector.postDocumentKeyDown):
3312 (WebInspector.addMainEventListeners):
3313 * inspector/front-end/treeoutline.js:
3314 (TreeOutline.prototype._treeKeyPress):
3315 (TreeOutline.prototype._treeKeyDown):
3316 (TreeOutline.prototype._searchInputKeyDown):
3317 (TreeElement.treeElementToggled):
3318 (TreeElement.prototype.selectOnMouseDown):
3319 * inspector/front-end/utilities.js:
3320 (Event.prototype.consume):
3322 2012-03-21 Yury Semikhatsky <yurys@chromium.org>
3324 Web Inspector: event listener section doesn't show all event listeners of the element ancestors
3325 https://bugs.webkit.org/show_bug.cgi?id=81782
3327 Event listeners section now contains all event listeners for the selected
3328 element ancestors chain (in case option "All Nodes" is selected).
3330 Reviewed by Pavel Feldman.
3332 * inspector/InspectorDOMAgent.cpp:
3333 (WebCore::InspectorDOMAgent::getEventListenersForNode):
3334 * inspector/front-end/EventListenersSidebarPane.js:
3335 (WebInspector.EventListenersSidebarPane.prototype.update.callback):
3336 (WebInspector.EventListenersSidebarPane.prototype.update):
3337 (WebInspector.EventListenersSidebarPane.prototype):
3339 2012-03-21 Ilya Tikhonovsky <loislo@chromium.org>
3341 Web Inspector: HeapSnapshot: move all builders and calculation calls to HeapSnapshot._init function.
3342 https://bugs.webkit.org/show_bug.cgi?id=81784
3344 Reviewed by Yury Semikhatsky.
3346 * inspector/front-end/HeapSnapshot.js:
3347 (WebInspector.HeapSnapshot.prototype._init):
3348 (WebInspector.HeapSnapshot.prototype.dispose):
3349 (WebInspector.HeapSnapshot.prototype._retainersForNode):
3350 (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
3351 (WebInspector.HeapSnapshot.prototype._flagsOfNode):
3352 (WebInspector.HeapSnapshot.prototype.aggregates):
3353 (WebInspector.HeapSnapshot.prototype._buildRetainers):
3354 (WebInspector.HeapSnapshot.prototype.get nodeIndexes):
3356 2012-03-21 Jessie Berlin <jberlin@apple.com>
3358 WTF headers should be in $(ConfigurationBuildDir)\include\private\wtf, not
3359 $(ConfigurationBuildDir)\include\private\JavaScriptCore\wtf.
3360 https://bugs.webkit.org/show_bug.cgi?id=81739
3362 Reviewed by Dan Bernstein.
3364 * WebCore.vcproj/WebCore.vcproj:
3365 Look for AtomicString.cpp, StringBuilder.cpp, StringImpl.cpp, and WTFString.cpp in the wtf
3366 subdirectory of the build output, not the JavaScriptCore/wtf subdirectory.
3368 2012-03-21 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
3370 [BlackBerry] Credential save and autofill implemetation
3371 https://bugs.webkit.org/show_bug.cgi?id=80401
3373 Reviewed by Rob Buis.
3375 Added interface function authenticationChallenge() and
3376 notifyShouldSaveCredential() into PageClientBlackBerry.
3377 As this class is our platform specific interface,
3378 by doing this we don't need to add an interface function
3379 in class FrameLoaderClient which is a platform
3380 independent interface.
3384 * platform/blackberry/PageClientBlackBerry.h:
3386 * platform/network/blackberry/NetworkJob.cpp:
3387 (WebCore::NetworkJob::sendRequestWithCredentials):
3389 2012-03-21 Ilya Tikhonovsky <loislo@chromium.org>
3391 Web Inspector: HeapProfiler: DOM node id can overflow Int32.
3392 https://bugs.webkit.org/show_bug.cgi?id=81776
3394 Reviewed by Pavel Feldman.
3396 * inspector/front-end/HeapSnapshot.js:
3397 (WebInspector.Uint32Array):
3398 (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
3399 (WebInspector.HeapSnapshot.prototype._buildReverseIndex.var):
3400 (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
3401 (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
3403 2012-03-21 Tim Dresser <tdresser@chromium.org>
3405 [chromium] Increase size of Combo Box Options for touch and high DPI devices
3406 https://bugs.webkit.org/show_bug.cgi?id=80027
3408 Reviewed by Darin Fisher.
3410 Scale Combo box popups by defaultDeviceScaleFactor, and add padding to
3411 <option> elements when touch is enabled.
3413 Manually tested with --default-device-scale-factor=1,2 and unset.
3414 Each of these were tested with RuntimeEnabledFeatures::touchEnabled
3415 set to true and false.
3417 * platform/chromium/PopupListBox.cpp:
3418 (WebCore::PopupListBox::paint):
3419 (WebCore::PopupListBox::paintRow):
3420 (WebCore::PopupListBox::getRowHeight):
3421 * platform/chromium/PopupListBox.h:
3422 (PopupContainerSettings):
3423 * platform/chromium/PopupMenuChromium.cpp:
3425 (WebCore::PopupMenuChromium::show):
3426 * platform/chromium/PopupMenuChromium.h:
3427 (WebCore::PopupMenuChromium::optionPaddingForTouch):
3428 (WebCore::PopupMenuChromium::setOptionPaddingForTouch):
3429 (PopupMenuChromium):
3430 * rendering/RenderMenuList.cpp:
3431 (WebCore::RenderMenuList::showPopup):
3433 2012-03-21 Takashi Toyoshima <toyoshim@chromium.org>
3435 [Chromium] [WebSocket] provide WebFrameClient with a chance of
3436 accessing to opening WebSocketStreamHandle.
3437 https://bugs.webkit.org/show_bug.cgi?id=78459
3439 Reviewed by Kent Tamura and Darin Fisher.
3441 Add willOpenSocketStream client function to WebFrameClient with an
3442 argument representing an opening SocketStreamHandle.
3443 These mechanisms provide embedders with a chance to bind arbitrary
3444 data to a WebSocketStreamHandle from WebFrameClient to which the
3445 WebSocket object having the WebSocketStreamHandle belongs.
3447 No new tests because this change just provide mechanisms to embedders.
3449 * Modules/websockets/WebSocketChannel.cpp: Implement willOpenSocketStream to call a client function in WebFrameClient.
3450 (WebCore::WebSocketChannel::willOpenSocketStream):
3452 * Modules/websockets/WebSocketChannel.h: Add willOpenSocketStream declaration.
3454 * loader/FrameLoaderClient.h: Add dispatchWillOpenSocketStream declaration.
3456 (FrameLoaderClient):
3457 (WebCore::FrameLoaderClient::dispatchWillOpenSocketStream):
3458 * platform/network/SocketStreamHandleClient.h: Add willOpenSocketStream declaration.
3459 (WebCore::SocketStreamHandleClient::willOpenSocketStream):
3461 2012-03-21 Vineet Chaudhary <rgf748@motorola.com>
3463 https://bugs.webkit.org/show_bug.cgi?id=81761
3464 Fix Gobject binding for sequence<T> for function return type.
3466 Reviewed by Kentaro Hara.
3470 * bindings/scripts/CodeGeneratorGObject.pm:
3471 (SkipFunction): Skip function with sequence<T> return type.
3472 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
3473 (webkit_dom_test_obj_method_with_sequence_arg):
3474 * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
3476 2012-03-21 Andrey Kosyakov <caseq@chromium.org>
3478 Unreviewed build fix for r111529.
3480 * inspector/InjectedScriptHost.h:
3483 2012-03-21 Sheriff Bot <webkit.review.bot@gmail.com>
3485 Unreviewed, rolling out r111497, r111506, r111508, and
3487 http://trac.webkit.org/changeset/111497
3488 http://trac.webkit.org/changeset/111506
3489 http://trac.webkit.org/changeset/111508
3490 http://trac.webkit.org/changeset/111513
3491 https://bugs.webkit.org/show_bug.cgi?id=81774
3493 It broke 2 tests on all platform (Requested by Ossy on
3496 * css/CSSStyleSelector.cpp:
3497 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3498 * css/SelectorChecker.cpp:
3499 (WebCore::SelectorChecker::checkOneSelector):
3500 * html/HTMLKeygenElement.cpp:
3501 (WebCore::HTMLKeygenElement::HTMLKeygenElement):
3502 * html/HTMLOptionElement.cpp:
3503 (WebCore::HTMLOptionElement::HTMLOptionElement):
3504 (WebCore::HTMLOptionElement::create):
3505 (WebCore::HTMLOptionElement::attach):
3506 (WebCore::HTMLOptionElement::detach):
3507 (WebCore::HTMLOptionElement::formControlType):
3509 (WebCore::HTMLOptionElement::parseAttribute):
3510 (WebCore::HTMLOptionElement::childrenChanged):
3511 (WebCore::HTMLOptionElement::insertedIntoTree):
3512 * html/HTMLOptionElement.h:
3513 (HTMLOptionElement):
3514 (WebCore::HTMLOptionElement::ownElementDisabled):
3515 * html/HTMLTagNames.in:
3517 2012-03-21 Andrey Kosyakov <caseq@chromium.org>
3519 Web Inspector: expose getEventListeners() to console command line API
3520 https://bugs.webkit.org/show_bug.cgi?id=81658
3522 Reviewed by Yury Semikhatsky.
3524 Test: inspector/console/command-line-api-getEventListeners.html
3526 * bindings/js/JSInjectedScriptHostCustom.cpp:
3527 (WebCore::JSInjectedScriptHost::functionDetails):
3529 (WebCore::getJSListenerFunctions):
3530 (WebCore::JSInjectedScriptHost::getEventListeners):
3531 * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3532 (WebCore::getJSListenerFunctions):
3534 (WebCore::V8InjectedScriptHost::getEventListenersCallback):
3535 * inspector/InjectedScriptHost.cpp:
3536 (WebCore::InjectedScriptHost::InjectedScriptHost):
3537 (WebCore::InjectedScriptHost::disconnect):
3538 (WebCore::InjectedScriptHost::getEventListenersImpl):
3540 * inspector/InjectedScriptHost.h:
3542 (WebCore::InjectedScriptHost::init):
3543 (InjectedScriptHost):
3544 * inspector/InjectedScriptHost.idl:
3545 * inspector/InjectedScriptSource.js:
3547 * inspector/InspectorController.cpp:
3548 (WebCore::InspectorController::InspectorController):
3549 * inspector/InspectorDOMAgent.cpp:
3550 (WebCore::InspectorDOMAgent::getEventListenersForNode):
3551 (WebCore::InspectorDOMAgent::getEventListeners):
3553 * inspector/InspectorDOMAgent.h:
3554 (InspectorDOMAgent):
3555 * inspector/WorkerInspectorController.cpp:
3556 (WebCore::WorkerInspectorController::WorkerInspectorController):
3558 2012-03-21 Kentaro Hara <haraken@chromium.org>
3560 Unreviewed, rebaselined run-bindings-tests results.
3562 * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
3563 * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
3564 * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
3565 * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
3567 2012-03-21 Ian Vollick <vollick@chromium.org>
3569 [chromium] timing functions are getting incorrectly applied for accelerated css transitions
3570 https://bugs.webkit.org/show_bug.cgi?id=81692
3572 Reviewed by Adrienne Walker.
3574 Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
3576 * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
3578 2012-03-21 Allan Sandfeld Jensen <allan.jensen@nokia.com>
3580 [Qt] Cookie Jar blocks on fsync in SQLITE
3581 https://bugs.webkit.org/show_bug.cgi?id=81755
3583 Reviewed by Simon Hausmann.
3585 Set PRAGMA synchronous to OFF, which tells SQLITE to never fsync.
3587 * platform/qt/CookieJarQt.cpp:
3588 (WebCore::SharedCookieJarQt::ensureDatabaseTable):
3590 2012-03-21 Ian Vollick <vollick@chromium.org>
3592 [chromium] Animation events should only be used for synchronizing animation start times
3593 https://bugs.webkit.org/show_bug.cgi?id=81484
3595 Reviewed by Adrienne Walker.
3597 Tested in CCLayerTreeHostTestSynchronizeAnimationStartTimes
3599 Eliminated animation finished events. Animations will finish naturally on the
3600 main thread and the final values will be set.
3602 Animation started events are now also used to synchronize the main thread
3603 animations' start times with their impl thread equivalents, preventing skew.
3604 Until main thread animations receive their synchronized start times, they will
3605 apply their initial values (i.e., they will be paused at time zero). This
3606 guarantees that we will not jump to the animation's final value on the main
3607 thread while we wait for the synchronized start time.
3610 * platform/graphics/chromium/LayerChromium.cpp:
3611 (WebCore::LayerChromium::notifyAnimationStarted):
3612 * platform/graphics/chromium/LayerChromium.h:
3615 * platform/graphics/chromium/cc/CCActiveAnimation.cpp:
3616 (WebCore::CCActiveAnimation::CCActiveAnimation):
3617 * platform/graphics/chromium/cc/CCActiveAnimation.h:
3618 (CCActiveAnimation):
3619 (WebCore::CCActiveAnimation::needsSynchronizedStartTime):
3620 (WebCore::CCActiveAnimation::setNeedsSynchronizedStartTime):
3621 * platform/graphics/chromium/cc/CCAnimationEvents.cpp: Removed.
3622 * platform/graphics/chromium/cc/CCAnimationEvents.h:
3623 (WebCore::CCAnimationStartedEvent::CCAnimationStartedEvent):
3624 (CCAnimationStartedEvent):
3626 * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
3627 (WebCore::CCLayerAnimationController::animate):
3628 (WebCore::CCLayerAnimationController::notifyAnimationStarted):
3630 (WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
3631 (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
3632 (WebCore::CCLayerAnimationController::startAnimationsWaitingForStartTime):
3633 (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
3634 (WebCore::CCLayerAnimationController::purgeFinishedAnimations):
3635 (WebCore::CCLayerAnimationController::tickAnimations):
3636 * platform/graphics/chromium/cc/CCLayerAnimationController.h:
3637 (CCLayerAnimationController):
3638 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3639 (WebCore::CCLayerTreeHost::updateAnimations):
3640 (WebCore::CCLayerTreeHost::setAnimationEventsRecursive):
3641 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3644 2012-03-21 Zeno Albisser <zeno@webkit.org>
3646 [Qt][WK2][Mac] MiniBrowser asserts at HashTable.h:480
3647 https://bugs.webkit.org/show_bug.cgi?id=81113
3649 The GLContext is created by QWindow/QSurface using
3650 QOpenGLContext which is implemented using NSOpenGL functions
3651 on mac. Therefore we should use QOpenGLContext as well when
3652 querying for the current context. AGL is not supposed
3653 to be paired with NSOpenGL.
3654 Altering the typedef for GLContext is fine, since
3655 the GLContext type is only used as a key in a map.
3657 Reviewed by Kenneth Rohde Christiansen.
3659 * platform/graphics/texmap/TextureMapperGL.cpp:
3661 (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
3663 2012-03-21 Ilya Tikhonovsky <loislo@chromium.org>
3665 Web Inspector: HeapSnapshot: make _bfs twice as fast as the old version.
3666 https://bugs.webkit.org/show_bug.cgi?id=81756
3668 Reviewed by Yury Semikhatsky.
3670 * inspector/front-end/HeapSnapshot.js:
3671 (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
3672 (WebInspector.HeapSnapshot.prototype._bfs):
3674 2012-03-21 Vineet Chaudhary <rgf748@motorola.com>
3676 https://bugs.webkit.org/show_bug.cgi?id=81705
3677 REGRESSION (r111416): fast/dom/prototype-inheritance-2.html is failing.
3679 Reviewed by Csaba Osztrogonác.
3683 * bindings/js/JSDOMBinding.h: Needs passing globalObject to constructArray().
3686 2012-03-21 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
3688 [BlackBerry] Upstreaming blackberry specific css file
3689 https://bugs.webkit.org/show_bug.cgi?id=81650
3691 Ustream BlackBerry specific css files, including:
3692 css/themeBlackBerry.css
3693 css/mediaControlsBlackBerry.css
3695 Reviewed by Nikolas Zimmermann.
3697 No new tests, this is the initial upstream patch
3698 for BlackBerry specific css files.
3700 * css/mediaControlsBlackBerry.css: Added.
3702 (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
3703 (video:-webkit-full-page-media::-webkit-media-controls-panel):
3704 (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
3705 (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
3706 (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
3707 (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
3708 (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
3709 (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
3710 (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
3711 (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
3712 (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
3713 (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
3714 (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
3715 * css/themeBlackBerry.css: Added.
3718 (input[type="color"]):
3720 (select[size][multiple]):
3721 (select[size][multiple]:focus):
3723 2012-03-21 Levi Weintraub <leviw@chromium.org>
3725 Update LayoutUnit usage in descendants of RenderReplaced
3726 https://bugs.webkit.org/show_bug.cgi?id=80918
3728 Reviewed by Eric Seidel.
3730 Replaced elements have to flow in the new sub-pixel Render Tree, but since the rendering of these
3731 often takes place outside of WebCore (or in cases such as foreign objects, in WebCore after
3732 passing through platform code), care must be taken to determine the final rendered size and
3733 location before render time. This patch brings these classes up to the latest and greatest in the
3734 subpixellayout branch.
3736 See https://trac.webkit.org/wiki/LayoutUnit for more information.
3738 No new tests. No change in behavior.
3740 * rendering/RenderFrameBase.cpp:
3741 (WebCore::RenderFrameBase::layoutWithFlattening): Build Fix.
3742 * rendering/RenderFullScreen.cpp:
3743 (RenderFullScreen::createPlaceholder): Ditto.
3744 * rendering/RenderFullScreen.h:
3745 (RenderFullScreen): Ditto.
3746 * rendering/RenderHTMLCanvas.cpp:
3747 (WebCore::RenderHTMLCanvas::canvasSizeChanged): Ditto.
3748 * rendering/RenderIFrame.cpp:
3749 (WebCore::RenderIFrame::computeLogicalHeight): Ditto.
3750 (WebCore::RenderIFrame::computeLogicalWidth): Ditto.
3751 * rendering/RenderImage.cpp:
3752 (WebCore::RenderImage::updateIntrinsicSizeIfNeeded): Intrinsic sizes are always integers, since they
3753 originate outside of WebCore.
3754 (WebCore::RenderImage::paintIntoRect): Use pixel snapping to paint into an arbitrary rect.
3755 (WebCore::RenderImage::computeReplacedLogicalWidth): Intrinsic size is always integral -- rounding
3757 * rendering/RenderImage.h:
3759 * rendering/RenderVideo.cpp:
3760 (WebCore::RenderVideo::videoBox):
3761 (WebCore::RenderVideo::paintReplaced): Painting at integer boundaries.
3762 * rendering/RenderWidget.cpp:
3764 (WebCore::roundedIntRect): Widgets are rendered outside of WebCore, so we always align them to
3765 integer boundaries. This means we can actually round the size of our ultimate content box. This
3766 function is implemented here specifically to prevent its misuse if we put it elsewhere.
3767 (WebCore::RenderWidget::setWidgetGeometry): We simplify layout by taking a LayoutRect and rounding
3768 it to its final location within this function.
3769 (WebCore::RenderWidget::updateWidgetGeometry): We keep things in LayoutUnits until handing off to
3771 (WebCore::RenderWidget::paint): Rounding the paint location before handing painting off to the
3773 * rendering/RenderWidget.h:
3776 2012-03-21 Ilya Tikhonovsky <loislo@chromium.org>
3778 Web Inspector: HeapProfiler: support distance column in Summary View.
3779 https://bugs.webkit.org/show_bug.cgi?id=81675
3781 In many cases when a page leaked an object we see not only this object
3782 but the all objects it retains. It is quite difficult to find out which
3783 the object is the root of leak. It'd be simpler to sort the leaked
3784 objects by Distance column and track down the first one.
3786 Reviewed by Yury Semikhatsky.
3788 * inspector/front-end/DetailedHeapshotGridNodes.js:
3789 (WebInspector.HeapSnapshotGenericObjectNode):
3790 (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
3791 (WebInspector.HeapSnapshotInstanceNode.prototype.comparator):
3792 (WebInspector.HeapSnapshotConstructorNode):
3793 (WebInspector.HeapSnapshotConstructorNode.prototype.comparator):
3794 (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
3795 * inspector/front-end/DetailedHeapshotView.js:
3796 (WebInspector.HeapSnapshotConstructorsDataGrid):
3797 (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._defaultPopulateCount.100._sortFields):
3798 * inspector/front-end/HeapSnapshot.js:
3799 (WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
3801 2012-03-21 Charles Wei <charles.wei@torchmobile.com.cn>
3803 [BlackBerry] Remove redundant code in SocketStreamHandler
3804 https://bugs.webkit.org/show_bug.cgi?id=81726
3806 Reviewed by George Staikos.
3808 No new tests needed. Just remove redundant code.
3810 * platform/network/blackberry/SocketStreamHandle.h:
3811 (SocketStreamHandle):
3812 * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
3814 2012-03-20 Eric Seidel <eric@webkit.org>
3816 Move wtf/Platform.h from JavaScriptCore to Source/WTF/wtf
3817 https://bugs.webkit.org/show_bug.cgi?id=80911
3819 Reviewed by Adam Barth.
3822 - Look for headers in Source/WTF as well.
3824 2012-03-20 Dana Jansens <danakj@chromium.org>
3826 [chromium] Use origin transform to transform occlusion from surface content space to its target content space
3827 https://bugs.webkit.org/show_bug.cgi?id=81730
3829 Reviewed by Adrienne Walker.
3831 Unit test: CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent
3833 * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3834 (WebCore::transformSurfaceOpaqueRegion):
3835 (WebCore::::leaveToTargetRenderSurface):
3837 2012-03-19 Shinya Kawanaka <shinyak@chromium.org>
3839 [Crash] RenderMenuList::addChild() in Shadow DOM.
3840 https://bugs.webkit.org/show_bug.cgi?id=81201
3842 Reviewed by Dimitri Glazkov.
3844 <audio>, <video>, <meter>, <progress>, and <select> are implemented using
3845 Shadow DOM having HTMLContentElement. Their renderer children basically should not
3846 create a renderer unless they are on the upper shadow encapsulation boundary,
3847 which means they are the direct children of the shadow root.
3849 However, current implementation allows their renderer children to create a renderer
3850 even if they are on a lower shadow encapsulation boundary, which means
3851 they are distributed elements of HTMLContentElement.
3853 This patch makes there renderer children not to create a renderer if they are on a lower shadow
3854 encapsulation boudary.
3856 Tests: fast/dom/shadow/content-element-in-media-element.html
3857 fast/dom/shadow/content-element-in-meter-element.html
3858 fast/dom/shadow/content-element-in-progress-element.html
3859 fast/dom/shadow/content-element-in-select-element.html
3861 * dom/NodeRenderingContext.h:
3862 (NodeRenderingContext):
3863 (WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):
3865 * html/HTMLMediaElement.cpp:
3866 (WebCore::HTMLMediaElement::childShouldCreateRenderer):
3867 * html/HTMLMeterElement.cpp:
3868 (WebCore::HTMLMeterElement::childShouldCreateRenderer):
3869 * html/HTMLProgressElement.cpp:
3870 (WebCore::HTMLProgressElement::childShouldCreateRenderer):
3871 * html/HTMLSelectElement.cpp:
3872 (WebCore::HTMLSelectElement::childShouldCreateRenderer):
3874 2012-03-20 Dana Jansens <danakj@chromium.org>
3876 [chromium] Store origin/screen space transforms for surface and replica in the surface
3877 https://bugs.webkit.org/show_bug.cgi?id=81296
3879 Reviewed by Adrienne Walker.
3881 Compute and save a number of transforms for render surfaces. The origin
3882 tranform for the replica into its target surface. The origin transform
3883 for the replica into the screen. And the origin transform for the surface
3886 These transforms will allow us to detect occlusion of render surfaces,
3887 allowing us to cull (or partially-cull) the render surface quad during
3890 This also fixes a subtle bug in the transforms used by the damage
3893 Unit test: CCLayerTreeHostCommonTest.verifyTransformsForSingleRenderSurface
3894 CCLayerTreeHostCommonTest.verifyTransformsForReplica
3895 CCLayerTreeHostCommonTest.verifyTransformsForRenderSurfaceHierarchy
3897 * platform/graphics/chromium/RenderSurfaceChromium.h:
3898 (WebCore::RenderSurfaceChromium::screenSpaceTransform):
3899 (WebCore::RenderSurfaceChromium::setScreenSpaceTransform):
3900 (RenderSurfaceChromium):
3901 (WebCore::RenderSurfaceChromium::replicaOriginTransform):
3902 (WebCore::RenderSurfaceChromium::setReplicaOriginTransform):
3903 (WebCore::RenderSurfaceChromium::replicaScreenSpaceTransform):
3904 (WebCore::RenderSurfaceChromium::setReplicaScreenSpaceTransform):
3905 * platform/graphics/chromium/cc/CCDamageTracker.cpp:
3906 (WebCore::CCDamageTracker::extendDamageForRenderSurface):
3907 * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3908 (WebCore::calculateDrawTransformsAndVisibilityInternal):
3909 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3910 (WebCore::damageInSurfaceSpace):
3911 * platform/graphics/chromium/cc/CCRenderSurface.h:
3912 (WebCore::CCRenderSurface::setDrawTransform):
3913 (WebCore::CCRenderSurface::drawTransform):
3914 (WebCore::CCRenderSurface::setScreenSpaceTransform):
3915 (WebCore::CCRenderSurface::screenSpaceTransform):
3917 (WebCore::CCRenderSurface::setReplicaDrawTransform):
3918 (WebCore::CCRenderSurface::replicaDrawTransform):
3919 (WebCore::CCRenderSurface::setReplicaOriginTransform):
3920 (WebCore::CCRenderSurface::replicaOriginTransform):
3921 (WebCore::CCRenderSurface::setReplicaScreenSpaceTransform):
3922 (WebCore::CCRenderSurface::replicaScreenSpaceTransform):
3924 2012-03-20 Yoshifumi Inoue <yosin@chromium.org>
3926 [Forms] The option element should not be form associated element.
3927 https://bugs.webkit.org/show_bug.cgi?id=79764
3929 Reviewed by Kent Tamura.
3931 This patch changes base class of HTMLOptionELement to HTMLElement
3932 from HTMLFormControlElement for saving memory space and iteration
3933 time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
3934 and matching the HTML5 specification for ease of maintenance.
3936 This patch changes behavior of handling of CSS pseudo classes "invalid"
3937 and "valid". The "option" elements no longer use these CSS pseudo classes
3938 as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
3940 Changes of TextIterator is lead by usage of isFormControlElement. This
3941 changes will be replaced with more meaningful predicate as part of
3942 https://bugs.webkit.org/show_bug.cgi?id=80381
3944 No new tests but updated select-live-pseudo-selectors.html test.
3946 * css/CSSStyleSelector.cpp:
3947 (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
3948 * css/SelectorChecker.cpp:
3949 (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
3950 * html/HTMLKeygenElement.cpp:
3951 (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
3952 * html/HTMLOptionElement.cpp:
3953 (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
3954 (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
3955 (WebCore::HTMLOptionElement::attach): Changeid base class.
3956 (WebCore::HTMLOptionElement::detach): Changed base class.
3957 (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
3958 (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
3959 (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
3960 * html/HTMLOptionElement.h:
3961 (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
3962 (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
3963 * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
3965 2012-03-20 Xiaomei Ji <xji@chromium.org>
3967 Crash introduced in r110965.
3968 https://bugs.webkit.org/show_bug.cgi?id=81720
3970 Reviewed by Ryosuke Niwa.
3972 Since word break iterator just keeps a pointer to the UChar array given to the constructor,
3973 we need to allocate the UChar array deeper in the stack than the iterator.
3975 Test: editing/selection/move-by-word-visually-crash-test-5.html
3977 * editing/visible_units.cpp:
3978 (WebCore::wordBreakIteratorForMinOffsetBoundary):
3979 (WebCore::wordBreakIteratorForMaxOffsetBoundary):
3980 (WebCore::visualWordPosition):
3982 2012-03-20 W. James MacLean <wjmaclean@chromium.org>
3984 [chromium] Convert TouchFlingPlatformGestureCurve to a 2-D Bezier for better control of curve shape.
3985 https://bugs.webkit.org/show_bug.cgi?id=81713
3987 Reviewed by Dirk Pranke.
3989 Exisiting unit test revised to cover this change.
3991 Change the fling gesture animation curve to use a 2-D Bezier to obtain greater control
3992 over the shape of the curve. Also, change time scaling code to be logarithmic for more
3995 * platform/TouchFlingPlatformGestureCurve.cpp:
3996 (WebCore::TouchFlingPlatformGestureCurve::TouchFlingPlatformGestureCurve):
3997 (WebCore::TouchFlingPlatformGestureCurve::apply):
3999 2012-03-18 Tim Horton <timothy_horton@apple.com>
4001 Infinite repaint loop with SVGImageCache and deferred repaint timers
4002 https://bugs.webkit.org/show_bug.cgi?id=78315
4003 <rdar://problem/10651634>
4005 Reviewed by Nikolas Zimmermann.
4007 Only defer image redraw on a timer if we're in layout. This breaks
4008 the repaint loop while still preventing us from drawing inside layout.
4010 Completely disable repaint during relayout inside SVGImage::drawSVGToImageBuffer,
4011 preventing deferred repaint timers from being started during that process.
4013 No new tests, as the problem only occurs in a nonstandard configuration.
4015 * page/FrameView.cpp:
4016 (WebCore::FrameView::FrameView):
4017 (WebCore::FrameView::reset):
4018 (WebCore::FrameView::repaintContentRectangle):
4019 (WebCore::FrameView::endDeferredRepaints):
4020 (WebCore::FrameView::startDeferredRepaintTimer):
4022 (WebCore::FrameView::doDeferredRepaints):
4023 (WebCore::FrameView::deferredRepaintTimerFired):
4024 (WebCore::FrameView::beginDisableRepaints):
4025 (WebCore::FrameView::endDisableRepaints):
4028 (WebCore::FrameView::repaintsDisabled):
4029 * rendering/RenderView.cpp:
4030 (WebCore::RenderView::shouldRepaint):
4031 * svg/graphics/SVGImage.cpp:
4032 (WebCore::SVGImage::drawSVGToImageBuffer):
4033 (WebCore::SVGImage::draw):
4034 (WebCore::SVGImage::frameView):
4036 * svg/graphics/SVGImage.h:
4038 * svg/graphics/SVGImageCache.cpp:
4039 (WebCore::SVGImageCache::imageContentChanged):
4040 (WebCore::SVGImageCache::redraw):
4041 (WebCore::SVGImageCache::redrawTimerFired):
4043 * svg/graphics/SVGImageCache.h:
4046 2012-03-20 Adam Klein <adamk@chromium.org>
4048 Include fix for dom/xhtml test promised in r111449.
4050 * dom/ContainerNode.cpp:
4051 (WebCore::ContainerNode::replaceChild): Check against next instead of
4052 prev when deciding there's no work to do.
4054 2012-03-20 Jon Lee <jonlee@apple.com>
4056 Restrict access to notifications for unique origins and file URLs with no local file access
4057 https://bugs.webkit.org/show_bug.cgi?id=79704
4058 <rdar://problem/10912430>
4060 Reviewed by Adam Barth.
4062 Before checking or requesting permissions, we look at whether we can show notifications based on
4063 the security context. If not, we short circuit and do not forward the request to the client.
4065 * notifications/Notification.cpp:
4066 (WebCore::Notification::Notification): Fix a bug where creating a notification goes through slightly