1 2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com>
3 Unreviewed, rolling out r76893.
4 http://trac.webkit.org/changeset/76893
5 https://bugs.webkit.org/show_bug.cgi?id=53287
7 It made some tests crash on GTK and Qt debug bots (Requested
10 * bridge/runtime_root.cpp:
11 (JSC::Bindings::RootObject::invalidate):
12 (JSC::Bindings::RootObject::addRuntimeObject):
13 (JSC::Bindings::RootObject::removeRuntimeObject):
14 * bridge/runtime_root.h:
16 2011-01-27 Greg Coletta <greg.coletta@nokia.com>
18 Reviewed by Laszlo Gombos.
20 Get rid of prefix header dependency for WebKit2 build system
21 https://bugs.webkit.org/show_bug.cgi?id=50174
23 Guard EmptyProtocalDefinitions.h to make sure it's not included twice.
25 * platform/mac/EmptyProtocolDefinitions.h:
27 2011-01-27 Abhishek Arya <inferno@chromium.org>
29 Reviewed by Dan Bernstein.
31 Recalc table sections if needed before calculating the first line
33 https://bugs.webkit.org/show_bug.cgi?id=53265
35 When we try to calculate the baseline position of a table cell,
36 we recurse through all the child sibling boxes (when children are
37 non inline) and add their first linebox baseline values. If one of
38 the children is a table with pending section recalc, we will access
39 wrong table section values. We recalc table sections if it is needed.
41 Test: fast/table/recalc-section-first-body-crash-main.html
43 * rendering/RenderTable.cpp:
44 (WebCore::RenderTable::firstLineBoxBaseline):
46 2011-01-27 Adrienne Walker <enne@google.com>
48 Reviewed by Kenneth Russell.
50 [chromium] Add CRASH calls to further debug tiled compositor memcpy crash.
51 https://bugs.webkit.org/show_bug.cgi?id=52379
53 Test: LayoutTests/compositing (to verify these weren't triggered)
55 * platform/graphics/chromium/LayerTilerChromium.cpp:
56 (WebCore::LayerTilerChromium::invalidateRect):
57 (WebCore::LayerTilerChromium::update):
59 2011-01-27 Alexander Pavlov <apavlov@chromium.org>
61 Reviewed by Pavel Feldman.
63 Web Inspector: [STYLES] Cancelled suggestion of a property name results in a visual artifact
64 https://bugs.webkit.org/show_bug.cgi?id=53242
66 * inspector/front-end/StylesSidebarPane.js:
67 (WebInspector.StylePropertyTreeElement.prototype):
69 2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com>
71 Unreviewed, rolling out r76891.
72 http://trac.webkit.org/changeset/76891
73 https://bugs.webkit.org/show_bug.cgi?id=53280
75 Makes every layout test crash (Requested by othermaciej on
78 * page/EventHandler.cpp:
79 * page/EventHandler.h:
80 * rendering/RenderObject.cpp:
81 (WebCore::RenderObject::styleDidChange):
83 2011-01-27 Ryosuke Niwa <rniwa@webkit.org>
85 Unreviewed, rolling out r76839.
86 http://trac.webkit.org/changeset/76839
87 https://bugs.webkit.org/show_bug.cgi?id=49744
91 * rendering/RenderBox.cpp:
92 (WebCore::RenderBox::localCaretRect):
94 2011-01-27 Emil A Eklund <eae@chromium.org>
96 Reviewed by Darin Adler.
98 contentEditable formatBlock crashes on divs with contenteditable="false"
99 https://bugs.webkit.org/show_bug.cgi?id=53263
101 Check if editableRootForPosition returns null for position.
103 Test: editing/execCommand/format-block-contenteditable-false.html
105 * editing/FormatBlockCommand.cpp:
106 (WebCore::FormatBlockCommand::formatRange):
108 2011-01-27 Dimitri Glazkov <dglazkov@chromium.org>
110 Reviewed by Darin Adler.
112 Remove RenderMedia members that aren't used.
113 https://bugs.webkit.org/show_bug.cgi?id=53245
115 Refactoring, no change in behavior, so no new tests.
117 * rendering/RenderMedia.h: Removed unused member variables.
119 2011-01-27 Michael Saboff <msaboff@apple.com>
121 Reviewed by Darin Adler.
123 Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
124 https://bugs.webkit.org/show_bug.cgi?id=53271
126 Precautionary change.
127 Changed RootObject to use WeakGCMap instead of HashSet.
128 Found will looking for another issue, but can't produce a test case
129 that is problematic. THerefore there aren't any new tests.
131 * bridge/runtime_root.cpp:
132 (JSC::Bindings::RootObject::invalidate):
133 (JSC::Bindings::RootObject::addRuntimeObject):
134 (JSC::Bindings::RootObject::removeRuntimeObject):
135 * bridge/runtime_root.h:
137 2011-01-27 Kenneth Russell <kbr@google.com>
139 Reviewed by James Robinson.
141 Rename Typed Array slice() to subset()
142 https://bugs.webkit.org/show_bug.cgi?id=53273
144 * bindings/js/JSArrayBufferViewHelper.h:
145 (WebCore::constructArrayBufferView):
146 * bindings/v8/custom/V8ArrayBufferViewCustom.h:
147 (WebCore::constructWebGLArray):
148 * html/canvas/Float32Array.cpp:
149 (WebCore::Float32Array::subset):
150 * html/canvas/Float32Array.h:
151 * html/canvas/Float32Array.idl:
152 * html/canvas/Int16Array.cpp:
153 (WebCore::Int16Array::subset):
154 * html/canvas/Int16Array.h:
155 * html/canvas/Int16Array.idl:
156 * html/canvas/Int32Array.cpp:
157 (WebCore::Int32Array::subset):
158 * html/canvas/Int32Array.h:
159 * html/canvas/Int32Array.idl:
160 * html/canvas/Int8Array.cpp:
161 (WebCore::Int8Array::subset):
162 * html/canvas/Int8Array.h:
163 * html/canvas/Int8Array.idl:
164 * html/canvas/TypedArrayBase.h:
165 (WebCore::TypedArrayBase::subsetImpl):
166 * html/canvas/Uint16Array.cpp:
167 (WebCore::Uint16Array::subset):
168 * html/canvas/Uint16Array.h:
169 * html/canvas/Uint16Array.idl:
170 * html/canvas/Uint32Array.cpp:
171 (WebCore::Uint32Array::subset):
172 * html/canvas/Uint32Array.h:
173 * html/canvas/Uint32Array.idl:
174 * html/canvas/Uint8Array.cpp:
175 (WebCore::Uint8Array::subset):
176 * html/canvas/Uint8Array.h:
177 * html/canvas/Uint8Array.idl:
179 2011-01-27 Darin Adler <darin@apple.com>
181 Reviewed by Dan Bernstein.
183 Changing cursor style has no effect until the mouse moves
184 https://bugs.webkit.org/show_bug.cgi?id=14344
185 rdar://problem/7563712
187 No tests added because we don't have infrastructure for testing actual cursor
188 changes (as opposed to cursor style computation) at this time. We might add it later.
190 * page/EventHandler.cpp:
191 (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
192 * page/EventHandler.h: Ditto.
194 * rendering/RenderObject.cpp:
195 (WebCore::areNonIdenticalCursorListsEqual): Added.
196 (WebCore::areCursorsEqual): Added.
197 (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
198 cursor styles changed.
200 2011-01-27 Leo Yang <leo.yang@torchmobile.com.cn>
202 Reviewed by Dirk Schulze.
204 SVG Use Cycle is not detected
205 https://bugs.webkit.org/show_bug.cgi?id=52544
207 We should check if SVGUseElement::buildInstanceTree finds problem
208 for every child node. If it finds problem for any children we must
209 return immediately because otherwise the foundProblem variable may
210 be rewritten to false.
212 Test: svg/custom/recursive-use2.svg
214 * svg/SVGUseElement.cpp:
215 (WebCore::SVGUseElement::buildInstanceTree):
217 2011-01-27 Zhenyao Mo <zmo@google.com>
219 Reviewed by Kenneth Russell.
221 texSubImage2D's format/type needs to match the internalformat/type from the previous texImage2D call
222 https://bugs.webkit.org/show_bug.cgi?id=53054
224 Test: fast/canvas/webgl/tex-sub-image-2d-bad-args.html
226 * html/canvas/WebGLRenderingContext.cpp:
227 (WebCore::WebGLRenderingContext::texSubImage2DBase): Check format/type match.
229 2011-01-27 Yi Shen <yi.4.shen@nokia.com>, Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
231 Reviewed by Andreas Kling.
233 [Qt] Add fullscreen media control button for html video
234 https://bugs.webkit.org/show_bug.cgi?id=51543
236 Implement media control fullscreen button for QtWebKit html5 video.
238 * css/mediaControlsQt.css:
239 (video::-webkit-media-controls-fullscreen-button):
240 * platform/qt/RenderThemeQt.cpp:
241 (WebCore::RenderThemeQt::paintMediaFullscreenButton):
243 2011-01-27 Nate Chapin <japhet@chromium.org>
245 Reviewed by Adam Barth.
247 Remove FrameLoader::url() and update callers to use
249 https://bugs.webkit.org/show_bug.cgi?id=41165
251 Refactor, no new tests.
255 (WebCore::Document::processHttpEquiv):
256 (WebCore::Document::removePendingSheet):
257 * history/CachedFrame.cpp:
258 (WebCore::CachedFrameBase::CachedFrameBase):
259 * history/PageCache.cpp:
260 (WebCore::logCanCacheFrameDecision):
261 (WebCore::PageCache::canCachePageContainingThisFrame):
262 * html/HTMLFrameElementBase.cpp:
263 (WebCore::HTMLFrameElementBase::isURLAllowed):
264 * html/HTMLPlugInImageElement.cpp:
265 (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
266 * inspector/InspectorAgent.cpp:
267 (WebCore::InspectorAgent::inspectedURL):
268 * inspector/InspectorResourceAgent.cpp:
269 (WebCore::buildObjectForFrame):
270 * loader/DocumentWriter.cpp:
271 (WebCore::DocumentWriter::replaceDocument):
272 (WebCore::DocumentWriter::deprecatedFrameEncoding):
273 * loader/FrameLoader.cpp:
274 * loader/FrameLoader.h:
275 * loader/HistoryController.cpp:
276 (WebCore::HistoryController::updateForStandardLoad):
277 (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
278 (WebCore::HistoryController::updateForSameDocumentNavigation):
279 * loader/NavigationScheduler.cpp:
280 (WebCore::ScheduledHistoryNavigation::fire):
281 (WebCore::NavigationScheduler::scheduleLocationChange):
282 (WebCore::NavigationScheduler::scheduleRefresh):
283 * page/FrameView.cpp:
284 (WebCore::FrameView::updateControlTints):
286 (WebCore::Location::url):
287 (WebCore::Location::setProtocol):
288 (WebCore::Location::setHost):
289 (WebCore::Location::setHostname):
290 (WebCore::Location::setPort):
291 (WebCore::Location::setPathname):
292 (WebCore::Location::setSearch):
293 (WebCore::Location::setHash):
294 (WebCore::Location::reload):
296 (WebCore::Page::goToItem):
298 2011-01-27 Stephen White <senorblanco@chromium.org>
300 Reviewed by Darin Adler.
302 Fix performance regression in ImageQualityController::objectDestroyed().
303 https://bugs.webkit.org/show_bug.cgi?id=52645
305 In r72282, I inadvertently introduced this regression by using a
306 linear search through the hash map on object destruction. This was
307 because the hash key consisted of both object pointer and layer id,
308 but on object destruction we only know the object pointer, requiring
309 a search to find all the layers.
310 By replacing the hash map with two nested hash maps, where the outer key
311 is the object and the inner key is the layer, we can find all the
312 relevant data for an object in one hash lookup.
314 * rendering/RenderBoxModelObject.cpp:
315 Replace the (object,layer)->size HashMap with object->layer and
316 layer->size HashMaps.
317 (WebCore::ImageQualityController::isEmpty):
318 Implement isEmpty() for the outer HashMap.
319 (WebCore::ImageQualityController::removeLayer):
320 When a layer is removed, remove it from the inner hash map.
321 (WebCore::ImageQualityController::set):
322 Implement set(): if the inner map exists, set the layer->size tuple
323 directly. If not, create a new inner map, set the tuple, and insert
325 (WebCore::ImageQualityController::objectDestroyed):
326 Look up the object in the outer map only.
327 (WebCore::ImageQualityController::highQualityRepaintTimerFired):
328 Cosmetic changes for the renamed now-outer hash map.
329 (WebCore::ImageQualityController::shouldPaintAtLowQuality):
330 Do both outer and inner hash map lookups. Call set() to add/update
331 entries to the hash maps. keyDestroyed() is now removeLayer().
332 (WebCore::imageQualityController):
333 Make the ImageQualityController a file-static global, so it can be
334 created and destroyed on the fly.
335 (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
336 If there is no ImageQualityController, don't call objectDestroyed().
337 If it's empty, delete it.
338 * rendering/RenderImage.cpp:
339 (WebCore::RenderImage::paintIntoRect):
340 Also pass the Image* as the (void*) layer, since 0 is not a valid
343 2011-01-27 Adrienne Walker <enne@google.com>
345 Reviewed by James Robinson.
347 [chromium] Tiled compositor crashes if compositing turned off mid-paint
348 https://bugs.webkit.org/show_bug.cgi?id=53198
350 * platform/graphics/chromium/LayerRendererChromium.cpp:
351 (WebCore::LayerRendererChromium::drawLayers):
352 * platform/graphics/chromium/LayerTilerChromium.cpp:
353 (WebCore::LayerTilerChromium::update):
354 (WebCore::LayerTilerChromium::draw):
356 2011-01-27 Carol Szabo <carol.szabo@nokia.com>
358 Reviewed by David Hyatt.
360 A corrupted counter tree is created when renderers are added to the
361 tree bypassing RenderObject::addChild
362 https://bugs.webkit.org/show_bug.cgi?id=51270
364 No new tests. This patch reimplements the fix for bugs 43812 and
365 51637 and hence all tests are already there as part of the original
366 fixes for those bugs.
368 * rendering/RenderCounter.cpp:
369 (WebCore::findPlaceForCounter):
370 Removed old workaround as this patch hopefully fixes the real
372 * rendering/RenderObject.cpp:
373 (WebCore::RenderObject::addChild):
374 Removed call to counter updater as it was moved to a lower level.
375 (WebCore::RenderObject::destroy):
376 Moved attached counter nodes destruction to after the node is
377 removed from the tree.
378 * rendering/RenderObjectChildList.cpp:
379 (WebCore::RenderObjectChildList::removeChildNode):
380 (WebCore::RenderObjectChildList::appendChildNode):
381 (WebCore::RenderObjectChildList::insertChildNode):
382 Added notifications to the Counter system such that the
383 CounterForest reflects the changes to the RendererTree.
384 * rendering/RenderWidget.cpp:
385 (WebCore::RenderWidget::destroy):
386 Applied the same changes as for RenderObject::destroy()
387 since RenderObject::destroy() is not called from here.
389 2011-01-27 Adam Roben <aroben@apple.com>
391 Add WKCACFViewLayerTreeHost
393 This is a class that derives from CACFLayerTreeHost and uses a WKCACFView to render.
395 Fixes <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost should use
396 WKCACFView for rendering
398 * WebCore.vcproj/WebCore.vcproj: Added WKCACFViewLayerTreeHost.{cpp,h}.
400 * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
401 (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Make the test window have a
402 non-zero size. WKCACFView will always say it can't render if you pass it a 0-sized window,
403 so we need a non-empty window to perform a valid test.
404 (WebCore::CACFLayerTreeHost::create): First try to create a WKCACFViewLayerTreeHost, then
405 fall back to a LegacyCACFLayerTreeHost.
406 (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to react to the
407 context flush from here...
408 (WebCore::CACFLayerTreeHost::contextDidChange): ...to here. Derived classes are required to
409 call this function whenever changes are flushed to the context.
411 * platform/graphics/ca/win/CACFLayerTreeHost.h: Added contextDidChange.
413 * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
414 (WebCore::LegacyCACFLayerTreeHost::createRenderer):
415 (WebCore::LegacyCACFLayerTreeHost::resize):
416 Changed to use flushContext instead of flushing the context manually so that we will always
417 notify the base class when the context gets flushed.
419 (WebCore::LegacyCACFLayerTreeHost::flushContext): Added a call to contextDidChange so the
420 base class will know what happened. Moved code to schedule a render from here...
421 (WebCore::LegacyCACFLayerTreeHost::contextDidChange): ...to here.
423 * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added contextDidChange.
425 * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp: Added.
426 (WebCore::WKCACFViewLayerTreeHost::create): If WebKitQuartzCoreAdditions, which provides
427 WKCACFView, isn't present, bail. Otherwise allocate and return a new host.
428 (WebCore::WKCACFViewLayerTreeHost::WKCACFViewLayerTreeHost): Initialize members.
429 (WebCore::WKCACFViewLayerTreeHost::updateViewIfNeeded): Update the view if we previously
430 marked that we needed to do so, and flush the context if our layer's bounds have changed.
431 (WebCore::WKCACFViewLayerTreeHost::contextDidChangeCallback): Call through to
433 (WebCore::WKCACFViewLayerTreeHost::contextDidChange): Tell the WKCACFView to start rendering
434 (if we didn't already), then call up to the base class.
435 (WebCore::WKCACFViewLayerTreeHost::initializeContext): Set the context's user data, the
436 view's layer, and hook up our "context did change" callback.
437 (WebCore::WKCACFViewLayerTreeHost::resize): Mark that the view needs to be updated the next
439 (WebCore::WKCACFViewLayerTreeHost::createRenderer): Update our view and return whether it is
440 able to render or not.
441 (WebCore::WKCACFViewLayerTreeHost::destroyRenderer): Clear out all the info we passed down
443 (WebCore::WKCACFViewLayerTreeHost::lastCommitTime): Call through to the view.
444 (WebCore::WKCACFViewLayerTreeHost::flushContext): Ditto.
445 (WebCore::WKCACFViewLayerTreeHost::paint): Update the view so it will draw at the right
446 size, then call up to the base class.
447 (WebCore::WKCACFViewLayerTreeHost::render): Invalidate the view using the passed-in dirty
448 rects, then ask it to draw.
450 * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h: Copied from Source/WebCore/platform/graphics/ca/win/LegacyCACFLayerTreeHost.h.
452 2011-01-27 Adam Roben <aroben@apple.com>
454 Move LegacyCACFLayerTreeHost into its own files
456 More preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
457 should use WKCACFView for rendering
459 Reviewed by Simon Fraser.
461 * WebCore.vcproj/WebCore.vcproj: Added LegacyCACFLayerTreeHost.{cpp,h}.
463 * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Moved code from here to new files.
465 * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: Added.
466 * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added.
468 2011-01-27 Patrick Gansterer <paroga@webkit.org>
470 Unreviewed WinCE build fix for r76824.
472 * platform/wince/DragDataWinCE.cpp:
473 (WebCore::DragData::dragDataMap):
475 2011-01-27 Adam Roben <aroben@apple.com>
477 Split CACFLayerTreeHost into base and derived classes
479 The derived class, LegacyCACFLayerTreeHost, contains all the D3D-related code. A later patch
480 will add a new derived class that replaces the D3D code with a different rendering API.
482 For now, LegacyCACFLayerTreeHost lives in CACFLayerTreeHost.cpp. This keeps the diff a
483 little smaller. A later patch will move it to its own source files.
485 Preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
486 should use WKCACFView for rendering
488 Reviewed by Simon Fraser.
490 * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
491 (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Clear the window before
492 destroying the host, as that is now the API contract that clients must fulfill.
493 (WebCore::LegacyCACFLayerTreeHost::create): Added. Simple creator.
494 (WebCore::CACFLayerTreeHost::create): Now instantiates a LegacyCACFLayerTreeHost. Calls the
495 new initialize function to perform initialization that has to happen after the vtable has
498 (WebCore::LegacyCACFLayerTreeHost::LegacyCACFLayerTreeHost):
499 (WebCore::CACFLayerTreeHost::CACFLayerTreeHost):
500 (WebCore::LegacyCACFLayerTreeHost::initializeContext):
501 (WebCore::CACFLayerTreeHost::initialize):
502 Moved some initialization code from the CACFLayerTreeHost constructor into these new
505 (WebCore::LegacyCACFLayerTreeHost::~LegacyCACFLayerTreeHost): Added. Moved code here from
507 (WebCore::CACFLayerTreeHost::~CACFLayerTreeHost): Rather than clearing the window at this
508 point (which would be too late, since we won't be able to call into the derived class's
509 virtual functions), just assert that it has already been cleared (or was never set in the
511 (WebCore::LegacyCACFLayerTreeHost::createRenderer): Renamed from
512 CACFLayerTreeHost::createRenderer, and changed to use getters instead of accessing
513 CACFLayerTreeHost's data members directly.
515 (WebCore::LegacyCACFLayerTreeHost::destroyRenderer):
516 (WebCore::CACFLayerTreeHost::destroyRenderer):
517 Moved some code to the new LegacyCACFLayerTreeHost function.
519 (WebCore::LegacyCACFLayerTreeHost::resize):
520 (WebCore::LegacyCACFLayerTreeHost::renderTimerFired):
521 Moved these functions to LegacyCACFLayerTreeHost.
523 (WebCore::LegacyCACFLayerTreeHost::paint):
524 (WebCore::CACFLayerTreeHost::paint):
525 Moved some code to the new LegacyCACFLayerTreeHost function.
527 (WebCore::LegacyCACFLayerTreeHost::render):
528 (WebCore::LegacyCACFLayerTreeHost::renderSoon):
529 Moved these functions to LegacyCACFLayerTreeHost.
531 (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to flush the context
533 (WebCore::LegacyCACFLayerTreeHost::flushContext): ...to this new function.
535 (WebCore::LegacyCACFLayerTreeHost::lastCommitTime): Moved code to get the last commit time
536 to this new function...
537 (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): ...from here.
539 (WebCore::LegacyCACFLayerTreeHost::initD3DGeometry):
540 (WebCore::LegacyCACFLayerTreeHost::resetDevice):
541 Moved these functions to LegacyCACFLayerTreeHost.
543 * platform/graphics/ca/win/CACFLayerTreeHost.h: Made some functions virtual, removed some
544 members that have moved to LegacyCACFLayerTreeHost, grouped remaining members more
545 logically, and added some getters used by LegacyCACFLayerTreeHost.
547 2011-01-27 Adam Roben <aroben@apple.com>
549 Move CACFLayerTreeHostClient to its own header file
551 Rubber-stamped by Steve Falkenburg.
553 * WebCore.vcproj/WebCore.vcproj: Added CACFLayerTreeHostClient.h. Also let VS have its way
556 * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Added new #include.
558 * platform/graphics/ca/win/CACFLayerTreeHost.h: Removed CACFLayerTreeHostClient.
560 * platform/graphics/ca/win/CACFLayerTreeHostClient.h: Added.
562 * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Moved some #includes here
563 from the header file.
565 * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Replaced broader #includes
566 with more specific ones, plus a forward-declaration.
568 2011-01-27 James Simonsen <simonjam@chromium.org>
570 Reviewed by Tony Chang.
572 [Chromium] Simplify small caps logic in complex text on linux
573 https://bugs.webkit.org/show_bug.cgi?id=53207
575 Test: fast/text/atsui-multiple-renderers.html
576 fast/text/atsui-small-caps-punctuation-size.html
578 * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
579 (WebCore::ComplexTextController::nextScriptRun): Remove redundant logic. Case changes in a text run imply FontData changes.
580 (WebCore::ComplexTextController::setupFontForScriptRun): Update comment to reflect above.
582 2011-01-27 Adam Barth <abarth@webkit.org>
584 In which I attempt to fix the EFL build.
588 2011-01-25 Levi Weintraub <leviw@chromium.org>
590 Reviewed by Darin Adler.
592 Adding border and padding to the calculation of the local caret rect for RenderBoxes.
593 Corrected for mistake in r76625
595 Undo moves caret to invalid position
596 https://bugs.webkit.org/show_bug.cgi?id=49744
598 Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
599 editing/selection/caret-painting-after-paste-undo.html
601 * rendering/RenderBox.cpp:
602 (WebCore::RenderBox::localCaretRect):
604 2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com>
606 Unreviewed, rolling out r76825.
607 http://trac.webkit.org/changeset/76825
608 https://bugs.webkit.org/show_bug.cgi?id=53256
610 "caused crashes on GTK and chromium" (Requested by rniwa on
613 * rendering/RenderBoxModelObject.cpp:
614 (WebCore::ImageQualityController::keyDestroyed):
615 (WebCore::ImageQualityController::objectDestroyed):
616 (WebCore::ImageQualityController::highQualityRepaintTimerFired):
617 (WebCore::ImageQualityController::shouldPaintAtLowQuality):
618 (WebCore::imageQualityController):
619 (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
621 2011-01-27 Adam Barth <abarth@webkit.org>
623 Reviewed by Eric Seidel.
625 Generalize the mechanism view-source uses to remember the source for an HTMLToken
626 https://bugs.webkit.org/show_bug.cgi?id=53200
628 Currently view-source tracks the source associated with each HTMLToken.
629 We want to re-use this mechanism for the new XSS auditor. This patch
630 moves this code into its own class so it can be shared between the
631 view-source parser and the general HTML parser. This patch also add
632 support for tracking the source of tokens that span document.write
635 No functional change. This code change is somewhat tested by our
636 view-source layout tests.
642 * WebCore.vcproj/WebCore.vcproj:
643 * WebCore.xcodeproj/project.pbxproj:
644 - Fun with updating build files.
645 * html/parser/HTMLDocumentParser.cpp:
646 (WebCore::HTMLDocumentParser::pumpTokenizer):
647 - Teach HTMLDocumentParser to track the source for HTMLTokens.
648 Currently, this information isn't used, but it will be shortly.
649 I ran the HTML parser benchmark and this change didn't have a
651 * html/parser/HTMLDocumentParser.h:
652 - Composite in the HTMLSourceTracker.
653 * html/parser/HTMLSourceTracker.cpp: Added.
654 (WebCore::HTMLSourceTracker::HTMLSourceTracker):
655 (WebCore::HTMLSourceTracker::start):
656 (WebCore::HTMLSourceTracker::end):
657 - This function should eventualy be folded into HTMLTokenizer.
658 (WebCore::HTMLSourceTracker::sourceForToken):
659 * html/parser/HTMLSourceTracker.h: Added.
660 * html/parser/HTMLToken.h:
661 - Now HTMLTokens always have a start index of zero. To do the job
662 of the old start index, this patch introduces the notion of a
663 baseOffset. Unlike the start index (which was used as the base
664 offset for all the other indicies), the baseOffset can change
665 over the lifetime of the token. We need the flexibility to
666 change the offset for tokens that span document.write boundaries.
667 Values are now normalized to zero-offset when stored.
668 (WebCore::HTMLToken::clear):
669 (WebCore::HTMLToken::setBaseOffset):
670 (WebCore::HTMLToken::end):
671 (WebCore::HTMLToken::beginAttributeName):
672 (WebCore::HTMLToken::endAttributeName):
673 (WebCore::HTMLToken::beginAttributeValue):
674 (WebCore::HTMLToken::endAttributeValue):
675 * html/parser/HTMLViewSourceParser.cpp:
676 - Updates the HTMLViewSourceParser to use the new
678 (WebCore::HTMLViewSourceParser::pumpTokenizer):
679 (WebCore::HTMLViewSourceParser::append):
680 (WebCore::HTMLViewSourceParser::sourceForToken):
681 - This function now just calls through to HTMLSourceTracker.
682 * html/parser/HTMLViewSourceParser.h:
683 * platform/text/SegmentedString.cpp:
684 (WebCore::SegmentedString::currentColumn):
685 (WebCore::SegmentedString::setCurrentPosition):
686 * platform/text/SegmentedString.h:
687 (WebCore::SegmentedString::numberOfCharactersConsumed):
688 - We need to handle the general case now. The "slow" version
689 doesn't turn out to be any slower in practice anyway.
691 2011-01-27 Sam Weinig <sam@webkit.org>
695 * platform/ScrollView.cpp:
696 (WebCore::ScrollView::paintOverhangAreas): Add parameters.
698 2011-01-27 Sam Weinig <sam@webkit.org>
700 Reviewed by Dave Hyatt.
702 Add ability to do an unconstrained scroll on a ScrollView
703 https://bugs.webkit.org/show_bug.cgi?id=53249
705 * platform/ScrollView.cpp:
706 (WebCore::ScrollView::ScrollView):
707 Initialize m_constrainsScrollingToContentEdge to true.
709 (WebCore::ScrollView::setScrollOffset):
710 Only constrain the offset if the m_constrainsScrollingToContentEdge is set.
712 (WebCore::ScrollView::updateScrollbars):
713 Simplify expression converting an IntSize to an IntPoint.
715 (WebCore::ScrollView::paint):
716 Paint the overhang if there is any.
718 (WebCore::ScrollView::calculateOverhangAreasForPainting):
719 Calculate the overhang in viewport coordinates for painting.
721 * platform/ScrollView.h:
722 (WebCore::ScrollView::constrainsScrollingToContentEdge):
723 (WebCore::ScrollView::setConstrainsScrollingToContentEdge):
724 Add bit to control whether the scroll position should be constrained
725 to the content edge when set.
727 * platform/ScrollbarThemeComposite.cpp:
728 (WebCore::usedTotalSize):
729 (WebCore::ScrollbarThemeComposite::thumbPosition):
730 (WebCore::ScrollbarThemeComposite::thumbLength):
731 * platform/mac/ScrollbarThemeMac.mm:
732 (WebCore::ScrollbarThemeMac::paint):
733 Improve calculations of thumb size and position to take overhang into account.
735 2011-01-27 Dirk Schulze <krit@webkit.org>
737 Reviewed by Nikolas Zimmermann.
739 SVG animation of Paths with segments of different coordinate modes on begin and end
740 https://bugs.webkit.org/show_bug.cgi?id=52984
742 At the moment we just support SVG path animations, if the number of segments on the given start path
743 is the same as the number of segments on the given end path. But a segment on a given position must be identical
744 on both paths as well. Not only the segment type, also the coordinate mode of the segments must be identical.
745 If MoveToRel is on the second position on the start path a MoveToRel must be on the second position
746 of the end path too. According to the SVG spec, at least the coordinate mode can differ. Means, if we have MoveToRel
747 in the start path, we can use MoveToAbs on the same position in the end path.
749 This patch fixes the blending code to follow the spec here. It was necessary to track the current position of
750 both paths, transform coordinates to the same coordinate mode and transform the resulting animation coordinate back
751 to the coordinate mode of either the start or the end path. Which mode is taken depends on the progress of the
754 Tests: svg/animations/animate-path-animation-Cc-Ss.html
755 svg/animations/animate-path-animation-Ll-Vv-Hh.html
756 svg/animations/animate-path-animation-Qq-Tt.html
757 svg/animations/animate-path-animation-cC-sS-inverse.html
758 svg/animations/animate-path-animation-lL-vV-hH-inverse.html
759 svg/animations/animate-path-animation-qQ-tT-inverse.html
761 * svg/SVGPathBlender.cpp:
762 (WebCore::blendFloatPoint):
763 (WebCore::blendAnimatedFloat):
764 (WebCore::SVGPathBlender::blendAnimatedDimensionalFloat):
765 (WebCore::SVGPathBlender::blendAnimatedFloatPoint):
766 (WebCore::SVGPathBlender::blendMoveToSegment):
767 (WebCore::SVGPathBlender::blendLineToSegment):
768 (WebCore::SVGPathBlender::blendLineToHorizontalSegment):
769 (WebCore::SVGPathBlender::blendLineToVerticalSegment):
770 (WebCore::SVGPathBlender::blendCurveToCubicSegment):
771 (WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment):
772 (WebCore::SVGPathBlender::blendCurveToQuadraticSegment):
773 (WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment):
774 (WebCore::SVGPathBlender::blendArcToSegment):
775 (WebCore::coordinateModeOfCommand):
776 (WebCore::isSegmentEqual):
777 (WebCore::SVGPathBlender::blendAnimatedPath):
778 (WebCore::SVGPathBlender::cleanup):
779 * svg/SVGPathBlender.h:
781 2011-01-27 Cris Neckar <cdn@chromium.org>
783 Reviewed by Dimitri Glazkov.
785 Clear the parent on a css keyframe's m_style when removing it from the stylesheet.
786 https://bugs.webkit.org/show_bug.cgi?id=52320
788 Test: fast/css/css-keyframe-style-crash.html
790 * css/CSSRuleList.cpp:
791 (WebCore::CSSRuleList::deleteRule):
792 * css/WebKitCSSKeyframesRule.cpp:
793 (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
795 2011-01-27 Rob Buis <rwlbuis@gmail.com>
797 Reviewed by Kent Tamura.
799 Color changes to option elements in a select multiple aren't drawn immediately
800 https://bugs.webkit.org/show_bug.cgi?id=49790
802 Redirect style changes on <option> element to the owner <select> element.
804 Test: fast/repaint/select-option-background-color.html
806 * html/HTMLOptionElement.cpp:
807 (WebCore::HTMLOptionElement::setRenderStyle):
809 2011-01-19 Stephen White <senorblanco@chromium.org>
811 Reviewed by Darin Adler.
813 Fix performance regression in ImageQualityController::objectDestroyed().
814 https://bugs.webkit.org/show_bug.cgi?id=52645
816 In r72282, I inadvertently introduced this regression by using a
817 linear search through the hash map on object destruction. This was
818 because the hash key consisted of both object pointer and layer id,
819 but on object destruction we only know the object pointer, requiring
820 a search to find all the layers.
821 By replacing the hash map with two nested hash maps, where the outer key
822 is the object and the inner key is the layer, we can find all the
823 relevant data for an object in one hash lookup.
825 * rendering/RenderBoxModelObject.cpp:
826 Replace the (object,layer)->size HashMap with object->layer and
827 layer->size HashMaps.
828 (WebCore::ImageQualityController::isEmpty):
829 Implement isEmpty() for the outer HashMap.
830 (WebCore::ImageQualityController::removeLayer):
831 When a layer is removed, remove it from the inner hash map.
832 (WebCore::ImageQualityController::set):
833 Implement set(): if the inner map exists, set the layer->size tuple
834 directly. If not, create a new inner map, set the tuple, and insert
836 (WebCore::ImageQualityController::objectDestroyed):
837 Look up the object in the outer map only.
838 (WebCore::ImageQualityController::highQualityRepaintTimerFired):
839 Cosmetic changes for the renamed now-outer hash map.
840 (WebCore::ImageQualityController::shouldPaintAtLowQuality):
841 Do both outer and inner hash map lookups. Call set() to add/update
842 entries to the hash maps. keyDestroyed() is now removeLayer().
843 (WebCore::imageQualityController):
844 Make the ImageQualityController a file-static global, so it can be
845 created and destroyed on the fly.
846 (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
847 If there is no ImageQualityController, don't call objectDestroyed().
848 If it's empty, delete it.
851 2011-01-26 Enrica Casucci <enrica@apple.com>
853 Reviewed by Darin Adler and Adam Roben.
855 WebKit2: add support for drag and drop on Windows
856 https://bugs.webkit.org/show_bug.cgi?id=52775
857 <rdar://problem/8514409>
859 On Windows the access to the content being dragged is
860 provided via the IDataObject interface that is made available
861 to the window that registers itself as drop target.
862 Since this interface cannot be accessed from the WebProcess,
863 in every call to one of the methods of the IDropTarget interface
864 we serialize the content of the drag clipboard and send it over to
866 The bulk of this patch consists in the refactoring needed in DragData
867 and ClipboardWin classes to extract the data from the serialized object.
869 * platform/DragData.cpp:
870 * platform/DragData.h:
871 * platform/win/ClipboardUtilitiesWin.cpp:
872 (WebCore::getWebLocData):
874 (WebCore::getPlainText):
875 (WebCore::getTextHTML):
876 (WebCore::getCFHTML):
877 (WebCore::fragmentFromFilenames):
878 (WebCore::containsFilenames):
879 (WebCore::fragmentFromHTML):
880 (WebCore::containsHTML):
881 (WebCore::getClipboardData):
882 * platform/win/ClipboardUtilitiesWin.h:
883 * platform/win/ClipboardWin.cpp:
884 (WebCore::Clipboard::create):
885 (WebCore::ClipboardWin::ClipboardWin):
886 (WebCore::ClipboardWin::getData):
887 (WebCore::ClipboardWin::types):
888 (WebCore::ClipboardWin::files):
889 (WebCore::ClipboardWin::hasData):
890 * platform/win/ClipboardWin.h:
891 (WebCore::ClipboardWin::create):
892 * platform/win/DragDataWin.cpp:
893 (WebCore::DragData::DragData):
894 (WebCore::DragData::containsURL):
895 (WebCore::DragData::dragDataMap):
896 (WebCore::DragData::asURL):
897 (WebCore::DragData::containsFiles):
898 (WebCore::DragData::asFilenames):
899 (WebCore::DragData::containsPlainText):
900 (WebCore::DragData::asPlainText):
901 (WebCore::DragData::canSmartReplace):
902 (WebCore::DragData::containsCompatibleContent):
903 (WebCore::DragData::asFragment):
905 2011-01-27 Mario Sanchez Prada <msanchez@igalia.com>
907 Reviewed by Martin Robinson.
909 [GTK] Space characters in source document interfere with reported caret offset
910 https://bugs.webkit.org/show_bug.cgi?id=53033
912 Calculate caret offset from rendered text instead of from node contents.
914 * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
915 (objectAndOffsetUnignored): Calculate the caret offset based only
916 on positions and ranges, instead of using the computed offset in
919 2011-01-26 Alexey Proskuryakov <ap@apple.com>
921 Reviewed by Darin Adler.
923 https://bugs.webkit.org/show_bug.cgi?id=53197
924 <rdar://problem/8895682> Make WebKit2 printing asynchronous
926 * WebCore.exp.in: Export more PrintContext methods that we didn't use on Mac before.
928 * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Changed to make the same
929 transformation as spoolPages does for consistency.
931 2011-01-27 David Grogan <dgrogan@google.com>
933 Reviewed by Jeremy Orlow.
935 initial support for close() in indexeddb backend
936 https://bugs.webkit.org/show_bug.cgi?id=53150
938 Test: storage/indexeddb/transaction-after-close.html
940 * storage/IDBDatabase.cpp:
941 (WebCore::IDBDatabase::IDBDatabase):
942 (WebCore::IDBDatabase::transaction):
943 (WebCore::IDBDatabase::close):
944 * storage/IDBDatabase.h:
945 * storage/IDBDatabase.idl:
946 * storage/IDBDatabaseBackendImpl.cpp:
947 (WebCore::IDBDatabaseBackendImpl::transaction):
948 (WebCore::IDBDatabaseBackendImpl::close):
950 2011-01-27 Dirk Schulze <krit@webkit.org>
952 Reviewed by Nikolas Zimmermann.
954 SVG animation doesn't support calcMode discrete for number and color values.
955 https://bugs.webkit.org/show_bug.cgi?id=53189
957 Add support for calcMode discrete on number and color animation.
959 Tests: svg/animations/animate-color-calcMode-discrete.html
960 svg/animations/animate-number-calcMode-discrete.html
962 * svg/SVGAnimateElement.cpp:
963 (WebCore::SVGAnimateElement::calculateAnimatedValue):
965 2011-01-26 Zhenyao Mo <zmo@google.com>
967 Reviewed by Kenneth Russell.
969 shaderSource needs to preserve original source
970 https://bugs.webkit.org/show_bug.cgi?id=52833
972 Test: fast/canvas/webgl/gl-getshadersource.html
974 * html/canvas/WebGLRenderingContext.cpp:
975 (WebCore::WebGLRenderingContext::getShaderParameter): Intercept SHADER_SOURCE_LENGTH.
976 (WebCore::WebGLRenderingContext::getShaderSource): Intercept the call.
977 (WebCore::WebGLRenderingContext::shaderSource): Cache the source.
978 * html/canvas/WebGLShader.cpp: Cache shader source.
979 (WebCore::WebGLShader::WebGLShader):
980 * html/canvas/WebGLShader.h: Ditto.
981 (WebCore::WebGLShader::getSource):
982 (WebCore::WebGLShader::setSource):
984 2011-01-27 Patrick Gansterer <paroga@webkit.org>
986 Unreviewed WinCE build fix for r76743.
988 * platform/graphics/wince/FontWinCE.cpp:
989 (WebCore::TextRunComponent::TextRunComponent):
991 2011-01-27 Pavel Podivilov <podivilov@chromium.org>
993 Reviewed by Pavel Feldman.
995 Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
996 https://bugs.webkit.org/show_bug.cgi?id=53234
998 * inspector/front-end/ScopeChainSidebarPane.js:
999 (WebInspector.ScopeChainSidebarPane):
1000 (WebInspector.ScopeChainSidebarPane.prototype.update):
1002 2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com>
1004 Unreviewed, rolling out r76789.
1005 http://trac.webkit.org/changeset/76789
1006 https://bugs.webkit.org/show_bug.cgi?id=53238
1008 Broke GTK layout tests (Requested by podivilov on #webkit).
1010 * inspector/front-end/ScopeChainSidebarPane.js:
1011 (WebInspector.ScopeChainSidebarPane):
1012 (WebInspector.ScopeChainSidebarPane.prototype.update):
1014 2011-01-27 Yury Semikhatsky <yurys@chromium.org>
1016 Reviewed by Pavel Feldman.
1018 Web Inspector: store all settings related to the agents on the frontend side
1019 https://bugs.webkit.org/show_bug.cgi?id=53174
1026 * WebCore.vcproj/WebCore.vcproj:
1027 * WebCore.xcodeproj/project.pbxproj:
1028 * bindings/js/ScriptDebugServer.cpp:
1029 * bindings/js/ScriptDebugServer.h:
1030 * bindings/js/ScriptProfiler.cpp:
1031 * bindings/js/ScriptProfiler.h:
1032 * bindings/v8/ScriptDebugServer.cpp:
1033 * bindings/v8/ScriptDebugServer.h:
1034 * bindings/v8/ScriptProfiler.cpp:
1035 * bindings/v8/ScriptProfiler.h:
1036 * inspector/Inspector.idl:
1037 * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
1038 on the front-end side and will be pushed to the backend when the frontend is loaded.
1039 (WebCore::InspectorAgent::InspectorAgent):
1040 (WebCore::InspectorAgent::disconnectFrontend):
1041 (WebCore::InspectorAgent::restoreDebugger):
1042 (WebCore::InspectorAgent::restoreProfiler):
1043 (WebCore::InspectorAgent::enableProfiler):
1044 (WebCore::InspectorAgent::disableProfiler):
1045 (WebCore::InspectorAgent::showAndEnableDebugger):
1046 (WebCore::InspectorAgent::enableDebugger):
1047 (WebCore::InspectorAgent::disableDebugger):
1048 * inspector/InspectorAgent.h:
1049 * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
1050 if the front-end was opened during current browser session and XHR logging is turned on
1052 (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1053 (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1054 * inspector/InspectorDebuggerAgent.cpp:
1055 * inspector/InspectorDebuggerAgent.h:
1056 * inspector/InspectorInstrumentation.cpp:
1057 (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
1058 (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
1059 * inspector/InspectorProfilerAgent.cpp:
1060 (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1061 (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
1062 * inspector/InspectorSettings.cpp: Removed.
1063 * inspector/InspectorSettings.h: Removed.
1064 * inspector/InspectorState.cpp:
1065 (WebCore::InspectorState::InspectorState):
1066 * inspector/InspectorState.h:
1067 * inspector/front-end/ConsoleView.js:
1068 (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
1069 (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1070 (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
1071 (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1072 * inspector/front-end/ProfilesPanel.js:
1073 (WebInspector.ProfilesPanel.prototype._toggleProfiling):
1074 * inspector/front-end/ScriptsPanel.js:
1075 (WebInspector.ScriptsPanel.prototype._toggleDebugging):
1076 * inspector/front-end/Settings.js:
1077 (WebInspector.Settings):
1078 * inspector/front-end/inspector.js:
1080 2011-01-27 Pavel Podivilov <podivilov@chromium.org>
1082 Reviewed by Pavel Feldman.
1084 Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
1085 https://bugs.webkit.org/show_bug.cgi?id=53234
1087 * inspector/front-end/ScopeChainSidebarPane.js:
1088 (WebInspector.ScopeChainSidebarPane):
1089 (WebInspector.ScopeChainSidebarPane.prototype.update):
1091 2011-01-27 Alexander Pavlov <apavlov@chromium.org>
1093 Reviewed by Pavel Feldman.
1095 Web Inspector: [Elements panel] Tooltip for relative links incorrectly identifies current URL
1096 https://bugs.webkit.org/show_bug.cgi?id=53171
1098 * inspector/front-end/inspector.js:
1099 (WebInspector.completeURL): Taught to understand partial href's that start with "?" (contain GET parameters only)
1101 2011-01-27 Yury Semikhatsky <yurys@chromium.org>
1103 Reviewed by Pavel Feldman.
1105 [V8] Crash in WebCore::addMessageToConsole
1106 https://bugs.webkit.org/show_bug.cgi?id=53227
1108 * bindings/v8/V8Proxy.cpp: check that the Frame where the error
1109 occured still has a page before getting a console object from it.
1110 (WebCore::V8Proxy::reportUnsafeAccessTo):
1112 2011-01-27 Hans Wennborg <hans@chromium.org>
1114 Reviewed by Jeremy Orlow.
1116 IndexedDB: Remove IDBCallbacks::onSuccess() used for null values.
1117 https://bugs.webkit.org/show_bug.cgi?id=53178
1119 Remove the IDBCallbacks::onSuccess() function that was used for
1120 null values, and replace such calls with calls to
1121 IDBCallBacks::onSuccess(SerializedScriptValue::nullValue())
1124 No new functionality, so no new tests.
1126 * storage/IDBCallbacks.h:
1127 * storage/IDBCursorBackendImpl.cpp:
1128 (WebCore::IDBCursorBackendImpl::updateInternal):
1129 (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
1130 * storage/IDBIndexBackendImpl.cpp:
1131 (WebCore::IDBIndexBackendImpl::openCursorInternal):
1132 * storage/IDBObjectStoreBackendImpl.cpp:
1133 (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1134 (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
1135 * storage/IDBRequest.cpp:
1136 * storage/IDBRequest.h:
1138 2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com>
1140 Unreviewed, rolling out r76773.
1141 http://trac.webkit.org/changeset/76773
1142 https://bugs.webkit.org/show_bug.cgi?id=53230
1144 breaks multiple GTK media tests (Requested by philn-tp on
1147 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1148 (WebCore::mimeTypeCache):
1150 2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com>
1152 Unreviewed, rolling out r76770.
1153 http://trac.webkit.org/changeset/76770
1154 https://bugs.webkit.org/show_bug.cgi?id=53229
1156 Some inspector tests fail (Requested by yurys on #webkit).
1163 * WebCore.vcproj/WebCore.vcproj:
1164 * WebCore.xcodeproj/project.pbxproj:
1165 * bindings/js/ScriptDebugServer.cpp:
1166 (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
1167 * bindings/js/ScriptDebugServer.h:
1168 * bindings/js/ScriptProfiler.cpp:
1169 (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
1170 * bindings/js/ScriptProfiler.h:
1171 * bindings/v8/ScriptDebugServer.cpp:
1172 (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
1173 * bindings/v8/ScriptDebugServer.h:
1174 * bindings/v8/ScriptProfiler.cpp:
1175 (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
1176 * bindings/v8/ScriptProfiler.h:
1177 * inspector/Inspector.idl:
1178 * inspector/InspectorAgent.cpp:
1179 (WebCore::InspectorAgent::InspectorAgent):
1180 (WebCore::InspectorAgent::disconnectFrontend):
1181 (WebCore::InspectorAgent::restoreDebugger):
1182 (WebCore::InspectorAgent::restoreProfiler):
1183 (WebCore::InspectorAgent::ensureSettingsLoaded):
1184 (WebCore::InspectorAgent::enableProfiler):
1185 (WebCore::InspectorAgent::disableProfiler):
1186 (WebCore::InspectorAgent::showAndEnableDebugger):
1187 (WebCore::InspectorAgent::enableDebugger):
1188 (WebCore::InspectorAgent::disableDebugger):
1189 * inspector/InspectorAgent.h:
1190 (WebCore::InspectorAgent::settings):
1191 * inspector/InspectorConsoleAgent.cpp:
1192 (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1193 (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1194 * inspector/InspectorDebuggerAgent.cpp:
1195 (WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled):
1196 * inspector/InspectorDebuggerAgent.h:
1197 * inspector/InspectorInstrumentation.cpp:
1198 (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
1199 (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
1200 * inspector/InspectorProfilerAgent.cpp:
1201 (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1202 (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
1203 * inspector/InspectorSettings.cpp: Added.
1204 (WebCore::InspectorSettings::InspectorSettings):
1205 (WebCore::InspectorSettings::getBoolean):
1206 (WebCore::InspectorSettings::setBoolean):
1207 (WebCore::InspectorSettings::getLong):
1208 (WebCore::InspectorSettings::setLong):
1209 (WebCore::InspectorSettings::registerBoolean):
1210 (WebCore::InspectorSettings::registerLong):
1211 * inspector/InspectorSettings.h: Copied from Source/WebCore/bindings/v8/ScriptProfiler.h.
1212 * inspector/InspectorState.cpp:
1213 (WebCore::InspectorState::InspectorState):
1214 * inspector/InspectorState.h:
1215 * inspector/front-end/ConsoleView.js:
1216 (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged):
1217 (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1218 (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1219 * inspector/front-end/ProfilesPanel.js:
1220 (WebInspector.ProfilesPanel.prototype._toggleProfiling):
1221 * inspector/front-end/ScriptsPanel.js:
1222 (WebInspector.ScriptsPanel.prototype._toggleDebugging):
1223 * inspector/front-end/Settings.js:
1224 (WebInspector.Settings):
1225 * inspector/front-end/inspector.js:
1227 2011-01-26 Philippe Normand <pnormand@igalia.com>
1229 Reviewed by Martin Robinson.
1231 [GTK] LayoutTests/media/audio-mpeg4-supported.html fails
1232 https://bugs.webkit.org/show_bug.cgi?id=53125
1234 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1235 (WebCore::mimeTypeCache): Add audio/x-m4a mimetype in the cache.
1237 2011-01-26 Yury Semikhatsky <yurys@chromium.org>
1239 Reviewed by Pavel Feldman.
1241 Web Inspector: store all settings related to the agents on the frontend side
1242 https://bugs.webkit.org/show_bug.cgi?id=53174
1249 * WebCore.vcproj/WebCore.vcproj:
1250 * WebCore.xcodeproj/project.pbxproj:
1251 * inspector/Inspector.idl:
1252 * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
1253 on the front-end side and will be pushed to the backend when the frontend is loaded.
1254 (WebCore::InspectorAgent::InspectorAgent):
1255 (WebCore::InspectorAgent::disconnectFrontend):
1256 (WebCore::InspectorAgent::restoreDebugger):
1257 (WebCore::InspectorAgent::restoreProfiler):
1258 (WebCore::InspectorAgent::enableProfiler):
1259 (WebCore::InspectorAgent::disableProfiler):
1260 (WebCore::InspectorAgent::showAndEnableDebugger):
1261 (WebCore::InspectorAgent::enableDebugger):
1262 (WebCore::InspectorAgent::disableDebugger):
1263 * inspector/InspectorAgent.h:
1264 * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
1265 if the front-end was opened during current browser session and XHR logging is turned on
1267 (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1268 (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1269 * inspector/InspectorInstrumentation.cpp:
1270 (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
1271 (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
1272 * inspector/InspectorProfilerAgent.cpp:
1273 (WebCore::InspectorProfilerAgent::enable):
1274 (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
1275 * inspector/InspectorProfilerAgent.h:
1276 * inspector/InspectorSettings.cpp: Removed.
1277 * inspector/InspectorSettings.h: Removed.
1278 * inspector/InspectorState.cpp:
1279 (WebCore::InspectorState::InspectorState):
1280 * inspector/InspectorState.h:
1281 * inspector/front-end/ConsoleView.js:
1282 (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
1283 (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1284 (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
1285 (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1286 * inspector/front-end/ProfilesPanel.js:
1287 (WebInspector.ProfilesPanel.prototype._toggleProfiling):
1288 * inspector/front-end/ScriptsPanel.js:
1289 (WebInspector.ScriptsPanel.prototype._toggleDebugging):
1290 * inspector/front-end/Settings.js:
1291 (WebInspector.Settings):
1292 * inspector/front-end/inspector.js:
1294 2011-01-27 Dan Bernstein <mitz@apple.com>
1296 Reviewed by Sam Weinig.
1298 REGRESSION (r76743): Uneven spacing in right-to-left justified text
1299 https://bugs.webkit.org/show_bug.cgi?id=53225
1301 Fixes failure in fast/text/atsui-spacing-features.html
1303 There was an inconsistency between rendering code and font code in the interpretation of
1304 'after expansion' and 'trailing expansion'. Changed all code to interpret these in terms of
1305 visual order rather than logical.
1307 * platform/graphics/Font.cpp:
1308 (WebCore::Font::expansionOpportunityCount): Added a text direction parameter and changed to
1309 iterate in visual order accordingly.
1310 * platform/graphics/Font.h:
1311 * platform/graphics/WidthIterator.cpp:
1312 (WebCore::WidthIterator::WidthIterator): Pass the run direction to expansionOpportunityCount().
1313 (WebCore::WidthIterator::advance): For right-to-left runs, evaluate the trailing expansion
1314 condition with respect to the first character, which is the trailing character in visual order.
1315 * platform/graphics/mac/ComplexTextController.cpp:
1316 (WebCore::ComplexTextController::ComplexTextController): Pass the run direction to
1317 expansionOpportunityCount().
1318 * rendering/RenderBlockLineLayout.cpp:
1319 (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
1321 2011-01-26 Adam Roben <aroben@apple.com>
1323 Don't create the Direct3D device before it's first needed
1325 We only need the device once we decide to render. There's no point in creating it before
1328 Reviewed by Sam Weinig.
1330 * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1331 (WebCore::CACFLayerTreeHost::setWindow): Removed the call to createRenderer() from here.
1332 We already have code to create it when we first try to draw.
1333 (WebCore::CACFLayerTreeHost::createRenderer): Flush the context after we set our layer's
1334 bounds so that the bounds will take effect the next time we render (which could be just
1335 after this function returns).
1337 2011-01-26 Adam Roben <aroben@apple.com>
1339 Add assertions that CACFLayerTreeHost gains and loses an HWND only once
1341 CACFLayerTreeHost doesn't support any other use pattern.
1343 Reviewed by Sam Weinig.
1345 * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1346 (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Initialize new member.
1347 (WebCore::CACFLayerTreeHost::setWindow): Assert that we transition from not having a window,
1348 to having a window, to not having a window just once over the lifetime of this object.
1350 * platform/graphics/ca/win/CACFLayerTreeHost.h: Added m_state.
1352 2011-01-26 Adam Roben <aroben@apple.com>
1354 Notify layers that their animations have started when we flush the context, not when we
1357 r76372 separated context flushing from rendering, but this bit of code got left behind.
1359 Reviewed by Sam Weinig.
1361 * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1362 (WebCore::CACFLayerTreeHost::render): Moved code to notify the layers from here to
1363 notifyAnimationsStarted.
1364 (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Added a call to
1365 notifyAnimationsStarted after we flush the context.
1366 (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): Added. Code came from render. Changed
1367 to call PlatformCALayer::animationStarted rather than calling through to the client
1370 * platform/graphics/ca/win/CACFLayerTreeHost.h: Added notifyAniamtionsStarted.
1372 2011-01-26 Adam Roben <aroben@apple.com>
1374 Small cleanup in MediaPlayerPrivateFullscreenWindow
1376 Reviewed by Sam Weinig.
1378 * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
1379 (WebCore::MediaPlayerPrivateFullscreenWindow::~MediaPlayerPrivateFullscreenWindow): Moved
1380 code here from close(), since this was the only place that called it after the following
1381 change to createWindow.
1382 (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): Replaced code that handled the
1383 case where we had already created the window with an assertion that we have not already done
1384 so. Our single caller (FullscreenVideoController) did not require this behavior.
1386 * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Removed layerView.
1388 2011-01-26 Sam Weinig <sam@webkit.org>
1390 Reviewed by Adam Roben.
1392 Move ScrollView scroll wheel code to ScrollAnimator.
1394 * platform/ScrollAnimator.cpp:
1395 (WebCore::ScrollAnimator::handleWheelEvent):
1396 * platform/ScrollAnimator.h:
1397 Moved implementation of handleWheelEvent from ScrollView::wheelEvent.
1399 * platform/ScrollView.cpp:
1400 (WebCore::ScrollView::wheelEvent):
1401 Call down to the ScrollableArea.
1403 * platform/ScrollableArea.cpp:
1404 (WebCore::ScrollableArea::handleWheelEvent):
1405 Call down to the ScrollAnimator.
1407 * platform/ScrollableArea.h:
1408 (WebCore::ScrollableArea::scrollPosition):
1409 (WebCore::ScrollableArea::minimumScrollPosition):
1410 (WebCore::ScrollableArea::maximumScrollPosition):
1411 (WebCore::ScrollableArea::visibleContentRect):
1412 (WebCore::ScrollableArea::visibleHeight):
1413 (WebCore::ScrollableArea::visibleWidth):
1414 Add functions needed to implement wheel event in the animator.
1416 2011-01-26 David Kilzer <ddkilzer@apple.com>
1418 <http://webkit.org/b/53192> Add experimental support for HTTP pipelining in CFNetwork
1419 <rdar://problem/8821760>
1421 Reviewed by Antti Koivisto.
1423 This adds support for HTTP pipelining in CFNetwork, but does not
1424 enable it. To enable it post-SnowLeopard, use this command:
1426 defaults write BUNDLE.ID WebKitEnableHTTPPipelining -bool YES
1428 Once enabled, it is possible to force the same load priority
1429 (high) to be sent to CFNetwork to allow WebCore to handle the
1432 defaults write BUNDLE.ID WebKitForceHTTPPipeliningPriorityHigh -bool YES
1434 * WebCore.exp.in: Export _wkGetHTTPPipeliningPriority and
1435 _wkSetHTTPPipeliningPriority.
1437 * loader/DocumentThreadableLoader.cpp:
1438 (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
1439 Copy the priority to preflightRequest.
1441 * loader/ResourceLoadScheduler.cpp:
1442 (WebCore::ResourceLoadScheduler::scheduleLoad): Refactored code
1443 at the end of the method to use an early return.
1445 * loader/cache/CachedResourceRequest.cpp:
1446 (WebCore::CachedResourceRequest::load): Set the priority on the
1447 ResourceRequest object based on the priority of the
1448 CachedResourceRequest before calling
1449 ResourceLoadScheduler::scheduleSubresourceLoad().
1451 * loader/icon/IconLoader.cpp:
1452 (WebCore::IconLoader::startLoading): Create a ResourceRequest
1453 object and set its priority to ResourceLoadPriorityLow before
1454 passing it to ResourceLoadScheduler::scheduleSubresourceLoad().
1456 * platform/mac/WebCoreSystemInterface.h:
1457 (wkGetHTTPPipeliningPriority): Added.
1458 (wkSetHTTPPipeliningPriority): Added.
1459 * platform/mac/WebCoreSystemInterface.mm:
1460 (wkGetHTTPPipeliningPriority): Added.
1461 (wkSetHTTPPipeliningPriority): Added.
1463 * platform/network/ResourceRequestBase.cpp:
1464 (WebCore::ResourceRequestBase::adopt): Set m_priority when
1465 adopting a CrossThreadResourceRequestData.
1466 (WebCore::ResourceRequestBase::copyData): Set m_priority when
1467 creating a CrossThreadResourceRequestData.
1468 (WebCore::ResourceRequestBase::priority): Added.
1469 (WebCore::ResourceRequestBase::setPriority): Added.
1470 (WebCore::equalIgnoringHeaderFields): Priorities must match when
1471 comparing two ResourceRequest objects.
1473 * platform/network/ResourceRequestBase.h:
1474 (WebCore::ResourceRequestBase::ResourceRequestBase): Set default
1475 priority of new objects to ResourceLoadPriorityLow.
1476 (WebCore::ResourceRequestBase::priority): Added declaration.
1477 (WebCore::ResourceRequestBase::setPriority): Added declaration.
1478 (WebCore::isHTTPPipeliningEnabled): Added.
1479 (WebCore::shouldUseHTTPPipeliningPriority): Added.
1481 * platform/network/cf/ResourceRequestCFNet.cpp: Updated so that
1482 Mac OS X and Windows share code.
1483 (WebCore::initializeMaximumHTTPConnectionCountPerHost): Always
1484 set the HTTP connection count per host, but return an
1485 'unlimited' value when using HTTP pipelining. This method used
1486 to be defined in ResourceRequestMac.mm for Mac OS X.
1487 (WebCore::readBooleanPreference): Added. Helper method for
1488 reading boolean user defaults.
1489 (WebCore::isHTTPPipeliningEnabled): Returns value of user
1490 default key WebKitEnableHTTPPipelining, or false if not set.
1491 (WebCore::shouldUseHTTPPipeliningPriority): Returns value of
1492 user default key WebKitForceHTTPPipeliningPriorityHigh, or false
1494 * platform/network/cf/ResourceRequestCFNet.h: Updated so that
1495 Mac OS X and Windows share code. Fixed indentation.
1496 (WebCore::mapHTTPPipeliningPriorityToResourceLoadPriority): Added.
1497 (WebCore::mapResourceLoadPriorityToHTTPPipeliningPriority): Added.
1499 * platform/network/mac/ResourceRequestMac.mm:
1500 (WebCore::ResourceRequest::doUpdatePlatformRequest): Update
1501 HTTP pipelining priority on NSMutableFURLRequest object.
1502 (WebCore::ResourceRequest::doUpdateResourceRequest): Update
1503 m_priority from the NSURLRequest object.
1504 (WebCore::initializeMaximumHTTPConnectionCountPerHost): Removed.
1505 Code is now shared with Windows in ResourceRequestCFNet.cpp.
1507 2011-01-26 Beth Dakin <bdakin@apple.com>
1509 Reviewed by Darin Adler.
1511 Fix for <rdar://problem/8895140> Adopt WKScrollbar metrics
1512 when using WKScrollbars.
1514 New WebKitSystemInterface Functionality.
1516 * platform/mac/WebCoreSystemInterface.h:
1517 * platform/mac/WebCoreSystemInterface.mm:
1519 Some of the terrible static arrays are now only needed in the
1520 old non-WK code, so they are if-def'd now.
1521 * platform/mac/ScrollbarThemeMac.mm:
1523 Just patching this function in a better way than I did
1525 (WebCore::updateArrowPlacement):
1527 Call into WK for the right values.
1528 (WebCore::ScrollbarThemeMac::scrollbarThickness):
1529 (WebCore::ScrollbarThemeMac::hasThumb):
1530 (WebCore::ScrollbarThemeMac::minimumThumbLength):
1532 Return false if there are no buttons.
1533 (WebCore::ScrollbarThemeMac::hasButtons):
1535 Return an empty IntRect if there are not buttons.
1536 (WebCore::buttonRepaintRect):
1538 2011-01-26 Sam Weinig <sam@webkit.org>
1540 Reviewed by Maciej Stachowiak.
1542 Add events to represent the start/end of a gesture scroll
1543 https://bugs.webkit.org/show_bug.cgi?id=53215
1548 * WebCore.xcodeproj/project.pbxproj:
1551 * page/EventHandler.cpp:
1552 (WebCore::EventHandler::handleGestureEvent):
1553 * page/EventHandler.h:
1554 Add entry point for handling gesture events.
1556 * platform/PlatformGestureEvent.h: Added.
1557 (WebCore::PlatformGestureEvent::PlatformGestureEvent):
1558 (WebCore::PlatformGestureEvent::type):
1559 (WebCore::PlatformGestureEvent::position):
1560 (WebCore::PlatformGestureEvent::globalPosition):
1561 (WebCore::PlatformGestureEvent::timestamp):
1562 Add platform agnostic representation of a gesture event.
1564 2011-01-26 Dan Bernstein <mitz@apple.com>
1566 Reviewed by Dave Hyatt.
1568 <rdar://problem/8446709> Allow inter-ideograph justification for CJK
1569 https://bugs.webkit.org/show_bug.cgi?id=53184
1571 Tests: fast/text/justify-ideograph-complex.html
1572 fast/text/justify-ideograph-simple.html
1573 fast/text/justify-ideograph-vertical.html
1575 * html/canvas/CanvasRenderingContext2D.cpp:
1576 (WebCore::CanvasRenderingContext2D::drawTextInternal): Corrected the type of the third parameter
1577 passed to the TextRun constructor and added the trailingExpansionBehavior parameter.
1578 * platform/graphics/Font.cpp:
1579 (WebCore::Font::expansionOpportunityCount): Added. Returns the number of expansion opportunities
1580 for text justification. On entry, isAfterExpansion says whether an expansion opportunity exists
1581 before the first character. On return, isAfterExpansion says whether an expansion opportunity
1582 exists after the last character.
1583 * platform/graphics/Font.h:
1584 * platform/graphics/GlyphBuffer.h:
1585 (WebCore::GlyphBuffer::expandLastAdvance): Added.
1586 * platform/graphics/TextRun.h:
1587 (WebCore::TextRun::TextRun): Added a TrailingExpansionBehavior parameter to the constructors.
1588 Renamed padding to expansion.
1589 (WebCore::TextRun::expansion): Renamed padding() to this.
1590 (WebCore::TextRun::allowsTrailingExpansion): Added this accessor.
1591 * platform/graphics/WidthIterator.cpp:
1592 (WebCore::WidthIterator::WidthIterator): Initialize m_isAfterExpansion. Use Font::expansionOpportunityCount()
1593 and adjust the count if it includes a trailing expansion opportunity but the run disallows trailing
1595 (WebCore::WidthIterator::advance): Apply expansion before and after CJK ideographs.
1596 (WebCore::WidthIterator::advanceOneCharacter): Changed to not clear the GlyphBuffer so that advance()
1597 can expand the last advance if it is followed by a CJK ideograph.
1598 * platform/graphics/WidthIterator.h: Renamed m_padding to m_expansion and m_padPerSpace
1599 to m_expansionPerOpportunity.
1600 * platform/graphics/chromium/FontChromiumWin.cpp:
1601 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1602 * platform/graphics/chromium/FontLinux.cpp:
1603 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1604 * platform/graphics/efl/FontEfl.cpp:
1605 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1606 * platform/graphics/gtk/FontGtk.cpp:
1607 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1608 * platform/graphics/haiku/FontHaiku.cpp:
1609 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1610 * platform/graphics/mac/ComplexTextController.cpp:
1611 (WebCore::ComplexTextController::ComplexTextController): Initialize m_isAfterExpansion. Use
1612 Font::expansionOpportunityCount() and adjust the count if it includes a trailing expansion
1613 opportunity but the run disallows trailing expansion.
1614 (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Moved the definition and initialization
1615 of hasExtraSpacing outside the loop. Apply expansion before and after CJK ideographs.
1616 * platform/graphics/mac/ComplexTextController.h: Renamed m_padding to m_expansion and m_padPerSpace
1617 to m_expansionPerOpportunity.
1618 * platform/graphics/mac/FontMac.mm:
1619 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1620 * platform/graphics/qt/FontQt.cpp:
1621 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1622 * platform/graphics/win/FontWin.cpp:
1623 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1624 * platform/graphics/win/UniscribeController.cpp:
1625 (WebCore::UniscribeController::UniscribeController): Updated for rename.
1626 * platform/graphics/wince/FontWinCE.cpp:
1627 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1628 * platform/graphics/wx/FontWx.cpp:
1629 (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1630 * rendering/EllipsisBox.cpp:
1631 (WebCore::EllipsisBox::paint): Pass a TrailingExpansionBehavior to the TextRun constructor.
1632 (WebCore::EllipsisBox::selectionRect): Ditto.
1633 (WebCore::EllipsisBox::paintSelection): Ditto.
1634 * rendering/InlineBox.h:
1635 (WebCore::InlineBox::InlineBox): Renamed m_toAdd to m_expansion.
1636 (WebCore::InlineBox::expansion): Renamed toAdd() to this.
1637 * rendering/InlineTextBox.cpp:
1638 (WebCore::InlineTextBox::selectionRect): Pass a TrailingExpansionBehavior to the TextRun constructor.
1639 (WebCore::InlineTextBox::paint): Ditto.
1640 (WebCore::InlineTextBox::paintSelection): Ditto.
1641 (WebCore::InlineTextBox::paintCompositionBackground): Ditto.
1642 (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto.
1643 (WebCore::InlineTextBox::paintTextMatchMarker): Ditto.
1644 (WebCore::InlineTextBox::computeRectForReplacementMarker): Ditto.
1645 (WebCore::InlineTextBox::offsetForPosition): Ditto.
1646 (WebCore::InlineTextBox::positionForOffset): Ditto.
1647 * rendering/InlineTextBox.h:
1648 (WebCore::InlineTextBox::setExpansion): Renamed setSpaceAdd() to this.
1649 (WebCore::InlineTextBox::trailingExpansionBehavior): Added. Trailing expansion is allowed if this
1650 is not the last leaf box on the line.
1651 * rendering/RenderBlockLineLayout.cpp:
1652 (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Keep expansion opportunity counts
1653 in a vector instead of computing them twice. Discard the trailing expansion opportunity in the
1655 * rendering/RenderFileUploadControl.cpp:
1656 (WebCore::RenderFileUploadControl::paintObject): Pass a TrailingExpansionBehavior to the TextRun constructor.
1657 (WebCore::RenderFileUploadControl::computePreferredLogicalWidths): Ditto.
1658 * rendering/RenderListBox.cpp:
1659 (WebCore::RenderListBox::updateFromElement): Ditto.
1660 (WebCore::RenderListBox::paintItemForeground): Ditto. Also corrected the type of the second parameter.
1661 * rendering/RenderTextControl.cpp:
1662 (WebCore::RenderTextControl::getAvgCharWidth): Ditto.
1663 (WebCore::RenderTextControl::paintPlaceholder): Ditto.
1664 * rendering/svg/SVGInlineTextBox.cpp:
1665 (WebCore::SVGInlineTextBox::constructTextRun): Ditto.
1667 2011-01-26 Andy Estes <aestes@apple.com>
1669 Rubber-stamped by Darin Adler.
1671 Inline HTMLObjectElement::hasValidClassId().
1673 * html/HTMLObjectElement.cpp:
1674 (WebCore::HTMLObjectElement::hasValidClassId):
1676 2011-01-26 Evan Martin <evan@chromium.org>
1678 Reviewed by Tony Chang.
1680 [chromium] crash on getBoundingClientRect in complex text
1681 https://bugs.webkit.org/show_bug.cgi?id=53199
1683 Use the correct array bound; we want the number of characters processed by
1684 the shaper, not the longest continuous script run length.
1686 Test: platform/chromium-linux/fast/text/international/complex-text-rectangle.html
1688 * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
1689 (WebCore::ComplexTextController::nextScriptRun):
1690 * platform/graphics/chromium/ComplexTextControllerLinux.h:
1691 (WebCore::ComplexTextController::numCodePoints):
1693 2011-01-26 Emil A Eklund <eae@chromium.org>
1695 Reviewed by Alexey Proskuryakov.
1697 Remove cached document reference from CSSStyleSheet and XSLStyleSheet.
1698 https://bugs.webkit.org/show_bug.cgi?id=52084
1700 Test: fast/dom/css-delete-doc.html
1702 * css/CSSMediaRule.cpp:
1703 (WebCore::CSSMediaRule::insertRule):
1704 (WebCore::CSSMediaRule::deleteRule):
1705 * css/CSSStyleSheet.cpp:
1706 (WebCore::CSSStyleSheet::CSSStyleSheet):
1707 (WebCore::CSSStyleSheet::document):
1708 * css/CSSStyleSheet.h:
1709 * xml/XSLStyleSheet.h:
1710 (WebCore::XSLStyleSheet::parentStyleSheet):
1711 * xml/XSLStyleSheetLibxslt.cpp:
1712 (WebCore::XSLStyleSheet::XSLStyleSheet):
1713 (WebCore::XSLStyleSheet::cachedResourceLoader):
1714 (WebCore::XSLStyleSheet::setParentStyleSheet):
1715 (WebCore::XSLStyleSheet::ownerDocument):
1716 * xml/XSLStyleSheetQt.cpp:
1717 (WebCore::XSLStyleSheet::XSLStyleSheet):
1718 (WebCore::XSLStyleSheet::cachedResourceLoader):
1719 (WebCore::XSLStyleSheet::ownerDocument):
1721 2011-01-25 Dimitri Glazkov <dglazkov@chromium.org>
1723 Reviewed by Kent Tamura.
1725 Reduce ref-count churn in shadowPseudoId.
1726 https://bugs.webkit.org/show_bug.cgi?id=53136
1728 Refactoring, so no new tests.
1731 (WebCore::Element::shadowPseudoId): Changed signature to use const AtomicString&
1732 * html/ValidationMessage.cpp:
1733 (WebCore::ElementWithPseudoId::shadowPseudoId): Ditto.
1734 * html/shadow/SliderThumbElement.cpp:
1735 (WebCore::SliderThumbElement::shadowPseudoId): Ditto, plus moved from the header file.
1736 * html/shadow/SliderThumbElement.h: Ditto.
1737 * rendering/MediaControlElements.cpp:
1738 (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Ditto.
1739 (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Ditto.
1740 (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Ditto.
1741 (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Ditto.
1742 (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Ditto.
1743 (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Ditto.
1744 (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Ditto.
1745 (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Ditto.
1746 (WebCore::MediaControlTimelineElement::shadowPseudoId): Ditto.
1747 (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Ditto.
1748 (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Ditto.
1749 * rendering/MediaControlElements.h: Ditto.
1751 2011-01-26 Dave Hyatt <hyatt@apple.com>
1753 Reviewed by Dan Bernstein.
1755 https://bugs.webkit.org/show_bug.cgi?id=46421, make multi-column layout work with vertical text.
1757 Added new tests in fast/multicol/vertical-lr and fast/multicol/vertical-rl.
1760 Update p, blockquote and h1-h6 to respect directionality so that column layout tests that use those
1761 elements work properly.
1763 * rendering/InlineFlowBox.cpp:
1764 (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
1765 Fix a flipping bug with the computation of lineTopIncludingMargins where it could be incorrectly shrunk
1766 in some cases (causing lines to all stack on top of one another).
1768 * rendering/InlineTextBox.h:
1769 (WebCore::InlineTextBox::calculateBoundaries):
1770 Fix calculateBoundaries to be physical rather than logical.
1772 * rendering/LayoutState.cpp:
1773 (WebCore::LayoutState::addForcedColumnBreak):
1774 * rendering/LayoutState.h:
1775 Rename childY to childLogicalOffset.
1777 * rendering/RenderBlock.cpp:
1778 (WebCore::RenderBlock::layoutBlock):
1779 (WebCore::RenderBlock::addOverflowFromChildren):
1780 (WebCore::RenderBlock::addOverflowFromFloats):
1781 (WebCore::RenderBlock::collapseMargins):
1782 (WebCore::RenderBlock::estimateLogicalTopPosition):
1783 (WebCore::RenderBlock::layoutBlockChild):
1784 (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
1785 (WebCore::RenderBlock::paintColumnRules):
1786 (WebCore::RenderBlock::paintColumnContents):
1787 (WebCore::RenderBlock::paintFloats):
1788 (WebCore::RenderBlock::selectionGaps):
1789 (WebCore::RenderBlock::removeFloatingObjectsBelow):
1790 (WebCore::RenderBlock::addOverhangingFloats):
1791 (WebCore::RenderBlock::hitTestFloats):
1792 (WebCore::RenderBlock::hitTestColumns):
1793 (WebCore::RenderBlock::calcColumnWidth):
1794 (WebCore::RenderBlock::desiredColumnWidth):
1795 (WebCore::RenderBlock::columnRectAt):
1796 (WebCore::RenderBlock::layoutColumns):
1797 (WebCore::RenderBlock::adjustPointToColumnContents):
1798 (WebCore::RenderBlock::adjustRectForColumns):
1799 (WebCore::RenderBlock::flipForWritingModeIncludingColumns):
1800 (WebCore::RenderBlock::adjustForColumns):
1801 (WebCore::RenderBlock::adjustForBorderFit):
1802 (WebCore::RenderBlock::nextPageLogicalTop):
1803 (WebCore::RenderBlock::applyBeforeBreak):
1804 (WebCore::RenderBlock::applyAfterBreak):
1805 (WebCore::RenderBlock::adjustForUnsplittableChild):
1806 (WebCore::RenderBlock::adjustLinePositionForPagination):
1807 * rendering/RenderBlock.h:
1808 (WebCore::RenderBlock::logicalRightOffsetForContent):
1809 (WebCore::RenderBlock::logicalLeftOffsetForContent):
1810 (WebCore::RenderBlock::leftForFloatIncludingMargin):
1811 (WebCore::RenderBlock::topForFloatIncludingMargin):
1812 * rendering/RenderBlockLineLayout.cpp:
1813 (WebCore::RenderBlock::layoutInlineChildren):
1814 (WebCore::RenderBlock::determineStartPosition):
1815 Reworking of all the RenderBlock column functions to support flipping and vertical modes.
1817 * rendering/RenderBox.cpp:
1818 (WebCore::RenderBox::offsetFromContainer):
1819 (WebCore::RenderBox::flipForWritingModeIncludingColumns):
1820 Patch offsetFromContainer to be aware of flipped block writing modes when dealing with column layouts.
1822 * rendering/RenderBox.h:
1823 (WebCore::RenderBox::clientLogicalBottom):
1824 Fix a bug in clientLogicalBottom where it didn't add in the right border/padding.
1826 * rendering/RenderFlexibleBox.cpp:
1827 (WebCore::RenderFlexibleBox::layoutBlock):
1828 Better terminology for pagination.
1830 * rendering/RenderInline.cpp:
1831 (WebCore::RenderInline::offsetFromContainer):
1832 (WebCore::RenderInline::mapLocalToContainer):
1833 * rendering/RenderLayer.cpp:
1834 (WebCore::RenderLayer::paintChildLayerIntoColumns):
1835 (WebCore::RenderLayer::hitTestChildLayerColumns):
1836 (WebCore::RenderLayer::localBoundingBox):
1837 (WebCore::RenderLayer::boundingBox):
1838 Patch painting in RenderLayers to be vertical-text-aware.
1840 * rendering/RenderObject.cpp:
1841 (WebCore::RenderObject::mapLocalToContainer):
1842 Add code to be flipped block-aware with columns.
1844 * rendering/RenderTable.cpp:
1845 (WebCore::RenderTable::layout):
1846 * rendering/RenderTableRow.cpp:
1847 (WebCore::RenderTableRow::layout):
1848 * rendering/RenderTableSection.cpp:
1849 (WebCore::RenderTableSection::layoutRows):
1850 Fix pagination to use better terminology.
1852 * rendering/RenderText.cpp:
1853 (WebCore::RenderText::absoluteQuads):
1854 (WebCore::RenderText::absoluteQuadsForRange):
1855 Fix a bug where vertical text wasn't taken into account.
1857 2011-01-26 Dimitri Glazkov <dglazkov@chromium.org>
1859 Unreviewed, rolling out r76719.
1860 http://trac.webkit.org/changeset/76719
1861 https://bugs.webkit.org/show_bug.cgi?id=53122
1863 Broke a bunch of media tests in Chromium/Qt/GTK.
1865 2011-01-26 Tony Chang <tony@chromium.org>
1867 Reviewed by Ryosuke Niwa.
1869 [gtk] strip NUL characters when copying text/html on GTK+
1870 https://bugs.webkit.org/show_bug.cgi?id=52508
1872 Putting NUL characters in the text/html clipboard doesn't work in
1873 WebKit GTK+ (the pasted value is truncated at the NUL). Since we're
1874 already stripping this character for plain text (for Windows), strip
1875 it in text/html too.
1877 * editing/MarkupAccumulator.h: mark function as virtual
1878 * editing/markup.cpp:
1879 (WebCore::StyledMarkupAccumulator::appendString):
1880 (WebCore::StyledMarkupAccumulator::takeResults): strip nulls
1882 2011-01-26 Mario Sanchez Prada <msanchez@igalia.com>
1884 Reviewed by Martin Robinson.
1886 [GTK] Reliable crash with getTextAtOffset()
1887 https://bugs.webkit.org/show_bug.cgi?id=53131
1889 Properly calculate length in bytes for a UTF8 substring.
1891 * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1892 (utf8Substr): Use character instead of bytes as units to
1893 calculate the length in bytes for the UTF8 string.
1895 2011-01-25 Dimitri Glazkov <dglazkov@chromium.org>
1897 Reviewed by Kent Tamura.
1899 Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId.
1900 https://bugs.webkit.org/show_bug.cgi?id=53122
1902 This is the first step in converting HTMLMediaElement to the new shadow DOM.
1904 Should not regress any existing tests. No observable change in behavior.
1906 * css/CSSSelector.cpp:
1907 (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors.
1908 (WebCore::nameToPseudoTypeMap): Ditto.
1909 (WebCore::CSSSelector::extractPseudoType): Ditto.
1910 * css/CSSSelector.h: Ditto.
1911 * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline.
1912 * rendering/MediaControlElements.cpp:
1913 (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement,
1914 which is now replaced with virtual shadowPseudoId on each corresponding class.
1915 (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline.
1916 (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set
1917 display type in constructor.
1918 (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as
1919 constructor argument.
1920 (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added.
1921 (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added
1922 to disambiguate from the MediaControlMuteButtonElement.
1923 (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added.
1924 (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added.
1925 (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as
1926 constructor argument.
1927 (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added.
1928 (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as
1929 constructor argument.
1930 (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added.
1931 (WebCore::MediaControlSeekForwardButtonElement::create): Added.
1932 (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added.
1933 (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added.
1934 (WebCore::MediaControlSeekBackButtonElement::create): Added.
1935 (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added.
1936 (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added.
1937 (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added.
1938 (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as
1939 constructor argument.
1940 (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added.
1941 (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as
1942 constructor argument.
1943 (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added.
1944 (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as
1945 constructor argument.
1946 (WebCore::MediaControlTimelineElement::shadowPseudoId): Added.
1947 (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as
1948 constructor argument.
1949 (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added.
1950 (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as
1951 constructor argument.
1952 (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added.
1953 * rendering/MediaControlElements.h:
1954 (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added.
1955 (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added.
1956 * rendering/RenderMedia.cpp:
1957 (WebCore::RenderMedia::createMuteButton): Changed to use new constructor.
1958 (WebCore::RenderMedia::createSeekBackButton): Ditto.
1959 (WebCore::RenderMedia::createSeekForwardButton): Ditto.
1960 (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto.
1961 * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used.
1963 2011-01-26 Kenneth Russell <kbr@google.com>
1965 Reviewed by James Robinson.
1967 Fix multisampling support in DrawingBuffer
1968 https://bugs.webkit.org/show_bug.cgi?id=53154
1970 In DrawingBuffer's multisampling code path, fixed enum usage and a
1971 bug where it would incorrectly redefine the depth and stencil
1972 buffers. Hooked up multisampling code path in Chromium port.
1974 Tested manually with some accelerated 2D canvas content.
1975 Multisampling isn't being switched on for the accelerated 2D
1976 canvas at the current time because it will increase fill rate
1977 requirements and cause a large number of rebaselines.
1979 * platform/graphics/Extensions3D.h:
1980 * platform/graphics/chromium/DrawingBufferChromium.cpp:
1981 (WebCore::DrawingBuffer::publishToPlatformLayer):
1982 * platform/graphics/chromium/Extensions3DChromium.h:
1983 * platform/graphics/gpu/DrawingBuffer.cpp:
1984 (WebCore::DrawingBuffer::create):
1985 (WebCore::DrawingBuffer::reset):
1986 * platform/graphics/opengl/Extensions3DOpenGL.cpp:
1987 (WebCore::Extensions3DOpenGL::supports):
1989 2011-01-26 Tony Chang <tony@chromium.org>
1993 [chromium] revert r68310 because of race conditions detected by tsans
1994 https://bugs.webkit.org/show_bug.cgi?id=53185
1996 Causes stability problems for Chromium, http://crbug.com/70589
1998 * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
1999 (WebCore::SQLiteFileSystem::registerSQLiteVFS):
2001 2011-01-26 Justin Schuh <jschuh@chromium.org>
2003 Reviewed by Adam Barth.
2005 Make fireEventsAndUpdateStyle use stack local vectors.
2006 https://bugs.webkit.org/show_bug.cgi?id=46760
2008 Test: animations/animation-add-events-in-handler.html
2010 * page/animation/AnimationController.cpp:
2011 (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
2013 2011-01-26 Nate Chapin <japhet@chromium.org>
2015 Reviewed by Adam Barth.
2017 Remove m_URL from FrameLoader and depend on Document::url()
2018 instead. FrameLoader::url() will be removed in a followup patch.
2019 https://bugs.webkit.org/show_bug.cgi?id=41165
2021 Refactor only, no new tests.
2025 (WebCore::Document::Document):
2026 (WebCore::Document::updateURLForPushOrReplaceState):
2027 * loader/DocumentWriter.cpp:
2028 (WebCore::DocumentWriter::begin):
2029 * loader/FrameLoader.cpp:
2030 (WebCore::FrameLoader::iconURL):
2031 (WebCore::FrameLoader::didOpenURL):
2032 (WebCore::FrameLoader::didExplicitOpen):
2033 (WebCore::FrameLoader::receivedFirstData):
2034 (WebCore::FrameLoader::url):
2035 (WebCore::FrameLoader::setOutgoingReferrer):
2036 (WebCore::FrameLoader::startIconLoader):
2037 (WebCore::FrameLoader::commitIconURLToIconDatabase):
2038 (WebCore::FrameLoader::finishedParsing):
2039 (WebCore::FrameLoader::checkIfDisplayInsecureContent):
2040 (WebCore::FrameLoader::checkIfRunInsecureContent):
2041 (WebCore::FrameLoader::updateFirstPartyForCookies):
2042 (WebCore::FrameLoader::loadInSameDocument):
2043 (WebCore::FrameLoader::commitProvisionalLoad):
2044 (WebCore::FrameLoader::open):
2045 (WebCore::FrameLoader::shouldScrollToAnchor):
2046 * loader/FrameLoader.h: Rename setURL() to setOutgoingReferrer().
2048 2011-01-25 Brian Weinstein <bweinstein@apple.com>
2050 Reviewed by Antti Koivisto.
2052 Crashes loading pages when cancelling subresource loads through WebKit
2053 https://bugs.webkit.org/show_bug.cgi?id=53123
2054 <rdar://problem/8914361>
2056 Fix a crash that happened when cancelling subresource loads through WebKit.
2058 When a load is cancelled synchronously (via the WebKit client), CachedResourceLoader::requestResource
2059 can be called recursively on the same function, either leading to infinite recursion, or deleting
2060 an object when it is not done being used.
2062 The fix for this was to call checkForPendingPreloads and servePendingRequests asynchronously when
2063 CachedResourceLoader::loadDone was called synchronously (due to the load being cancelled synchronously).
2065 Test: fast/loader/willSendRequest-null-for-preload.html
2067 * loader/DocumentLoader.cpp:
2068 (WebCore::DocumentLoader::setRequest): Only dispatch didReceiveServerRedirectForProvisionalLoadForFrame
2069 if our new URL is non-null.
2070 * loader/cache/CachedResourceLoader.cpp:
2071 (WebCore::CachedResourceLoader::CachedResourceLoader): Initialize our timer.
2072 (WebCore::CachedResourceLoader::loadDone): If the CachedResource we were passed in was 0, that means this
2073 function was called synchronously
2074 from CachedResourceRequest::load, and we don't want to call into checkForPendingPreloads synchronously,
2075 so put it on a 0-delay timer to make the calls to checkForPendingPreloads and servePendingRequests asynchronous.
2076 (WebCore::CachedResourceLoader::loadDonePendingActionTimerFired): Call checkForPendingPreloads and servePendingRequests.
2077 (WebCore::CachedResourceLoader::checkForPendingPreloads): m_pendingPreloads is now a Deque instead of a Vector,
2078 so use Deque methods.
2079 * loader/cache/CachedResourceLoader.h: Add the timer, the timer callback function, and make m_pendingPreloads a Deque.
2081 2011-01-25 Pavel Podivilov <podivilov@chromium.org>
2083 Reviewed by Pavel Feldman.
2085 Web Inspector: evaluate in console may not work when window.console is substituted or deleted.
2086 https://bugs.webkit.org/show_bug.cgi?id=53072
2088 Test: inspector/console-substituted.html
2090 * inspector/InjectedScriptSource.js:
2093 2011-01-26 Carlos Garcia Campos <cgarcia@igalia.com>
2095 Reviewed by Martin Robinson.
2097 [cairo] Use CAIRO_OPERATOR_DARKEN when available
2098 https://bugs.webkit.org/show_bug.cgi?id=53084
2100 Use CAIRO_OPERATOR_DARKEN for CompositePlusDarker instead of
2101 CAIRO_OPERATOR_SATURATE when building with cairo version >= 1.10.
2103 * platform/graphics/cairo/CairoUtilities.cpp:
2104 (WebCore::toCairoOperator):
2106 2011-01-26 Pavel Feldman <pfeldman@chromium.org>
2108 Reviewed by Yury Semikhatsky.
2110 Web Inspector: visualize \n in strings as unicode cr
2111 symbol in stack variables sidebar.
2112 https://bugs.webkit.org/show_bug.cgi?id=53162
2114 * inspector/front-end/ObjectPropertiesSection.js:
2115 (WebInspector.ObjectPropertyTreeElement.prototype.update):
2117 2011-01-26 Andrey Kosyakov <caseq@chromium.org>
2119 Reviewed by Pavel Feldman.
2121 Web Inspector: size is wrong for cached resources in Network panel
2122 - Set the size for 304/not modified resources from cached resource.
2123 - Add response headers size to resource transfer size.
2124 https://bugs.webkit.org/show_bug.cgi?id=52886
2126 * inspector/InspectorResourceAgent.cpp:
2127 (WebCore::InspectorResourceAgent::didReceiveResponse):
2128 * inspector/front-end/Resource.js:
2129 (WebInspector.Resource):
2130 (WebInspector.Resource.prototype.get transferSize):
2131 (WebInspector.Resource.prototype.set responseHeaders):
2132 (WebInspector.Resource.prototype._headersSize):
2133 (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
2135 2011-01-26 Carol Szabo <carol.szabo@nokia.com>
2137 Reviewed by Simon Hausmann.
2139 Fixed TiledBacking store to take into account new dirty regions caused by
2142 Flawed rendering design for QtWebKit resulting in artifacts being displayed
2143 https://bugs.webkit.org/show_bug.cgi?id=49184
2145 There are no new tests as this patch aims at fixing flicker that
2146 happen randomly, mostly on slow hardware, thus are hard to reproduce
2147 consistently in an automated test.
2149 This patch does not fully address the said bug but it is a step in the
2150 right direction. A full solution to the bug, as currently perceived,
2151 requires either a Qt GUI API change, a performance hit for QtWebKit,
2152 or a hack, until a full solution is provided this patch is progress.
2154 * platform/graphics/TiledBackingStore.cpp:
2155 (WebCore::TiledBackingStore::updateTileBuffers):
2156 Changed to take into account newly dirtied areas created during
2157 tile update initiated layouts during the same update.
2159 2011-01-26 Patrick Gansterer <paroga@webkit.org>
2161 Reviewed by Andreas Kling.
2163 [SKIA] Remove "current path" of GraphicsContext
2164 https://bugs.webkit.org/show_bug.cgi?id=53124
2166 * platform/graphics/GraphicsContext.h:
2167 * platform/graphics/skia/GraphicsContextSkia.cpp:
2168 (WebCore::GraphicsContext::clipPath):
2169 (WebCore::GraphicsContext::fillPath):
2170 (WebCore::GraphicsContext::strokePath):
2171 * platform/graphics/skia/PathSkia.cpp:
2172 (WebCore::Path::strokeBoundingRect):
2173 * platform/graphics/skia/PlatformContextSkia.cpp:
2174 * platform/graphics/skia/PlatformContextSkia.h:
2176 2011-01-26 Zalan Bujtas <zbujtas@gmail.com>
2178 Reviewed by Andreas Kling.
2180 [Qt] Path::normalAngleAtLength() returns incorrect value on ACID3.
2182 QPainterPath returns angle values with the origo being at the top left corner,
2183 we need to account for this in normalAngleAtLength().
2184 This Regressed with r66979.
2186 No new tests as this is already covered by ACID3.
2188 * platform/graphics/qt/PathQt.cpp:
2189 (WebCore::Path::normalAngleAtLength):
2191 2011-01-26 Pavel Feldman <pfeldman@chromium.org>
2193 Reviewed by Yury Semikhatsky.
2195 Web Inspector: live edit does not update source snippet.
2196 https://bugs.webkit.org/show_bug.cgi?id=53097
2198 * inspector/front-end/ScriptsPanel.js:
2199 (WebInspector.ScriptsPanel.prototype._scriptSourceChanged):
2201 2011-01-26 Pavel Feldman <pfeldman@chromium.org>
2203 Reviewed by Yury Semikhatsky.
2205 Web Inspector: Incorrect on-hover evaluation of a variable named 'profile'.
2206 https://bugs.webkit.org/show_bug.cgi?id=53018
2208 * inspector/InjectedScript.cpp:
2209 (WebCore::InjectedScript::evaluate):
2210 (WebCore::InjectedScript::evaluateOnCallFrame):
2211 (WebCore::InjectedScript::getCompletions):
2212 (WebCore::InjectedScript::getCompletionsOnCallFrame):
2213 * inspector/InjectedScript.h:
2214 * inspector/InjectedScriptSource.js:
2216 * inspector/Inspector.idl:
2217 * inspector/InspectorDebuggerAgent.cpp:
2218 (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
2219 (WebCore::InspectorDebuggerAgent::getCompletionsOnCallFrame):
2220 * inspector/InspectorDebuggerAgent.h:
2221 * inspector/InspectorRuntimeAgent.cpp:
2222 (WebCore::InspectorRuntimeAgent::evaluate):
2223 (WebCore::InspectorRuntimeAgent::getCompletions):
2224 * inspector/InspectorRuntimeAgent.h:
2225 * inspector/front-end/ConsoleView.js:
2226 (WebInspector.ConsoleView.prototype.completions):
2227 (WebInspector.ConsoleView.prototype.evalInInspectedWindow):
2228 (WebInspector.ConsoleView.prototype._enterKeyPressed):
2229 * inspector/front-end/ScriptsPanel.js:
2230 (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame.updatingCallbackWrapper):
2231 (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame):
2232 * inspector/front-end/SourceFrame.js:
2233 (WebInspector.SourceFrame.prototype._showPopup):
2234 * inspector/front-end/WatchExpressionsSidebarPane.js:
2235 (WebInspector.WatchExpressionsSection.prototype.update):
2237 2011-01-26 Hironori Bono <hbono@chromium.org>
2239 Reviewed by Kent Tamura.
2241 A speculative fix for Bug 52422 - [chromium] More crash in
2242 FontFallbackList::determinePitch(const Font* font)
2243 https://bugs.webkit.org/show_bug.cgi?id=52422
2245 My previous change may not work on non-US Windows whose system fonts
2246 have localized aliases matching to the system locale because of a
2247 font-name mismatch in createFontIndirectAndGetWinName(). This change
2248 tries all the fonts installed in a PC and returns the first font that we
2249 can create without errors.
2251 * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2252 (WebCore::GetLastResortFallbackFontProcData::GetLastResortFallbackFontProcData):
2253 Added a struct used for getLastResortFallbackFontProc().
2254 (WebCore::getLastResortFallbackFontProc): Added a callback for EnumFontFamilies().
2255 (WebCore::FontCache::getLastResortFallbackFont): Use EnumFontFamilies() to find a last-resort font.
2257 2011-01-26 James Robinson <jamesr@chromium.org>
2259 Reviewed by Nate Chapin.
2261 Add a DOMTimeStamp parameter to the requestAnimationFrame callback
2262 https://bugs.webkit.org/show_bug.cgi?id=53142
2264 This adds a DOMTimeStamp parameter to the requestAnimationFrame callback to more
2265 closely match mozilla's proposal. This is useful if the page has multiple imperative animations
2266 and wants to ensure that they all remain synchronized. If each callback used Date.now() to
2267 update its animation state, they would potentially be out of sync with each other. If they use
2268 the timestamp then all callbacks for the same "frame" will update to the same state.
2270 Test: fast/animation/request-animation-frame-timestamps.html
2272 * bindings/scripts/CodeGeneratorV8.pm:
2273 * bindings/scripts/test/V8/V8TestCallback.cpp:
2274 (WebCore::V8TestCallback::callbackWithClass2Param):
2276 (WebCore::Document::serviceScriptedAnimations):
2278 * dom/RequestAnimationFrameCallback.h:
2279 * dom/RequestAnimationFrameCallback.idl:
2280 * page/FrameView.cpp:
2281 (WebCore::FrameView::serviceScriptedAnimations):
2284 2011-01-25 Yuzo Fujishima <yuzo@google.com>
2286 Unreviewed attempt to fix compilation error for Chromium Clang.
2288 * platform/graphics/mac/ComplexTextController.cpp:
2289 (WebCore::ComplexTextController::advance):
2291 2011-01-25 Ned Holbrook <nholbrook@apple.com>
2293 Reviewed by Dan Bernstein.
2295 ComplexTextController incorrectly conflates string length and range of indexes
2296 https://bugs.webkit.org/show_bug.cgi?id=52760
2298 Test: fast/text/offsetForPosition-complex-fallback.html
2300 * platform/graphics/mac/ComplexTextController.cpp:
2301 (WebCore::ComplexTextController::offsetForPosition):
2302 (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
2303 (WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic):
2304 (WebCore::ComplexTextController::advance):
2305 * platform/graphics/mac/ComplexTextController.h:
2306 (WebCore::ComplexTextController::ComplexTextRun::create):
2307 (WebCore::ComplexTextController::ComplexTextRun::indexEnd):
2308 * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
2309 (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
2310 * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
2311 (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
2312 (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
2314 2011-01-25 Sam Weinig <sam@webkit.org>
2316 Reviewed by David Hyatt.
2318 Scrollbars don't work correctly for top-to-bottom text in an overflow: scroll area
2319 https://bugs.webkit.org/show_bug.cgi?id=53048
2321 Test: fast/overflow/overflow-rtl-vertical-origin.html
2323 * rendering/RenderLayer.cpp:
2324 (WebCore::RenderLayer::scrollPosition):
2325 (WebCore::RenderLayer::updateScrollInfoAfterLayout):
2326 Take the scroll origin into account when calculating scrollbars in more places.
2328 2011-01-25 Steve Falkenburg <sfalken@apple.com>
2330 Windows production build fix.
2331 Use correct configuration-specific path in makefile.
2333 * WebCore.vcproj/WebCore.make:
2335 2011-01-25 Kent Tamura <tkent@chromium.org>
2337 Reviewed by Dimitri Glazkov.
2339 Radio button group state is not restored correctly
2340 https://bugs.webkit.org/show_bug.cgi?id=50442
2342 Fixes a bug that radio button states are not restored correctly in
2343 a case that non-first radio button in a group is checked.
2345 If "checked" attribute is present, the radio button is checked and
2346 other radio buttons in the group are unchecked. This behavior
2347 disturbs form state restoring. This patch changes this behavior so
2348 that the "checked" attribute handling is delayed after form state
2351 Test: fast/forms/state-restore-radio-group.html
2353 * html/HTMLFormControlElement.h:
2354 Make finishParsingChildren() protected so that HTMLInpuElement can call it.
2355 * html/HTMLInputElement.cpp:
2356 (WebCore::HTMLInputElement::HTMLInputElement):
2357 - Add createdByParser parameter.
2358 - Initialize m_stateRestored and m_parsingInProgress.
2359 (WebCore::HTMLInputElement::create): Sync with the constructor.
2360 (WebCore::HTMLInputElement::restoreFormControlState):
2361 Set m_stateRestored in order to refer it in finishParsingChildren().
2362 (WebCore::HTMLInputElement::parseMappedAttribute):
2363 Don't call setChecked() during parsing. Move setNeedsValidityCheck()
2365 (WebCore::HTMLInputElement::finishParsingChildren):
2366 Call setChecked() if form state is not restored.
2367 (WebCore::HTMLInputElement::setChecked):
2368 Move setNeedsValidityCheck() from parseMappedAttribute() because
2369 finishParsingChildren() also needs to call setNeedsValidityCheck().
2370 * html/HTMLInputElement.h:
2371 - Remove the default value of HTMLFormElement* of the HTMLInputElement
2372 constructor, and add createdByParser parameter.
2373 - Introduce m_parsingInProgress and m_stateRestored.
2374 * html/HTMLIsIndexElement.cpp:
2375 (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
2376 Sync with the HTMLInputElement constructor change.
2377 * html/HTMLTagNames.in: Add constructorNeedsCreatedByParser flag.
2378 * rendering/MediaControlElements.cpp:
2379 (WebCore::MediaControlInputElement::MediaControlInputElement):
2380 Sync with the HTMLInputElement constructor change.
2381 * rendering/ShadowElement.cpp:
2382 (WebCore::ShadowInputElement::ShadowInputElement): ditto.
2383 * rendering/ShadowElement.h:
2384 (WebCore::ShadowElement::ShadowElement): ditto.
2386 2011-01-25 Kent Tamura <tkent@chromium.org>
2388 Reviewed by Dimitri Glazkov.
2390 HTMLFormElement::checkValidity() returns incorrect result if 'invalid' events are canceled.
2391 https://bugs.webkit.org/show_bug.cgi?id=52565
2393 * html/HTMLFormElement.cpp:
2394 (WebCore::HTMLFormElement::validateInteractively):
2395 Check checkInvalidControlsAndCollectUnhandled() result instead of
2396 checking emptiness of unhandled invalid controls list.
2397 (WebCore::HTMLFormElement::checkValidity): ditto.
2398 (WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
2399 Renamed from collectUnhandledInvalidControls().
2400 Returns true if there is any invalid control regardless of event canceling.
2401 * html/HTMLFormElement.h: Rename collectUnhandledInvalidControls() to
2402 checkInvalidControlsAndCollectUnhandled().
2404 2011-01-25 Kent Tamura <tkent@chromium.org>
2406 Reviewed by Dimitri Glazkov.
2408 Range and number inputs should reject increment and decrement by
2409 keyboard or mouse wheel if they are disabled or read-only
2410 https://bugs.webkit.org/show_bug.cgi?id=53151
2412 * html/RangeInputType.cpp:
2413 (WebCore::RangeInputType::handleKeydownEvent): Check disabled() and readOnly().
2414 * html/TextFieldInputType.cpp:
2415 (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): ditto.
2416 (WebCore::TextFieldInputType::handleWheelEventForSpinButton): ditto.
2418 2011-01-25 Kent Tamura <tkent@chromium.org>
2420 Reviewed by Dimitri Glazkov.
2422 API to support localized numbers for <input type=number>
2423 https://bugs.webkit.org/show_bug.cgi?id=45730
2425 Introduce platform/text/LocalizedNumber.h, and
2426 LocalizedNumberNone.cpp, which is an empty implementation of the
2427 functions in LocalizedNumber.h. We use LocalizedNumberNone.cpp in
2428 all platforms for now.
2430 A string in a type=number field is parsed as a localized number
2431 first. If the parsing fails, it is parsed as the HTML5 number.
2433 We introduce HTMLInputElement::visibleValue(). It represents a value
2434 which should be drawn by a renderer. HTMLInputElement::value() always
2435 returns a number formatted for HTML5, and visibleValue() may return a
2438 No new tests because this doesn't change any behavior.
2440 * Android.mk: Add LocalizedNumber.h and/or LocalizedNumberNone.cpp.
2441 * CMakeLists.txt: ditto.
2442 * GNUmakefile.am: ditto.
2443 * WebCore.gypi: ditto.
2444 * WebCore.pro: ditto.
2445 * WebCore.vcproj/WebCore.vcproj: ditto.
2446 * WebCore.xcodeproj/project.pbxproj: ditto.
2447 * dom/InputElement.h: Add visibleValue().
2448 * html/HTMLInputElement.cpp:
2449 (WebCore::HTMLInputElement::visibleValue): Added. Just call InputType::visibleValue().
2450 * html/HTMLInputElement.h: Declare visibleValue().
2451 * html/InputType.cpp:
2452 (WebCore::InputType::visibleValue): Add the default implementation of
2453 visibleValue(), which returns HTMLInputElement::value().
2454 * html/InputType.h: Add declarations.
2455 * html/NumberInputType.cpp:
2456 (WebCore::isHTMLNumberCharacter): Renamed from isNumberCharacter().
2457 (WebCore::isNumberCharacter): Calls isLocalizedNumberCharacter() and isHTMLNumberCharacter().
2458 (WebCore::NumberInputType::visibleValue):
2459 Returns a localized number string produced by formatLocalizedNumber().
2460 (WebCore::NumberInputType::isAcceptableValue): Calls parseLocalizedNumber().
2461 (WebCore::NumberInputType::sanitizeValue): Calls parseLocalizedNumber().
2462 * html/NumberInputType.h: Add declarations.
2463 * platform/text/LocalizedNumber.h: Added.
2464 * platform/text/LocalizedNumberNone.cpp: Added.
2465 (WebCore::parseLocalizedNumber):
2466 (WebCore::formatLocalizedNumber):
2467 (WebCore::isLocalizedNumberCharacter):
2468 * rendering/RenderTextControlSingleLine.cpp:
2469 (WebCore::RenderTextControlSingleLine::updateFromElement):
2470 Calls InputElement::visibleValue() instead of value().
2471 * wml/WMLInputElement.h:
2472 (WebCore::WMLInputElement::visibleValue): Added. It just calls value().
2474 2011-01-25 Alexey Proskuryakov <ap@apple.com>
2476 Reviewed by Darin Adler.
2478 https://bugs.webkit.org/show_bug.cgi?id=53143
2481 * WebCore.xcodeproj/project.pbxproj:
2482 * platform/graphics/IntRectHash.h: Added.
2484 * platform/graphics/IntSizeHash.h: Don't do "using WebCore::IntSize"!
2486 2011-01-25 Ilya Sherman <isherman@chromium.org>
2488 Reviewed by Ryosuke Niwa.
2490 Remove trailing whitespace in HTMLInputElement.cpp
2491 https://bugs.webkit.org/show_bug.cgi?id=53152
2493 * html/HTMLInputElement.cpp:
2494 (WebCore::HTMLInputElement::updateCheckedRadioButtons):
2495 (WebCore::HTMLInputElement::applyStep):
2496 (WebCore::HTMLInputElement::updateFocusAppearance):
2497 (WebCore::HTMLInputElement::mapToEntry):
2498 (WebCore::HTMLInputElement::setAutofilled):
2499 (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
2500 (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
2502 2011-01-25 Mike Reed <reed@google.com>
2504 Reviewed by James Robinson.
2506 DrawingBufer::reset() today checks if the new size is the same as its
2507 m_size, and if so, returns immediately. This does not match the
2508 semantics of <canvas>, which wants to clear its contents anytime the
2510 https://bugs.webkit.org/show_bug.cgi?id=53149
2512 Test: Covered by existing <canvas> tests using gpu.
2514 * platform/graphics/chromium/DrawingBufferChromium.cpp:
2515 (WebCore::DrawingBuffer::DrawingBuffer):
2516 * platform/graphics/gpu/DrawingBuffer.cpp:
2517 (WebCore::DrawingBuffer::reset):
2519 2011-01-25 Cris Neckar <cdn@chromium.org>
2521 Reviewed by Adam Barth.
2523 Add a hashset of DOMURLs to ScriptExecutionContext to track back references.
2524 https://bugs.webkit.org/show_bug.cgi?id=53038
2526 Test: fast/dom/window-domurl-crash.html
2528 * dom/ScriptExecutionContext.cpp:
2529 (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
2530 (WebCore::ScriptExecutionContext::createdDomUrl):
2531 (WebCore::ScriptExecutionContext::destroyedDomUrl):
2532 * dom/ScriptExecutionContext.h:
2533 (WebCore::ScriptExecutionContext::domUrls):
2535 (WebCore::DOMURL::DOMURL):
2536 (WebCore::DOMURL::~DOMURL):
2537 (WebCore::DOMURL::contextDestroyed):
2539 (WebCore::DOMURL::scriptExecutionContext):
2541 2011-01-23 Antti Koivisto <antti@apple.com>
2543 Reviewed by Darin Adler.
2545 https://bugs.webkit.org/show_bug.cgi?id=52983
2546 Eliminate m_tagHistory pointer from CSSSelector
2548 Keep the component selectors in the array in CSSSelectorList instead
2549 of maintaining a linked list between them. This allows eliminating
2550 m_tagHistory pointer, shrinking CSSSelector by 25% (selection performance
2551 seems to improve some too due to better locality).
2553 * WebCore.xcodeproj/project.pbxproj:
2555 Make CSSSelector.h a private header.
2559 Use CSSParserSelector during parsing to keep the tag history in
2560 a linked list. This is flattened to an array after parsing.
2561 Use accessors for setting selector values.
2562 Use OwnPtr in selector vector.
2564 * css/CSSPageRule.cpp:
2565 (WebCore::CSSPageRule::CSSPageRule):
2566 * css/CSSPageRule.h:
2567 (WebCore::CSSPageRule::create):
2571 * css/CSSParser.cpp:
2572 (WebCore::CSSParser::~CSSParser):
2573 (WebCore::CSSParser::createFloatingSelector):
2574 (WebCore::CSSParser::sinkFloatingSelector):
2575 (WebCore::CSSParser::createStyleRule):
2576 (WebCore::CSSParser::updateSpecifiersWithElementName):
2577 (WebCore::CSSParser::createPageRule):
2579 (WebCore::CSSParser::reusableSelectorVector):
2581 CSSSelector -> CSSParserSelector.
2582 Use OwnPtr in selector vector.
2584 * css/CSSParserValues.cpp:
2585 (WebCore::CSSParserSelector::CSSParserSelector):
2586 (WebCore::CSSParserSelector::~CSSParserSelector):
2587 * css/CSSParserValues.h:
2588 (WebCore::CSSParserSelector::releaseSelector):
2589 (WebCore::CSSParserSelector::setTag):
2590 (WebCore::CSSParserSelector::setValue):
2591 (WebCore::CSSParserSelector::setAttribute):
2592 (WebCore::CSSParserSelector::setArgument):
2593 (WebCore::CSSParserSelector::setSimpleSelector):
2594 (WebCore::CSSParserSelector::setMatch):
2595 (WebCore::CSSParserSelector::setRelation):
2596 (WebCore::CSSParserSelector::setForPage):
2597 (WebCore::CSSParserSelector::pseudoType):
2598 (WebCore::CSSParserSelector::isUnknownPseudoElement):
2599 (WebCore::CSSParserSelector::isSimple):
2600 (WebCore::CSSParserSelector::tagHistory):
2601 (WebCore::CSSParserSelector::setTagHistory):
2603 Linked list used during parsing.
2604 Avoid recursive destruction.
2606 * css/CSSSelector.cpp:
2607 (WebCore::CSSSelector::extractPseudoType):
2608 (WebCore::CSSSelector::operator==):
2609 (WebCore::CSSSelector::selectorText):
2610 (WebCore::CSSSelector::setSimpleSelector):
2611 * css/CSSSelector.h:
2612 (WebCore::CSSSelector::CSSSelector):
2613 (WebCore::CSSSelector::~CSSSelector):
2614 (WebCore::CSSSelector::tagHistory):
2615 (WebCore::CSSSelector::tag):
2616 (WebCore::CSSSelector::value):
2617 (WebCore::CSSSelector::setTag):
2618 (WebCore::CSSSelector::isLastInTagHistory):
2619 (WebCore::CSSSelector::setNotLastInTagHistory):
2620 (WebCore::CSSSelector::RareData::RareData):
2621 (WebCore::CSSSelector::RareData::~RareData):
2622 (WebCore::CSSSelector::createRareData):
2623 (WebCore::CSSSelector::setValue):
2625 Remove m_tagHistory.
2626 Keep m_value in the union with the rare data pointer instead.
2627 Make m_value and m_tag private, implement accessors.
2628 Add a new bit to indicate end of the tag history (multipart selector).
2629 Eliminate complex destruction. Selectors are now deleted as an array or by a CSSParserSelector chain.
2631 * css/CSSSelectorList.cpp:
2632 (WebCore::CSSSelectorList::adoptSelectorVector):
2634 Flatten everything to an array.
2636 (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
2637 * css/CSSSelectorList.h:
2638 (WebCore::CSSSelectorList::hasOneSelector):
2639 (WebCore::CSSSelectorList::next):
2641 Skip over the subparts of multipart selectors to find the next selector.
2643 * css/CSSStyleRule.h:
2644 (WebCore::CSSStyleRule::adoptSelectorVector):
2646 CSSSelector -> CSSParserSelector.
2648 * css/CSSStyleSelector.cpp:
2649 (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
2650 (WebCore::CSSRuleSet::addRule):
2651 (WebCore::collectIdsAndSiblingRulesFromList):
2652 (WebCore::CSSStyleSelector::matchPageRulesForList):
2654 (WebCore::Node::querySelector):
2655 * dom/SelectorNodeList.cpp:
2656 (WebCore::createSelectorNodeList):
2660 2011-01-25 James Simonsen <simonjam@chromium.org>
2662 Reviewed by Tony Chang.
2664 [Chromium] Support small caps in complex text on linux
2665 https://bugs.webkit.org/show_bug.cgi?id=53051
2667 * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
2668 (WebCore::ComplexTextController::nextScriptRun): Break runs at small caps boundaries.
2669 (WebCore::ComplexTextController::setupFontForScriptRun): Setup small caps font data if needed.
2670 * platform/graphics/chromium/ComplexTextControllerLinux.h: Store small caps text in separate string.
2672 2011-01-25 Steve Falkenburg <sfalken@apple.com>
2674 Rubber-stamped by Adam Roben.
2676 Windows production build fix.
2677 Use correct environment variable escaping
2679 * WebCore.vcproj/WebCore.make:
2681 2011-01-25 Adam Barth <abarth@webkit.org>
2683 Reviewed by Eric Seidel.
2685 Empty URLs are never display isolated
2686 https://bugs.webkit.org/show_bug.cgi?id=53053
2688 This check mirrors the check in the local case. There isn't a good way
2689 to test this with a LayoutTest, but it is tested in Chromium (where
2690 this registry is used).
2692 * platform/SchemeRegistry.cpp:
2693 (WebCore::SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated):
2695 2011-01-25 Sam Weinig <sam@webkit.org>
2697 Reviewed by Anders Carlsson.
2699 Pipe a timestamp down into the PlatformWheelEvent for the Mac.
2700 https://bugs.webkit.org/show_bug.cgi?id=53111
2702 * platform/PlatformWheelEvent.h:
2703 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2704 (WebCore::PlatformWheelEvent::timestamp):
2705 Add timestamp member.
2707 * platform/mac/WheelEventMac.mm:
2708 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2709 Initialize the timestamp from the event.
2711 2011-01-25 Sheriff Bot <webkit.review.bot@gmail.com>
2713 Unreviewed, rolling out r76625.
2714 http://trac.webkit.org/changeset/76625
2715 https://bugs.webkit.org/show_bug.cgi?id=53119
2717 "incorrect pixel test results" (Requested by rniwa on
2720 * rendering/RenderBox.cpp:
2721 (WebCore::RenderBox::localCaretRect):
2723 2011-01-25 Patrick Gansterer <paroga@webkit.org>
2725 Unreviewed WinCE build fix for r76614.
2727 * platform/FileSystem.h:
2729 2011-01-21 Levi Weintraub <leviw@chromium.org>
2731 Reviewed by Darin Adler.
2733 Adding border and padding to the calculation of the local caret rect for RenderBoxes.
2735 Undo moves caret to invalid position
2736 https://bugs.webkit.org/show_bug.cgi?id=49744
2738 Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
2739 editing/selection/caret-painting-after-paste-undo.html
2741 * rendering/RenderBox.cpp:
2742 (WebCore::RenderBox::localCaretRect):
2744 2011-01-25 Sam Weinig <sam@webkit.org>
2746 Reviewed by Anders Carlsson.
2748 Add hasPreciseScrollingDeltas bit to PlatformWheelEvent on the Mac.
2749 https://bugs.webkit.org/show_bug.cgi?id=53107
2751 * platform/PlatformWheelEvent.h:
2752 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2753 (WebCore::PlatformWheelEvent::hasPreciseScrollingDeltas):
2754 * platform/mac/WheelEventMac.mm:
2755 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2757 2011-01-20 Jer Noble <jer.noble@apple.com>
2759 Reviewed by Eric Carlson.
2761 REGRESSION (r72119): Audio never plays on Star Wars intro animation
2762 https://bugs.webkit.org/show_bug.cgi?id=52467
2764 QuickTime's eat/m4a movie importer compontent doesn't list audio/m4a as a mime
2765 type which it supports, though it handles .m4a files just fine. Change the way
2766 we build the list of supported MIME Types through a new WebKitSystemInterface
2769 Caused by r72119, which adds system-specific extension->MIME entries to the cache
2770 before global entries, and the system-specific entries include QuickTime's registry
2771 entries which contain the audio/m4a MIME type, while its components do not.
2773 Test: media/audio-mpeg4-supported.html
2775 * WebCore.vcproj/QTMovieWinCommon.vsprops:
2776 * platform/graphics/win/QTMovie.cpp:
2777 (getMIMETypeCallBack):
2778 (initializeSupportedTypes):
2779 (QTMovie::countSupportedTypes): gSupportedTypes is now a CFArrayRef.
2780 (QTMovie::getSupportedType): Ditto.
2782 2011-01-25 Hans Wennborg <hans@chromium.org>
2784 Reviewed by Jeremy Orlow.
2786 IndexedDB: Remove PlatformBridge::idbShutdown()
2787 https://bugs.webkit.org/show_bug.cgi?id=53077
2789 Since Chromium r72157, this is not used anymore. The previous use was
2790 to signal to the embedder that IndexedDB was shutting down, but we
2791 agreed it is better if the embedder keeps track of that itself.
2793 No new tests: this does not change any functionality.
2795 * platform/chromium/PlatformBridge.h:
2796 * storage/IDBFactoryBackendInterface.cpp:
2797 * storage/IDBFactoryBackendInterface.h:
2798 (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
2799 * storage/chromium/IDBFactoryBackendInterface.cpp:
2801 2011-01-25 Darin Adler <darin@apple.com>
2803 Reviewed by Anders Carlsson.
2805 WebKit is using CSBackupSetItemExcluded incorrectly
2806 https://bugs.webkit.org/show_bug.cgi?id=53095
2807 rdar://problem/8790540
2809 * loader/icon/IconDatabase.cpp:
2810 (WebCore::IconDatabase::performOpenInitialization): Added code to
2811 exclude the database from backup one time, and record inside the
2812 database that this has been done.
2813 (WebCore::IconDatabase::wasExcludedFromBackup): Added.
2814 (WebCore::IconDatabase::setWasExcludedFromBackup): Added.
2815 * loader/icon/IconDatabase.h: Added new functions above.
2817 * platform/FileSystem.cpp:
2818 (WebCore::canExcludeFromBackup): Added.
2819 (WebCore::excludeFromBackup): Added.
2821 * platform/FileSystem.h: Added canExcludeFromBackup, excludeFromBackup,
2822 and pathAsURL functions. Cleaned up ifdefs and comments a bit and sorted
2823 things alphabetically, particularly platform-specific sections.
2825 * platform/cf/FileSystemCF.cpp:
2826 (WebCore::pathAsURL): Added.
2828 * platform/mac/FileSystemMac.mm:
2829 (WebCore::canExcludeFromBackup): Added.
2830 (WebCore::excludeFromBackup): Added.
2832 * platform/network/cf/FormDataStreamCFNet.cpp:
2833 (WebCore::advanceCurrentStream): Changed to call pathAsURL.
2834 * platform/network/mac/FormDataStreamMac.mm:
2835 (WebCore::advanceCurrentStream): Ditto.
2837 2011-01-25 Helder Correia <helder@sencha.com>
2839 Reviewed by Dirk Schulze.
2841 REGRESSION(75139): SVG gradients are not applied to texts
2842 https://bugs.webkit.org/show_bug.cgi?id=52531
2844 CGContextConcatCTM should use the CGLayer context, not the
2845 GraphicsContext. Also, the CTM needs to be adjusted (translated).
2846 This fixes SVG text gradient fill.
2848 Test: svg/css/composite-shadow-text.svg
2850 * platform/graphics/cg/GraphicsContextCG.cpp:
2851 (WebCore::GraphicsContext::fillRect):
2853 2011-01-25 Benjamin Kalman <kalman@chromium.org>
2855 Reviewed by Ryosuke Niwa.
2857 Cannot extend or modify forward by word over a non-contenteditable region
2858 https://bugs.webkit.org/show_bug.cgi?id=53070
2860 Test: editing/selection/extend-forward-by-word-over-non-editable.html
2862 Change all instances of honorEditableBoundaryAtOrAfter to honorEditableBoundaryAtOrBefore and vice versa in the
2863 functions which determine the end/start of words/lines/sentences in visible_units.cpp.
2865 This fixes the bug where moving forwards by a word over a non-contenteditable region would place the cursor
2866 inside that region, and then get moved back to the start of the word due to honorEditableBoundaryAtOrBefore.
2867 The cursor is now moved to the end of the region (which is effectively a noop in this case).
2869 * editing/visible_units.cpp: Change all instances of honorEditableBoundaryAtOrAfter to
2870 honorEditableBoundaryAtOrBefore and vice versa.
2871 (WebCore::previousWordPosition):
2872 (WebCore::nextWordPosition):
2873 (WebCore::startOfLine):
2874 (WebCore::endOfLine):
2875 (WebCore::previousSentencePosition):
2876 (WebCore::nextSentencePosition):
2877 (WebCore::logicalStartOfLine):
2878 (WebCore::logicalEndOfLine):
2880 2011-01-25 Yael Aharon <yael.aharon@nokia.com>
2882 Unreviewed build fix.
2883 After r76466, efsrv.lib is used unconditionally.
2884 Don't guard it with ENABLE_NETSCAPE_PLUGIN_API.
2888 2011-01-24 Zhenyao Mo <zmo@google.com>
2890 Reviewed by Kenneth Russell.
2892 Style cleanup for WebGLRenderingContext
2893 https://bugs.webkit.org/show_bug.cgi?id=52352
2895 * html/canvas/WebGLBuffer.cpp:
2896 * html/canvas/WebGLBuffer.h:
2897 * html/canvas/WebGLObject.cpp:
2898 * html/canvas/WebGLProgram.cpp:
2899 * html/canvas/WebGLRenderbuffer.cpp:
2900 * html/canvas/WebGLRenderingContext.cpp:
2901 (WebCore::WebGLRenderingContext::create):
2902 (WebCore::WebGLRenderingContext::blendFunc):
2903 (WebCore::WebGLRenderingContext::createShader):
2904 (WebCore::WebGLRenderingContext::deleteBuffer):
2905 (WebCore::WebGLRenderingContext::deleteShader):
2906 (WebCore::WebGLRenderingContext::deleteTexture):
2907 (WebCore::WebGLRenderingContext::disableVertexAttribArray):
2908 (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
2909 (WebCore::WebGLRenderingContext::validateRenderingState):
2910 (WebCore::WebGLRenderingContext::enableVertexAttribArray):
2911 (WebCore::WebGLRenderingContext::getUniform):
2912 (WebCore::WebGLRenderingContext::detachAndRemoveAllObjects):
2913 * html/canvas/WebGLRenderingContext.h:
2914 * html/canvas/WebGLShader.cpp:
2915 * html/canvas/WebGLTexture.cpp:
2916 * html/canvas/WebGLUniformLocation.cpp:
2917 * html/canvas/WebGLUniformLocation.h:
2919 2011-01-24 Chris Marrin <cmarrin@apple.com>
2921 Reviewed by Eric Seidel.
2923 Change ENABLE_3D_CANVAS to ENABLE_WEBGL
2924 https://bugs.webkit.org/show_bug.cgi?id=53041
2926 * Configurations/FeatureDefines.xcconfig:
2927 * DerivedSources.cpp:
2930 * bindings/generic/RuntimeEnabledFeatures.h:
2931 * bindings/js/JSArrayBufferCustom.cpp:
2932 * bindings/js/JSCanvasRenderingContextCustom.cpp:
2934 * bindings/js/JSDOMWindowCustom.cpp:
2935 * bindings/js/JSDataViewCustom.cpp:
2936 * bindings/js/JSDocumentCustom.cpp:
2937 * bindings/js/JSFloat32ArrayCustom.cpp:
2938 * bindings/js/JSHTMLCanvasElementCustom.cpp:
2939 (WebCore::JSHTMLCanvasElement::getContext):
2940 * bindings/js/JSInt16ArrayCustom.cpp:
2941 * bindings/js/JSInt32ArrayCustom.cpp:
2942 * bindings/js/JSInt8ArrayCustom.cpp:
2943 * bindings/js/JSUint16ArrayCustom.cpp:
2944 * bindings/js/JSUint32ArrayCustom.cpp:
2945 * bindings/js/JSUint8ArrayCustom.cpp:
2946 * bindings/js/JSWebGLRenderingContextCustom.cpp:
2947 * bindings/js/JSXMLHttpRequestCustom.cpp:
2948 (WebCore::JSXMLHttpRequest::markChildren):
2949 (WebCore::JSXMLHttpRequest::send):
2950 (WebCore::JSXMLHttpRequest::response):
2951 * bindings/v8/custom/V8ArrayBufferCustom.cpp:
2952 * bindings/v8/custom/V8ArrayBufferViewCustom.h:
2953 * bindings/v8/custom/V8DataViewCustom.cpp:
2954 * bindings/v8/custom/V8DocumentCustom.cpp:
2955 (WebCore::V8Document::getCSSCanvasContextCallback):
2956 * bindings/v8/custom/V8Float32ArrayCustom.cpp:
2957 * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2958 (WebCore::V8HTMLCanvasElement::getContextCallback):
2959 * bindings/v8/custom/V8Int16ArrayCustom.cpp:
2960 * bindings/v8/custom/V8Int32ArrayCustom.cpp:
2961 * bindings/v8/custom/V8Int8ArrayCustom.cpp:
2962 * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
2963 * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
2964 * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
2965 * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
2966 * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2967 (WebCore::V8XMLHttpRequest::responseAccessorGetter):
2968 (WebCore::V8XMLHttpRequest::sendCallback):
2970 * html/HTMLCanvasElement.cpp:
2971 (WebCore::HTMLCanvasElement::getContext):
2972 (WebCore::HTMLCanvasElement::reset):
2973 * html/HTMLCanvasElement.h:
2974 * html/canvas/ArrayBuffer.cpp:
2975 * html/canvas/ArrayBuffer.idl:
2976 * html/canvas/ArrayBufferView.cpp:
2977 * html/canvas/ArrayBufferView.idl:
2978 * html/canvas/DataView.cpp:
2979 * html/canvas/DataView.idl:
2980 * html/canvas/Float32Array.cpp:
2981 * html/canvas/Float32Array.idl:
2982 * html/canvas/Int16Array.cpp:
2983 * html/canvas/Int16Array.idl:
2984 * html/canvas/Int32Array.cpp:
2985 * html/canvas/Int32Array.idl:
2986 * html/canvas/Int8Array.cpp:
2987 * html/canvas/Int8Array.idl:
2988 * html/canvas/OESStandardDerivatives.cpp:
2989 * html/canvas/OESStandardDerivatives.idl:
2990 * html/canvas/OESTextureFloat.cpp:
2991 * html/canvas/OESTextureFloat.idl:
2992 * html/canvas/Uint16Array.cpp:
2993 * html/canvas/Uint16Array.idl:
2994 * html/canvas/Uint32Array.cpp:
2995 * html/canvas/Uint32Array.idl:
2996 * html/canvas/Uint8Array.cpp:
2997 * html/canvas/Uint8Array.idl:
2998 * html/canvas/WebGLActiveInfo.idl:
2999 * html/canvas/WebGLBuffer.cpp:
3000 * html/canvas/WebGLBuffer.idl:
3001 * html/canvas/WebGLContextAttributes.cpp:
3002 * html/canvas/WebGLContextAttributes.idl:
3003 * html/canvas/WebGLContextEvent.idl:
3004 * html/canvas/WebGLExtension.cpp:
3005 * html/canvas/WebGLFramebuffer.cpp:
3006 * html/canvas/WebGLFramebuffer.idl:
3007 * html/canvas/WebGLGetInfo.cpp:
3008 * html/canvas/WebGLObject.cpp:
3009 * html/canvas/WebGLProgram.cpp:
3010 * html/canvas/WebGLProgram.idl:
3011 * html/canvas/WebGLRenderbuffer.cpp:
3012 * html/canvas/WebGLRenderbuffer.idl:
3013 * html/canvas/WebGLRenderingContext.cpp:
3014 * html/canvas/WebGLRenderingContext.idl:
3015 * html/canvas/WebGLShader.cpp:
3016 * html/canvas/WebGLShader.idl:
3017 * html/canvas/WebGLTexture.cpp:
3018 * html/canvas/WebGLTexture.idl:
3019 * html/canvas/WebGLUniformLocation.cpp:
3020 * html/canvas/WebGLUniformLocation.idl:
3021 * html/canvas/WebKitLoseContext.cpp:
3022 * html/canvas/WebKitLoseContext.idl:
3023 * page/DOMWindow.idl:
3024 * platform/graphics/ANGLEWebKitBridge.cpp:
3025 * platform/graphics/GraphicsContext3D.cpp:
3026 * platform/graphics/cg/GraphicsContext3DCG.cpp:
3027 * platform/graphics/gpu/DrawingBuffer.cpp:
3028 * platform/graphics/gpu/mac/DrawingBufferMac.mm:
3029 * platform/graphics/mac/GraphicsContext3DMac.mm:
3030 * platform/graphics/mac/WebGLLayer.mm:
3031 * platform/graphics/opengl/Extensions3DOpenGL.cpp:
3032 * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
3033 * platform/graphics/qt/Extensions3DQt.cpp:
3034 * platform/graphics/qt/GraphicsContext3DQt.cpp:
3035 * platform/graphics/qt/GraphicsLayerQt.cpp:
3036 (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl):
3037 (WebCore::GraphicsLayerQtImpl::paint):
3038 (WebCore::GraphicsLayerQtImpl::flushChanges):
3039 * platform/graphics/qt/GraphicsLayerQt.h:
3040 * platform/graphics/skia/GraphicsContext3DSkia.cpp:
3041 * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
3042 * rendering/RenderLayerBacking.cpp:
3043 (WebCore::isAcceleratedCanvas):
3044 (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3045 (WebCore::RenderLayerBacking::containsPaintedContent):
3046 (WebCore::RenderLayerBacking::contentChanged):
3047 * webaudio/AudioBuffer.cpp:
3048 * webaudio/AudioBuffer.idl:
3049 * webaudio/RealtimeAnalyser.cpp:
3050 * webaudio/RealtimeAnalyser.h:
3051 * webaudio/RealtimeAnalyserNode.h:
3052 * webaudio/RealtimeAnalyserNode.idl:
3053 * xml/XMLHttpRequest.cpp:
3054 (WebCore::XMLHttpRequest::setResponseType):
3055 (WebCore::XMLHttpRequest::clearResponse):
3056 (WebCore::XMLHttpRequest::didReceiveData):
3057 * xml/XMLHttpRequest.h:
3059 2011-01-25 Mikhail Naganov <mnaganov@chromium.org>
3061 Reviewed by Pavel Feldman.
3063 Web Inspector: [Chromium] Prepare for landing of detailed heap snapshots.
3065 - Introduce Preferences.detailedHeapProfiles flag for controlling
3066 querying of detailed heap snapshots.
3067 - Add boilerplate code for the new view.
3068 - Factor out common code.
3070 https://bugs.webkit.org/show_bug.cgi?id=52624
3073 * WebCore.vcproj/WebCore.vcproj:
3074 * bindings/js/ScriptProfiler.h:
3075 (WebCore::ScriptProfiler::HeapSnapshotControl::~HeapSnapshotControl):
3076 (WebCore::ScriptProfiler::takeHeapSnapshot):
3077 * bindings/v8/ScriptProfiler.cpp:
3078 (WebCore::ScriptProfiler::takeHeapSnapshot):
3079 * bindings/v8/ScriptProfiler.h:
3080 (WebCore::ScriptProfiler::HeapSnapshotControl::~HeapSnapshotControl):
3081 * inspector/Inspector.idl:
3082 * inspector/InspectorProfilerAgent.cpp:
3083 (WebCore::InspectorProfilerAgent::takeHeapSnapshot):
3084 * inspector/InspectorProfilerAgent.h:
3085 * inspector/front-end/DetailedHeapshotView.js: Added.
3086 (WebInspector.DetailedHeapshotView):
3087 (WebInspector.DetailedHeapshotView.prototype.get statusBarItems):
3088 (WebInspector.DetailedHeapshotView.prototype.get profile):
3089 (WebInspector.DetailedHeapshotView.prototype.set profile):
3090 (WebInspector.DetailedHeapshotView.prototype.show):
3091 (WebInspector.DetailedHeapshotView.prototype.hide):
3092 (WebInspector.DetailedHeapshotProfileType):
3093 (WebInspector.DetailedHeapshotProfileType.prototype.get buttonTooltip):
3094 (WebInspector.DetailedHeapshotProfileType.prototype.get buttonStyle):
3095 (WebInspector.DetailedHeapshotProfileType.prototype.buttonClicked):
3096 (WebInspector.DetailedHeapshotProfileType.prototype.get welcomeMessage):
3097 (WebInspector.DetailedHeapshotProfileType.prototype.createSidebarTreeElementForProfile):
3098 (WebInspector.DetailedHeapshotProfileType.prototype.createView):
3099 * inspector/front-end/HeapSnapshot.js: Added.
3100 (WebInspector.HeapSnapshotEdgesIterator):
3101 (WebInspector.HeapSnapshotEdgesIterator.prototype.get done):
3102 (WebInspector.HeapSnapshotEdgesIterator.prototype.get isElement):
3103 (WebInspector.HeapSnapshotEdgesIterator.prototype.get isHidden):
3104 (WebInspector.HeapSnapshotEdgesIterator.prototype.get name):
3105 (WebInspector.HeapSnapshotEdgesIterator.prototype.next):
3106 (WebInspector.HeapSnapshotEdgesIterator.prototype.get node):
3107 (WebInspector.HeapSnapshotEdgesIterator.prototype.get nodeIndex):
3108 (WebInspector.HeapSnapshotEdgesIterator.prototype._getNameOrIndex):
3109 (WebInspector.HeapSnapshotEdgesIterator.prototype._getType):
3110 (WebInspector.HeapSnapshotNodeWrapper):
3111 (WebInspector.HeapSnapshotNodeWrapper.prototype.get edges):
3112 (WebInspector.HeapSnapshotNodeWrapper.prototype.get edgesCount):
3113 (WebInspector.HeapSnapshotNodeWrapper.prototype.get instancesCount):
3114 (WebInspector.HeapSnapshotNodeWrapper.prototype.get isHidden):
3115 (WebInspector.HeapSnapshotNodeWrapper.prototype.get name):
3116 (WebInspector.HeapSnapshotNodeWrapper.prototype.get selfSize):
3117 (WebInspector.HeapSnapshotNodeWrapper.prototype._getName):
3118 (WebInspector.HeapSnapshotNodeWrapper.prototype._getEdges):
3119 (WebInspector.HeapSnapshotNodeWrapper.prototype._getType):
3120 (WebInspector.HeapSnapshot):
3121 (WebInspector.HeapSnapshot.prototype._init):
3122 (WebInspector.HeapSnapshot.prototype.get rootEdges):
3123 * inspector/front-end/HeapSnapshotView.js:
3124 (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
3125 * inspector/front-end/ProfilesPanel.js:
3126 (WebInspector.ProfilesPanel.prototype._setRecordingProfile):
3127 (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
3128 (WebInspector.ProfilerDispatcher.prototype.setRecordingProfile):
3129 (WebInspector.ProfilerDispatcher.prototype.reportHeapSnapshotProgress):
3130 * inspector/front-end/Settings.js:
3131 * inspector/front-end/WebKit.qrc:
3132 * inspector/front-end/inspector.html:
3133 * inspector/front-end/inspector.js:
3134 (WebInspector._createPanels):
3136 2011-01-25 Yury Semikhatsky <yurys@chromium.org>
3138 Reviewed by Pavel Feldman.
3140 Web Inspector: remove "attached" state related methods from InspectorAgent
3141 https://bugs.webkit.org/show_bug.cgi?id=53086
3144 * inspector/InspectorAgent.cpp:
3145 * inspector/InspectorAgent.h:
3146 * inspector/InspectorFrontendClientLocal.cpp:
3147 (WebCore::InspectorFrontendClientLocal::changeAttachedWindowHeight):
3148 (WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight):
3149 * inspector/InspectorSettings.cpp:
3150 (WebCore::InspectorSettings::InspectorSettings):
3151 * inspector/InspectorSettings.h:
3153 2011-01-25 Qi Zhang <qi.2.zhang@nokia.com>
3155 Reviewed by Laszlo Gombos.
3157 [Symbian] RVCT fails to compile [U|I]nt[8|16|32]Array.h
3158 https://bugs.webkit.org/show_bug.cgi?id=51873
3160 Replace the using declaration, because it doesn't compile on RVCT, and WINSCW has the same issue.
3161 No new functionality so no new tests.
3163 * html/canvas/Int32Array.h:
3164 (WebCore::Int32Array::set):
3165 * html/canvas/Int8Array.h:
3166 (WebCore::Int8Array::set):
3167 * html/canvas/Uint16Array.h:
3168 (WebCore::Uint16Array::set):
3169 * html/canvas/Uint32Array.h:
3170 (WebCore::Uint32Array::set):
3171 * html/canvas/Uint8Array.h:
3172 (WebCore::Uint8Array::set):
3174 2011-01-25 Zoltan Herczeg <zherczeg@webkit.org>
3176 Reviewed by Dirk Schulze.
3178 Repaint SVG elements with filter instead of relayout where possible
3179 https://bugs.webkit.org/show_bug.cgi?id=52200
3181 This patch allows repainting of filters, when their
3182 attribute changes does not require relayout.
3184 Existing dynamic-update tests cover this feature.
3186 * platform/graphics/filters/FilterEffect.cpp:
3187 (WebCore::FilterEffect::clearResult): Clearing the currently stored image
3189 * platform/graphics/filters/FilterEffect.h:
3190 * rendering/RenderObject.h:
3191 (WebCore::RenderObject::isSVGResourceFilter): Not only the filter primitives,
3192 but filters should also be detected to allow safe testing and casting.
3193 * rendering/svg/RenderSVGResourceFilter.cpp:
3194 (WebCore::RenderSVGResourceFilter::buildPrimitives): Passing the renderer.
3195 (WebCore::RenderSVGResourceFilter::applyResource):
3196 determineFilterPrimitiveSubregion does not require the filter anymore.
3197 (WebCore::RenderSVGResourceFilter::postApplyResource): Repaint
3198 if lastEffect->hasResult() is false.
3199 (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
3200 Searching for all FilterEffects, whose created by the current FilterElement,
3201 and clearing all resulting images depending on those FilterEffects.
3202 * rendering/svg/RenderSVGResourceFilter.h:
3203 (WebCore::RenderSVGResourceFilter::isSVGResourceFilter):
3204 * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
3205 (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
3206 The filter argument is unnecessary anymore. But is is still kept as a static
3207 member, since the primitive renderer still does not know about the
3208 FilterEffect objects.
3209 * rendering/svg/RenderSVGResourceFilterPrimitive.h:
3210 (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive):
3211 (WebCore::RenderSVGResourceFilterPrimitive::primitiveAttributeChanged):
3212 Calls RenderSVGResourceFilter::primitiveAttributeChanged.
3213 * svg/SVGFEDiffuseLightingElement.cpp:
3214 (WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute):
3215 Setting the new attribute value for each FilterEffect.
3216 (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
3217 * svg/SVGFEDiffuseLightingElement.h:
3218 Calling primitiveAttributeChanged.
3219 * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3220 (WebCore::SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute):
3221 This function will be removed when all FilterElement implements
3222 their setFilterEffectAttribute
3223 * svg/SVGFilterPrimitiveStandardAttributes.h:
3224 (WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged):
3225 * svg/graphics/filters/SVGFilterBuilder.cpp:
3226 (WebCore::SVGFilterBuilder::appendEffectToEffectReferences): The
3227 renderers are assigned to the filter effects.
3228 (WebCore::SVGFilterBuilder::clearEffects):
3229 (WebCore::SVGFilterBuilder::clearResultsRecursive): Recursively
3230 clearing the result images for those filters, whose depend on
3231 the starting filter.
3232 * svg/graphics/filters/SVGFilterBuilder.h:
3233 (WebCore::SVGFilterBuilder::effectReferences): 'get' is unnecessary
3234 (WebCore::SVGFilterBuilder::effectByRenderer): returns the
3235 FilterEffect belongs to this RenderObject.
3237 2011-01-25 Dirk Schulze <krit@webkit.org>
3239 Reviewed by Nikolas Zimmermann.
3241 SVG is missing to-animation support for Path
3242 https://bugs.webkit.org/show_bug.cgi?id=52982
3244 SVG was missing 'to' animation support for SVG paths. Even the fallback to discrete
3245 animation did not work and an assert was thrown, because of the missing m_fromPath.
3246 This also influences a test of the W3C test suite. Subtest 2 of animate-elem-83-t.svg passes now.
3248 Test: svg/animations/animate-path-to-animation.html
3250 * svg/SVGAnimateElement.cpp:
3251 (WebCore::SVGAnimateElement::calculateAnimatedValue): Take the value of the last SVGAnimateElement for
3252 m_fromPath, since 'to' animations are accumulative.
3253 (WebCore::SVGAnimateElement::calculateFromAndToValues): Added support for 'to' animations.
3254 (WebCore::SVGAnimateElement::resetToBaseValue): Set m_animatedPath on the first animation element to baseVal.
3255 * svg/SVGPathByteStream.h:
3256 (WebCore::SVGPathByteStream::copySVGPathByteStream): Return copy of current byte stream.
3258 2011-01-25 Pavel Feldman <pfeldman@chromium.org>
3260 Reviewed by Yury Semikhatsky.
3262 Web Inspector: bind resources to URLs upon adding them into the tree.
3263 https://bugs.webkit.org/show_bug.cgi?id=53013
3265 * inspector/front-end/AuditRules.js:
3266 (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.selectorsCallback):
3267 * inspector/front-end/CSSStyleModel.js:
3268 (WebInspector.CSSStyleModel.prototype._styleSheetChanged.callback):
3269 (WebInspector.CSSStyleModel.prototype._styleSheetChanged):
3270 * inspector/front-end/DebuggerModel.js:
3271 (WebInspector.DebuggerModel.prototype._parsedScriptSource):
3272 * inspector/front-end/NetworkManager.js:
3273 (WebInspector.NetworkManager.prototype._processCachedResources):
3274 (WebInspector.NetworkManager.prototype.inflightResourceForURL):
3275 (WebInspector.NetworkDispatcher):
3276 (WebInspector.NetworkDispatcher.prototype.willSendRequest):
3277 (WebInspector.NetworkDispatcher.prototype.markResourceAsCached):
3278 (WebInspector.NetworkDispatcher.prototype.didReceiveResponse):
3279 (WebInspector.NetworkDispatcher.prototype.didReceiveContentLength):
3280 (WebInspector.NetworkDispatcher.prototype.didFinishLoading):
3281 (WebInspector.NetworkDispatcher.prototype.didFailLoading):
3282 (WebInspector.NetworkDispatcher.prototype.willSendWebSocketHandshakeRequest):
3283 (WebInspector.NetworkDispatcher.prototype.didReceiveWebSocketHandshakeResponse):
3284 (WebInspector.NetworkDispatcher.prototype.didCloseWebSocket):
3285 (WebInspector.NetworkDispatcher.prototype._appendRedirect):
3286 (WebInspector.NetworkDispatcher.prototype._startResource):
3287 (WebInspector.NetworkDispatcher.prototype._finishResource):
3288 (WebInspector.NetworkDispatcher.prototype._createResource):
3289 * inspector/front-end/ResourceTreeModel.js:
3290 (WebInspector.ResourceTreeModel.prototype.addResourceToFrame):
3291 (WebInspector.ResourceTreeModel.prototype._bindResourceURL):
3292 (WebInspector.ResourceTreeModel.prototype._clearResources):
3293 (WebInspector.ResourceTreeModel.prototype._unbindResourceURL):
3294 * inspector/front-end/ResourcesPanel.js:
3295 (WebInspector.ResourcesPanel.prototype.canShowSourceLine):
3296 (WebInspector.ResourcesPanel.prototype.showSourceLine):
3297 * inspector/front-end/ScriptsPanel.js:
3298 (WebInspector.ScriptsPanel.prototype._parsedScriptSource):
3299 (WebInspector.ScriptsPanel.prototype._addScript):
3301 2011-01-25 Nikolas Zimmermann <nzimmermann@rim.com>
3303 Reviewed by Dirk Schulze.
3305 Introduce FontMetrics abstraction
3306 https://bugs.webkit.org/show_bug.cgi?id=51456
3308 Use accurate floating-point metrics for SVG Font calculations instead of casting float -> integer.
3309 This hopefully fixes differences between 32/64 bit bots.
3311 Needs new layout test results for several platforms, which need to be taken from the bots landing afterwards.
3313 * platform/graphics/SimpleFontData.cpp:
3314 (WebCore::SimpleFontData::SimpleFontData):
3315 (WebCore::SimpleFontData::initCharWidths):
3317 2011-01-24 Pavel Podivilov <podivilov@chromium.org>
3319 Reviewed by Pavel Feldman.
3321 Web Inspector: debugger and browser debugger agents should manage sticky breakpoints independently.
3322 https://bugs.webkit.org/show_bug.cgi?id=52999
3324 * inspector/Inspector.idl:
3325 * inspector/InspectorAgent.cpp:
3326 (WebCore::InspectorAgent::didCommitLoad):
3327 (WebCore::InspectorAgent::enableDebugger):
3328 (WebCore::InspectorAgent::inspectedURLWithoutFragment):
3329 * inspector/InspectorAgent.h:
3330 * inspector/InspectorBrowserDebuggerAgent.cpp:
3331 (WebCore::InspectorBrowserDebuggerAgent::setAllBrowserBreakpoints):
3332 (WebCore::InspectorBrowserDebuggerAgent::inspectedURLChanged):
3333 (WebCore::InspectorBrowserDebuggerAgent::restoreStickyBreakpoint):
3334 * inspector/InspectorBrowserDebuggerAgent.h:
3335 * inspector/InspectorDebuggerAgent.cpp:
3336 (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
3337 (WebCore::InspectorDebuggerAgent::setAllJavaScriptBreakpoints):
3338 (WebCore::InspectorDebuggerAgent::inspectedURLChanged):
3339 (WebCore::InspectorDebuggerAgent::restoreBreakpoints):
3340 * inspector/InspectorDebuggerAgent.h:
3341 * inspector/InspectorState.cpp:
3342 (WebCore::InspectorState::InspectorState):
3343 * inspector/InspectorState.h:
3344 * inspector/front-end/BreakpointManager.js:
3345 (WebInspector.BreakpointManager):
3346 (WebInspector.BreakpointManager.prototype._projectChanged):
3347 (WebInspector.BreakpointManager.prototype._saveBreakpoints):
3348 (WebInspector.BreakpointManager.prototype._pushBreakpointsToBackend):
3350 2011-01-25 Carlos Garcia Campos <cgarcia@igalia.com>
3352 Reviewed by Martin Robinson.
3354 [GTK] Crash in some pages containing flash
3355 https://bugs.webkit.org/show_bug.cgi?id=53016
3357 Flash plugin can produce X errors that are handled by the GDK X
3358 error handler, which exits the process. Since we don't want to
3359 crash due to flash bugs, we install a custom error handler to show
3360 a warning when a X error happens without aborting.
3362 * plugins/gtk/PluginPackageGtk.cpp:
3363 (WebCore::webkitgtkXError):
3364 (WebCore::PluginPackage::load):
3366 2011-01-25 Carlos Garcia Campos <cgarcia@igalia.com>
3368 Reviewed by Martin Robinson.
3370 [GTK] Implement spin buttons in RenderThemeGtk
3371 https://bugs.webkit.org/show_bug.cgi?id=51454
3373 Paint inner up/down buttons for spin button elements when building
3376 Test results will land with the GTK+ 2.x version of this patch.
3378 * platform/gtk/RenderThemeGtk.h:
3379 * platform/gtk/RenderThemeGtk2.cpp:
3380 (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
3381 (WebCore::RenderThemeGtk::paintInnerSpinButton):
3382 * platform/gtk/RenderThemeGtk3.cpp:
3383 (WebCore::spinButtonArrowSize):
3384 (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
3385 (WebCore::paintSpinArrowButton):
3386 (WebCore::RenderThemeGtk::paintInnerSpinButton):
3388 2011-01-24 Mihai Parparita <mihaip@chromium.org>
3390 Unreviewed. Missed move of one m_deleted use to be outside NDEBUG block
3393 * loader/cache/CachedResource.cpp:
3394 (WebCore::CachedResource::~CachedResource):
3396 2011-01-24 Mihai Parparita <mihaip@chromium.org>
3398 Reviewed by Tony Chang.
3400 Add runtime checks for invariants in memory cache
3401 https://bugs.webkit.org/show_bug.cgi?id=53059
3403 To help track down bug 53045, add some CRASH calls in addition to
3404 ASSERTs, so that we can track down failures in reliability bots.
3406 Just some checks, no new tests necessary.
3408 * css/CSSImageValue.cpp:
3409 (WebCore::CSSImageValue::cachedImage):
3410 * loader/cache/CachedResource.h:
3411 * loader/cache/CachedResource.cpp:
3412 (WebCore::CachedResource::~CachedResource):
3414 2011-01-24 Simon Fraser <simon.fraser@apple.com>
3416 Reviewed by Dan Bernstein.
3418 Leaking CSSRuleDataList objects
3419 https://bugs.webkit.org/show_bug.cgi?id=53062
3421 Fix leaked CSSRuleDataLists added to the m_pseudoRules hash.
3423 * css/CSSStyleSelector.cpp:
3424 (WebCore::CSSRuleSet::~CSSRuleSet):
3426 2011-01-24 Simon Fraser <simon.fraser@apple.com>
3428 Reviewed by Eric Seidel.
3430 Refcount Images used in rendering code
3431 https://bugs.webkit.org/show_bug.cgi?id=52701
3433 Change StyleImage::image(RenderObject*, const IntSize&) and
3434 CSSImageGeneratorValue::image(RenderObject*, const IntSize&) to
3435 return PassRefPtr<Image>, and adjust other code accordingly.
3437 This allows us to return one-time images, for example for CSS gradients
3438 whose appearance may change depending on factors other than the renderer
3439 and the destination size.
3441 * css/CSSCanvasValue.cpp:
3442 (WebCore::CSSCanvasValue::image):
3443 * css/CSSCanvasValue.h:
3444 * css/CSSGradientValue.cpp:
3445 (WebCore::CSSGradientValue::image):
3446 * css/CSSGradientValue.h:
3447 * css/CSSImageGeneratorValue.h:
3448 * rendering/RenderBoxModelObject.cpp:
3449 (WebCore::RenderBoxModelObject::paintFillLayerExtended):
3450 (WebCore::RenderBoxModelObject::paintNinePieceImage):
3451 * rendering/RenderImage.cpp:
3452 (WebCore::RenderImage::paintReplaced):
3453 (WebCore::RenderImage::paintIntoRect):
3454 * rendering/RenderImageResource.h:
3455 (WebCore::RenderImageResource::image):
3456 * rendering/RenderImageResourceStyleImage.h:
3457 (WebCore::RenderImageResourceStyleImage::image):
3458 * rendering/RenderListMarker.cpp:
3459 (WebCore::RenderListMarker::paint):
3460 * rendering/style/StyleCachedImage.cpp:
3461 (WebCore::StyleCachedImage::image):
3462 * rendering/style/StyleCachedImage.h:
3463 * rendering/style/StyleGeneratedImage.cpp:
3464 (WebCore::StyleGeneratedImage::image):
3465 * rendering/style/StyleGeneratedImage.h:
3466 * rendering/style/StyleImage.h:
3467 * rendering/style/StylePendingImage.h:
3468 (WebCore::StylePendingImage::image):
3469 * rendering/svg/RenderSVGImage.cpp:
3470 (WebCore::RenderSVGImage::paint):
3472 2011-01-24 Tony Chang <tony@chromium.org>
3474 Unreviewed, round ascent and descent to match old code.
3476 * platform/graphics/chromium/SimpleFontDataLinux.cpp:
3477 (WebCore::SimpleFontData::platformInit):
3479 2011-01-24 Simon Fraser <simon.fraser@apple.com>
3481 Reviewed by Chris Marrin.
3483 perspective() transform function should take lengths
3484 https://bugs.webkit.org/show_bug.cgi?id=52683
3486 The argument to the perspective() transform function should
3487 be a Length, rather than a bare number. Bare numbers are still
3488 accepted (and treated as px), but this behavior is deprecated.
3490 Test: animations/3d/transform-perspective.html
3491 transforms/3d/general/3dtransform-values.html
3493 * css/CSSParser.cpp:
3494 (WebCore::CSSParser::parseTransform): Check the units for the perspective()
3495 function. Allow bare numbers for backwards compatibility.
3496 * css/CSSStyleSelector.cpp:
3497 (WebCore::CSSStyleSelector::createTransformOperations): Convert
3499 * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
3500 (WebCore::clampToPostiveInteger): Helper.
3501 (WebCore::PerspectiveTransformOperation::blend): Blend via Lengths.
3502 * platform/graphics/transforms/PerspectiveTransformOperation.h:
3503 (WebCore::PerspectiveTransformOperation::create): double -> Length.
3504 (WebCore::PerspectiveTransformOperation::perspective): Ditto.
3505 (WebCore::PerspectiveTransformOperation::isIdentity): Ditto.
3506 (WebCore::PerspectiveTransformOperation::apply): Ditto.
3507 (WebCore::PerspectiveTransformOperation::PerspectiveTransformOperation): Assert
3508 that the Length is a fixed type.
3510 2011-01-24 Kent Tamura <tkent@chromium.org>
3512 Reviewed by Dimitri Glazkov.
3514 [Windows] Textfield <input>s have different widths.
3515 https://bugs.webkit.org/show_bug.cgi?id=48405
3517 - Apply the padding override for type=text to other textfield types too.