1 2012-03-23 Sheriff Bot <webkit.review.bot@gmail.com>
3 Unreviewed, rolling out r111751.
4 http://trac.webkit.org/changeset/111751
5 https://bugs.webkit.org/show_bug.cgi?id=82060
7 caused 15% page cycler regression for chromium-linux
8 (Requested by eae on #webkit).
10 * css/CSSStyleSelector.cpp:
11 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
13 2012-03-23 Kentaro Hara <haraken@chromium.org>
15 Support [ImplementedAs] for attributes
16 https://bugs.webkit.org/show_bug.cgi?id=81605
18 Reviewed by Adam Barth.
20 [ImplementedAs] just supports methods. [ImplementedAs] should support
23 Explained here: https://trac.webkit.org/wiki/WebKitIDL#ImplementedAs
25 Test: bindings/scripts/test/TestObj.idl
27 * bindings/scripts/CodeGenerator.pm: Modified to support [ImplementedAs] for attributes.
28 (AttributeNameForGetterAndSetter):
30 * bindings/scripts/test/TestObj.idl: Added a test case.
32 * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
33 (WebDOMTestObj::strawberry):
34 (WebDOMTestObj::setStrawberry):
35 * bindings/scripts/test/CPP/WebDOMTestObj.h:
36 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
37 (webkit_dom_test_obj_get_strawberry):
38 (webkit_dom_test_obj_set_strawberry):
39 (webkit_dom_test_obj_get_property):
40 (webkit_dom_test_obj_class_init):
41 * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
42 * bindings/scripts/test/JS/JSTestObj.cpp:
44 (WebCore::jsTestObjStrawberry):
45 (WebCore::setJSTestObjStrawberry):
46 * bindings/scripts/test/JS/JSTestObj.h:
48 * bindings/scripts/test/ObjC/DOMTestObj.h:
49 * bindings/scripts/test/ObjC/DOMTestObj.mm:
50 (-[DOMTestObj strawberry]):
51 (-[DOMTestObj setStrawberry:]):
52 * bindings/scripts/test/V8/V8TestObj.cpp:
53 (WebCore::TestObjInternal::strawberryAttrGetter):
55 (WebCore::TestObjInternal::strawberryAttrSetter):
58 2012-03-23 Tommy Widenflycht <tommyw@google.com>
60 The JSC code generator doesn't generate correct code for Constructors
61 https://bugs.webkit.org/show_bug.cgi?id=82046
63 Reviewed by Kentaro Hara.
65 The main bulk of generated code for constructors uses the name jsConstructor
66 for the created object, and then calls GenerateParametersCheck which generates
67 code that uses the name castedThis.
69 * bindings/scripts/CodeGeneratorJS.pm:
70 (GenerateConstructorDefinition):
71 * bindings/scripts/test/JS/JSTestInterface.cpp:
72 (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
73 * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
74 (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
75 * bindings/scripts/test/JS/JSTestObj.cpp:
76 (WebCore::JSTestObjConstructor::finishCreation):
77 (WebCore::JSTestObjConstructor::constructJSTestObj):
78 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
79 (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
80 * bindings/scripts/test/TestObj.idl:
81 * bindings/scripts/test/V8/V8TestObj.cpp:
82 (WebCore::V8TestObj::constructorCallback):
84 2012-03-23 Tommy Widenflycht <tommyw@google.com>
86 The JSC code generator can't handle boolean arguments for Callbacks
87 https://bugs.webkit.org/show_bug.cgi?id=82045
89 Reviewed by Kentaro Hara.
91 CodeGeneratorJS.pm only handles DOMStrings and objects as arguments
92 for a Callback, so I added support for boolean values as well.
94 * bindings/scripts/CodeGeneratorJS.pm:
95 (GenerateCallbackImplementation):
96 * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
97 (WebDOMTestCallback::callbackWithBoolean):
98 * bindings/scripts/test/CPP/WebDOMTestCallback.h:
100 * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
101 (webkit_dom_test_callback_callback_with_boolean):
102 * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
103 * bindings/scripts/test/JS/JSTestCallback.cpp:
104 (WebCore::JSTestCallback::callbackWithBoolean):
106 * bindings/scripts/test/JS/JSTestCallback.h:
108 * bindings/scripts/test/ObjC/DOMTestCallback.h:
109 * bindings/scripts/test/ObjC/DOMTestCallback.mm:
110 (-[DOMTestCallback callbackWithBoolean:]):
111 * bindings/scripts/test/TestCallback.idl:
112 * bindings/scripts/test/V8/V8TestCallback.cpp:
113 (WebCore::V8TestCallback::callbackWithBoolean):
115 * bindings/scripts/test/V8/V8TestCallback.h:
118 2012-03-23 Allan Sandfeld Jensen <allan.jensen@nokia.com>
120 Touch adjustment forgets some subtarget quads.
121 https://bugs.webkit.org/show_bug.cgi?id=82044
123 Reviewed by Kenneth Rohde Christiansen.
125 Do not uncritically skip all nodes that are ancestors to other test results.
126 Instead return the inner-most element if multiple nodes have the same distance.
128 Test: touchadjustment/block-testing.html
130 * page/TouchAdjustment.cpp:
131 (WebCore::TouchAdjustment::compileSubtargetList):
132 (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
134 2012-03-23 Allan Sandfeld Jensen <allan.jensen@nokia.com>
136 TouchAdjustment does not correct for frame position
137 https://bugs.webkit.org/show_bug.cgi?id=82043
139 Reviewed by Kenneth Rohde Christiansen.
141 Convert geometry to window coordinates before calculating distance.
143 Test: touchadjustment/iframe.html
145 * page/TouchAdjustment.cpp:
146 (WebCore::TouchAdjustment::distanceSquaredToTargetCenterLine):
148 2012-03-23 Vlad Voicu <vladv@rosedu.org>
150 Fixed minor WebInspector display issue
151 Clicking on disabled sections in Styles Sidebar Pane creates new elements.
152 https://bugs.webkit.org/show_bug.cgi?id=81925
154 Reviewed by Timothy Hatcher
156 No new tests should be required.
158 * inspector/front-end/StylesSidebarPane.js:
159 (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
160 (WebInspector.StylePropertyTreeElement.prototype):
162 2012-03-23 Kentaro Hara <haraken@chromium.org>
164 Unreviewed, rebaselined run-bindings-tests results.
166 * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
167 * bindings/scripts/test/CPP/WebDOMTestObj.h:
168 * bindings/scripts/test/JS/JSTestObj.cpp:
169 (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
170 (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
171 (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
172 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
173 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
174 * bindings/scripts/test/V8/V8TestObj.cpp:
175 (WebCore::TestObjInternal::methodWithCallbackArgCallback):
176 (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
177 (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
178 (WebCore::TestObjInternal::overloadedMethod5Callback):
179 (WebCore::TestObjInternal::overloadedMethodCallback):
181 2012-03-23 Ryosuke Niwa <rniwa@webkit.org>
183 cssText should use StringBuilder
184 https://bugs.webkit.org/show_bug.cgi?id=82028
186 Reviewed by Hajime Morita.
188 Make StylePropertySet::asText more efficient by deploying StringBuilder;
189 avoids heap churn by String::operator+ and String::operator+=.
191 * css/StylePropertySet.cpp:
192 (WebCore::StylePropertySet::asText):
194 2012-03-23 Ryosuke Niwa <rniwa@webkit.org>
196 REGRESSION(r111754): plugins/reloadplugins-and-pages.html fails on all platforms
197 https://bugs.webkit.org/show_bug.cgi?id=82035
199 Rollout r111754 since it caused a test to fail and the test added by the patch
200 is failing on Mac WebKit 2.
203 * html/HTMLPlugInElement.cpp:
204 (WebCore::HTMLPlugInElement::detach):
206 (WebCore::HTMLPlugInElement::removedFromDocument):
207 * html/HTMLPlugInElement.h:
209 * testing/Internals.cpp:
210 * testing/Internals.h:
212 * testing/Internals.idl:
214 2012-03-23 Adam Barth <abarth@webkit.org>
216 Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 2)
217 https://bugs.webkit.org/show_bug.cgi?id=82026
219 Reviewed by Kentaro Hara.
221 This patch removes DOMWindow::resetNotifications, which was unneeded
222 special-case logic for clearing the notifications center. The previous
223 patch that tried to accomplish the same thing did not override
224 willDetachPage, which is why it caused crashes.
226 There's actually a cleaner way to handle these cases, which will let us
227 implement reconnectFrame, but that will need to wait for the next
230 * notifications/DOMWindowNotifications.cpp:
231 (WebCore::DOMWindowNotifications::DOMWindowNotifications):
232 (WebCore::DOMWindowNotifications::from):
233 (WebCore::DOMWindowNotifications::webkitNotifications):
235 (WebCore::DOMWindowNotifications::disconnectFrame):
236 (WebCore::DOMWindowNotifications::willDetachPage):
237 (WebCore::DOMWindowNotifications::reset):
238 * notifications/DOMWindowNotifications.h:
239 (DOMWindowNotifications):
240 * page/DOMWindow.cpp:
241 (WebCore::DOMWindow::willDetachPage):
242 (WebCore::DOMWindow::disconnectDOMWindowProperties):
243 (WebCore::DOMWindow::clearDOMWindowProperties):
247 (WebCore::Frame::willDetachPage):
249 2012-03-22 Adam Barth <abarth@webkit.org>
251 Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 1)
252 https://bugs.webkit.org/show_bug.cgi?id=82015
254 Reviewed by Kentaro Hara.
256 This patch moves DOMWindow.webkitNotifications from DOMWindow.idl to
257 DOMWindowNotificiations.idl in preparation for moving notificiations
260 A future patch will remove DOMWindow::resetNotificaitions in favor of
261 more general mechanisms.
264 * DerivedSources.make:
265 * DerivedSources.pri:
266 * GNUmakefile.list.am:
269 * WebCore.vcproj/WebCore.vcproj:
270 * WebCore.xcodeproj/project.pbxproj:
271 * notifications/DOMWindowNotifications.cpp: Added.
273 (WebCore::DOMWindowNotifications::DOMWindowNotifications):
274 (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
275 (WebCore::DOMWindowNotifications::from):
276 (WebCore::DOMWindowNotifications::webkitNotifications):
277 (WebCore::DOMWindowNotifications::reset):
278 (WebCore::DOMWindowNotifications::supplementName):
279 * notifications/DOMWindowNotifications.h: Added.
281 (DOMWindowNotifications):
282 * notifications/DOMWindowNotifications.idl: Added.
283 * page/DOMWindow.cpp:
284 (WebCore::DOMWindow::~DOMWindow):
286 (WebCore::DOMWindow::resetNotifications):
290 * page/DOMWindow.idl:
292 2012-03-22 Li Yin <li.yin@intel.com>
294 A client MUST close a connection if it detects a masked frame
295 https://bugs.webkit.org/show_bug.cgi?id=81361
297 Reviewed by Kent Tamura.
299 A server must not mask any frames that it sends to the client.
300 Change the test case, not mask the frames from server to client.
302 Test: http/tests/websocket/tests/hybi/invalid-masked-frames-from-server.html
304 * Modules/websockets/WebSocketChannel.cpp:
305 (WebCore::WebSocketChannel::processFrame):
307 2012-03-22 Li Yin <li.yin@intel.com>
309 [WebSocket]The minimal number of bytes MUST be used to encode the length
310 https://bugs.webkit.org/show_bug.cgi?id=81443
312 Reviewed by Kent Tamura.
314 From RFC 6455 http://tools.ietf.org/html/rfc6455#section-5.2
315 the minimal number of bytes MUST be used to encode the length
317 New test case : http/tests/websocket/tests/hybi/invalid-encode-length.html
319 * Modules/websockets/WebSocketChannel.cpp:
320 (WebCore::WebSocketChannel::parseFrame):
322 2012-03-22 Adam Barth <abarth@webkit.org>
324 Unreviewed. Sort xcodeproj file.
326 * WebCore.xcodeproj/project.pbxproj:
328 2012-03-22 Mao Yujie <yujie.mao@intel.com>
330 Implement strict testing criterion for callback function definition
331 https://bugs.webkit.org/show_bug.cgi?id=80005
333 Reviewed by Adam Barth.
335 Callback function should be defined as the function type instead of
338 LayoutTest: fast/dom/MediaStream/argument-types.html
340 * bindings/scripts/CodeGeneratorJS.pm:
341 (GenerateParametersCheckExpression):
342 (GenerateParametersCheck):
343 * bindings/scripts/CodeGeneratorV8.pm:
344 (GenerateParametersCheckExpression):
345 (GenerateParametersCheck):
347 2012-03-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
349 Convert hasGrammarMarker to use Internals interface
350 https://bugs.webkit.org/show_bug.cgi?id=82004
352 Reviewed by Ryosuke Niwa.
354 Remove hasGrammarMarker functions, because it is able to work in the
355 cross-port way through the Internals interface.
357 No new tests, since we are improving here the infra-structure
358 for testing a specific method.
360 * testing/Internals.cpp:
361 (WebCore::Internals::hasGrammarMarker):
363 * testing/Internals.h:
365 * testing/Internals.idl:
367 2012-03-22 Xingnan Wang <xingnan.wang@intel.com>
369 Add exception for the setter of "fftSize" in RealtimeAnalyserNode
370 https://bugs.webkit.org/show_bug.cgi?id=81748
372 Reviewed by Chris Rogers.
374 * Modules/webaudio/RealtimeAnalyser.cpp:
375 (WebCore::RealtimeAnalyser::setFftSize):
376 * Modules/webaudio/RealtimeAnalyser.h:
378 * Modules/webaudio/RealtimeAnalyserNode.cpp:
379 (WebCore::RealtimeAnalyserNode::setFftSize):
381 * Modules/webaudio/RealtimeAnalyserNode.h:
382 (RealtimeAnalyserNode):
383 * Modules/webaudio/RealtimeAnalyserNode.idl:
385 2012-03-22 Leo Yang <leo.yang@torchmobile.com.cn>
387 [BlackBerry] Add HistoryItemViewState for BlackBerry port
388 https://bugs.webkit.org/show_bug.cgi?id=81867
390 Reviewed by Rob Buis.
392 HistoryItemViewState is the blackberry specific field of HistoryItem.
393 It's used to maintain the porting specific view state.
395 No new test because the port can't be built yet.
397 * history/HistoryItem.h:
399 (WebCore::HistoryItem::viewState):
401 2012-03-22 SravanKumar Sandela <ssandela@innominds.com>
403 Fieldset unexpectedly stretches to minimum intrinsic width
404 https://bugs.webkit.org/show_bug.cgi?id=79128
406 Reviewed by Julien Chaffraix.
408 Fieldset element width will now check if css width is specified explicitly
409 before stretching to minimum intrinsic width. The reference
410 can be taken from IE9, instead of FF(FF acknowledged the broken behavior).
412 Tests: fast/forms/fieldset-width-nostretch-ifspecified-expected.html
413 fast/forms/fieldset-width-nostretch-ifspecified.html
415 * rendering/RenderFieldset.cpp:
416 (WebCore::RenderFieldset::stretchesToMinIntrinsicLogicalWidth):
418 * rendering/RenderFieldset.h:
421 2012-03-22 Shawn Singh <shawnsingh@chromium.org>
423 [chromium] Target surface should be damaged for a new layers even when layer had no changes
424 https://bugs.webkit.org/show_bug.cgi?id=81879
426 Reviewed by Adrienne Walker.
428 Unit test added to CCDamageTrackerTest.
430 * platform/graphics/chromium/cc/CCDamageTracker.cpp:
431 (WebCore::CCDamageTracker::removeRectFromCurrentFrame): added a
432 boolean arg to detect if the layer is new on this update.
434 (WebCore::CCDamageTracker::extendDamageForLayer): added logic that
435 damages the target surface if the layer is new.
437 (WebCore::CCDamageTracker::extendDamageForRenderSurface): added
438 logic that damages the target surface if the descendant surface is
439 new; similar logic for the surface's replica if the replica is new.
441 * platform/graphics/chromium/cc/CCDamageTracker.h:
444 2012-03-22 Charles Wei <charles.wei@torchmobile.com.cn>
446 [BlackBerry] Need to store the meta info of a page in the ViewState of the history
447 https://bugs.webkit.org/show_bug.cgi?id=82000
449 Reviewed by Rob Buis.
451 Internally reviewed by George Staikos.
453 No new tests, BlackBerry porting doesn't build yet upstreaming.
455 * history/blackberry/HistoryItemViewState.h:
456 (WebCore::HistoryItemViewState::HistoryItemViewState):
457 (HistoryItemViewState):
459 2012-03-22 Adam Klein <adamk@chromium.org>
461 [v8] wrapSlow methods should ref underlying object before creating wrapper
462 https://bugs.webkit.org/show_bug.cgi?id=81919
464 Reviewed by Adam Barth.
466 Because instatiating the wrapper can trigger GC, it's important that
467 wrapSlow() hold a reference to an object when creating a wrapper for
468 that object. Once the V8 wrapper exists and is associated with the object,
469 the reference can be handed off (via leakRef) to be handled by the normal
470 binding code logic (where derefObject is called if the handle is GCed).
472 Binding tests have been updated to reflect this change.
474 Testing the change directly is hard. Any test landed today would only
475 be a valid test until V8's logic about when to GC changes, at which point
476 it would become dead weight. So I don't think it's worth landing a
477 layout test along with this.
479 * bindings/scripts/CodeGeneratorV8.pm:
480 (GenerateHeader): Make wrapSlow take a PassRefPtr for RefCounted objects.
481 (GenerateToV8Converters): Get rid of the explicit call to ref() and
482 instead call leakRef() when adding a RefCounted object to the DOM map.
483 (GetPassRefPtrType): Helper to generate "PassRefPtr<T>", or "PassRefPtr<T<U> >" as appropriate.
484 * bindings/scripts/test/V8/V8Float64Array.cpp:
485 (WebCore::V8Float64Array::wrapSlow):
486 * bindings/scripts/test/V8/V8Float64Array.h:
488 * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
489 (WebCore::V8TestActiveDOMObject::wrapSlow):
490 * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
491 (V8TestActiveDOMObject):
492 * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
493 (WebCore::V8TestCustomNamedGetter::wrapSlow):
494 * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
495 (V8TestCustomNamedGetter):
496 * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
497 (WebCore::V8TestEventConstructor::wrapSlow):
498 * bindings/scripts/test/V8/V8TestEventConstructor.h:
499 (V8TestEventConstructor):
500 * bindings/scripts/test/V8/V8TestEventTarget.cpp:
501 (WebCore::V8TestEventTarget::wrapSlow):
502 * bindings/scripts/test/V8/V8TestEventTarget.h:
504 * bindings/scripts/test/V8/V8TestInterface.cpp:
505 (WebCore::V8TestInterface::wrapSlow):
506 * bindings/scripts/test/V8/V8TestInterface.h:
508 * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
509 (WebCore::V8TestMediaQueryListListener::wrapSlow):
510 * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
511 (V8TestMediaQueryListListener):
512 * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
513 (WebCore::V8TestNamedConstructor::wrapSlow):
514 * bindings/scripts/test/V8/V8TestNamedConstructor.h:
515 (V8TestNamedConstructor):
516 * bindings/scripts/test/V8/V8TestObj.cpp:
517 (WebCore::V8TestObj::wrapSlow):
518 * bindings/scripts/test/V8/V8TestObj.h:
520 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
521 (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
522 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
523 (V8TestSerializedScriptValueInterface):
525 2012-03-22 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
527 [BlackBerry] add interface clearCredentials() and clearNeverRememberSites()
528 https://bugs.webkit.org/show_bug.cgi?id=81887
530 Reviewed by Rob Buis.
532 Fixed SQL issue when clearing table logins and table never_remember.
536 * platform/network/blackberry/CredentialBackingStore.cpp:
537 (WebCore::CredentialBackingStore::clearLogins):
538 (WebCore::CredentialBackingStore::clearNeverRemember):
540 2012-03-22 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
542 [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
543 https://bugs.webkit.org/show_bug.cgi?id=80135
545 Reviewed by Rob Buis.
547 Modified the interface function authenticationChallenge() in class
548 PageClientBlackBerry, moved Credential from return value to the
549 function's reference parameter, and returned a bool to indicate if
550 user pressed Ok button or not.
551 Removed the logic which checks m_currentWebChallenge not null,
552 because we should challenge user again if the last provided credential
553 is not valid; also added the logic that will popup challenge
554 dialog again immediately if user press Ok buttton directly without
559 * platform/blackberry/PageClientBlackBerry.h:
560 * platform/network/blackberry/NetworkJob.cpp:
561 (WebCore::NetworkJob::handleAuthHeader):
562 (WebCore::NetworkJob::sendRequestWithCredentials):
564 2012-03-22 Jason Liu <jason.liu@torchmobile.com.cn>
566 [BlackBerry] Synchronize platform/network/blackberry
567 https://bugs.webkit.org/show_bug.cgi?id=81874
569 We changed a lot in these files locally. But the changes are not upstreamed.
570 It is not convenient to do the other upstreaming work based on these differences.
571 So upstream these changes.
573 Reviewed by Rob Buis.
575 No new tests. Just synchronize codes.
577 * platform/network/blackberry/NetworkJob.cpp:
578 (WebCore::NetworkJob::NetworkJob):
579 (WebCore::NetworkJob::initialize):
580 (WebCore::NetworkJob::handleNotifyHeaderReceived):
581 (WebCore::NetworkJob::handleNotifyDataReceived):
582 (WebCore::NetworkJob::sendResponseIfNeeded):
583 (WebCore::NetworkJob::sendRequestWithCredentials):
584 (WebCore::NetworkJob::handleAbout):
585 * platform/network/blackberry/NetworkJob.h:
586 (WebCore::NetworkJob::isError):
588 * platform/network/blackberry/NetworkManager.cpp:
589 (WebCore::NetworkManager::startJob):
590 * platform/network/blackberry/ResourceRequest.h:
591 (WebCore::ResourceRequest::ResourceRequest):
592 * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
593 (WebCore::platformTargetTypeForRequest):
595 2012-03-22 Tom Sepez <tsepez@chromium.org>
597 XSS Auditor bypass via script tag src=data:, URLS.
598 https://bugs.webkit.org/show_bug.cgi?id=81948
600 Reviewed by Adam Barth.
602 This change fixes an XSSAuditor bypass wherby a script with a data: URL src
603 attribute could evade detection by using characters from the page to create
604 a snippet for matching not found in the URL's reflected vector. This change
605 terminates the snippet for matching earlier in these cases.
607 Test: http/tests/security/xssAuditor/script-tag-with-source-data-url2.html
609 * html/parser/XSSAuditor.cpp:
610 (WebCore::XSSAuditor::decodedSnippetForAttribute):
612 2012-03-22 Dana Jansens <danakj@chromium.org>
614 [chromium] Incorrect assert on animating opacity for a surface
615 https://bugs.webkit.org/show_bug.cgi?id=81994
617 Reviewed by Adrienne Walker.
619 Draw opacity and animation state match on the surface itself. A
620 surface with animating opacity always has an owning layer without
621 animation, as the surface does the animation for it.
623 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
624 (WebCore::CCLayerTreeHost::paintLayerContents):
626 2012-03-22 Dana Jansens <danakj@chromium.org>
628 [chromium] Skip frames when checkerboarding an animation
629 https://bugs.webkit.org/show_bug.cgi?id=81716
631 Reviewed by Adrienne Walker.
633 This will stop drawing frames when prepareToDraw fails, if the draw is
634 not forced. The expected behaviour is outlined below by the unit tests.
636 When a draw fails, we:
637 1. Set m_needsRedraw to try again next vsync
638 2. Set m_needsCommit because we need more data from webkit to succeed
639 3. Set m_drawIfPossibleFailed. This allows us to try draw again within
640 the same vsync *if* a commit finishes during this time.
642 Unit test: CCSchedulerTest.RequestRedrawInsideFailedDraw
643 CCSchedulerTest.RequestCommitInsideFailedDraw
644 CCSchedulerTest.NoBeginFrameWhenDrawFails
645 CCSchedulerStateMachineTest.TestFailedDrawSetsNeedsCommitAndDoesNotDrawAgain
646 CCSchedulerStateMachineTest.TestSetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw
647 CCSchedulerStateMachineTest.TestCommitAfterFailedDrawAllowsDrawInSameFrame
648 CCSchedulerStateMachineTest.TestCommitAfterFailedAndSuccessfulDrawDoesNotAllowDrawInSameFrame
649 CCSchedulerStateMachineTest.TestFailedDrawIsRetriedNextVSync
651 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
652 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
653 (WebCore::CCLayerTreeHostImpl::prepareToDraw):
654 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
655 (CCLayerTreeHostImpl):
656 * platform/graphics/chromium/cc/CCScheduler.cpp:
657 (WebCore::CCScheduler::processScheduledActions):
658 * platform/graphics/chromium/cc/CCScheduler.h:
660 * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
661 (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
662 (WebCore::CCSchedulerStateMachine::nextAction):
663 (WebCore::CCSchedulerStateMachine::updateState):
664 (WebCore::CCSchedulerStateMachine::didDrawIfPossibleCompleted):
666 * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
667 (CCSchedulerStateMachine):
668 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
669 (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
671 (WebCore::CCThreadProxy::scheduledActionDrawAndSwapIfPossible):
672 (WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced):
673 * platform/graphics/chromium/cc/CCThreadProxy.h:
676 2012-03-22 W. James MacLean <wjmaclean@chromium.org>
678 [chromium] Force update of nonFastScrollableRegion if target CCLayerImpl has been freshly created.
679 https://bugs.webkit.org/show_bug.cgi?id=81968
681 Reviewed by Adrienne Walker.
683 Added unit test to existing tests for TreeSynchronizer.
685 When creating a new CCLayerImpl during tree synchronization, make sure we transfer the nonFastScrollableRegion as
686 the new CCLayerImpl will default to an empty region.
688 * platform/graphics/chromium/LayerChromium.h:
689 (WebCore::LayerChromium::nonFastScrollableRegion):
690 (WebCore::LayerChromium::setNonFastScrollableRegionChanged):
691 * platform/graphics/chromium/TreeSynchronizer.cpp:
692 (WebCore::TreeSynchronizer::reuseOrCreateCCLayerImpl):
694 2012-03-22 Raphael Kubo da Costa <rakuco@FreeBSD.org>
696 [CMake] Unreviewed build fix after r111778.
698 * CMakeLists.txt: Replace ${JAVASCRIPTCORE_DIR}/wtf includes with
701 2012-03-22 Tony Chang <tony@chromium.org>
703 Unreviewed, fix chromium build after wtf move.
705 Only use newwtf, remove references to wtf.
707 * WebCore.gyp/WebCore.gyp:
709 2012-03-22 Benjamin Poulain <bpoulain@apple.com>
711 Remove an obsolete comment regarding magic frames from Geolocation
712 https://bugs.webkit.org/show_bug.cgi?id=81871
714 Reviewed by Alexey Proskuryakov.
716 Moving a frame into another document is no longer possible after r111361. The comment
719 * Modules/geolocation/Geolocation.cpp:
720 (WebCore::Geolocation::stop):
722 2012-03-22 Csaba Osztrogonác <ossy@webkit.org>
724 Actually move WTF files to their new home
725 https://bugs.webkit.org/show_bug.cgi?id=81844
727 [Qt] Unreviewed buildfix after r111778.
731 2012-03-22 Kentaro Hara <haraken@chromium.org>
733 run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl
734 https://bugs.webkit.org/show_bug.cgi?id=81852
736 Reviewed by Adam Barth.
738 run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl:
740 Use of uninitialized value in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2743.
741 Use of uninitialized value $name in substitution (s///) at WebCore/bindings/scripts/CodeGenerator.pm line 119.
742 Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2969.
743 Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2972.
744 Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 367.
745 Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 368.
748 This is because [Constructor(...)] does not yet support [Optional] arguments.
749 It just supports [Optional=DefaultIsUndefined] and [Optional=DefaultIsNullString] arguments:
750 https://trac.webkit.org/wiki/WebKitIDL#Constructor
752 This patch replaces [Optional] with [Optional=DefaultIsUndefined]
753 in TestSerializedScriptValueInterface.idl.
755 Test: bindings/scripts/test/TestSerializedScriptValueInterface.idl
757 * bindings/scripts/CodeGeneratorJS.pm:
758 (GenerateConstructorDefinition):
759 * bindings/scripts/CodeGeneratorV8.pm:
760 (GenerateConstructorCallback):
761 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
762 (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
763 * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
764 * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
765 (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
767 2012-03-22 Michal Mocny <mmocny@google.com>
769 [chromium] LayerRendererChromium should use GpuMemoryAllocationChanged callback to explicitly manage framebuffer.
770 https://bugs.webkit.org/show_bug.cgi?id=81823
772 Reviewed by Adrienne Walker.
774 New UnitTests: LayerRendererChromiumTest
776 * platform/graphics/chromium/LayerRendererChromium.cpp:
777 (LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
778 (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::create):
779 (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::~LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
780 (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChanged):
781 (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
783 (WebCore::LayerRendererChromium::LayerRendererChromium):
784 (WebCore::LayerRendererChromium::initialize):
785 (WebCore::LayerRendererChromium::~LayerRendererChromium):
786 (WebCore::LayerRendererChromium::setVisible):
787 (WebCore::LayerRendererChromium::swapBuffers):
788 (WebCore::LayerRendererChromium::discardFramebuffer):
789 (WebCore::LayerRendererChromium::ensureFramebuffer):
790 * platform/graphics/chromium/LayerRendererChromium.h:
792 (LayerRendererChromiumClient):
793 (LayerRendererChromium):
794 (WebCore::LayerRendererChromium::isFramebufferDiscarded):
795 (ScopedEnsureFramebufferAllocation):
796 (WebCore::ScopedEnsureFramebufferAllocation::ScopedEnsureFramebufferAllocation):
797 (WebCore::ScopedEnsureFramebufferAllocation::~ScopedEnsureFramebufferAllocation):
798 * platform/graphics/chromium/cc/CCLayerTreeHost.h:
799 (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
800 (LayerRendererCapabilities):
801 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
802 (WebCore::CCLayerTreeHostImpl::setVisible):
803 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
804 (CCLayerTreeHostImpl):
805 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
806 (WebCore::CCSingleThreadProxy::compositeAndReadback):
807 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
808 (WebCore::CCThreadProxy::compositeAndReadback):
810 2012-03-22 Adam Barth <abarth@webkit.org>
812 ContainerNode::insertedIntoTree and removedFromTree use weak iteration patterns
813 https://bugs.webkit.org/show_bug.cgi?id=80570
815 Reviewed by Ryosuke Niwa.
817 These functions use weak iteration patterns, but as far as I can tell,
818 we never execute script below these functions. This patch adds ASSERTs
819 to help us avoid adding events in the future.
821 * dom/ContainerNode.cpp:
822 (WebCore::ContainerNode::insertedIntoTree):
823 (WebCore::ContainerNode::removedFromTree):
824 * html/HTMLMediaElement.cpp:
825 (WebCore::HTMLMediaElement::loadInternal):
826 - There's a somewhat complex call chain from insertedIntoTree into
827 HTMLMediaElement, and somewhat complex control flow below
828 loadInternal that eventually leads to the BeforeLoad event being
829 fired. In studying this code, I don't see a way for the
830 BeforeLoad event to be fired during insertedIntoTree, but I've
831 added this assert here to make sure we don't call loadInternal
832 when we're not supposed to dispatch events. This ASSERT should
833 help us catch these BeforeLoad errors more quickly.
835 2012-03-22 Raphael Kubo da Costa <rakuco@FreeBSD.org>
837 Crash in fast/dom/navigator-detached-nocrash.html
838 https://bugs.webkit.org/show_bug.cgi?id=81773
840 Reviewed by Adam Barth.
842 BatteryManager::create() blindly assumes the Navigator* it
843 receives has a valid Frame, which is not always the case, as made
844 evident by the crashing test.
846 Follow abarth's suggestion and just stop
847 NavigatorBattery::webkitBattery() before it reaches the call to
848 BatteryManager::create() if that's the case.
850 No new tests, covered by fast/dom/navigator-detached-nocrash.html.
852 * Modules/battery/NavigatorBattery.cpp:
853 (WebCore::NavigatorBattery::webkitBattery):
855 2012-03-22 Emil A Eklund <eae@chromium.org>
857 Unreviewed, add missing include statement for CSSValueList.h.
859 * css/CSSStyleSelector.h:
861 2012-03-22 Tony Chang <tony@chromium.org>
863 flexbox flexing implementation should match the spec
864 https://bugs.webkit.org/show_bug.cgi?id=70796
866 Reviewed by Ojan Vafai.
868 Match the algorithm in the spec. Handling min/max constraints are slightly improved.
869 http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
871 New test cases in css3/flexbox/flex-algorithm-min-max.html.
873 * rendering/RenderFlexibleBox.cpp:
874 (WebCore::adjustFlexSizeForMinAndMax): Step 5 of resolving flexible lengths.
876 (WebCore::RenderFlexibleBox::Violation::Violation):
877 (RenderFlexibleBox::Violation):
878 (WebCore::RenderFlexibleBox::freezeViolations): Used by step 6.
879 (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
880 * rendering/RenderFlexibleBox.h:
882 2012-03-22 Emil A Eklund <eae@chromium.org>
884 Unreviewed, add missing import.
886 * rendering/RenderThemeMac.mm:
888 2012-03-22 Anders Carlsson <andersca@apple.com>
890 ASSERT(!needsLayout) in RenderView.cpp when visiting http://www.panic.com/blog/
891 https://bugs.webkit.org/show_bug.cgi?id=81953
892 <rdar://problem/11086998>
894 Reviewed by Sam Weinig.
896 If a page ends up creating CATiledLayers, CA transactions can be committed outside of the normal
897 CA run loop observer, so we can't call setNeedsDisplay on tile cache layers directly because then
898 we'll end up calling into painting code before all the layers have been flushed.
900 Fix this by adding a list of dirty rects to platformCALayerDidCreateTiles and change GraphicsLayerCA to
901 mark them as dirty. This ensures that any CA transaction commits won't cause newly added layers to be painted.
903 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
904 (WebCore::LayerClient::platformCALayerDidCreateTiles):
905 * platform/graphics/ca/GraphicsLayerCA.cpp:
906 (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
907 * platform/graphics/ca/GraphicsLayerCA.h:
909 * platform/graphics/ca/PlatformCALayerClient.h:
910 (PlatformCALayerClient):
911 * platform/graphics/ca/mac/TileCache.mm:
912 (WebCore::TileCache::setScale):
913 (WebCore::TileCache::revalidateTiles):
914 * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
915 (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDidCreateTiles):
917 2012-03-19 Robert Hogan <robert@webkit.org>
919 Text should overflow when list item height set to 0
920 https://bugs.webkit.org/show_bug.cgi?id=78726
922 Reviewed by Julien Chaffraix.
924 Tests: css2.1/20110323/height-applies-to-010a-expected.html
925 fast/css/heightless-list-item-expected.html
926 fast/css/heightless-list-item.html
928 * rendering/RenderListItem.cpp:
929 (WebCore::RenderListItem::paint):
930 If the list item has height:0, only paint it if the list item allows any block or inline content
931 to overflow unclipped. The zero-height check is a shortcut to avoid unnecessary painting and
932 this seems to be the only case where there's something to do.
934 2012-03-22 Dave Michael <dmichael@chromium.org>
936 HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
937 https://bugs.webkit.org/show_bug.cgi?id=80428
939 Reviewed by Eric Seidel.
941 Make HTMLPluginElement release its m_NPObject in detach() to break a
942 reference-counting cycle that happens on reload or navigation. With this
943 change, HTMLPlugInElement::removedFromDocument is unnecessary, so it
944 was removed. Note that Releasing m_NPObject does not result in a call to
945 the plugin; it simply releases a reference count on the wrapper object
946 for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked
947 when the render tree is destroyed, when PluginView calls
948 PluginPackage::unload.) Thus, it is safe to release m_NPObject in
949 detach, because it can not result in layout or style changes.
951 Also added numberOfLiveNodes() and numberOfLiveDocuments() to
952 window.internals to enable testing.
954 Test: plugins/netscape-dom-access-and-reload.html
957 * html/HTMLPlugInElement.cpp:
958 (WebCore::HTMLPlugInElement::detach):
959 * html/HTMLPlugInElement.h:
961 * testing/Internals.cpp:
962 (WebCore::Internals::numberOfLiveDocuments):
963 (WebCore::Internals::numberOfLiveNodes):
965 * testing/Internals.h:
967 * testing/Internals.idl:
969 2012-03-22 Shawn Singh <shawnsingh@chromium.org>
971 [chromium] Make CCDamageTracker robust to empty layer lists
972 https://bugs.webkit.org/show_bug.cgi?id=81831
974 Reviewed by Adrienne Walker.
976 Added a unit test in CCDamageTrackerTest that causes a crash in
977 the old code. With this patch applied, the crash will not occur.
978 In theory, that crash should never occur anyway, unless there is a
979 bug outside the damage tracker, but for robustness it's
980 appropriate to handle it properly.
982 In addition to this fix, performed some trivial maintenance on the
985 * platform/graphics/chromium/cc/CCDamageTracker.cpp:
986 (WebCore::CCDamageTracker::updateDamageTrackingState): removed
987 unclean code that accessed the targetSurface to get necessary
988 information. Instead, we now pass those args through the damage
991 * platform/graphics/chromium/cc/CCDamageTracker.h:
992 (CCDamageTracker): modified args passed to damage tracker on update.
994 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
995 (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):
996 modified args passed to damage tracker on update.
998 2012-03-22 Julien Chaffraix <jchaffraix@webkit.org>
1000 Enable style sharing for elements with a style attribute
1001 https://bugs.webkit.org/show_bug.cgi?id=81523
1003 Reviewed by Antti Koivisto.
1005 Memory improvement change only.
1007 Overall, this is a performance wash (some benchmarks may regress a bit due to the increase in time taken
1008 by CSSStyleSelector::locateSharedStyle as we try more nodes, others increase their performance due to style sharing).
1010 Instrumenting our style sharing, this should give us some nice memory shavings on some benchmarks:
1011 - HTML5 isn't impacted as it doesn't use much inline style
1012 - page cyclers' intl1 showed a 6% increase in style sharing.
1014 * css/CSSStyleSelector.cpp:
1015 (WebCore::CSSStyleSelector::canShareStyleWithElement):
1016 This method now handles inline style like presentation attributes on the element.
1018 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1019 (WebCore::CSSStyleSelector::locateSharedStyle):
1020 Don't bail out for an element with an inline style declaration.
1022 (WebCore::CSSStyleSelector::stylesEqual):
1023 Generalized attributeStylesEqual to share the logic between attribute and
1024 inline style property set. This means that attribute checks are actually
1025 doing a little extra more work but that didn't impact our benchmarks.
1027 2012-03-22 Kevin Ollivier <kevino@theolliviers.com>
1029 [wx] Unreviewed. WebDOM build fix after array type changes.
1031 * bindings/scripts/CodeGeneratorCPP.pm:
1034 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1036 Web Inspector: text gutter decorations should move upon edits.
1037 https://bugs.webkit.org/show_bug.cgi?id=81932
1039 Reviewed by Vsevolod Vlasov.
1041 Decorations set by the line number now shift as editing inserts / removes lines.
1043 * inspector/front-end/TextViewer.js:
1044 (WebInspector.TextViewer.prototype._syncLineHeight):
1045 (WebInspector.TextEditorGutterPanel):
1046 (WebInspector.TextEditorGutterPanel.prototype.textChanged):
1047 (WebInspector.TextEditorGutterPanel.prototype.syncClientHeight):
1048 (WebInspector.TextEditorGutterPanel.prototype.addDecoration):
1049 (WebInspector.TextEditorGutterPanel.prototype.removeDecoration):
1051 2012-03-21 Robert Hogan <robert@webkit.org>
1053 CSS 2.1 failure: fixed-table-layout-006 fails
1054 https://bugs.webkit.org/show_bug.cgi?id=78412
1056 Reviewed by Julien Chaffraix.
1058 Tests: css2.1/20110323/fixed-table-layout-006.htm
1059 fast/css/fixed-table-layout-cell-padding.htm
1061 In fixed tables, positive width specified on a column should include borders and padding.
1062 See the thread at http://lists.w3.org/Archives/Public/www-style/2011Oct/0502.html. The discussion
1063 there resulted in a whole new set of tests for section 17.5.2.1 in the CSS 2.1 spec. See
1064 http://test.csswg.org/harness/test/CSS21_DEV/section/17.5.2.1/. This patch allows WebKit
1065 to pass all of them, and all tests for the 17.5.2.1 section as a whole. I'll land them all separately.
1067 * rendering/FixedTableLayout.cpp:
1068 (WebCore::FixedTableLayout::calcWidthArray): Include border width and cell padding in the width of the column.
1069 Note that borderAndPaddingLogicalWidth() returns the border width for separate and collapsed borders as appropriate.
1071 2012-03-22 Simon Fraser <simon.fraser@apple.com>
1073 Factor compositing layer updates after scroll into a new method
1074 https://bugs.webkit.org/show_bug.cgi?id=81943
1076 Reviewed by Dean Jackson.
1078 Move some code that updates compositing layers after scrolling
1079 into its own method, for cleanliness.
1081 * rendering/RenderLayer.cpp:
1082 (WebCore::RenderLayer::scrollTo):
1083 (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
1085 * rendering/RenderLayer.h:
1088 2012-03-22 Gavin Barraclough <barraclough@apple.com>
1090 Add JSValue::isFunction
1091 https://bugs.webkit.org/show_bug.cgi?id=81935
1093 Reviewed by Geoff Garen.
1095 This would be useful in the WebCore bindings code.
1096 Also, remove asFunction, replace with jsCast<JSFunction*>.
1098 * bindings/js/JSInjectedScriptHostCustom.cpp:
1099 (WebCore::JSInjectedScriptHost::functionDetails):
1100 * bindings/js/ScriptCallStackFactory.cpp:
1101 (WebCore::createScriptCallStack):
1103 2012-03-22 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
1105 TiledBackingStore: Fix test regressions that appeared with r111560.
1106 https://bugs.webkit.org/show_bug.cgi?id=81519
1108 Reviewed by Kenneth Rohde Christiansen.
1110 The visible rect wasn't intersected with the contents rect anymore which
1111 could lead to an astronomical layer size to check for intersecting tiles.
1113 Add a visibleContentsRect that doesn't do the conversion and use it
1114 in visibleAreaIsCovered.
1116 * platform/graphics/TiledBackingStore.cpp:
1117 (WebCore::TiledBackingStore::visibleContentsRect):
1119 (WebCore::TiledBackingStore::visibleRect):
1120 (WebCore::TiledBackingStore::visibleAreaIsCovered):
1121 * platform/graphics/TiledBackingStore.h:
1122 (TiledBackingStore):
1124 2012-03-22 Joe Thomas <joethomas@motorola.com>
1126 Make Length Calculation functions non-inline
1127 https://bugs.webkit.org/show_bug.cgi?id=81733
1129 Currently length calculation functions in LengthFunctions.h are inline. These functions are pretty big to be inline.
1130 And these functions are expected to grow again when new length units will be introduced in bug 27160.
1132 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
1133 functions with loops or switch statements. (Reference: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Inline_Functions).
1135 Ran PerformanceTests/Parser/html5-full-render.html on Mac Snow-Leopard with and without the patch and did not see much performance difference.
1137 Reviewed by Antti Koivisto.
1140 * GNUmakefile.list.am:
1143 * WebCore.vcproj/WebCore.vcproj:
1144 * WebCore.xcodeproj/project.pbxproj:
1145 * css/LengthFunctions.cpp: Added.
1147 (WebCore::miminumValueForLength):
1148 (WebCore::valueForLength):
1149 (WebCore::floatValueForLength):
1150 * css/LengthFunctions.h:
1153 2012-03-22 Alexis Menard <alexis.menard@openbossa.org>
1155 Increase code sharing between CSSParser and CSSPropertyLonghand.
1156 https://bugs.webkit.org/show_bug.cgi?id=81587
1158 Reviewed by Antti Koivisto.
1160 Expose the longhands declaration for a given shorthand in CSSPropertyLonghand and
1161 make CSSParser use them. It will make the declaration of longhands in one place only.
1162 Remove the map of CSSPropertyLonghand and replace it by a regular switch/case.
1163 The map doesn't bring much here and it's cleaner and faster to use the switch.
1164 It also shows a little performance improvement in CSS/CSSPropertySetterGetter.html.
1166 No new tests : no behavior change.
1168 * css/CSSParser.cpp:
1169 (WebCore::CSSParser::parseValue):
1170 (WebCore::CSSParser::parseAnimationShorthand):
1171 (WebCore::CSSParser::parseTransitionShorthand):
1172 (WebCore::CSSParser::parseShorthand):
1173 Modify the prototype of this function to directly use the CSSPropertyLonghand.
1177 * css/CSSPropertyLonghand.cpp:
1179 (WebCore::backgroundLonghand):
1180 (WebCore::backgroundPositionLonghand):
1181 (WebCore::backgroundRepeatLonghand):
1182 (WebCore::borderLonghand):
1183 (WebCore::borderBottomLonghand):
1184 (WebCore::borderColorLonghand):
1185 (WebCore::borderImageLonghand):
1186 (WebCore::borderLeftLonghand):
1187 (WebCore::borderRadiusLonghand):
1188 (WebCore::borderRightLonghand):
1189 (WebCore::borderSpacingLonghand):
1190 (WebCore::borderStyleLonghand):
1191 (WebCore::borderTopLonghand):
1192 (WebCore::borderWidthLonghand):
1193 (WebCore::listStyleLonghand):
1194 (WebCore::fontLonghand):
1195 (WebCore::marginLonghand):
1196 (WebCore::outlineLonghand):
1197 (WebCore::overflowLonghand):
1198 (WebCore::paddingLonghand):
1199 (WebCore::webkitAnimationLonghand):
1200 (WebCore::webkitBorderAfterLonghand):
1201 (WebCore::webkitBorderBeforeLonghand):
1202 (WebCore::webkitBorderEndLonghand):
1203 (WebCore::webkitBorderStartLonghand):
1204 (WebCore::webkitColumnsLonghand):
1205 (WebCore::webkitColumnRuleLonghand):
1206 (WebCore::webkitFlexFlowLonghand):
1207 (WebCore::webkitMarginCollapseLonghand):
1208 (WebCore::webkitMarqueeLonghand):
1209 (WebCore::webkitMaskLonghand):
1210 (WebCore::webkitMaskPositionLonghand):
1211 (WebCore::webkitMaskRepeatLonghand):
1212 (WebCore::webkitTextEmphasisLonghand):
1213 (WebCore::webkitTextStrokeLonghand):
1214 (WebCore::webkitTransitionLonghand):
1215 (WebCore::webkitTransformOriginLonghand):
1216 (WebCore::webkitWrapLonghand):
1217 (WebCore::longhandForProperty):
1218 * css/CSSPropertyLonghand.h:
1221 2012-03-22 Emil A Eklund <eae@chromium.org>
1223 Unreviewed, touching file to force bots to pick up CSS_SHADERS flag change.
1225 * css/CSSStyleSelector.h:
1228 2012-03-22 Xingnan Wang <xingnan.wang@intel.com>
1230 ReverbConvolver::latencyFrames() should return 0.
1231 https://bugs.webkit.org/show_bug.cgi?id=81806
1233 Reviewed by Chris Rogers.
1235 * platform/audio/ReverbConvolver.cpp:
1236 (WebCore::ReverbConvolver::latencyFrames):
1238 2012-03-22 Tony Chang <tony@chromium.org>
1240 refactor flexbox in preparation for flex-line-pack
1241 https://bugs.webkit.org/show_bug.cgi?id=81843
1243 Reviewed by Ojan Vafai.
1245 Replace WrapReverseContext with a vector of LineContexts that contain
1246 the same information, plus values needed for flex-align.
1248 alignChildren has been moved to after all the lines have been
1249 positioned. We want to align children after flex-line-pack has changed
1250 the size of each line to avoid unnecessary layouts.
1252 Take 2: Remove the assert. If there are no children, then there are no
1253 flex lines. Instead, assert that child is not null.
1255 No new tests, just refactoring.
1257 * rendering/RenderFlexibleBox.cpp:
1258 (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
1259 holds information needed for wrap-reverse and aligning children.
1260 (RenderFlexibleBox::LineContext):
1261 (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
1262 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
1263 (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
1264 (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
1265 * rendering/RenderFlexibleBox.h:
1267 2012-03-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
1269 Event dispatching in XMLHttpRequestProgressEventThrottle should go through XMLHttpRequestProgressEventThrottle::dispatchEvent
1270 https://bugs.webkit.org/show_bug.cgi?id=46743
1272 Reviewed by Julien Chaffraix
1273 Based on original patch by Anton D'Auria
1275 In preparation for platform-specific queuing of XMLHttpRequest events,
1276 this patch changes all calls to m_target->dispatchEvent to
1277 XMLHttpRequestProgressEventThrottle::dispatchEvent.
1278 Currently, we queue only one progress event on suspend() if we have
1279 throttled progress events. We should be able to queue all XHR events
1280 that can be generated after suspend(), if the platform network layer
1281 continues to receive data.
1282 XMLHttpRequest uses XMLHttpRequestProgressEventThrottle to dispatch only
1283 download events, so this doesn't change behavior of upload events, which
1284 aren't throttled or queued.
1286 * xml/XMLHttpRequest.cpp:
1287 (WebCore::XMLHttpRequest::callReadyStateChangeListener):
1288 * xml/XMLHttpRequestProgressEventThrottle.cpp:
1289 (WebCore::XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent):
1290 (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent):
1291 (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
1292 (WebCore::XMLHttpRequestProgressEventThrottle::dispatchPausedEvent):
1293 (WebCore::XMLHttpRequestProgressEventThrottle::fired):
1294 * xml/XMLHttpRequestProgressEventThrottle.h:
1295 (XMLHttpRequestProgressEventThrottle):
1297 2012-03-22 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com>
1299 [EFL] Map BackSpace key code to Unicode value
1300 https://bugs.webkit.org/show_bug.cgi?id=81130
1302 Reviewed by Gustavo Noronha Silva.
1304 Test: fast/events/backspace-navigates-back.html
1306 * platform/efl/EflKeyboardUtilities.cpp:
1307 (WebCore::createKeyMap): Map BackSpace to Unicode value
1309 2012-03-22 Abhishek Arya <inferno@chromium.org>
1311 Incorrect beforeChild parent calculation in RenderRubyBase::moveChildren.
1312 https://bugs.webkit.org/show_bug.cgi?id=80297
1314 Reviewed by Julien Chaffraix.
1316 beforeChild might share the same anonymous block parent with other previous
1317 siblings. Before moving the children across ruby bases, we need to make sure
1318 to split the tree across the beforeChild correctly.
1320 Test: fast/ruby/ruby-text-before-child-split.html
1322 * rendering/RenderRubyBase.cpp:
1323 (WebCore::RenderRubyBase::moveChildren):
1325 2012-03-22 Kristóf Kosztyó <kkristof@inf.u-szeged.hu>
1327 [Qt] Fix Qt minimal build after r111692
1329 Reviewed by Csaba Osztrogonác.
1331 * bindings/js/JSScriptProfileNodeCustom.cpp:
1333 2012-03-22 Adrienne Walker <enne@google.com>
1335 [chromium] Fix scrollbar layers holding onto invalid textures after lost context
1336 https://bugs.webkit.org/show_bug.cgi?id=81841
1338 Reviewed by James Robinson.
1340 Unit test: CCLayerTreeHostImplTest.scrollbarLayerLostContext
1342 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1343 (WebCore::CCScrollbarLayerImpl::willDraw):
1345 2012-03-22 Philippe Normand <pnormand@igalia.com>
1347 [GTK] ASSERT bug in WebAudio (AudioFileReader)
1348 https://bugs.webkit.org/show_bug.cgi?id=81777
1350 Reviewed by Martin Robinson.
1352 * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
1353 (WebCore::AudioFileReader::decodeAudioForBusCreation): Don't steal
1354 the GstBus floating reference.
1355 (WebCore::AudioFileReader::createBus): Ditto.
1357 2012-03-22 Ilya Tikhonovsky <loislo@chromium.org>
1359 Unreviewed: Web Inspector: fix syntax error in text.
1361 * English.lproj/localizedStrings.js:
1362 * inspector/front-end/HeapSnapshotProxy.js:
1363 (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
1365 2012-03-22 Sheriff Bot <webkit.review.bot@gmail.com>
1367 Unreviewed, rolling out r111688.
1368 http://trac.webkit.org/changeset/111688
1369 https://bugs.webkit.org/show_bug.cgi?id=81912
1371 "Heap profiler test fails" (Requested by yurys on #webkit).
1373 * inspector/front-end/HeapSnapshot.js:
1374 (WebInspector.HeapSnapshot.prototype._buildRetainers):
1376 2012-03-22 Dana Jansens <danakj@chromium.org>
1378 [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
1379 https://bugs.webkit.org/show_bug.cgi?id=81437
1381 Reviewed by Adrienne Walker.
1383 Split CCLayerTreeHostImpl::drawLayers() into two phases:
1384 prepareToDraw() and drawLayers().
1386 When calculating a RenderPass, and we checkerboard a quad on a
1387 layer, bubble this info back up to CCLayerTreeHostImpl. If the
1388 layer is transforming in an animation, then abort the prepareToDraw()
1389 phase and cause it to return false back to the thread proxy.
1391 Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
1393 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1394 (WebCore::CCLayerImpl::appendQuads):
1395 * platform/graphics/chromium/cc/CCLayerImpl.h:
1397 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1398 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1399 (WebCore::CCLayerTreeHostImpl::prepareToDraw):
1401 (WebCore::CCLayerTreeHostImpl::drawLayers):
1402 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1403 (CCLayerTreeHostImpl):
1405 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1406 (WebCore::CCQuadCuller::append):
1407 * platform/graphics/chromium/cc/CCQuadCuller.h:
1409 * platform/graphics/chromium/cc/CCRenderPass.cpp:
1410 (WebCore::CCRenderPass::appendQuadsForLayer):
1411 * platform/graphics/chromium/cc/CCRenderPass.h:
1413 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1414 (WebCore::CCScrollbarLayerImpl::appendQuads):
1415 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
1416 (CCScrollbarLayerImpl):
1417 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1418 (WebCore::CCSingleThreadProxy::doComposite):
1419 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
1420 (WebCore::CCSolidColorLayerImpl::appendQuads):
1421 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
1422 (CCSolidColorLayerImpl):
1423 * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
1424 (WebCore::CCTextureLayerImpl::appendQuads):
1425 * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
1426 (CCTextureLayerImpl):
1427 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1428 (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
1429 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1430 (WebCore::CCTiledLayerImpl::appendQuads):
1431 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1433 * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1434 (WebCore::CCVideoLayerImpl::appendQuads):
1435 * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1438 2012-03-22 Levi Weintraub <leviw@chromium.org>
1440 Correct LayoutUnit usage in Accessibility code
1441 https://bugs.webkit.org/show_bug.cgi?id=81789
1443 Reviewed by Eric Seidel.
1445 Reverting Accessibility hit testing code back to integers. Accessibility hit tests originate from
1446 the embedder and don't accumulate offsets, so we get nothing from using LayoutUnits, and needlessly
1447 expose them to the embedder.
1449 No new tests. No change in behavior.
1451 * accessibility/AccessibilityListBox.cpp:
1452 (WebCore::AccessibilityListBox::elementAccessibilityHitTest): See above.
1453 * accessibility/AccessibilityListBox.h:
1454 (AccessibilityListBox):
1455 * accessibility/AccessibilityObject.cpp:
1456 (WebCore::AccessibilityObject::clickPoint): This value is only ever used to display a context menu,
1457 which is always done with integer coordinates.
1458 (WebCore::AccessibilityObject::boundingBoxForQuads): This is a bounding box built from floats. We
1459 don't pixel snap floats, so we return an integer bounding box.
1460 (WebCore::AccessibilityObject::elementAccessibilityHitTest): See above.
1461 (WebCore::AccessibilityObject::scrollToMakeVisible): Pixel snapping the bounding box and simplifying
1462 up the code to position it at (0,0).
1463 * accessibility/AccessibilityObject.h:
1464 (WebCore::AccessibilityObject::accessibilityHitTest): See above.
1465 (AccessibilityObject):
1466 (WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect): Convenience method for embedder callers.
1467 * accessibility/AccessibilityRenderObject.cpp:
1468 (WebCore::AccessibilityRenderObject::visiblePositionForPoint): The point passed in here is comes from
1469 screen coordinates and originates in embedder code. Reverting it to take an integer.
1470 (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest): See above.
1471 (WebCore::AccessibilityRenderObject::accessibilityHitTest): See above.
1472 * accessibility/AccessibilityRenderObject.h:
1473 (AccessibilityRenderObject):
1474 * accessibility/AccessibilityScrollView.cpp:
1475 (WebCore::AccessibilityScrollView::accessibilityHitTest): See above.
1476 * accessibility/AccessibilityScrollView.h:
1477 (AccessibilityScrollView):
1478 * accessibility/AccessibilitySlider.cpp:
1479 (WebCore::AccessibilitySlider::elementAccessibilityHitTest): See above.
1480 * accessibility/AccessibilitySlider.h:
1481 (AccessibilitySlider):
1483 2012-03-21 Ilya Tikhonovsky <loislo@chromium.org>
1485 Web Inspector: HeapProfiler: Heap snapshot worker has to report the errors to the front-end
1486 https://bugs.webkit.org/show_bug.cgi?id=81804
1488 Sometimes the worker process of HeapSnapshot does some wrong thing and throw an Exception.
1489 At this momemnt we have no way to see the error in the front-end.
1491 Reviewed by Yury Semikhatsky.
1493 * English.lproj/localizedStrings.js:
1494 * inspector/front-end/HeapSnapshotProxy.js: check the exception field and dump it into front-end's console.
1495 (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
1496 * inspector/front-end/HeapSnapshotWorkerDispatcher.js: catch the exception and transfer it's text to requester's side.
1497 (WebInspector.HeapSnapshotWorkerDispatcher.prototype.dispatchMessage):
1499 2012-03-22 Carlos Garcia Campos <cgarcia@bb-webkit-rel-64.local.igalia.com>
1501 [GTK] Use the angle-bracket form to include wtf headers
1502 https://bugs.webkit.org/show_bug.cgi?id=81884
1504 Reviewed by Eric Seidel.
1506 Use #include <wtf/foo> instead of #include "foo".
1508 * platform/graphics/freetype/FontPlatformData.h:
1509 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1510 * platform/gtk/DataObjectGtk.h:
1511 * platform/network/ResourceHandleInternal.h:
1512 * platform/network/soup/SocketStreamHandleSoup.cpp:
1514 2012-03-22 Alexander Pavlov <apavlov@chromium.org>
1516 Web Inspector: Case of the elements of the xml document should be shown as it is in the console
1517 https://bugs.webkit.org/show_bug.cgi?id=81902
1519 When registering a detached root, DOMAgent always presumes it is a node,
1520 while it can also be a document.
1522 Reviewed by Vsevolod Vlasov.
1524 Test: inspector/console/console-xml-document.html
1526 * inspector/front-end/ConsoleMessage.js:
1527 (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
1528 * inspector/front-end/DOMAgent.js:
1529 (WebInspector.DOMAgent.prototype._setDetachedRoot):
1531 2012-03-22 Vsevolod Vlasov <vsevik@chromium.org>
1533 Web Inspector: Introduce ScriptBound/ScriptUnbound events in ScriptMapping.
1534 https://bugs.webkit.org/show_bug.cgi?id=81904
1536 Reviewed by Pavel Feldman.
1538 This is another step on the way to cleaner BreakpointManager logic.
1539 Here we extract ScriptBound/ScriptUnbound events from UISourceCodeListChanged event.
1540 This allows us to handle script-uiSourceCode binding separately from
1541 uiSourceCode creation/deletion and to handle unbinding that was not
1542 possible at all before.
1544 * inspector/front-end/CompilerScriptMapping.js:
1545 (WebInspector.CompilerScriptMapping.prototype._uiSourceCodesForSourceMap):
1546 (WebInspector.CompilerScriptMapping.prototype.addScript.get this):
1547 (WebInspector.CompilerScriptMapping.prototype.addScript):
1548 (WebInspector.CompilerScriptMapping.prototype.reset):
1549 * inspector/front-end/ResourceScriptMapping.js:
1550 (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
1551 * inspector/front-end/ScriptMapping.js:
1552 (WebInspector.MainScriptMapping):
1553 (WebInspector.MainScriptMapping.prototype._updateLiveLocation):
1554 (WebInspector.MainScriptMapping.prototype._handleUISourceCodeListChanged):
1555 (WebInspector.MainScriptMapping.prototype._handleScriptBound):
1556 (WebInspector.MainScriptMapping.prototype._handleScriptUnbound):
1557 * inspector/front-end/SnippetsModel.js:
1558 (WebInspector.SnippetsScriptMapping.prototype.addScript.get this):
1559 (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
1560 (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
1561 (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved.get this):
1562 (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved):
1563 (WebInspector.SnippetsScriptMapping.prototype.reset):
1565 2012-03-22 Vineet Chaudhary <rgf748@motorola.com>
1567 https://bugs.webkit.org/show_bug.cgi?id=81893
1568 Remove custom bindings form ScriptProfileNode.idl of attribute type Array.
1570 Reviewed by Kentaro Hara.
1572 Replace [CustomGetter] Array with sequence<ScriptProfileNode>.
1573 To remove the custom bindings code.
1575 Test: No new tests. LayoutTests/fast/profiler/* test are enough for this.
1577 * bindings/js/JSScriptProfileNodeCustom.cpp: Removed custom function.
1578 (WebCore::JSScriptProfileNode::callUID):
1579 * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: Removed custom function.
1581 * inspector/ScriptProfileNode.idl: Replaced Array with sequence<ScriptProfileNode>.
1583 2012-03-22 Andrey Kosyakov <caseq@chromium.org>
1585 Web Inspector: only update timeline overview categories strips when these are visible
1586 https://bugs.webkit.org/show_bug.cgi?id=81903
1588 Reviewed by Pavel Feldman.
1590 - factor out category strips update into a separate method;
1591 - only invoke it when "Timeline" overview mode is selected.
1593 * inspector/front-end/TimelineOverviewPane.js:
1594 (WebInspector.TimelineOverviewPane.prototype._showTimelines):
1595 (WebInspector.TimelineOverviewPane.prototype.update):
1596 (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
1598 2012-03-22 Levi Weintraub <leviw@chromium.org>
1600 Update LayoutUnit usage in FrameSelection
1601 https://bugs.webkit.org/show_bug.cgi?id=81754
1603 Reviewed by Eric Seidel.
1605 FrameSelection stores its caret and repaint bounds in absolute coordinates. Absolute coordinates
1606 we treat as pixel values, so this patch changes these values to integers. Sub-pixel precision
1607 will still be used when these coordinates are passed down and used locally.
1609 No new tests. No change in behavior.
1611 * editing/FrameSelection.cpp:
1612 (WebCore::absoluteCaretY): Uses absolute coordinates, which are ints.
1613 (WebCore::FrameSelection::modify): Uses absolute coordinates to handle vertical selection
1614 modification. Sub-pixel precision will be used when these values are converted to local ones.
1615 (WebCore::CaretBase::absoluteBoundsForLocalRect): Absolute coordinates -> ints.
1616 (WebCore::FrameSelection::absoluteCaretBounds): Ditto.
1617 (WebCore::CaretBase::caretRepaintRect): The caret repaint rect is stored in absolute coordinates.
1618 Reverting the values to ints.
1619 (WebCore::FrameSelection::recomputeCaretRect): Ditto.
1620 * editing/FrameSelection.h:
1622 * editing/mac/FrameSelectionMac.mm:
1623 (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Switching to store absolute
1624 coordinates as integers.
1626 2012-03-22 Alexei Filippov <alexeif@chromium.org>
1628 Web Inspector: Speed up the build retainers phase.
1629 https://bugs.webkit.org/show_bug.cgi?id=81763
1631 Replacing the edge iterator with a raw loop makes it
1632 faster by more than 10 times.
1634 Reviewed by Yury Semikhatsky.
1636 * inspector/front-end/HeapSnapshot.js:
1637 (WebInspector.HeapSnapshot.prototype._buildRetainers):
1639 2012-03-22 No'am Rosenthal <noam.rosenthal@nokia.com>
1641 [Qt][WK2] The background appears to have one extra pixel from the contents
1642 https://bugs.webkit.org/show_bug.cgi?id=81830
1644 Reviewed by Kenneth Rohde Christiansen.
1646 TextureMapperGL applied a 1-offset that was covering for another bug,
1647 which was already fixed.
1649 No new tests, this would be tested once we test GL rendering results.
1651 * platform/graphics/texmap/TextureMapperGL.cpp:
1652 (WebCore::TextureMapperGLData::SharedGLData::scissorClip):
1654 2012-03-22 W. James MacLean <wjmaclean@chromium.org>
1656 Rename touchpad fling curve, add curve parameters to constructor.
1657 https://bugs.webkit.org/show_bug.cgi?id=81820
1659 Reviewed by Adrienne Walker.
1661 Covered by existing unit tests.
1663 * GNUmakefile.list.am:
1665 * platform/ScrollAnimatorNone.cpp:
1666 (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
1667 * platform/TouchpadFlingPlatformGestureCurve.cpp: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.cpp.
1669 (WebCore::TouchpadFlingPlatformGestureCurve::create):
1670 (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
1671 (WebCore::TouchpadFlingPlatformGestureCurve::~TouchpadFlingPlatformGestureCurve):
1672 (WebCore::TouchpadFlingPlatformGestureCurve::apply):
1673 * platform/TouchpadFlingPlatformGestureCurve.h: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.h.
1675 (TouchpadFlingPlatformGestureCurve):
1677 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1679 Web Inspector: make CSS and JavaScript files editable by default.
1680 https://bugs.webkit.org/show_bug.cgi?id=81787
1682 Reviewed by Vsevolod Vlasov.
1684 This change removes cancelEditing and setReadOnly capabilities from source frame.
1685 It removes dblclick handler as well since one does not need to enter editing mode.
1686 It also establishes proper content dispatching so that views are updated with the
1687 resource content. All these are inter-dependent, need to be landed simultaneously.
1688 Drive-by follow up to the r111675 where range is modified prior to the exiting
1691 * inspector/front-end/JavaScriptSourceFrame.js:
1692 (WebInspector.JavaScriptSourceFrame):
1693 (WebInspector.JavaScriptSourceFrame.prototype.requestContent):
1694 (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
1695 (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
1696 (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
1697 (WebInspector.JavaScriptSourceFrame.prototype._lineNumberAfterEditing):
1698 * inspector/front-end/ResourceView.js:
1699 (WebInspector.ResourceSourceFrame):
1700 (WebInspector.ResourceSourceFrame.prototype.suggestedFileName):
1701 (WebInspector.ResourceSourceFrame.prototype._contentChanged):
1702 (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
1703 (WebInspector.EditableResourceSourceFrame.prototype.editContent.callbackWrapper):
1704 (WebInspector.EditableResourceSourceFrame.prototype.editContent):
1705 (WebInspector.EditableResourceSourceFrame.prototype._contentChanged):
1706 * inspector/front-end/ResourcesPanel.js:
1707 (WebInspector.ResourcesPanel.prototype._innerShowView):
1708 (WebInspector.FrameResourceTreeElement.prototype._appendRevision):
1709 * inspector/front-end/ScriptsPanel.js:
1710 (WebInspector.ScriptsPanel.prototype.setScriptSourceIsDirty):
1711 * inspector/front-end/Settings.js:
1712 (WebInspector.ExperimentsSettings):
1713 * inspector/front-end/SourceFrame.js:
1714 (WebInspector.SourceFrame):
1715 (WebInspector.SourceFrame.prototype.wasShown):
1716 (WebInspector.SourceFrame.prototype.willHide):
1717 (WebInspector.SourceFrame.prototype.beforeTextChanged):
1718 (WebInspector.SourceFrame.prototype.setContent):
1719 (WebInspector.SourceFrame.prototype.commitEditing):
1720 (WebInspector.SourceFrame.prototype.didEditContent):
1721 (WebInspector.SourceFrame.prototype.editContent):
1722 * inspector/front-end/TextPrompt.js:
1723 (WebInspector.TextPrompt.prototype._startEditing):
1724 (WebInspector.TextPrompt.prototype._stopEditing):
1725 * inspector/front-end/TextViewer.js:
1726 (WebInspector.TextViewer):
1727 (WebInspector.TextViewer.prototype._registerShortcuts):
1728 (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
1730 2012-03-22 Allan Sandfeld Jensen <allan.jensen@nokia.com>
1732 [Qt] Enable FAST_MOBILE_SCROLLING when scrolling is delegated.
1733 https://bugs.webkit.org/show_bug.cgi?id=81889
1735 Reviewed by Kenneth Rohde Christiansen.
1737 On the Qt platform only enable the fast mobile scroll feature when scrolling is delegated.
1739 * rendering/RenderObject.cpp:
1740 (WebCore::RenderObject::styleWillChange):
1742 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1744 Web Inspector: dispatch styleSheetChanged event synchronously.
1745 https://bugs.webkit.org/show_bug.cgi?id=81892
1747 Reviewed by Vsevolod Vlasov.
1749 Today, backend generates stylesheet change event synchronously from within set* command.
1750 But CSSStyleModel defers its dispatching until the stylesheet content is available. This
1751 prevents us from ignoring update events from within commands that initiated those updates.
1753 This change makes stylesheet change event dispatch synchronously and delegates stylesheet
1754 content fetching to the event client.
1756 * inspector/front-end/CSSStyleModel.js:
1757 (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
1758 (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
1759 (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
1760 (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent.callbackWrapper):
1761 (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent):
1762 (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.callback):
1763 (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
1764 (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged):
1766 2012-03-21 Ian Vollick <vollick@chromium.org>
1768 [chromium] timing functions are getting incorrectly applied for accelerated css transitions
1769 https://bugs.webkit.org/show_bug.cgi?id=81692
1771 Reviewed by Adrienne Walker.
1773 Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
1775 * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
1777 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1779 Web Inspector: allow on-hover popover while in edit mode.
1780 https://bugs.webkit.org/show_bug.cgi?id=81898
1782 Reviewed by Vsevolod Vlasov.
1784 This change allows popover while in-edit mode, hides it upon Esc. It also introduces anchorOverride
1785 concept in ObjectPopoverHelper that allows dynamically switching the anchor (say if we want to highlight anchor itself).
1787 * inspector/front-end/DetailedHeapshotView.js:
1788 * inspector/front-end/ElementsPanel.js:
1789 * inspector/front-end/JavaScriptSourceFrame.js:
1790 (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover.showObjectPopover):
1791 (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
1792 (WebInspector.JavaScriptSourceFrame.prototype._onKeyDown):
1793 * inspector/front-end/NetworkPanel.js:
1794 * inspector/front-end/ObjectPopoverHelper.js:
1795 (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
1796 (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
1797 * inspector/front-end/Popover.js:
1798 (WebInspector.PopoverHelper.prototype.isPopoverVisible):
1799 * inspector/front-end/TimelinePanel.js:
1801 2012-03-22 Pavel Feldman <pfeldman@chromium.org>
1803 Web Inspector: breakpoints should shift when line break is inserted in the middle of the line.
1804 https://bugs.webkit.org/show_bug.cgi?id=81896
1806 Reviewed by Vsevolod Vlasov.
1808 There is a bug that collapses selection prior to exiting change mode, we should never
1809 collapse edit area prior committing.
1811 * inspector/front-end/TextEditorModel.js:
1812 (WebInspector.TextEditorModel.endsWithBracketRegex.):
1813 * inspector/front-end/TextViewer.js:
1814 (WebInspector.TextViewer):
1815 (WebInspector.TextEditorMainPanel.prototype.highlightLine):
1816 (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.callback):
1817 (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
1819 2012-03-22 Zoltan Herczeg <zherczeg@webkit.org>
1821 Merge SVGImageBufferTools to SVGRenderingContext
1822 https://bugs.webkit.org/show_bug.cgi?id=81890
1824 Reviewed by Nikolas Zimmermann.
1826 Copy the code to SVGRenderingContext and delete
1827 SVGImageBufferTools[.cpp.h]. Update build systems,
1828 no functionality change. This is the first step
1829 towards making SVGImageBufferTools stageful.
1831 Existing tests cover this issue.
1834 * GNUmakefile.list.am:
1837 * WebCore.xcodeproj/project.pbxproj:
1838 * platform/graphics/filters/FETile.cpp:
1839 (WebCore::FETile::platformApplySoftware):
1840 * rendering/svg/RenderSVGAllInOne.cpp:
1841 * rendering/svg/RenderSVGInlineText.cpp:
1842 (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
1843 * rendering/svg/RenderSVGResourceClipper.cpp:
1844 (WebCore::RenderSVGResourceClipper::applyClippingToContext):
1845 (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
1846 * rendering/svg/RenderSVGResourceFilter.cpp:
1847 (WebCore::RenderSVGResourceFilter::applyResource):
1848 * rendering/svg/RenderSVGResourceGradient.cpp:
1849 (WebCore::createMaskAndSwapContextForTextGradient):
1850 (WebCore::clipToTextMask):
1851 * rendering/svg/RenderSVGResourceMasker.cpp:
1852 (WebCore::RenderSVGResourceMasker::applyResource):
1853 (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
1854 * rendering/svg/RenderSVGResourcePattern.cpp:
1855 (WebCore::RenderSVGResourcePattern::applyResource):
1856 (WebCore::RenderSVGResourcePattern::createTileImage):
1857 * rendering/svg/SVGImageBufferTools.cpp: Removed.
1858 * rendering/svg/SVGImageBufferTools.h: Removed.
1859 * rendering/svg/SVGInlineTextBox.cpp:
1860 * rendering/svg/SVGRenderingContext.cpp:
1861 (WebCore::currentContentTransformation):
1863 (WebCore::SVGRenderingContext::calculateTransformationToOutermostSVGCoordinateSystem):
1864 (WebCore::SVGRenderingContext::createImageBuffer):
1865 (WebCore::SVGRenderingContext::createImageBufferForPattern):
1866 (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):
1867 (WebCore::SVGRenderingContext::clipToImageBuffer):
1868 (WebCore::SVGRenderingContext::clampedAbsoluteTargetRect):
1869 (WebCore::SVGRenderingContext::clampedAbsoluteSize):
1870 (WebCore::SVGRenderingContext::clear2DRotation):
1871 * rendering/svg/SVGRenderingContext.h:
1872 (SVGRenderingContext):
1873 (WebCore::SVGRenderingContext::calculateImageBufferRect):
1874 * svg/graphics/filters/SVGFEImage.cpp:
1875 (WebCore::FEImage::platformApplySoftware):
1877 2012-03-22 Hyowon Kim <hw1008.kim@samsung.com>
1879 [EFL] Add PageClientEfl to WebCoreSupport.
1880 https://bugs.webkit.org/show_bug.cgi?id=80748
1882 Reviewed by Noam Rosenthal.
1884 * platform/Widget.h: Use PageClientEfl as type for PlatformPageClient.
1886 * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
1887 (WebCore::GraphicsContext3DPrivate::createSurface): Change the argument type.
1888 * plugins/efl/PluginViewEfl.cpp:
1889 (WebCore::PluginView::platformGetValue): Use PageClientEfl.
1891 2012-03-22 Kaustubh Atrawalkar <kaustubh@motorola.com>
1893 blur() on shadow host should work when a shadow host contains a focused element in its shadow DOM subtrees
1894 https://bugs.webkit.org/show_bug.cgi?id=81102
1896 Reviewed by Hajime Morita.
1898 This implementation will support blur for a focused element when its shadowHost's blur() is called.
1899 To achieve this Element::blur() function is modified to blur the focused node in it's treeScope.
1901 Test: fast/dom/shadow/shadow-root-blur.html
1904 (WebCore::Element::blur): Modified to blur current treeScope's focused node.
1906 (WebCore::ShadowRoot::activeElement): Rework for code sharing.
1907 * dom/TreeScope.cpp:
1908 (WebCore::TreeScope::focusedNode): Added new function to share code for getting focused node.
1910 (TreeScope): New function declartion.
1911 * html/HTMLDocument.cpp:
1912 (WebCore::HTMLDocument::activeElement): Rework for code sharing.
1914 2012-03-22 Vsevolod Vlasov <vsevik@chromium.org>
1916 Web Inspector: RawSourceCode does not need uiSourceCode lists because it never has more than one.
1917 https://bugs.webkit.org/show_bug.cgi?id=81894
1919 RawSourceCode never has more than one uiSourceCode, uiSourceCodeList
1920 are just remains of older implementation. This patch switches RawSourceCode
1921 and SourceMappings from uiSourceCodeList to uiSourceCode.
1923 Reviewed by Pavel Feldman.
1925 * inspector/front-end/RawSourceCode.js:
1926 (WebInspector.RawSourceCode.prototype.uiSourceCode):
1927 (WebInspector.RawSourceCode.prototype._saveSourceMapping):
1928 (WebInspector.RawSourceCode.SourceMapping.prototype.uiLocationToRawLocation):
1929 (WebInspector.RawSourceCode.SourceMapping.prototype.uiSourceCode):
1930 (WebInspector.RawSourceCode.PlainSourceMapping):
1931 (WebInspector.RawSourceCode.PlainSourceMapping.prototype.rawLocationToUILocation):
1932 (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiLocationToRawLocation):
1933 (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiSourceCode):
1934 (WebInspector.RawSourceCode.FormattedSourceMapping):
1935 (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
1936 (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiLocationToRawLocation):
1937 (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiSourceCode):
1938 * inspector/front-end/ResourceScriptMapping.js:
1939 (WebInspector.ResourceScriptMapping.prototype.uiSourceCodeList):
1940 (WebInspector.ResourceScriptMapping.prototype.addScript):
1941 (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeChanged):
1942 (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
1943 (WebInspector.ResourceScriptMapping.prototype.reset):
1945 2012-03-22 Mario Sanchez Prada <msanchez@igalia.com>
1947 [GTK] Fix the only remaining coding style issue in GTK accessibility code
1948 https://bugs.webkit.org/show_bug.cgi?id=81885
1950 Reviewed by Xan Lopez.
1952 Add needed extra line and remove an unneeded one.
1954 * accessibility/gtk/AccessibilityObjectAtk.cpp:
1956 2012-03-22 Kent Tamura <tkent@chromium.org>
1958 Expand RenderTextControlSingleLine::controlClipRect() to contain contentRect().
1959 https://bugs.webkit.org/show_bug.cgi?id=81866
1961 Reviewed by Hajime Morita.
1963 We need to expand the controlClipRect because the existing shadow
1964 tree of a text field can be wrapped by another shadow tree. e.g.
1966 A current situation:
1971 ┌────────────┐<input>'s border box
1977 Wrapped by another ShadowRoot:
1981 ┣ <shadow> represents the existing shadow tree
1982 ┃ ┗ container element
1983 ┗ D: an additional decoration element
1984 ┌────────────┐<input>'s border box
1986 ││container box │ D ││
1989 In this case, if we clip child renderers by container box, D is not
1990 drawn. We should clip by the content box of the <input>.
1992 A search field has an exceptional behavior. It can have the container
1993 box of which height is taller than the content box height. The
1994 controlClipRect should contain both of the container box and the content
1995 box in this case. In other cases, the container box is equivalent to the
1996 content box. So the code always unites them.
1998 No new tests. This won't make any behavior change for now.
2000 * rendering/RenderTextControlSingleLine.cpp:
2001 (WebCore::RenderTextControlSingleLine::controlClipRect):
2003 2012-03-22 Yoshifumi Inoue <yosin@chromium.org>
2005 [Forms] The option element should not be form associated element.
2006 https://bugs.webkit.org/show_bug.cgi?id=79764
2008 Reviewed by Kent Tamura.
2010 This patch changes base class of HTMLOptionELement to HTMLElement
2011 from HTMLFormControlElement for saving memory space and iteration
2012 time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
2013 and matching the HTML5 specification for ease of maintenance.
2015 This patch changes behavior of handling of CSS pseudo classes "invalid"
2016 and "valid". The "option" elements no longer use these CSS pseudo classes
2017 as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
2019 Changes of TextIterator is lead by usage of isFormControlElement. This
2020 changes will be replaced with more meaningful predicate as part of
2021 https://bugs.webkit.org/show_bug.cgi?id=80381
2023 No new tests but updated select-live-pseudo-selectors.html test.
2025 * css/CSSStyleSelector.cpp:
2026 (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
2027 * css/SelectorChecker.cpp:
2028 (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
2029 * html/HTMLKeygenElement.cpp:
2030 (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
2031 * html/HTMLOptionElement.cpp:
2032 (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
2033 (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
2034 (WebCore::HTMLOptionElement::attach): Changeid base class.
2035 (WebCore::HTMLOptionElement::detach): Changed base class.
2036 (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
2037 (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
2038 (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
2039 * html/HTMLOptionElement.h:
2040 (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
2041 (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
2042 * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
2044 2012-03-21 Pavel Podivilov <podivilov@chromium.org>
2046 Web Inspector: rename ClosureCompilerSourceMapping to SourceMapParser and move it to CompilerScriptMapping.js.
2047 https://bugs.webkit.org/show_bug.cgi?id=81780
2049 Reviewed by Pavel Feldman.
2052 * WebCore.vcproj/WebCore.vcproj:
2053 * inspector/compile-front-end.py:
2054 * inspector/front-end/CompilerScriptMapping.js:
2055 (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
2056 (WebInspector.SourceMapParserPayload):
2057 (WebInspector.SourceMapParser):
2058 (WebInspector.SourceMapParser.prototype.load):
2059 (WebInspector.SourceMapParser.prototype.compiledLocationToSourceLocation):
2060 (WebInspector.SourceMapParser.prototype.sourceLocationToCompiledLocation):
2061 (WebInspector.SourceMapParser.prototype.sources):
2062 (WebInspector.SourceMapParser.prototype.loadSourceCode):
2063 (WebInspector.SourceMapParser.prototype._findMapping):
2064 (WebInspector.SourceMapParser.prototype._parseMappingPayload):
2065 (WebInspector.SourceMapParser.prototype._parseSections):
2066 (WebInspector.SourceMapParser.prototype._parseMap):
2067 (WebInspector.SourceMapParser.prototype._isSeparator):
2068 (WebInspector.SourceMapParser.prototype._decodeVLQ):
2069 (WebInspector.SourceMapParser.prototype._canonicalizeURL):
2070 (WebInspector.SourceMapParser.StringCharIterator):
2071 (WebInspector.SourceMapParser.StringCharIterator.prototype.next):
2072 (WebInspector.SourceMapParser.StringCharIterator.prototype.peek):
2073 (WebInspector.SourceMapParser.StringCharIterator.prototype.hasNext):
2074 * inspector/front-end/CompilerSourceMapping.js: Removed.
2075 * inspector/front-end/WebKit.qrc:
2076 * inspector/front-end/inspector.html:
2078 2012-03-21 Vsevolod Vlasov <vsevik@chromium.org>
2080 Web Inspector: IndexedDB transaction is not closed when requesting data.
2081 https://bugs.webkit.org/show_bug.cgi?id=81837
2083 Reviewed by Pavel Feldman.
2085 * inspector/InspectorIndexedDBAgent.cpp: Added missing IDBCursorBackendInterface::postSuccessHandlerCallback() call.
2088 2012-03-21 Yury Semikhatsky <yurys@chromium.org>
2090 Web Inspector: event listeners section is broken for about:blank page
2091 https://bugs.webkit.org/show_bug.cgi?id=81795
2093 Parse about:blank as a valid URL.
2095 Reviewed by Pavel Feldman.
2097 Test: inspector/elements/event-listeners-about-blank.html
2099 * inspector/front-end/utilities.js:
2100 (String.prototype.asParsedURL):
2102 2012-03-21 Dan Bernstein <mitz@apple.com>
2104 REGRESSION (r111635): Assertion failure in RenderFlexibleBox::layoutFlexItems() (!lineContexts.size()) in many flexbox tests
2105 https://bugs.webkit.org/show_bug.cgi?id=81870
2107 Reverted r111635, the fix for bug 81843.
2109 * rendering/RenderFlexibleBox.cpp:
2110 (WebCore::RenderFlexibleBox::WrapReverseContext::WrapReverseContext):
2111 (WebCore::RenderFlexibleBox::WrapReverseContext::addCrossAxisOffset):
2112 (RenderFlexibleBox::WrapReverseContext):
2113 (WebCore::RenderFlexibleBox::WrapReverseContext::addNumberOfChildrenOnLine):
2114 (WebCore::RenderFlexibleBox::WrapReverseContext::lineCrossAxisDelta):
2115 (WebCore::RenderFlexibleBox::layoutFlexItems):
2116 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
2117 (WebCore::RenderFlexibleBox::alignChildren):
2118 (WebCore::RenderFlexibleBox::flipForWrapReverse):
2119 * rendering/RenderFlexibleBox.h:
2121 2012-03-21 Emil A Eklund <eae@chromium.org>
2123 Unreviewed change touching CustomFilterProgram.h to try
2124 to force the chromium-win bots to rebuilt it and pick up
2125 on the fact that CSS_SHADERS is not set (since r111610).
2127 * platform/graphics/filters/CustomFilterProgram.h:
2129 2012-03-21 Vangelis Kokkevis <vangelis@chromium.org>
2131 [chromium] FPS counter causes garbage to be displayed at top left corner
2132 https://bugs.webkit.org/show_bug.cgi?id=81851
2134 The HUD expects the PlatformCanvas it paints on to be cleared on creation which is
2135 no longer true after http://src.chromium.org/viewvc/chrome?view=rev&revision=127196 .
2136 This patch does an explicit clearRect before the HUD contents are painted.
2138 Reviewed by Adrienne Walker.
2140 TEST=Manually verified that --show-fps-counter and --show-composited-layer-tree work correctly.
2142 * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2143 (WebCore::CCHeadsUpDisplay::draw):
2145 2012-03-21 Ryosuke Niwa <rniwa@webkit.org>
2147 Touch a file to make Chromium Windows bots happy.
2149 * css/CSSValueKeywords.in:
2151 2012-03-19 Igor Oliveira <igor.o@sisa.samsung.com>
2153 Every call to RenderObject::setAnimatableStyle() iterates through all m_compositeAnimations: potentially O(N^2)
2154 https://bugs.webkit.org/show_bug.cgi?id=38025
2156 Implement updateAnimationTimerForRender. This reduces unnecessary animation
2157 steps on the current RenderObject by checking the value of timeToNextService
2158 before starting a new timer.
2160 Reviewed by Dean Jackson.
2162 Test: animations/animation-welcome-safari.html
2164 * page/animation/AnimationController.cpp:
2165 (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
2167 (WebCore::AnimationController::updateAnimations):
2168 * page/animation/AnimationControllerPrivate.h:
2169 (AnimationControllerPrivate):
2171 2012-03-21 Sheriff Bot <webkit.review.bot@gmail.com>
2173 Unreviewed, rolling out r111616.
2174 http://trac.webkit.org/changeset/111616
2175 https://bugs.webkit.org/show_bug.cgi?id=81862
2177 broke chromium mac (Requested by eae on #webkit).
2179 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2180 (WebCore::CCLayerImpl::appendQuads):
2181 * platform/graphics/chromium/cc/CCLayerImpl.h:
2183 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2184 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2185 (WebCore::CCLayerTreeHostImpl::drawLayers):
2186 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2187 (CCLayerTreeHostImpl):
2188 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2189 (WebCore::CCQuadCuller::append):
2190 * platform/graphics/chromium/cc/CCQuadCuller.h:
2192 * platform/graphics/chromium/cc/CCRenderPass.cpp:
2193 (WebCore::CCRenderPass::appendQuadsForLayer):
2194 * platform/graphics/chromium/cc/CCRenderPass.h:
2196 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2197 (WebCore::CCScrollbarLayerImpl::appendQuads):
2198 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2199 (CCScrollbarLayerImpl):
2200 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2201 (WebCore::CCSingleThreadProxy::doComposite):
2202 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2203 (WebCore::CCSolidColorLayerImpl::appendQuads):
2204 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2205 (CCSolidColorLayerImpl):
2206 * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2207 (WebCore::CCTextureLayerImpl::appendQuads):
2208 * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
2209 (CCTextureLayerImpl):
2210 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2211 (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
2212 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2213 (WebCore::CCTiledLayerImpl::appendQuads):
2214 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2216 * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2217 (WebCore::CCVideoLayerImpl::appendQuads):
2218 * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2221 2012-03-21 Beth Dakin <bdakin@apple.com>
2223 https://bugs.webkit.org/show_bug.cgi?id=80322
2226 Reviewed by Dean Jackson.
2228 This initial implementation of -webkit-image-set.
2229 http://lists.w3.org/Archives/Public/www-style/2012Feb/1103.html
2230 The idea behind the feature is to allow authors to provide multiple variants
2231 of the same image at differing resolutions, and to allow the User Agent to
2232 choose the resource that is most appropriate at the time. This patch will
2233 choose the most appropriate image based on device scale factor.
2235 CSSImageSetValue inherits from CSSValueList and behaves a lot like
2237 * WebCore.xcodeproj/project.pbxproj:
2238 * css/CSSImageSetValue.h: Added.
2241 (WebCore::CSSImageSetValue::create):
2242 (WebCore::CSSImageSetValue::isPending):
2244 (WebCore::CSSImageSetValue::compareByScaleFactor):
2245 * css/CSSImageSetValue.cpp: Added.
2247 (WebCore::CSSImageSetValue::CSSImageSetValue):
2248 (WebCore::CSSImageSetValue::~CSSImageSetValue):
2249 (WebCore::CSSImageSetValue::cachedOrPendingImageSet):
2250 (WebCore::CSSImageSetValue::customCssText):
2252 fillImageSet() iterates through the value list and turns the information into
2253 a sorted Vector of ImageWithScales (which is a struct containing image URLs
2255 (WebCore::CSSImageSetValue::fillImageSet):
2257 cachedImageSet() finds which image is most appropriate based on the device
2258 scale factor, and it loads only that image. In the future, additional scale
2259 factors will be taken into account.
2260 (WebCore::CSSImageSetValue::bestImageForScaleFactor):
2261 (WebCore::CSSImageSetValue::cachedImageSet):
2263 parseImageSet() is called everywhere in the CSSParser that a regular image or
2264 generated image can be found.
2265 * css/CSSParser.cpp:
2266 (WebCore::CSSParser::parseValue):
2267 (WebCore::CSSParser::parseContent):
2268 (WebCore::CSSParser::parseFillImage):
2269 (WebCore::CSSParser::parseBorderImage):
2271 (WebCore::CSSParser::parseImageSet):
2274 Since CSSImageSetValue is implemented as a value list,
2275 ApplyPropertyFillLayer::applyValue() needs to be more specific when it's
2276 looking for a list of multiple URLs.
2277 * css/CSSStyleApplyProperty.cpp:
2278 (WebCore::ApplyPropertyFillLayer::applyValue):
2280 Handle image-set as a valid image value.
2281 * css/CSSStyleSelector.cpp:
2282 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2283 * css/CSSStyleSelector.h:
2286 (WebCore::CSSValue::cssText):
2287 (WebCore::CSSValue::destroy):
2290 (WebCore::CSSValue::isImageSetValue):
2292 computeIntrinsicDimensions() now takes an optional scaleFactor parameter that represents the author-enforced "intrinsic" scale factor of the image.
2293 * loader/cache/CachedImage.cpp:
2294 (WebCore::CachedImage::computeIntrinsicDimensions):
2295 * loader/cache/CachedImage.h:
2297 * platform/graphics/GeneratedImage.h:
2299 * platform/graphics/GeneratorGeneratedImage.cpp:
2300 (WebCore::GeneratedImage::computeIntrinsicDimensions):
2301 * platform/graphics/Image.cpp:
2302 (WebCore::Image::computeIntrinsicDimensions):
2303 * platform/graphics/Image.h:
2305 * platform/graphics/cg/PDFDocumentImage.cpp:
2306 (WebCore::PDFDocumentImage::computeIntrinsicDimensions):
2307 * platform/graphics/cg/PDFDocumentImage.h:
2309 * svg/graphics/SVGImage.cpp:
2310 (WebCore::SVGImage::computeIntrinsicDimensions):
2311 * svg/graphics/SVGImage.h:
2314 Inherits from StyleImage and returns a scaled size for imageSize() and
2315 computeIntrinsicDimensions().
2316 * rendering/style/StyleCachedImageSet.cpp: Added.
2318 (WebCore::StyleCachedImageSet::StyleCachedImageSet):
2319 (WebCore::StyleCachedImageSet::cssValue):
2320 (WebCore::StyleCachedImageSet::canRender):
2321 (WebCore::StyleCachedImageSet::isLoaded):
2322 (WebCore::StyleCachedImageSet::errorOccurred):
2323 (WebCore::StyleCachedImageSet::imageSize):
2324 (WebCore::StyleCachedImageSet::imageHasRelativeWidth):
2325 (WebCore::StyleCachedImageSet::imageHasRelativeHeight):
2326 (WebCore::StyleCachedImageSet::computeIntrinsicDimensions):
2327 (WebCore::StyleCachedImageSet::usesImageContainerSize):
2328 (WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
2329 (WebCore::StyleCachedImageSet::addClient):
2330 (WebCore::StyleCachedImageSet::removeClient):
2331 (WebCore::StyleCachedImageSet::image):
2332 * rendering/style/StyleCachedImageSet.h: Added.
2334 (StyleCachedImageSet):
2335 (WebCore::StyleCachedImageSet::create):
2336 (WebCore::StyleCachedImageSet::data):
2337 (WebCore::StyleCachedImageSet::cachedImage):
2340 * rendering/style/StyleImage.h:
2341 (WebCore::StyleImage::isCachedImageSet):
2342 (WebCore::StyleImage::StyleImage):
2344 * rendering/style/StylePendingImage.h:
2345 (StylePendingImage):
2346 (WebCore::StylePendingImage::cssImageSetValue):
2348 2012-03-21 David Barton <dbarton@mathscribe.com>
2350 MathML internals - improve naming in RenderMathMLSquareRoot.cpp and RenderMathMLRoot.cpp
2351 https://bugs.webkit.org/show_bug.cgi?id=81850
2353 Reviewed by Eric Seidel.
2355 This prepares these files for bug fixes, and eventually combining their common code. To
2356 understand this patch, I suggest you start with RenderMathMLSquareRoot.cpp, as it's
2357 simpler than RenderMathMLRoot.cpp.
2359 No new tests. LayoutTests/mathml/presentation/roots.xhtml is thorough enough for this.
2361 * rendering/mathml/RenderMathMLRoot.cpp:
2363 (WebCore::RenderMathMLRoot::addChild):
2364 (WebCore::RenderMathMLRoot::paint):
2365 (WebCore::RenderMathMLRoot::layout):
2366 * rendering/mathml/RenderMathMLRoot.h:
2369 * rendering/mathml/RenderMathMLSquareRoot.cpp:
2371 (WebCore::RenderMathMLSquareRoot::paint):
2372 (WebCore::RenderMathMLSquareRoot::layout):
2373 * rendering/mathml/RenderMathMLSquareRoot.h:
2375 (RenderMathMLSquareRoot):
2376 * rendering/mathml/RenderMathMLSubSup.h:
2379 2012-03-21 Tony Chang <tony@chromium.org>
2381 refactor flexbox in preparation for flex-line-pack
2382 https://bugs.webkit.org/show_bug.cgi?id=81843
2384 Reviewed by Ojan Vafai.
2386 Replace WrapReverseContext with a vector of LineContexts that contain
2387 the same information, plus values needed for flex-align.
2389 alignChildren has been moved to after all the lines have been
2390 positioned. We want to align children after flex-line-pack has changed
2391 the size of each line to avoid unnecessary layouts.
2393 No new tests, just refactoring.
2395 * rendering/RenderFlexibleBox.cpp:
2396 (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
2397 holds information needed for wrap-reverse and aligning children.
2398 (RenderFlexibleBox::LineContext):
2399 (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
2400 (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
2401 (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
2402 (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
2403 * rendering/RenderFlexibleBox.h:
2405 2012-03-21 Ryosuke Niwa <rniwa@webkit.org>
2407 BDI element should have dir=auto by default
2408 https://bugs.webkit.org/show_bug.cgi?id=68773
2410 Reviewed by Daniel Bates.
2412 Treat bdi elements without dir content attribute as if they have dir=auto per spec:
2413 http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-bdi-element
2415 The patch tries to encapsulate the logic to look for dir content attribute and dir=auto.
2417 It also adds HTMLBDIElement interface (binding remains to use HTMLElement) to set
2418 selfOrAncestorHasDirAutoAttribute flag true by default, which is used by functions like
2419 directionalityIfhasDirAutoAttribute to look for elements with dir=auto. Since dir=auto-ness of bdi
2420 elements can be overridden by dir content attribute, we must change and only change the default value.
2422 Tests: fast/text/international/bdi-dir-default-to-auto-expected.html
2423 fast/text/international/bdi-dir-default-to-auto.html
2425 * GNUmakefile.list.am:
2428 * WebCore.vcproj/WebCore.vcproj:
2429 * WebCore.xcodeproj/project.pbxproj:
2430 * css/CSSStyleSelector.cpp:
2431 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2432 * html/HTMLBDIElement.h: Added.
2435 (WebCore::HTMLBDIElement::create):
2436 (WebCore::HTMLBDIElement::HTMLBDIElement): Sets selfOrAncestorHasDirAutoAttribute to true because
2437 bdi elements are treated as if it has dir=auto by default.
2438 * html/HTMLElement.cpp:
2439 (WebCore::elementAffectsDirectionality): Added. Checks if the specified element is bdi or
2440 has dir content attribute.
2442 (WebCore::setHasDirAutoFlagRecursively):
2443 (WebCore::HTMLElement::hasDirectionAuto): Added. Checks if the specified element should be treated
2444 as if it has dir=auto (bdi or element with dir=auto).
2445 (WebCore::HTMLElement::directionalityIfhasDirAutoAttribute):
2446 (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
2447 (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
2448 * html/HTMLElement.h:
2450 * html/HTMLTagNames.in: Use HTMLBDIElement instead of HTMLElement for constructing bdi element
2451 to set selfOrAncestorHasDirAutoAttribute true but still use HTMLElement for binding.
2453 2012-03-21 Luke Macpherson <macpherson@chromium.org>
2455 Use CSSPrimitiveValue::convertToLength() in a few places.
2456 https://bugs.webkit.org/show_bug.cgi?id=81492
2458 Reviewed by Eric Seidel.
2460 No new tests - refactoring only.
2462 CSSPrimitiveValue::convertToLength() provides the same functionality that is duplicated
2463 in many places in CSSStyleSelector. This patch removes some of that code duplication.
2465 * css/CSSStyleApplyProperty.cpp:
2466 (WebCore::ApplyPropertyVerticalAlign::applyValue):
2467 * css/CSSStyleSelector.cpp:
2468 (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2470 2012-03-21 Patrick Gansterer <paroga@webkit.org>
2472 Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r111601.
2474 * rendering/svg/RenderSVGRoot.cpp:
2476 2012-03-21 Patrick Gansterer <paroga@webkit.org>
2478 Build fix for !ENABLE(INSPECTOR) after r104831.
2480 * bindings/js/ScriptDebugServer.cpp:
2481 (WebCore::ScriptDebugServer::dispatchDidParseSource):
2483 2012-03-21 Xiaomei Ji <xji@chromium.org>
2485 visual word movement: using cache to decrease the number of collectLeafBoxesInLogicalOrder on RootInlineBox
2486 https://bugs.webkit.org/show_bug.cgi?id=81408
2488 Reviewed by Ryosuke Niwa.
2490 Cache logically ordered leaf boxes under a particular root box.
2491 Also, move 'Vector<UChar, 1024> string' declared in visualWordPosition() to outside of loop (it is always
2492 clear-ed before use).
2494 * editing/visible_units.cpp:
2495 (CachedLogicallyOrderedLeafBoxes): Add class to cache logically ordered leaf boxes under a particular root box.
2496 (WebCore::CachedLogicallyOrderedLeafBoxes::size):
2497 (WebCore::CachedLogicallyOrderedLeafBoxes::firstBox):
2499 (WebCore::CachedLogicallyOrderedLeafBoxes::CachedLogicallyOrderedLeafBoxes):
2500 (WebCore::CachedLogicallyOrderedLeafBoxes::previousTextBox):
2501 (WebCore::CachedLogicallyOrderedLeafBoxes::nextTextBox):
2502 (WebCore::CachedLogicallyOrderedLeafBoxes::collectBoxes):
2503 (WebCore::CachedLogicallyOrderedLeafBoxes::boxIndexInLeaves):
2504 (WebCore::logicallyPreviousBox): Pass CachedLogicallyOrderedLeafBoxes object around.
2505 (WebCore::logicallyNextBox):
2506 (WebCore::wordBreakIteratorForMinOffsetBoundary):
2507 (WebCore::wordBreakIteratorForMaxOffsetBoundary):
2508 (WebCore::visualWordPosition):
2510 2012-03-21 Dana Jansens <danakj@chromium.org>
2512 [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
2513 https://bugs.webkit.org/show_bug.cgi?id=81437
2515 Reviewed by Adrienne Walker.
2517 Split CCLayerTreeHostImpl::drawLayers() into two phases:
2518 prepareToDraw() and drawLayers().
2520 When calculating a RenderPass, and we checkerboard a quad on a
2521 layer, bubble this info back up to CCLayerTreeHostImpl. If the
2522 layer is transforming in an animation, then abort the prepareToDraw()
2523 phase and cause it to return false back to the thread proxy.
2525 Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
2527 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2528 (WebCore::CCLayerImpl::appendQuads):
2529 * platform/graphics/chromium/cc/CCLayerImpl.h:
2531 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2532 (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2533 (WebCore::CCLayerTreeHostImpl::prepareToDraw):
2535 (WebCore::CCLayerTreeHostImpl::drawLayers):
2536 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2537 (CCLayerTreeHostImpl):
2539 * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2540 (WebCore::CCQuadCuller::append):
2541 * platform/graphics/chromium/cc/CCQuadCuller.h:
2543 * platform/graphics/chromium/cc/CCRenderPass.cpp:
2544 (WebCore::CCRenderPass::appendQuadsForLayer):
2545 * platform/graphics/chromium/cc/CCRenderPass.h:
2547 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2548 (WebCore::CCScrollbarLayerImpl::appendQuads):
2549 * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2550 (CCScrollbarLayerImpl):
2551 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2552 (WebCore::CCSingleThreadProxy::doComposite):
2553 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2554 (WebCore::CCSolidColorLayerImpl::appendQuads):
2555 * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2556 (CCSolidColorLayerImpl):
2557 * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2558 (WebCore::CCTextureLayerImpl::appendQuads):
2559 * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
2560 (CCTextureLayerImpl):
2561 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2562 (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
2563 * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2564 (WebCore::CCTiledLayerImpl::appendQuads):
2565 * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2567 * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2568 (WebCore::CCVideoLayerImpl::appendQuads):
2569 * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2572 2012-03-21 Enrica Casucci <enrica@apple.com>
2574 WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters.
2575 https://bugs.webkit.org/show_bug.cgi?id=81835
2576 <rdar://problem/11082749>
2578 Reviewed by Brady Eidson.
2580 When writing the URL in the pasteboard for the WebURLWithTitles format,
2581 we use the user visible string instead of the original URL.
2582 In case of URL with Unicode characters, we lose the encoding.
2584 Added TestWebKitAPI test.
2586 * platform/mac/PasteboardMac.mm:
2587 (WebCore::writeURLForTypes): Writes to the pasteboard the original URL.
2589 2012-03-21 Levi Weintraub <leviw@chromium.org>
2591 Correct LayoutUnit usage in VisiblePosition.cpp
2592 https://bugs.webkit.org/show_bug.cgi?id=81775
2594 Reviewed by Eric Seidel.
2596 Correcting a mismatch between the .h and .cpp for the definition of localCaretRect,
2597 and properly using LayoutUnits for local coordinates.
2599 No new tests. No change in behavior.
2601 * editing/VisiblePosition.cpp:
2602 (WebCore::VisiblePosition::localCaretRect): Switching to return a LayoutRect, as in the
2603 header. Local coordinates are in LayoutUnits.
2604 (WebCore::VisiblePosition::absoluteCaretBounds): Using LayoutRect for the localCaretRect.
2605 (WebCore::VisiblePosition::lineDirectionPointForBlockDirectionNavigation): Ditto.
2607 2012-03-21 Adam Klein <adamk@chromium.org>
2609 "this" argument for MutationCallbacks should be the MutationObserver
2610 https://bugs.webkit.org/show_bug.cgi?id=81712
2612 Reviewed by Adam Barth.
2614 Test: fast/mutation/callback-arguments.html
2616 * bindings/js/JSCallbackData.cpp:
2617 (WebCore::JSCallbackData::invokeCallback): Add an overload that takes
2618 an explicit this argument and have the old method call the new one.
2619 * bindings/js/JSCallbackData.h:
2621 * bindings/js/JSMutationCallbackCustom.cpp:
2622 (WebCore::JSMutationCallback::handleEvent): Call the new overload.
2623 * bindings/v8/custom/V8CustomVoidCallback.cpp:
2624 (WebCore::invokeCallback): Add an overload that takes an explicit this
2625 argument and have the old method call the new one.
2626 * bindings/v8/custom/V8CustomVoidCallback.h:
2628 * bindings/v8/custom/V8MutationCallbackCustom.cpp:
2629 (WebCore::V8MutationCallback::handleEvent): Call the new overload.
2631 2012-03-21 Alexandru Chiculita <achicu@adobe.com>
2633 [CSS Shaders] Make CSS Shaders compile on Chromium
2634 https://bugs.webkit.org/show_bug.cgi?id=81435
2636 Reviewed by Stephen White.
2638 This patch enables the CSS Shaders compile time flag, but keeps the runtime flag disabled.
2639 The only way to test the functionality now is to use the overridePreference from dump render tree.
2641 Also part of this patch I fix a layering violation: I removed the "Document" reference from the FECustomFilter.cpp and passed the
2642 HostWindow directly. There should be no problem when the HostWindow changes, because the RenderLayer and the FECustomFilter
2643 get recreated anyway.
2645 No new tests. I've updated the existing custom filter tests to run under Chromium and added the expected results.
2646 I've just added window.layoutTestController.overridePreference("WebKitCSSCustomFilterEnabled", "1") to force
2647 enable the feature at runtime.
2649 * loader/cache/CachedResource.cpp: Made CachedResource::ShaderResource report as ResourceRequest::TargetIsSubresource for Chromium.
2650 (WebCore::cachedResourceTypeToTargetType):
2652 * platform/graphics/filters/FECustomFilter.cpp:
2653 (WebCore::FECustomFilter::FECustomFilter): Removed Document and just used the HostWindow directly.
2654 (WebCore::FECustomFilter::create):
2655 (WebCore::FECustomFilter::initializeContext):
2656 (WebCore::FECustomFilter::bindVertexAttribute): There was a typo and instead of using the "size" parameter it always used 4 component attribute.
2657 Other drivers didn't complain about it, but it was clearly a bug.
2658 (WebCore::FECustomFilter::bindProgramAndBuffers): Reading the image back from GPU will flip vertically the framebuffer in Chromium. I've flipped the
2659 projection matrix only on Chromium, so that we get the correct result.
2661 * rendering/FilterEffectRenderer.cpp:
2662 (WebCore::FilterEffectRenderer::build): Passing the HostWindow instead of the Document.
2664 2012-03-21 Mark Pilgrim <pilgrim@chromium.org>
2666 Realphabetize about webaudio move
2667 https://bugs.webkit.org/show_bug.cgi?id=81825
2669 Reviewed by Adam Barth.
2671 No new tests, all existing tests pass.
2675 2012-03-21 Anders Carlsson <andersca@apple.com>
2677 Evict tiles from pages in background tabs
2678 https://bugs.webkit.org/show_bug.cgi?id=81829
2679 <rdar://problem/10866152>
2681 Reviewed by Andreas Kling.
2683 When the tile cache for a page is no longer in a window (which happens when it's moved to
2684 a background tab), schedule a tile revalidation after 4 seconds. This tile revalidation
2685 will ensure that tiles outside of the visible rect will be dropped.
2687 * platform/graphics/ca/mac/TileCache.h:
2689 * platform/graphics/ca/mac/TileCache.mm:
2690 (WebCore::TileCache::tileCacheLayerBoundsChanged):
2691 (WebCore::TileCache::setIsInWindow):
2692 (WebCore::TileCache::tileCoverageRect):
2694 (WebCore::TileCache::scheduleTileRevalidation):
2695 (WebCore::TileCache::revalidateTiles):
2697 2012-03-21 Stephen Chenney <schenney@chromium.org>
2699 SVG layout leaves objects still needing layout
2700 https://bugs.webkit.org/show_bug.cgi?id=81006
2702 Reviewed by Nikolas Zimmermann.
2704 Change the layout of SVG objects such that resources that trigger
2705 layout of other objects are handled in a distinct pass, and then
2706 objects still requiring layout are laid out again.
2708 Test: svg/custom/delete-text-innerText-crash.html
2710 * rendering/svg/RenderSVGResourceContainer.cpp:
2711 (WebCore::RenderSVGResourceContainer::layout):
2712 * rendering/svg/RenderSVGResourceMarker.cpp:
2713 (WebCore::RenderSVGResourceMarker::layout):
2714 * rendering/svg/RenderSVGRoot.cpp:
2715 (WebCore::RenderSVGRoot::layout):
2716 (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
2718 * rendering/svg/RenderSVGRoot.h:
2721 2012-03-21 Tim Horton <timothy_horton@apple.com>
2723 Make use of CG rounded-rect primitives
2724 https://bugs.webkit.org/show_bug.cgi?id=79932
2725 <rdar://problem/9274953>
2727 Reviewed by Simon Fraser.
2729 Portions of patch by Nikolas Zimmermann and Mustafizur Rahaman.
2731 Dispatch to potentially platform-specific rounded rectangle path
2732 construction from addPathForRoundedRect. Make use of this to call
2733 wkCGPathAddRoundedRect on Lion and above, as long as the rounded
2734 corners are all equivalent.
2736 The origin of the stroke dash differs between the bezier approach
2737 and the path added by wkCGPathAddRoundedRect, so Path::addRoundedRect()
2738 takes a new parameter allowing code which is sensitive to stroke dash
2739 origin (i.e. SVG) to fall back to the old behavior if need be.
2741 Make use of the new Path::addRoundedRect() parameter to fall back to
2742 the old (bezier) rounded-rect behavior when constructing a dashed SVG path,
2743 in order to continue complying with the spec.
2745 No new tests, as this is covered by many that use rounded corners,
2746 and is only a performance improvement.
2749 * platform/graphics/Path.cpp:
2750 (WebCore::Path::addRoundedRect):
2752 (WebCore::Path::addPathForRoundedRect):
2753 * platform/graphics/Path.h:
2755 * platform/graphics/cg/PathCG.cpp:
2756 (WebCore::Path::platformAddPathForRoundedRect):
2758 * platform/mac/WebCoreSystemInterface.h:
2759 * platform/mac/WebCoreSystemInterface.mm:
2760 * rendering/svg/SVGPathData.cpp:
2761 (WebCore::updatePathFromRectElement):
2763 2012-03-21 David Reveman <reveman@chromium.org>
2765 [Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support.
2766 https://bugs.webkit.org/show_bug.cgi?id=80988
2768 Reviewed by Adrienne Walker.
2770 Expose EXT_occlusion_query API to WebKit compositor. Add
2771 GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query
2774 * platform/graphics/chromium/Extensions3DChromium.h:
2775 (Extensions3DChromium):
2777 2012-03-21 Tony Chang <tony@chromium.org>
2779 compute the sign of flexibility for new flexbox
2780 https://bugs.webkit.org/show_bug.cgi?id=81722
2782 Reviewed by Ojan Vafai.
2784 This implements the computation of the sign of flexibility used by the
2785 new flexing algorithm.
2786 http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
2788 No new tests, we don't use the sign of flexibility yet.
2790 * rendering/RenderFlexibleBox.cpp:
2791 (WebCore::RenderFlexibleBox::layoutFlexItems):
2792 (WebCore::RenderFlexibleBox::computeNextFlexLine): Compute the size
2793 adjusted for min/max as well as not adjusted.
2794 (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Renamed to match
2796 * rendering/RenderFlexibleBox.h: Added enum for flex sign.
2798 2012-03-21 Vsevolod Vlasov <vsevik@chromium.org>
2800 Web Inspector: Extract WebInspector.UIBreakpoint from WebInspector.Breakpoint.
2801 https://bugs.webkit.org/show_bug.cgi?id=81669
2803 Reviewed by Pavel Feldman.
2805 * inspector/front-end/BreakpointManager.js:
2806 (WebInspector.BreakpointManager.get for):
2807 (WebInspector.BreakpointManager):
2808 (WebInspector.BreakpointManager.prototype.uiSourceCodeAdded):
2809 (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
2810 (WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode):
2811 (WebInspector.BreakpointManager.prototype.setBreakpoint):
2812 (WebInspector.BreakpointManager.prototype.removeBreakpoint):
2813 (WebInspector.BreakpointManager.prototype._innerRemoveBreakpoint):
2814 (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
2815 (WebInspector.BreakpointManager.prototype._moveBreakpointInUI):
2816 (WebInspector.BreakpointManager.prototype._uiBreakpoints.get this):
2817 (WebInspector.BreakpointManager.prototype._uiBreakpoints):
2818 (WebInspector.BreakpointManager.prototype.get _uiBreakpoint):
2819 (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
2820 (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
2821 (WebInspector.BreakpointManager.prototype._breakpoints):
2822 (WebInspector.BreakpointManager.prototype._breakpoint):
2823 (WebInspector.BreakpointManager.prototype._addBreakpointToModel):
2824 (WebInspector.BreakpointManager.prototype._removeBreakpointFromModel):
2825 (WebInspector.BreakpointManager.prototype._forEachBreakpoint):
2826 (WebInspector.BreakpointManager.prototype._setBreakpointInDebugger):
2827 (WebInspector.BreakpointManager.prototype._removeBreakpointFromDebugger):
2828 (WebInspector.BreakpointManager.prototype.debuggerReset):
2829 (WebInspector.Breakpoint.prototype.serialize):
2830 (WebInspector.Breakpoint.prototype.get uiBreakpoint):
2831 (WebInspector.Breakpoint.prototype.createUIBreakpoint):
2832 (WebInspector.Breakpoint.prototype.removeUIBreakpoint):
2833 (WebInspector.UIBreakpoint):
2834 * inspector/front-end/DebuggerPresentationModel.js:
2835 (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
2836 (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
2837 (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
2838 (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
2839 * inspector/front-end/ScriptsPanel.js:
2841 2012-03-21 Anders Carlsson <andersca@apple.com>
2843 TileCache needs to know if its containing page is in a window
2844 https://bugs.webkit.org/show_bug.cgi?id=81821
2846 Reviewed by Andreas Kling.
2848 This is in preparation for throwing away invisible tiles in background tabs to reduce memory usage.
2850 * page/FrameView.cpp:
2851 (WebCore::FrameView::didMoveOnscreen):
2852 (WebCore::FrameView::willMoveOffscreen):
2854 (WebCore::Page::Page):
2855 (WebCore::Page::didMoveOnscreen):
2856 (WebCore::Page::willMoveOffscreen):
2858 (WebCore::Page::isOnscreen):
2860 * platform/graphics/TiledBacking.h:
2862 * platform/graphics/ca/mac/TileCache.h:
2864 * platform/graphics/ca/mac/TileCache.mm:
2865 (WebCore::TileCache::TileCache):
2866 (WebCore::TileCache::setIsInWindow):
2868 * rendering/RenderLayerBacking.cpp:
2869 (WebCore::RenderLayerBacking::RenderLayerBacking):
2871 2012-03-21 Xingnan Wang <xingnan.wang@intel.com>
2873 Web audio layout test failed in debug with an ASSERT error in ReverbConvolverStage.cpp
2874 https://bugs.webkit.org/show_bug.cgi?id=81744
2876 Reviewed by Chris Rogers.
2878 * platform/audio/ReverbConvolverStage.cpp:
2879 (WebCore::ReverbConvolverStage::ReverbConvolverStage):
2881 2012-03-21 Xiaomei Ji <xji@chromium.org>
2883 [chromium] Font fallback in cr-win is wrong for string contains zero-width-space.
2884 https://bugs.webkit.org/show_bug.cgi?id=79961
2886 Reviewed by Adam Barth.
2888 Treat zero-width-space (\u200B) as true for treatAsZeroWidthSpaceInComplexScipt().
2890 * platform/graphics/Font.h:
2891 (WebCore::Font::treatAsZeroWidthSpaceInComplexScript):
2892 * platform/graphics/mac/ComplexTextController.cpp:
2893 (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
2894 * platform/graphics/win/UniscribeController.cpp:
2895 (WebCore::UniscribeController::shapeAndPlaceItem):
2897 2012-03-21 Patrick Gansterer <paroga@webkit.org>
2899 Build fix for !ENABLE(INSPECTOR) after r111005.
2901 * inspector/ContentSearchUtils.h:
2903 2012-03-21 Ulan Degenbaev <ulan@chromium.org>
2905 [V8] V8GCForContextDispose should indicate whether a context is disposed for the main frame or not
2906 https://bugs.webkit.org/show_bug.cgi?id=81200
2908 Reviewed by Adam Barth.
2910 Pass a hint to V8::IdleNotification that requests more aggressive GC
2911 when a main frame context is disposed and requests incremental GC otherwise.
2913 * bindings/v8/V8DOMWindowShell.cpp:
2914 (WebCore::V8DOMWindowShell::disposeContextHandles):
2915 * bindings/v8/V8GCForContextDispose.cpp:
2916 (WebCore::V8GCForContextDispose::V8GCForContextDispose):
2917 (WebCore::V8GCForContextDispose::notifyContextDisposed):
2918 (WebCore::V8GCForContextDispose::pseudoIdleTimerFired):
2919 * bindings/v8/V8GCForContextDispose.h:
2920 (V8GCForContextDispose):
2922 2012-03-21 Nat Duca <nduca@chromium.org>
2924 [chromium] CCThreadProxy must initialize frameBeginTime to monotonicallyIncreasingTime rather than zero
2925 https://bugs.webkit.org/show_bug.cgi?id=81790
2927 Reviewed by James Robinson.
2929 * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2930 (WebCore::CCThreadProxy::scheduledActionBeginFrame):
2932 2012-03-21 Xingnan Wang <xingnan.wang@intel.com>
2934 Add multichannel support in RealtimeAnalyser
2935 https://bugs.webkit.org/show_bug.cgi?id=81745
2937 Reviewed by Chris Rogers.
2939 * Modules/webaudio/RealtimeAnalyser.cpp:
2940 (WebCore::RealtimeAnalyser::writeInput):
2943 2012-03-21 Eric Carlson <eric.carlson@apple.com>
2945 Removing HTMLTrackElement does not delete TextTrack
2946 https://bugs.webkit.org/show_bug.cgi?id=80873
2948 Reviewed by Antti Koivisto.
2950 No new tests, but media/track/track-language-preference.html has been updated
2953 * html/HTMLMediaElement.cpp:
2954 (WebCore::HTMLMediaElement::didAddTrack): Renamed from trackWasAdded.
2955 (WebCore::HTMLMediaElement::willRemoveTrack): Renamed from trackWasRemoved because it is
2956 called before the track is removed, to allow the TextTrack to be removed.
2957 * html/HTMLMediaElement.h:
2959 * html/HTMLTrackElement.cpp:
2960 (WebCore::HTMLTrackElement::insertedIntoTree): Renamed from insertedIntoDocument
2961 (WebCore::HTMLTrackElement::willRemove): Renamed from removedFromDocument.
2962 * html/HTMLTrackElement.h:
2964 * html/track/LoadableTextTrack.cpp:
2965 (WebCore::LoadableTextTrack::trackElementIndex): Don't include tracks that are not in the
2966 document in the calcualtion.
2968 2012-03-21 Zeno Albisser <zeno@webkit.org>
2970 [Qt][Mac] ranlib segfaults when creating symbol tables for libWebCore.a.
2971 https://bugs.webkit.org/show_bug.cgi?id=81750
2973 Building WebCore on mac currently creates an archive that is bigger than
2974 4GB. But ranlib fails to create a symbol table for such a big archive,
2975 even on 64bit machines.
2976 Therefore we start using SVGAllInOne.cpp when building debug
2977 on mac. This reduces the size of the archive by about 300MB.
2979 Reviewed by Tor Arne Vestbø.
2983 2012-03-21 Tommy Widenflycht <tommyw@google.com>
2985 [chromium] MediaStream API (JSEP): Introducing WebSessionDescription and WebIceCandidate
2986 https://bugs.webkit.org/show_bug.cgi?id=81339
2988 Reviewed by Adam Barth.
2990 Not possible to test until the entire JSEP feature is commited.
2992 * Modules/mediastream/IceCandidate.cpp:
2993 (WebCore::IceCandidate::toSdp):
2994 * Modules/mediastream/SessionDescription.cpp:
2995 (WebCore::SessionDescription::toSdp):
2996 * platform/mediastream/IceCandidateDescriptor.cpp:
2997 (WebCore::IceCandidateDescriptor::toSDP):
2998 * platform/mediastream/IceCandidateDescriptor.h:
2999 (IceCandidateDescriptor):
3000 * platform/mediastream/MediaStreamCenter.cpp:
3001 (WebCore::MediaStreamCenter::constructSDP):
3002 * platform/mediastream/MediaStreamCenter.h:
3003 (MediaStreamCenter):
3004 * platform/mediastream/SessionDescriptionDescriptor.cpp:
3005 (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
3006 (WebCore::SessionDescriptionDescriptor::toSDP):
3007 (WebCore::SessionDescriptionDescriptor::initialSDP):
3008 * platform/mediastream/SessionDescriptionDescriptor.h:
3009 (SessionDescriptionDescriptor):
3011 2012-03-21 Yuta Kitamura <yutak@chromium.org>
3013 Use RFC version of WebSocket protocol by default
3014 https://bugs.webkit.org/show_bug.cgi?id=81718
3016 Reviewed by Kent Tamura.
3018 Flip the default value of Settings::m_useHixie76WebSocketProtocol so WebKit ports will use
3019 RFC version of WebSocket protocol by default.
3021 All the existing ports already use the RFC protocol as of now, so this change will not make
3022 any impact (hopefully).
3024 No new tests. No change in functionality.
3026 * page/Settings.cpp:
3027 (WebCore::Settings::Settings):
3029 2012-03-21 Andrey Kosyakov <caseq@chromium.org>
3031 Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel
3032 https://bugs.webkit.org/show_bug.cgi?id=81798
3034 Reviewed by Pavel Feldman.
3036 * bindings/js/JSInjectedScriptHostCustom.cpp:
3037 (WebCore::getJSListenerFunctions):
3038 * bindings/js/ScriptEventListener.cpp:
3039 (WebCore::eventListenerHandlerBody):
3040 (WebCore::eventListenerHandlerLocation):
3041 * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3042 (WebCore::getJSListenerFunctions):
3043 * inspector/InspectorDOMAgent.cpp:
3044 (WebCore::InspectorDOMAgent::getEventListeners):
3046 2012-03-21 Andrey Kosyakov <caseq@chromium.org>
3048 EventListener::Type enum has unused member InspectorDOMAgentType
3049 https://bugs.webkit.org/show_bug.cgi?id=81794
3051 Reviewed by Pavel Feldman.
3053 * dom/EventListener.h:
3055 2012-03-21 Tom Hudson <tomhudson@google.com>
3057 Incremental cleanup of BitmapImage: inlined virtual functions
3058 https://bugs.webkit.org/show_bug.cgi?id=81688
3060 Reviewed by James Robinson.
3062 No change in functionality, so no new tests.
3064 Move virtual functions defined in headers into .cpp files.
3067 * platform/graphics/BitmapImage.cpp:
3068 (WebCore::BitmapImage::isBitmapImage):
3070 (WebCore::BitmapImage::hasSingleSecurityOrigin):
3071 (WebCore::BitmapImage::nativeImageForCurrentFrame):
3072 (WebCore::BitmapImage::currentFrameHasAlpha):
3073 (WebCore::BitmapImage::notSolidColor):
3074 (WebCore::BitmapImage::decodedSize):
3075 (WebCore::BitmapImage::mayFillWithSolidColor):
3076 (WebCore::BitmapImage::solidColor):
3077 * platform/graphics/BitmapImage.h:
3079 * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Added.
3081 (WebCore::BitmapImageSingleFrameSkia::isBitmapImage):
3082 (WebCore::BitmapImageSingleFrameSkia::currentFrameHasAlpha):
3083 (WebCore::BitmapImageSingleFrameSkia::size):
3084 (WebCore::BitmapImageSingleFrameSkia::destroyDecodedData):
3085 (WebCore::BitmapImageSingleFrameSkia::decodedSize):
3086 (WebCore::BitmapImageSingleFrameSkia::nativeImageForCurrentFrame):
3087 (WebCore::BitmapImageSingleFrameSkia::notSolidColor):
3088 * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
3089 (BitmapImageSingleFrameSkia):
3091 2012-03-21 Alexey Proskuryakov <ap@apple.com>
3093 Remove obsolete File attributes
3094 https://bugs.webkit.org/show_bug.cgi?id=79383
3096 Reviewed by Hajime Morita.
3098 * bindings/objc/PublicDOMInterfaces.h:
3101 Removed fileName and fileSize, they have different names now.
3103 * html/FileInputType.cpp:
3104 (WebCore::FileInputType::appendFormData):
3105 (WebCore::FileInputType::getTypeSpecificValue):
3106 (WebCore::FileInputType::defaultToolTip):
3107 Updated to use new function names.
3109 2012-03-21 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
3111 TiledBackingStore: Create the first round of tiles synchronously after setting the visible rect.
3112 https://bugs.webkit.org/show_bug.cgi?id=81762
3114 Reviewed by Kenneth Rohde Christiansen.
3116 The first round of tiles should cover completely the visible rect.
3117 Creating the tiles synchronously allows us to get the new tiles immediately
3118 and prevents an extra AC layers sync to be able to remove the old tiles.
3120 At some point it might also make sense to remove the tile creation timer
3123 * platform/graphics/TiledBackingStore.cpp:
3124 (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
3126 2012-03-19 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
3128 TiledBackingStore: When checking if the visible area is covered, only convert to scaled coordinates once.
3129 https://bugs.webkit.org/show_bug.cgi?id=81519
3131 Reviewed by Kenneth Rohde Christiansen.
3133 Both visibleRect and coverageRatio call mapFromContents on the input rect,
3134 this woulc cause the coverageRatio to never reach 1.0 when the contents is
3137 * platform/graphics/TiledBackingStore.cpp:
3138 (WebCore::TiledBackingStore::visibleAreaIsCovered):
3140 2012-03-21 Mao Yujie <yujie.mao@intel.com>
3142 MediaStream API: Need to support MediaStream constructor for JSC
3143 https://bugs.webkit.org/show_bug.cgi?id=78781
3145 Reviewed by Adam Barth.
3149 * Modules/mediastream/DOMWindowMediaStream.idl:
3150 * bindings/generic/RuntimeEnabledFeatures.h:
3151 (WebCore::RuntimeEnabledFeatures::webkitMediaStreamEnabled):
3153 2012-03-21 Philip Rogers <pdr@google.com>
3155 Skip building resources if SVGTRef is not in a document
3156 https://bugs.webkit.org/show_bug.cgi?id=81473
3158 Reviewed by Nikolas Zimmermann.
3160 We can skip the building of pending resources in SVGTRef if we're not
3161 yet in a document. This mirrors the nearly identical logic in
3162 SVGUseElement::buildPendingResource() and
3163 SVGFEImageElement::buildPendingResource().
3165 Test: http/tests/svg/tref-adoptNode-crash.html
3167 * svg/SVGTRefElement.cpp:
3168 (WebCore::SVGTRefElement::buildPendingResource):
3170 2012-03-21 Sami Kyostila <skyostil@chromium.org>
3172 [chromium] Use floating point scroll deltas for layers
3173 https://bugs.webkit.org/show_bug.cgi?id=81546
3175 Reviewed by James Robinson.
3177 Use floating point scroll deltas for layers instead of integral scroll
3178 deltas. This is because due to page scaling it may be necessary to
3179 scroll layers in sub-CSS-pixel steps to avoid visible jumps. When the
3180 floating point scroll offset is committed to the main thread, it is
3181 truncated to integer, but the fractional part is kept on the CC side to
3182 make sure fractional scroll offsets are accumulated correctly over
3185 Test: CCLayerTreeHostTestFractionalScroll
3187 * platform/graphics/FloatPoint.h:
3190 * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3191 (WebCore::CCLayerImpl::scrollBy):
3192 (WebCore::CCLayerImpl::setScrollDelta):
3193 * platform/graphics/chromium/cc/CCLayerImpl.h:
3194 (WebCore::CCLayerImpl::scrollDelta):
3196 * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3197 (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
3198 (WebCore::CCLayerTreeHostImpl::adjustScrollsForPageScaleChange):
3199 (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
3200 (WebCore::CCLayerTreeHostImpl::animatePageScale):
3202 2012-03-21 Li Yin <li.yin@intel.com>
3204 [WebSocket]The Sec-WebSocket-Accept MUST NOT appear more than once in an HTTP response
3205 https://bugs.webkit.org/show_bug.cgi?id=81655
3207 Reviewed by Adam Barth.
3209 Test: http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header.html
3211 * Modules/websockets/WebSocketHandshake.cpp:
3212 (WebCore::WebSocketHandshake::readHTTPHeaders):
3214 2012-03-21 Alexei Filippov <alexeif@chromium.org>
3216 Web Inspector: Speedup heap snapshot loading.
3217 https://bugs.webkit.org/show_bug.cgi?id=81788
3219 Reviewed by Yury Semikhatsky.
3221 * inspector/front-end/HeapSnapshot.js:
3222 (WebInspector.HeapSnapshotLoader.prototype._parseNodes):
3224 2012-03-21 Pavel Feldman <pfeldman@chromium.org>
3226 Web Inspector: get rid of isInEditMode, use isBeingEdited on particular element.
3227 https://bugs.webkit.org/show_bug.cgi?id=81766
3229 Reviewed by Yury Semikhatsky.
3231 We should check event target and its ancestors for being edited, not use some
3232 global property. This change also introduces Event.prototype.consume so that we
3233 were consistently consuming events.
3235 * inspector/front-end/AdvancedSearchController.js:
3236 (WebInspector.SearchView.prototype._onKeyDown):
3237 * inspector/front-end/BreakpointsSidebarPane.js:
3238 (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointCheckboxClicked):
3239 * inspector/front-end/CSSSelectorProfileView.js:
3240 * inspector/front-end/Checkbox.js:
3241 (WebInspector.Checkbox.prototype.addEventListener):
3242 * inspector/front-end/ConsoleView.js:
3243 (WebInspector.ConsoleView.prototype._enterKeyPressed):
3244 (WebInspector.ConsoleGroup.prototype._titleClicked):
3245 * inspector/front-end/ContextMenu.js:
3246 (WebInspector.ContextMenu.prototype.show):
3247 * inspector/front-end/DataGrid.js:
3248 (WebInspector.DataGrid.prototype._keyDown):
3249 * inspector/front-end/DatabaseQueryView.js:
3250 (WebInspector.DatabaseQueryView.prototype._enterKeyPressed):
3251 * inspector/front-end/DetailedHeapshotView.js:
3252 (WebInspector.DetailedHeapshotView.prototype._mouseDownInContentsGrid):
3253 (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging):
3254 (WebInspector.DetailedHeapshotView.prototype._retainersHeaderDragging):
3255 (WebInspector.DetailedHeapshotView.prototype._endRetainersHeaderDragging):
3256 * inspector/front-end/Dialog.js:
3257 (WebInspector.Dialog.prototype._onKeyDown):
3258 * inspector/front-end/Drawer.js:
3259 (WebInspector.Drawer.prototype._startStatusBarDragging):
3260 (WebInspector.Drawer.prototype._statusBarDragging):
3261 (WebInspector.Drawer.prototype._endStatusBarDragging):
3262 * inspector/front-end/EventListenersSidebarPane.js:
3263 (WebInspector.EventListenersSidebarPane.get if):
3264 * inspector/front-end/HelpScreen.js:
3265 (WebInspector.HelpScreen.prototype._onKeyDown):
3266 * inspector/front-end/InspectorView.js:
3267 (WebInspector.InspectorView.prototype._keyDown):
3268 * inspector/front-end/MetricsSidebarPane.js:
3269 (WebInspector.MetricsSidebarPane.prototype._highlightDOMNode):
3270 * inspector/front-end/NetworkPanel.js:
3271 * inspector/front-end/Object.js:
3272 (WebInspector.Event.prototype.preventDefault):
3273 (WebInspector.Event.prototype.consume):
3274 * inspector/front-end/ObjectPropertiesSection.js:
3275 (WebInspector.ObjectPropertyTreeElement.prototype._promptKeyDown):
3276 * inspector/front-end/ProfileView.js:
3277 * inspector/front-end/SearchController.js:
3278 (WebInspector.SearchController.prototype._onKeyDown):
3279 * inspector/front-end/Section.js:
3280 (WebInspector.Section.prototype.handleClick):
3281 * inspector/front-end/Settings.js:
3282 (WebInspector.ExperimentsSettings):
3283 * inspector/front-end/SoftContextMenu.js:
3284 (.WebInspector.SoftContextMenu.prototype.show):
3285 (.WebInspector.SoftContextMenu.prototype._menuItemMouseDown):
3286 (.WebInspector.SoftContextMenu.prototype._menuKeyDown):
3287 (.WebInspector.SoftContextMenu.prototype._discardMenu):
3288 * inspector/front-end/Spectrum.js:
3289 (WebInspector.Spectrum.draggable.consume):
3290 (WebInspector.Spectrum.draggable.start):
3291 (WebInspector.Spectrum.draggable.stop):
3292 (WebInspector.Spectrum.draggable):
3293 (WebInspector.Spectrum.prototype._onKeyDown):
3294 * inspector/front-end/StylesSidebarPane.js:
3295 (WebInspector.StylesSidebarPane.muteEventListener):
3296 (WebInspector.StylesSidebarPane):
3297 (WebInspector.StylesSidebarPane.prototype.set _createNewRule):
3298 (WebInspector.StylesSidebarPane.prototype._toggleElementStatePane):
3299 (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
3300 (WebInspector.StylePropertiesSection.prototype._handleSelectorClick):
3301 (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
3302 (WebInspector.StylePropertyTreeElement.prototype):
3303 * inspector/front-end/TextPrompt.js:
3304 (WebInspector.TextPrompt.prototype.onKeyDown):
3305 (WebInspector.TextPromptWithHistory.prototype.defaultKeyHandler):
3306 (WebInspector.TextPrompt.SuggestBox.prototype._onItemMouseDown):
3307 * inspector/front-end/TextViewer.js:
3308 (WebInspector.TextViewer.prototype._handleKeyDown):
3309 * inspector/front-end/Toolbar.js:
3310 (WebInspector.ToolbarDropdown.prototype._onKeyDown):
3311 * inspector/front-end/UIUtils.js:
3312 (WebInspector.isBeingEdited):
3313 (WebInspector.startEditing):
3314 * inspector/front-end/View.js:
3315 (WebInspector.View.prototype._doLoadCSS):
3316 * inspector/front-end/WatchExpressionsSidebarPane.js:
3317 (WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked):
3318 (WebInspector.WatchExpressionsSidebarPane.prototype._refreshButtonClicked):
3319 * inspector/front-end/inspector.js:
3320 (WebInspector.documentClick.followLink):
3321 (WebInspector.documentClick):
3322 (WebInspector.documentKeyDown):
3323 (WebInspector.postDocumentKeyDown):
3324 (WebInspector.addMainEventListeners):
3325 * inspector/front-end/treeoutline.js:
3326 (TreeOutline.prototype._treeKeyPress):
3327 (TreeOutline.prototype._treeKeyDown):
3328 (TreeOutline.prototype._searchInputKeyDown):
3329 (TreeElement.treeElementToggled):
3330 (TreeElement.prototype.selectOnMouseDown):
3331 * inspector/front-end/utilities.js:
3332 (Event.prototype.consume):
3334 2012-03-21 Yury Semikhatsky <yurys@chromium.org>
3336 Web Inspector: event listener section doesn't show all event listeners of the element ancestors
3337 https://bugs.webkit.org/show_bug.cgi?id=81782
3339 Event listeners section now contains all event listeners for the selected
3340 element ancestors chain (in case option "All Nodes" is selected).
3342 Reviewed by Pavel Feldman.
3344 * inspector/InspectorDOMAgent.cpp:
3345 (WebCore::InspectorDOMAgent::getEventListenersForNode):
3346 * inspector/front-end/EventListenersSidebarPane.js:
3347 (WebInspector.EventListenersSidebarPane.prototype.update.callback):
3348 (WebInspector.EventListenersSidebarPane.prototype.update):
3349 (WebInspector.EventListenersSidebarPane.prototype):
3351 2012-03-21 Ilya Tikhonovsky <loislo@chromium.org>
3353 Web Inspector: HeapSnapshot: move all builders and calculation calls to HeapSnapshot._init function.
3354 https://bugs.webkit.org/show_bug.cgi?id=81784
3356 Reviewed by Yury Semikhatsky.
3358 * inspector/front-end/HeapSnapshot.js:
3359 (WebInspector.HeapSnapshot.prototype._init):
3360 (WebInspector.HeapSnapshot.prototype.dispose):
3361 (WebInspector.HeapSnapshot.prototype._retainersForNode):
3362 (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
3363 (WebInspector.HeapSnapshot.prototype._flagsOfNode):
3364 (WebInspector.HeapSnapshot.prototype.aggregates):
3365 (WebInspector.HeapSnapshot.prototype._buildRetainers):
3366 (WebInspector.HeapSnapshot.prototype.get nodeIndexes):
3368 2012-03-21 Jessie Berlin <jberlin@apple.com>
3370 WTF headers should be in $(ConfigurationBuildDir)\include\private\wtf, not
3371 $(ConfigurationBuildDir)\include\private\JavaScriptCore\wtf.
3372 https://bugs.webkit.org/show_bug.cgi?id=81739
3374 Reviewed by Dan Bernstein.
3376 * WebCore.vcproj/WebCore.vcproj:
3377 Look for AtomicString.cpp, StringBuilder.cpp, StringImpl.cpp, and WTFString.cpp in the wtf
3378 subdirectory of the build output, not the JavaScriptCore/wtf subdirectory.
3380 2012-03-21 Jonathan Dong <jonathan.dong@torchmobile.com.cn>
3382 [BlackBerry] Credential save and autofill implemetation
3383 https://bugs.webkit.org/show_bug.cgi?id=80401
3385 Reviewed by Rob Buis.
3387 Added interface function authenticationChallenge() and
3388 notifyShouldSaveCredential() into PageClientBlackBerry.
3389 As this class is our platform specific interface,
3390 by doing this we don't need to add an interface function
3391 in class FrameLoaderClient which is a platform
3392 independent interface.
3396 * platform/blackberry/PageClientBlackBerry.h:
3398 * platform/network/blackberry/NetworkJob.cpp:
3399 (WebCore::NetworkJob::sendRequestWithCredentials):
3401 2012-03-21 Ilya Tikhonovsky <loislo@chromium.org>
3403 Web Inspector: HeapProfiler: DOM node id can overflow Int32.
3404 https://bugs.webkit.org/show_bug.cgi?id=81776
3406 Reviewed by Pavel Feldman.
3408 * inspector/front-end/HeapSnapshot.js:
3409 (WebInspector.Uint32Array):
3410 (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
3411 (WebInspector.HeapSnapshot.prototype._buildReverseIndex.var):
3412 (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
3413 (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
3415 2012-03-21 Tim Dresser <tdresser@chromium.org>
3417 [chromium] Increase size of Combo Box Options for touch and high DPI devices
3418 https://bugs.webkit.org/show_bug.cgi?id=80027
3420 Reviewed by Darin Fisher.
3422 Scale Combo box popups by defaultDeviceScaleFactor, and add padding to
3423 <option> elements when touch is enabled.
3425 Manually tested with --default-device-scale-factor=1,2 and unset.
3426 Each of these were tested with RuntimeEnabledFeatures::touchEnabled
3427 set to true and false.
3429 * platform/chromium/PopupListBox.cpp:
3430 (WebCore::PopupListBox::paint):
3431 (WebCore::PopupListBox::paintRow):
3432 (WebCore::PopupListBox::getRowHeight):
3433 * platform/chromium/PopupListBox.h:
3434 (PopupContainerSettings):
3435 * platform/chromium/PopupMenuChromium.cpp:
3437 (WebCore::PopupMenuChromium::show):
3438 * platform/chromium/PopupMenuChromium.h:
3439 (WebCore::PopupMenuChromium::optionPaddingForTouch):
3440 (WebCore::PopupMenuChromium::setOptionPaddingForTouch):
3441 (PopupMenuChromium):
3442 * rendering/RenderMenuList.cpp:
3443 (WebCore::RenderMenuList::showPopup):
3445 2012-03-21 Takashi Toyoshima <toyoshim@chromium.org>
3447 [Chromium] [WebSocket] provide WebFrameClient with a chance of
3448 accessing to opening WebSocketStreamHandle.
3449 https://bugs.webkit.org/show_bug.cgi?id=78459
3451 Reviewed by Kent Tamura and Darin Fisher.
3453 Add willOpenSocketStream client function to WebFrameClient with an
3454 argument representing an opening SocketStreamHandle.
3455 These mechanisms provide embedders with a chance to bind arbitrary
3456 data to a WebSocketStreamHandle from WebFrameClient to which the
3457 WebSocket object having the WebSocketStreamHandle belongs.
3459 No new tests because this change just provide mechanisms to embedders.
3461 * Modules/websockets/WebSocketChannel.cpp: Implement willOpenSocketStream to call a client function in WebFrameClient.
3462 (WebCore::WebSocketChannel::willOpenSocketStream):
3464 * Modules/websockets/WebSocketChannel.h: Add willOpenSocketStream declaration.
3466 * loader/FrameLoaderClient.h: Add dispatchWillOpenSocketStream declaration.
3468 (FrameLoaderClient):
3469 (WebCore::FrameLoaderClient::dispatchWillOpenSocketStream):
3470 * platform/network/SocketStreamHandleClient.h: Add willOpenSocketStream declaration.
3471 (WebCore::SocketStreamHandleClient::willOpenSocketStream):
3473 2012-03-21 Vineet Chaudhary <rgf748@motorola.com>
3475 https://bugs.webkit.org/show_bug.cgi?id=81761