[EFL] Set a theme for EFL WebKit2 unit test fixture
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-07-18  Varun Jain  <varunjain@chromium.org>
2
3         [chromium] Drag image for image elements should be scaled with device scale factor.
4         https://bugs.webkit.org/show_bug.cgi?id=89688
5
6         Reviewed by Adam Barth.
7
8         Modified ManualTest: ManualTests/chromium/drag-image-accounts-for-device-scale.html
9
10         * page/Frame.cpp:
11         (WebCore::Frame::nodeImage):
12         (WebCore::Frame::dragImageForSelection):
13         * platform/chromium/DragImageChromiumSkia.cpp:
14         (WebCore::dragImageSize):
15         (WebCore::deleteDragImage):
16         (WebCore::scaleDragImage):
17         (WebCore::dissolveDragImageToFraction):
18         (WebCore::createDragImageFromImage):
19         * platform/chromium/DragImageRef.h:
20         (DragImageChromium):
21         (WebCore):
22         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
23         (BitmapImageSingleFrameSkia):
24         * platform/graphics/skia/ImageBufferSkia.cpp:
25         (WebCore::ImageBuffer::ImageBuffer):
26         (WebCore::ImageBuffer::copyImage):
27         * platform/graphics/skia/ImageSkia.cpp:
28         (WebCore::BitmapImageSingleFrameSkia::BitmapImageSingleFrameSkia):
29         (WebCore::BitmapImageSingleFrameSkia::create):
30         * platform/graphics/skia/NativeImageSkia.cpp:
31         (WebCore::NativeImageSkia::NativeImageSkia):
32         * platform/graphics/skia/NativeImageSkia.h:
33         (NativeImageSkia):
34         (WebCore::NativeImageSkia::resolutionScale):
35
36 2012-07-18  Yong Li  <yoli@rim.com>
37
38         [BlackBerry] Move about: URL handling out of WebCore
39         https://bugs.webkit.org/show_bug.cgi?id=91541
40
41         Reviewed by Rob Buis.
42
43         Remove about URL handling from our NetworkJob.
44
45         * platform/network/blackberry/NetworkJob.cpp:
46         (WebCore::NetworkJob::NetworkJob):
47         (WebCore::NetworkJob::initialize):
48         (WebCore::NetworkJob::cancelJob):
49         (WebCore::NetworkJob::sendResponseIfNeeded):
50         * platform/network/blackberry/NetworkJob.h:
51         (NetworkJob):
52         * platform/network/blackberry/NetworkManager.cpp:
53         (WebCore::NetworkManager::startJob):
54
55 2012-07-18  Tony Chang  <tony@chromium.org>
56
57         Unreviewed, rolling out r122984.
58         http://trac.webkit.org/changeset/122984
59         https://bugs.webkit.org/show_bug.cgi?id=91171
60
61         Broken the shared build, need to export a SkData in skia
62
63         * platform/graphics/skia/GraphicsContextSkia.cpp:
64         (WebCore::GraphicsContext::setURLForRect):
65
66 2012-07-18  Rob Buis  <rbuis@rim.com>
67
68         Alignment crash in MIMESniffer
69         https://bugs.webkit.org/show_bug.cgi?id=89787
70
71         Reviewed by Yong Li.
72
73         PR 169064
74
75         Prevent ASSERT on unaligned data. Special-case handling of unaligned data
76         to maskedCompareSlowCase.
77
78         No test, too hard to reproduce.
79
80         * platform/network/MIMESniffing.cpp:
81         (std::maskedCompareSlowCase):
82         (std):
83         (std::maskedCompare):
84
85 2012-07-18  Steve VanDeBogart  <vandebo@chromium.org>
86
87         Chrome/Skia: PDF print output does not have clickable links.
88         https://bugs.webkit.org/show_bug.cgi?id=91171
89
90         Reviewed by Stephen White.
91
92         Connect GraphicsContext::setURLForRect to Skia's new API for annotations.
93
94         Printing is not generally testable.
95
96         * platform/graphics/skia/GraphicsContextSkia.cpp:
97         (WebCore::GraphicsContext::setURLForRect):
98
99 2012-07-18  Philippe Normand  <pnormand@igalia.com>
100
101         [GStreamer] 0.11 build broken
102         https://bugs.webkit.org/show_bug.cgi?id=91629
103
104         Reviewed by Alexis Menard.
105
106         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
107         (webkitVideoSinkProposeAllocation): Pass null GstStructure to
108         gst_query_add_allocation_meta(). Our propose-allocation method
109         is simple enough to not need to set it.
110
111 2012-07-18  Chris Fleizach  <cfleizach@apple.com>
112
113         AX: <input type="submit"> unlabelled.
114         https://bugs.webkit.org/show_bug.cgi?id=91563
115
116         Reviewed by Adele Peterson.
117
118         Make sure the default value is returned if there is no other value specified.
119
120         Test: platform/mac/accessibility/submit-button-default-value.html
121
122         * accessibility/AccessibilityRenderObject.cpp:
123         (WebCore::AccessibilityRenderObject::title):
124
125 2012-07-17  Shawn Singh  <shawnsingh@chromium.org>
126
127         [chromium] Remove awkward anchorPoint usage that implicity affects layer position
128         https://bugs.webkit.org/show_bug.cgi?id=91472
129
130         Reviewed by Adrienne Walker.
131
132         Covered by existing layout tests and unit tests, several existing unit tests updated.
133
134         In GraphicsLayerChromium, anchorPoint() implicity affects
135         position(). Therefore, unit tests needed to remember to set
136         anchorPoint correctly when trying to position layers for
137         testing. However, it's easy to forget that initialization, and
138         probably shouldn't be necessary anyway since conceptually
139         anchorPoint does not affect layer position.
140
141         This patch removes the "actualPosition + anchorPoint" quirk in
142         GraphicsLayerChromium, so that this problem is avoided.
143
144         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
145         (WebCore::GraphicsLayerChromium::updateLayerPosition): No longer computes position + anchorPoint. Instead this is done in calcDrawTransformsInternal.
146         (WebCore::GraphicsLayerChromium::updateLayerSize): No longer affects computation of position.
147         (WebCore::GraphicsLayerChromium::updateAnchorPoint): No longer affects computation of position
148         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): Position is initialized to zero instead of relative to anchorPoint
149         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
150         (WebCore::calculateDrawTransformsInternal): explicitly use position + anchorPoint in this code, for both layer and replica.
151             Note that replicaLayer now uses its own anchorPoint, which seems to be more consistent with Safari behavior.
152
153 2012-07-18  Pavel Feldman  <pfeldman@chromium.org>
154
155         Web Inspector: [Regression] Save as file is missing in Network panel preview/response tabs.
156         https://bugs.webkit.org/show_bug.cgi?id=91625
157
158         Reviewed by Vsevolod Vlasov.
159
160         * inspector/front-end/HandlerRegistry.js:
161         * inspector/front-end/NetworkPanel.js:
162
163 2012-07-18  Dirk Schulze  <krit@webkit.org>
164
165         SVG CSS property types with <number> don't support exponents
166         https://bugs.webkit.org/show_bug.cgi?id=52542
167
168         Reviewed by Nikolas Zimmermann.
169
170         Parse numbers in SVG presentation attributes with SVG parser to support scientific notations.
171         The SVG parser is already well tested and has some extra checks for edge like protection from
172         overflow.
173         
174         The patch is based upon a patch of Bear Travis.
175
176         Test: svg/css/scientific-numbers.html
177
178         * css/CSSParser.cpp:
179         (WebCore::CSSParser::lex): Use SVG parser to parse numbers of SVG attributes.
180         * svg/SVGParserUtilities.cpp:
181         (WebCore::parseSVGNumber): Added accessor to call from CSSParser with double value.
182         (WebCore):
183         * svg/SVGParserUtilities.h:
184         (WebCore):
185
186
187 2012-07-18  Pavel Feldman  <pfeldman@chromium.org>
188
189         Web Inspector: beautify the paused in debugger message, make it configurable from the front-end.
190         https://bugs.webkit.org/show_bug.cgi?id=91628
191
192         Reviewed by Vsevolod Vlasov.
193
194         Made message smaller, using consistent font;
195         Made message configurable from the front-end.
196
197         * English.lproj/localizedStrings.js:
198         * inspector/DOMNodeHighlighter.cpp:
199         (WebCore::InspectorOverlay::InspectorOverlay):
200         (WebCore::InspectorOverlay::setPausedInDebuggerMessage):
201         (WebCore::InspectorOverlay::update):
202         (WebCore::InspectorOverlay::drawPausedInDebugger):
203         * inspector/DOMNodeHighlighter.h:
204         (InspectorOverlay):
205         * inspector/Inspector.json:
206         * inspector/InspectorDebuggerAgent.cpp:
207         (WebCore::InspectorDebuggerAgent::setOverlayMessage):
208         (WebCore):
209         (WebCore::InspectorDebuggerAgent::clear):
210         * inspector/InspectorDebuggerAgent.h:
211         (InspectorDebuggerAgent):
212         * inspector/PageDebuggerAgent.cpp:
213         (WebCore::PageDebuggerAgent::setOverlayMessage):
214         * inspector/PageDebuggerAgent.h:
215         (PageDebuggerAgent):
216         * inspector/front-end/DebuggerModel.js:
217         (WebInspector.DebuggerModel.prototype._setDebuggerPausedDetails):
218
219 2012-07-18  Douglas Stockwell  <dstockwell@chromium.org>
220
221         WebCore::StylePropertySet::addParsedProperties - crash
222         https://bugs.webkit.org/show_bug.cgi?id=91153
223
224         Reviewed by Andreas Kling.
225
226         WebKitCSSKeyframeRule::style exposed an immutable StylePropertySet.
227         Modified to create a mutable copy on demand.
228
229         Test: fast/css/css-keyframe-style-mutate-crash.html
230
231         * css/StyleResolver.cpp:
232         (WebCore::StyleResolver::collectMatchingRulesForList):
233         * css/WebKitCSSKeyframeRule.cpp:
234         (WebCore::StyleKeyframe::mutableProperties): Added, creates a mutable copy of properties as required.
235         (WebCore::WebKitCSSKeyframeRule::style):
236         * css/WebKitCSSKeyframeRule.h:
237         (WebCore::StyleKeyframe::properties): Made const, use mutableProperties to mutate.
238
239 2012-07-18  Huang Dongsung  <luxtella@company100.net>
240
241         [Texmap] Make TextureMapperLayer clip m_state.needsDisplayRect with the layerRect.
242         https://bugs.webkit.org/show_bug.cgi?id=91595
243
244         Reviewed by Noam Rosenthal.
245
246         Internal review by Kwang Yul Seo.
247
248         Currently, TextureMapperLayer creates an ImageBuffer as big as
249         m_state.needsDisplayRect if m_state.needsDispaly is false. The size of
250         m_state.needsDisplayRect can be bigger than the size of the layerRect, so we may
251         consume more memory than the size of the layerRect. It even can cause crash if
252         m_state.needsDisplayRect is too big.
253
254         No new tests, covered by existing tests.
255
256         * platform/graphics/texmap/TextureMapperLayer.cpp:
257         (WebCore::TextureMapperLayer::updateBackingStore):
258
259 2012-07-18  Jason Liu  <jason.liu@torchmobile.com.cn>
260
261         [BlackBerry] We should update the status in NetworkJob if there is a new one from libcurl.
262         https://bugs.webkit.org/show_bug.cgi?id=91475
263
264         Reviewed by Yong Li.
265
266         Libcurl sometimes sends multiple status messages, we need to keep the last 
267         one in NetworkJob.
268         We originally had the m_statusReceived check, then we found out that libcurl 
269         sometimes sent additional 401 codes and added the 401 exception to the check, 
270         and now we're removing the whole check(so we don't need the exception either).
271
272         RIM PR# 163172
273         Reviewed internally by Joe Mason.
274
275         No new tests. This is caused by libcurl's multiple status messages.
276         So we don't need to write a test case for webkit.
277
278         * platform/network/blackberry/NetworkJob.cpp:
279         (WebCore::NetworkJob::handleNotifyStatusReceived):
280
281 2012-07-18  Kevin Ellis  <kevers@chromium.org>
282
283         TOUCH_ADJUSTMENT is too aggressive when snapping to large elements.
284         https://bugs.webkit.org/show_bug.cgi?id=91262
285
286         Reviewed by Antonio Gomes.
287
288         Constrains the extent to which the touch point can be adjusted when
289         generating synthetic mouse events when TOUCH_ADJUSTEMNT is enabled.
290         Previously, the target position snapped to the center of the target
291         element, which can be far removed from the touch position when tapping
292         on or near a large element.  The refined strategy is to leave the
293         adjusted position unchanged if tapping within the element or to snap
294         to the center of the overlap region if the touch point lies outside the
295         bounds of the element, but the touch area and element bounds overlap.
296         For non-rectilineary bounds, a point lying outside the element boundary
297         is pulled towards the center of the element, by an amount limited by
298         the radius of the touch area.
299
300         Tests: touchadjustment/big-div.html
301                touchadjustment/rotated-node.html
302
303         * page/TouchAdjustment.cpp:
304         (WebCore::TouchAdjustment::contentsToWindow):
305         (TouchAdjustment):
306         (WebCore::TouchAdjustment::snapTo):
307         (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
308
309 2012-07-18  Sergey Rogulenko  <rogulenko@google.com>
310
311         Web Inspector: adding pause icon for JavaScript debugging
312         https://bugs.webkit.org/show_bug.cgi?id=90880
313
314         Reviewed by Pavel Feldman.
315
316         Refactored DOMNodeHighlighter into InspectorOverlay class and added a feature to show a "pause" screen when
317         the Javascript debugger is paused.
318
319         * inspector/DOMNodeHighlighter.cpp:
320         (WebCore::InspectorOverlay::InspectorOverlay):
321         (WebCore::InspectorOverlay::paint):
322         (WebCore::InspectorOverlay::drawOutline):
323         (WebCore::InspectorOverlay::getHighlight):
324         (WebCore::InspectorOverlay::setPausedInDebugger):
325         (WebCore::InspectorOverlay::hideHighlight):
326         (WebCore):
327         (WebCore::InspectorOverlay::highlightNode):
328         (WebCore::InspectorOverlay::setHighlightData):
329         (WebCore::InspectorOverlay::clearHighlightData):
330         (WebCore::InspectorOverlay::highlightedNode):
331         (WebCore::InspectorOverlay::update):
332         (WebCore::InspectorOverlay::drawHighlight):
333         (WebCore::InspectorOverlay::drawPausedInDebugger):
334         * inspector/DOMNodeHighlighter.h:
335         (WebCore):
336         (InspectorOverlay):
337         (WebCore::InspectorOverlay::create):
338         * inspector/InspectorController.cpp:
339         (WebCore::InspectorController::InspectorController):
340         (WebCore::InspectorController::drawHighlight):
341         (WebCore::InspectorController::getHighlight):
342         (WebCore::InspectorController::highlightedNode):
343         * inspector/InspectorController.h:
344         (WebCore):
345         (InspectorController):
346         * inspector/InspectorDOMAgent.cpp:
347         (WebCore::InspectorDOMAgent::InspectorDOMAgent):
348         (WebCore::InspectorDOMAgent::~InspectorDOMAgent):
349         (WebCore::InspectorDOMAgent::handleMousePress):
350         (WebCore::InspectorDOMAgent::mouseDidMoveOverElement):
351         (WebCore::InspectorDOMAgent::setSearchingForNode):
352         (WebCore::InspectorDOMAgent::setHighlightDataFromConfig):
353         (WebCore::InspectorDOMAgent::setInspectModeEnabled):
354         (WebCore::InspectorDOMAgent::highlightRect):
355         (WebCore::InspectorDOMAgent::highlightNode):
356         (WebCore::InspectorDOMAgent::highlightFrame):
357         (WebCore::InspectorDOMAgent::hideHighlight):
358         * inspector/InspectorDOMAgent.h:
359         (WebCore):
360         (WebCore::InspectorDOMAgent::create):
361         (InspectorDOMAgent):
362         * inspector/InspectorDebuggerAgent.h:
363         (InspectorDebuggerAgent):
364         * inspector/InspectorPageAgent.cpp:
365         (WebCore::InspectorPageAgent::create):
366         (WebCore::InspectorPageAgent::InspectorPageAgent):
367         (WebCore::InspectorPageAgent::didPaint):
368         * inspector/InspectorPageAgent.h:
369         (WebCore):
370         * inspector/PageDebuggerAgent.cpp:
371         (WebCore::PageDebuggerAgent::create):
372         (WebCore::PageDebuggerAgent::PageDebuggerAgent):
373         (WebCore::PageDebuggerAgent::disable):
374         (WebCore):
375         (WebCore::PageDebuggerAgent::didPause):
376         (WebCore::PageDebuggerAgent::didContinue):
377         * inspector/PageDebuggerAgent.h:
378         (WebCore):
379         (PageDebuggerAgent):
380
381 2012-07-17  Andrey Kosyakov  <caseq@chromium.org>
382
383         Web Inspector: intern strings when processing timeline records
384         https://bugs.webkit.org/show_bug.cgi?id=91531
385
386         Reviewed by Pavel Feldman.
387
388         - added StringPool that is capable of interning strings;
389         - used it in TimelineModel to process all incoming records;
390
391         * inspector/front-end/TimelineModel.js:
392         (WebInspector.TimelineModel):
393         (WebInspector.TimelineModel.prototype._addRecord):
394         (WebInspector.TimelineModel.prototype.reset):
395         * inspector/front-end/utilities.js:
396
397 2012-07-18  Scott Graham  <scottmg@chromium.org>
398
399         Use cl to preprocess IDL for Chromium Windows generate_supplemental_dependency
400         https://bugs.webkit.org/show_bug.cgi?id=91548
401
402         Reviewed by Kentaro Hara.
403
404         Use cl.exe as preprocessor for IDL files rather than cygwin gcc. Cuts
405         two minute execution time on Windows by a bit better than 50%.
406
407         No new tests.
408
409         * WebCore.gyp/WebCore.gyp:
410         * bindings/scripts/preprocessor.pm:
411         (applyPreprocessor):
412
413 2012-07-18  Pavel Feldman  <pfeldman@chromium.org>
414
415         Web Inspector: remove search replace from behind experiment, polish the behavior
416         https://bugs.webkit.org/show_bug.cgi?id=91519
417
418         Reviewed by Vsevolod Vlasov.
419
420         - This change makes replace loop with no boundary, removes the loop parameter
421           from jumpToNext/Previous;
422         - Lays out replace as a second row
423         - Fixes replace all with no search matches
424         - Splits Search and Search and Replace
425         - Introduces explicit Next / Previous buttons in the search mode
426         - Introduces editRange on the TextEditor so that it was preserving the undo stack
427           (we'll need to fix editor so that it does not require it).
428
429         * English.lproj/localizedStrings.js:
430         * inspector/front-end/ConsolePanel.js:
431         (WebInspector.ConsolePanel.prototype.performSearch):
432         (WebInspector.ConsolePanel.prototype.jumpToNextSearchResult):
433         (WebInspector.ConsolePanel.prototype.jumpToPreviousSearchResult):
434         * inspector/front-end/ElementsPanel.js:
435         (WebInspector.ElementsPanel.prototype.jumpToNextSearchResult):
436         (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
437         * inspector/front-end/ExtensionPanel.js:
438         (WebInspector.ExtensionPanel.prototype.performSearch):
439         (WebInspector.ExtensionPanel.prototype.jumpToNextSearchResult):
440         (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
441         * inspector/front-end/JavaScriptSourceFrame.js:
442         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
443         * inspector/front-end/NetworkPanel.js:
444         (WebInspector.NetworkLogView.prototype.jumpToPreviousSearchResult):
445         (WebInspector.NetworkLogView.prototype.jumpToNextSearchResult):
446         (WebInspector.NetworkPanel.prototype.jumpToPreviousSearchResult):
447         (WebInspector.NetworkPanel.prototype.jumpToNextSearchResult):
448         * inspector/front-end/Panel.js:
449         (WebInspector.Panel.prototype.performSearch):
450         (WebInspector.Panel.prototype.jumpToNextSearchResult):
451         (WebInspector.Panel.prototype.jumpToPreviousSearchResult):
452         * inspector/front-end/ProfilesPanel.js:
453         (WebInspector.ProfilesPanel.prototype.jumpToNextSearchResult):
454         (WebInspector.ProfilesPanel.prototype.jumpToPreviousSearchResult):
455         * inspector/front-end/ResourcesPanel.js:
456         (WebInspector.ResourcesPanel.prototype.jumpToNextSearchResult):
457         (WebInspector.ResourcesPanel.prototype.jumpToPreviousSearchResult):
458         * inspector/front-end/ScriptsPanel.js:
459         (WebInspector.ScriptsPanel.prototype._editorClosed):
460         (WebInspector.ScriptsPanel.prototype._editorSelected):
461         (WebInspector.ScriptsPanel.prototype.performSearch.finishedCallback):
462         (WebInspector.ScriptsPanel.prototype.performSearch):
463         (WebInspector.ScriptsPanel.prototype.jumpToNextSearchResult):
464         (WebInspector.ScriptsPanel.prototype.jumpToPreviousSearchResult):
465         (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
466         (WebInspector.ScriptsPanel.prototype.replaceAllWith):
467         * inspector/front-end/SearchController.js:
468         (WebInspector.SearchController):
469         (WebInspector.SearchController.prototype.cancelSearch):
470         (WebInspector.SearchController.prototype.resetSearch):
471         (WebInspector.SearchController.prototype.handleShortcut):
472         (WebInspector.SearchController.prototype._updateSearchNavigationButtonState):
473         (WebInspector.SearchController.prototype._updateReplaceVisibility):
474         (WebInspector.SearchController.prototype._onKeyDown):
475         (WebInspector.SearchController.prototype._onNextButtonSearch):
476         (WebInspector.SearchController.prototype._onPrevButtonSearch):
477         (WebInspector.SearchController.prototype._performSearch):
478         (WebInspector.SearchController.prototype._updateReplaceDetailsVisibility):
479         (WebInspector.SearchController.prototype._replace):
480         (WebInspector.SearchController.prototype._replaceAll):
481         * inspector/front-end/Settings.js:
482         (WebInspector.ExperimentsSettings):
483         * inspector/front-end/SourceFrame.js:
484         (WebInspector.SourceFrame.prototype.beforeTextChanged):
485         (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches):
486         (WebInspector.SourceFrame.prototype.performSearch):
487         (WebInspector.SourceFrame.prototype.replaceSearchMatchWith):
488         (WebInspector.SourceFrame.prototype.replaceAllWith):
489         (WebInspector.TextEditorDelegateForSourceFrame.prototype.beforeTextChanged):
490         * inspector/front-end/TextEditor.js:
491         (WebInspector.TextEditor.prototype.editRange):
492         * inspector/front-end/inspector.css:
493         (.toolbar-search-replace .search-replace):
494         (.toolbar-search):
495         (.toolbar-search-replace):
496         (.toolbar-search-close-button):
497         (.toolbar-search-close-button:hover):
498         (.toolbar-search-close-button:active):
499         (.toolbar-search input[type="checkbox"]):
500         (.toolbar-search-replace .toolbar-replace-control):
501
502 2012-07-18  YoungTaeck Song  <youngtaeck.song@samsung.com>
503
504         [WK2][EFL] Divide ENABLE(WEBGL) into ENABLE(WEBGL) and USE(3D_GRAPHICS) in CMakeLists.txt
505         https://bugs.webkit.org/show_bug.cgi?id=91584
506
507         Reviewed by Noam Rosenthal.
508
509         This patch is a subset of Efl's UI_SIDE_COMPOSITING implementation.
510         Modified CMakeLists.txt so that the basic 3D-graphics sources can be compiled even when WebGL is disabled.
511
512         * CMakeLists.txt:
513         * PlatformEfl.cmake:
514         * platform/graphics/GraphicsContext3D.h:
515         (GraphicsContext3D):
516         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
517         (WebCore::GraphicsContext3D::platformGraphicsContext3D):
518
519 2012-07-18  Zoltan Horvath  <zoltan@webkit.org>
520
521         [Qt] Modify the using of the QImage::Format enum to the appropriate functions from NativeImageQt
522         https://bugs.webkit.org/show_bug.cgi?id=91600
523
524         Reviewed by Andreas Kling.
525
526         Use NativeImageQt::defaultFormatForAlphaEnabledImages() and NativeImageQt::defaultFormatForOpaqueImages()
527         instead of the direct imagetypes at the appropriate places.
528
529         Covered by existing tests.
530
531         * platform/graphics/qt/GraphicsContext3DQt.cpp:
532         (WebCore::GraphicsContext3D::paintToCanvas):
533         * platform/graphics/qt/PathQt.cpp:
534         (WebCore::scratchContext):
535         * platform/graphics/texmap/TextureMapperGL.cpp:
536         (WebCore::TextureMapperGL::drawRepaintCounter):
537         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
538         (WebCore::BitmapTextureImageBuffer::updateContents):
539
540 2012-07-18  Andrey Kosyakov  <caseq@chromium.org>
541
542         Web Inspector: create timeline detail records lazily
543         https://bugs.webkit.org/show_bug.cgi?id=91513
544
545         Reviewed by Pavel Feldman.
546
547         - only create timeline record details when these are used;
548
549         * inspector/front-end/TimelinePanel.js:
550         (WebInspector.TimelineRecordListRow.prototype.update):
551         * inspector/front-end/TimelinePresentationModel.js:
552         (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
553         (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
554         (WebInspector.TimelinePresentationModel.Record.prototype.details):
555
556 2012-07-18  Simon Hausmann  <simon.hausmann@nokia.com>
557
558         [ANGLE] On QT, use Bison and Flex during ANGLE build
559         https://bugs.webkit.org/show_bug.cgi?id=91108
560
561         Reviewed by Kenneth Rohde Christiansen.
562
563         Add derived source generators for the two angle bison parsers and flex based lexers.
564
565         * DerivedSources.pri:
566         * Target.pri:
567
568 2012-07-18  Dominik Röttsches  <dominik.rottsches@intel.com>
569
570         [EFL][WK2] Too early assertion failure if default theme is not available
571         https://bugs.webkit.org/show_bug.cgi?id=91608
572
573         Reviewed by Kenneth Rohde Christiansen.
574
575         After bug 90107 we're setting a default theme path, which leads to a
576         themeChanged() call initializing edje in createEdje() - if that theme
577         path is not available we run into a premature assertion failure.
578         We need to give the embedder a chance to override the default theme path
579         before failing - so only the usages of m_edje should be guarded with assertions.
580
581         No new tests, no change in rendering behavior.
582
583         * platform/efl/RenderThemeEfl.cpp:
584         (WebCore::RenderThemeEfl::themePartCacheEntryReset): Adding an assertion to ensure m_edje is present - so that all usages of m_edje are now guarded.
585         (WebCore::RenderThemeEfl::createEdje): Not hitting assertion if theme path doesn't contain the theme object file, allowing the embedder to override with a new path.
586
587 2012-07-18  Vsevolod Vlasov  <vsevik@chromium.org>
588
589         IndexedDB: IDBLevelDBBackingStore compilation fails because of unused variable.
590         https://bugs.webkit.org/show_bug.cgi?id=91612
591
592         Reviewed by Pavel Feldman.
593
594         Replaced ASSERT with ASSERT_UNUSED.
595
596         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
597         (WebCore::IDBLevelDBBackingStore::getObjectStores):
598
599 2012-07-18  Yoshifumi Inoue  <yosin@chromium.org>
600
601         REGRESSION(r117738) [Forms] Default step base should be 0 (=1970-01) for input type month
602         https://bugs.webkit.org/show_bug.cgi?id=91603
603
604         Reviewed by Kent Tamura.
605
606         This patch restores default step base value to 0 (=1970-01) as before
607         r117738.
608
609         No new tests. Existing test(fast/forms/month/month-stepup-stepdown-from-renderer.html)
610         covers this case, although it is disabled.
611
612         * html/MonthInputType.cpp:
613         (WebCore::MonthInputType::createStepRange): Changed default value of
614         step base to defaultMonthStepBase instead of DateComponents::minimumMonth().
615
616 2012-07-18  Ryuan Choi  <ryuan.choi@samsung.com>
617
618         [EFL] Cursor is not drawn when opengl_x11 backend is choosen.
619         https://bugs.webkit.org/show_bug.cgi?id=89142
620
621         Reviewed by Simon Hausmann.
622
623         If theme based cursor is not given, WebKit/Efl only uses Ecore_X based
624         cursor as a fallback after checked whether current engine is using EcoreX.
625         This patch adds opengl_x11 which is one of Ecore_X based engine in check
626         lists to draw fallback cursor.
627
628         * platform/efl/EflScreenUtilities.cpp:
629         (WebCore::isUsingEcoreX):
630
631 2012-07-18  Ryosuke Niwa  <rniwa@webkit.org>
632
633         REGRESSION(r122345): HTMLCollection::length() sometimes returns a wrong value
634         https://bugs.webkit.org/show_bug.cgi?id=91587
635
636         Reviewed by Benjamin Poulain.
637
638         The bug was caused by my douchey code that set the length cache to be the *offset*
639         of the last item in a HTMLCollection. Clearly, the length of a collection that contains
640         the last item at offset n is n + 1. Fixed that.
641
642         Also removed the call to setLengthCache in HTMLCollection::length since it must have set
643         by previous calls to itemBeforeOrAfterCachedItem already. This will allow us to catch
644         regressions like this in ports that use JSC bindings as well.
645
646         Test: fast/dom/htmlcollection-length-after-item.html
647
648         * html/HTMLCollection.cpp:
649         (WebCore::HTMLCollection::length):
650         (WebCore::HTMLCollection::itemBeforeOrAfterCachedItem):
651
652 2012-07-18  Yoshifumi Inoue  <yosin@chromium.org>
653
654         Decimal::toString should not round integer value.
655         https://bugs.webkit.org/show_bug.cgi?id=91481
656
657         Reviewed by Kent Tamura.
658
659         This patch makes Decimal::toString not to round an integer value
660         before converting string.
661
662         Tests: WebKit/chromium/tests/DecimalTest.cpp: DecimalTest.toString
663
664         * platform/Decimal.cpp:
665         (WebCore::Decimal::toString): When the value is an integer, we don't
666         round coefficient to be DBL_DIG(15) digits because double can
667         represent an integer without rounding error.
668
669 2012-07-18  Luke Macpherson   <macpherson@chromium.org>
670
671         Fix null pointer dereference introduced by Changeset 121874.
672         https://bugs.webkit.org/show_bug.cgi?id=91578
673
674         Reviewed by Pavel Feldman.
675
676         In http://trac.webkit.org/changeset/121874/trunk/Source/WebCore/inspector/InspectorStyleSheet.cpp I introduced code that
677         dereferences the return value of ownerDocument() without doing a null check. This was a bad idea.
678
679         No new tests. I don't have a repro case, but it is clear from reading the code for ownerDocument() that it can return null.
680
681         * inspector/InspectorStyleSheet.cpp:
682         (WebCore::InspectorStyleSheet::ensureSourceData):
683
684 2012-07-17  Yoshifumi Inoue  <yosin@chromium.org>
685
686         Decimal constructor with 99999999999999999 loses last digit
687         https://bugs.webkit.org/show_bug.cgi?id=91579
688
689         Reviewed by Kent Tamura.
690
691         This patch changes maximum coefficient value handling in Decimal::EncodedData
692         constructor not to lose the last digit. It was used ">=" operator for
693         comparison instead of ">" operator.
694
695         Tests: WebKit/chromium/tests/DecimalTest.cpp
696
697         * platform/Decimal.cpp:
698         (WebCore::Decimal::EncodedData::EncodedData): Replace ">=" to ">" for
699         not getting rid of the last digit for maximum coefficient value.
700
701 2012-07-17  Ilya Tikhonovsky  <loislo@chromium.org>
702
703         Unreviewed Web Inspector: followup fix for r122920.
704
705         Add collected Loaders size to InspectorMemoryBlock
706
707         * inspector/InspectorMemoryAgent.cpp:
708         (MemoryBlockName):
709         (WebCore):
710
711 2012-07-17  Ilya Tikhonovsky  <loislo@chromium.org>
712
713         Web Inspector: show loaders memory consumption on the memory chart.
714         https://bugs.webkit.org/show_bug.cgi?id=90686
715
716         Reviewed by Pavel Feldman.
717
718         Size of FrameLoader, DocumentLoader, ResourceLoader and their resources should be shown on the memory pie chart.
719
720         It is covered by existing WebInspector performance tests infrastructure.
721
722         * WebCore.exp.in:
723         * dom/MemoryInstrumentation.h:
724         (MemoryInstrumentation):
725         (WebCore::MemoryInstrumentation::addRawBuffer):
726         (WebCore::MemoryInstrumentation::addInstrumentedMemberImpl):
727         (WebCore):
728         (WebCore::MemoryClassInfo::addInstrumentedHashSet):
729         (WebCore::MemoryClassInfo::addRawBuffer):
730         (WebCore::MemoryInstrumentation::addInstrumentedHashSet):
731         (WebCore::MemoryInstrumentation::addVector):
732         * inspector/InspectorMemoryAgent.cpp:
733         (WebCore):
734         (WebCore::domTreeInfo):
735         * loader/DocumentLoader.cpp:
736         (WebCore::DocumentLoader::reportMemoryUsage):
737         (WebCore):
738         * loader/DocumentLoader.h:
739         (WebCore):
740         (DocumentLoader):
741         * loader/FrameLoader.cpp:
742         (WebCore::FrameLoader::reportMemoryUsage):
743         (WebCore):
744         * loader/FrameLoader.h:
745         (WebCore):
746         (FrameLoader):
747         * loader/ResourceLoader.cpp:
748         (WebCore::ResourceLoader::reportMemoryUsage):
749         (WebCore):
750         * loader/ResourceLoader.h:
751         (WebCore):
752         (ResourceLoader):
753         * page/Frame.cpp:
754         (WebCore::Frame::reportMemoryUsage):
755         (WebCore):
756         * page/Frame.h:
757         (WebCore):
758         (Frame):
759         * platform/SharedBuffer.cpp:
760         (WebCore::SharedBuffer::reportMemoryUsage):
761         (WebCore):
762         * platform/SharedBuffer.h:
763         (WebCore):
764         (SharedBuffer):
765
766 2012-07-17  Kent Tamura  <tkent@chromium.org>
767
768         Fix an assertion failure in CalendarPickerElement::hostInput().
769         https://bugs.webkit.org/show_bug.cgi?id=91568
770
771         Reviewed by Hajime Morita.
772
773         Test: fast/forms/date/calendar-picker-type-change-onclick.html
774
775         * html/shadow/CalendarPickerElement.cpp:
776         (WebCore::CalendarPickerElement::defaultEventHandler):
777         It's possible that this function is called when the element is detached
778         from the document tree.
779
780 2012-07-17  Kent Tamura  <tkent@chromium.org>
781
782         Form state: Make a new class handling HashMap<FormElementKey, Deque<>>
783         https://bugs.webkit.org/show_bug.cgi?id=91480
784
785         Reviewed by Hajime Morita.
786
787         This is a preparation of Bug 91209, "Form state restore: Need to
788         identify a from by its content."
789
790         Make a new class which is responsible to handle "HashMap<FormElementKey,
791         Deque<FormControlState>, FormElementKeyHash, FormElementKeyHashTraits>."
792         Also, move the FormElementKey class declaration and related structs from
793         FormController.h to FormController.cpp because FormElementKey is used
794         only in FormController.cpp.
795
796         No new tests. Just a refactoring.
797
798         * html/FormController.cpp:
799         (WebCore::FormElementKey): Moeved from FormController.h.
800         (WebCore::FormElementKey::FormElementKey):
801         Moved from the bottom of FormController.cpp
802         (WebCore::FormElementKey::~FormElementKey): ditto.
803         (WebCore::FormElementKey::operator=): ditto.
804         (WebCore::FormElementKey::ref): ditto.
805         (WebCore::FormElementKey::deref): ditto.
806         (WebCore::operator==): Moved from FormController.h
807         (FormElementKeyHash): ditto.
808         (WebCore::FormElementKeyHash::equal): ditto.
809         (WebCore::FormElementKeyHash::hash):
810         Moved from the bottom of FormController.cpp
811         (WebCore::FormElementKeyHashTraits::constructDeletedValue):
812         Moved from FormController.h
813         (WebCore::FormElementKeyHashTraits::isDeletedValue): ditto.
814
815         (WebCore::SavedFormState): Added.
816         (WebCore::SavedFormState::isEmpty):
817         (WebCore::SavedFormState::SavedFormState): Added. The constructor.
818         (WebCore::SavedFormState::create): Added. A factory function.
819         (WebCore::SavedFormState::appendControlState):
820         Moved some code from FormController::setStateForNewFormElements.
821         (WebCore::SavedFormState::takeControlState):
822         Moved some code from FormController::takeStateForFormElement.
823
824         (WebCore::FormController::setStateForNewFormElements):
825         - Creates SavedFormState if needed.
826         - Uses SavedFormState::appendControlState.
827         (WebCore::FormController::takeStateForFormElement):
828         Uses SavedFormState.
829         * html/FormController.h:
830         (FormController):
831
832 2012-07-17  MORITA Hajime <morrita@google.com>
833
834         [Shadow DOM] Some distribution invalidation can drop necessary reattachment.
835         https://bugs.webkit.org/show_bug.cgi?id=88843
836
837         Reviewed by Dimitri Glazkov.
838
839         Following scenario caused this problem:
840
841         - Inserting a Text node as a shadow child triggers invalidateDistribution(),
842           which doen't reattach the shadow's host element.
843         - Then inserting a <content> element after that triggers another invalidateDistribution(),
844           which should reattach its host because <content> can affect not only distribution of new nodes,
845           but also existing distribution.
846         - Since the first invalidateDistribution() has marked the distribution as invalidated,
847           the second invalidateDistribution() call returns early without any reattachment,
848           even though it needs one.
849
850         This change adds InvalidationType parameter to invalidateDistribution(), which asks ElementShadow to
851         reattach the host regardless of its validity state. InsertionPoint::insertedInto() uses
852         this flag to ensure that its insertion always results a reattachment.
853
854         Test: fast/dom/shadow/content-after-style.html
855
856         * dom/ElementShadow.cpp:
857         (WebCore::ElementShadow::addShadowRoot): Passes InvalidationType.
858         (WebCore::ElementShadow::removeAllShadowRoots): Passes InvalidationType.
859         (WebCore::ElementShadow::invalidateDistribution): Added a InvalidationType parameter.
860         * dom/ElementShadow.h:
861         * html/shadow/InsertionPoint.cpp:
862         (WebCore::InsertionPoint::insertedInto): Passes InvalidationType.
863
864 2012-07-17  Jon Lee  <jonlee@apple.com>
865
866         Teach CodeGenerator to support for static, readonly, attributes
867         https://bugs.webkit.org/show_bug.cgi?id=88920
868         <rdar://problem/11650330>
869
870         Reviewed by Oliver Hunt.
871
872         Update the parser to be able to accept the static keyword for attribute. We will treat static attributes
873         like custom static functions. They call the implementing class directly, and pass in the ExecState as a script context.
874
875         * bindings/scripts/CodeGeneratorJS.pm:
876         (GetAttributeGetterName): Factor out the construction of the attribute getter function name.
877         (GetAttributeSetterName): Factor out the construction of the attribute setter function name.
878         (GenerateHeader): Determine that a class has read-write properties only if there is a read-write attribute that
879         is not static.
880         (GenerateAttributesHashTable): Skip static attributes in the object hash table. They will be added to the constructor
881         hash table.
882         (GenerateImplementation): Look for static attributes to add to the constructor hash table. Make a call to the static
883         function in the class.
884         * bindings/scripts/IDLParser.pm:
885         (ParseInterface): Update the processing because of the regex change.
886         * bindings/scripts/IDLStructure.pm: Update the attribute regex.
887         * bindings/scripts/test/JS/JSTestObj.cpp: Update test results.
888         * bindings/scripts/test/JS/JSTestObj.h: Update test results.
889         * bindings/scripts/test/TestObj.idl: Add test cases.
890
891 2012-07-17  Kenichi Ishibashi  <bashi@chromium.org>
892
893         [Chromium] Rename HarfBuzzFace to HarfBuzzNGFace
894         https://bugs.webkit.org/show_bug.cgi?id=91458
895
896         Reviewed by Tony Chang.
897
898         There are HarfbuzzFace class (for old-harfbuzz) and HarfBuzzFace (for harfbuzz-ng) class. The difference is too subtle. Make them more distinct.
899
900         No new tests. No changes in behavior.
901
902         * WebCore.gyp/WebCore.gyp: Rename HarfBuzzFace to HarfBuzzNGFace.
903         * WebCore.gypi: Ditto.
904         * platform/graphics/FontPlatformData.h: Ditto.
905         (FontPlatformData):
906         * platform/graphics/cocoa/FontPlatformDataCocoa.mm: Ditto.
907         (WebCore::FontPlatformData::harfbuzzFace):
908         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Ditto.
909         (WebCore::FontPlatformData::harfbuzzFace):
910         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Ditto.
911         (FontPlatformData):
912         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzFaceCoreText.cpp.
913         (WebCore):
914         (WebCore::floatToHarfBuzzPosition):
915         (WebCore::getGlyph):
916         (WebCore::getGlyphHorizontalAdvance):
917         (WebCore::getGlyphHorizontalOrigin):
918         (WebCore::getGlyphExtents):
919         (WebCore::harfbuzzCoreTextGetFontFuncs):
920         (WebCore::releaseTableData):
921         (WebCore::harfbuzzCoreTextGetTable):
922         (WebCore::HarfBuzzNGFace::createFace):
923         (WebCore::HarfBuzzNGFace::createFont):
924         (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
925         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzFaceSkia.cpp.
926         (WebCore):
927         (WebCore::SkiaScalarToHarfbuzzPosition):
928         (WebCore::SkiaGetGlyphWidthAndExtents):
929         (WebCore::harfbuzzGetGlyph):
930         (WebCore::harfbuzzGetGlyphHorizontalAdvance):
931         (WebCore::harfbuzzGetGlyphHorizontalOrigin):
932         (WebCore::harfbuzzGetGlyphExtents):
933         (WebCore::harfbuzzSkiaGetFontFuncs):
934         (WebCore::harfbuzzSkiaGetTable):
935         (WebCore::destroyPaint):
936         (WebCore::HarfBuzzNGFace::createFace):
937         (WebCore::HarfBuzzNGFace::createFont):
938         (WebCore::HarfBuzzShaper::createGlyphBufferAdvance):
939         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzFace.cpp.
940         (WebCore):
941         (WebCore::harfbuzzFaceCache):
942         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
943         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
944         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h: Renamed from Source/WebCore/platform/graphics/harfbuzz/ng/HarfBuzzFace.h.
945         (WebCore):
946         (HarfBuzzNGFace):
947         (WebCore::HarfBuzzNGFace::create):
948         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
949         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
950
951 2012-07-17  Kinuko Yasuda  <kinuko@chromium.org>
952
953         Record metrics to measure the usage of Blob([ArrayBuffer]) to eventually deprecate it
954         https://bugs.webkit.org/show_bug.cgi?id=90534
955
956         Reviewed by Jian Li.
957
958         We are removing ArrayBuffer support in Blob constructor (in favor of
959         ArrayBufferView) but before doing that we should record its use relative to ArrayBufferView.
960         http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
961
962         No new tests as this has no functional changes.
963
964         * fileapi/WebKitBlobBuilder.cpp:
965         (WebCore::WebKitBlobBuilder::append):
966
967 2012-07-17  Joshua Bell  <jsbell@chromium.org>
968
969         IndexedDB: Key generator state not maintained across connections
970         https://bugs.webkit.org/show_bug.cgi?id=91456
971
972         Reviewed by Tony Chang.
973
974         Explicitly store key generator state for each object store in the backing store,
975         rather than deriving it from the maximum key in the data (which violates the spec
976         if data is deleted).
977
978         This change eliminates a (fragile) per-store cache of the value to simplify the
979         code. A cache could be re-introduced, requiring an "onbeforecommit" hook for
980         object stores, but it seems cleaner to save that for a follow-up patch.
981
982         Test: storage/indexeddb/key-generator.html
983
984         * Modules/indexeddb/IDBBackingStore.h: New APIs for getting/setting generator states.
985         (IDBBackingStore):
986         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
987         (WebCore::IDBLevelDBBackingStore::getObjectStores): Read generator state (but currently ignored).
988         (WebCore::IDBLevelDBBackingStore::createObjectStore): Write generator state.
989         (WebCore):
990         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
991         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber): Update, optionally
992         checking to see if the new value is greater than the old. (If caller got the value via
993         getKeyGeneratorCurrentNumber it is safe to skip the check.)
994         * Modules/indexeddb/IDBLevelDBBackingStore.h:
995         (IDBLevelDBBackingStore):
996         * Modules/indexeddb/IDBLevelDBCoding.cpp:
997         * Modules/indexeddb/IDBLevelDBCoding.h:
998         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
999         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl): Ditch the cache.
1000         (WebCore::IDBObjectStoreBackendImpl::put): No need for abort task.
1001         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto.
1002         (WebCore::IDBObjectStoreBackendImpl::putInternal): Use the newfangled APIs below.
1003         (WebCore::IDBObjectStoreBackendImpl::generateKey):
1004         (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
1005         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
1006         (IDBObjectStoreBackendImpl):
1007
1008 2012-07-17  Joshua Bell  <jsbell@chromium.org>
1009
1010         IndexedDB: Key generator state not maintained across connections
1011         https://bugs.webkit.org/show_bug.cgi?id=91456
1012
1013         Reviewed by Tony Chang.
1014
1015         Explicitly store key generator state for each object store in the backing store,
1016         rather than deriving it from the maximum key in the data (which violates the spec
1017         if data is deleted).
1018
1019         This change eliminates a (fragile) per-store cache of the value to simplify the
1020         code. A cache could be re-introduced, requiring an "onbeforecommit" hook for
1021         object stores, but it seems cleaner to save that for a follow-up patch.
1022
1023         Test: storage/indexeddb/key-generator.html
1024
1025         * Modules/indexeddb/IDBBackingStore.h: New APIs for getting/setting generator states.
1026         (IDBBackingStore):
1027         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1028         (WebCore::IDBLevelDBBackingStore::getObjectStores): Read generator state (but currently ignored).
1029         (WebCore::IDBLevelDBBackingStore::createObjectStore): Write generator state.
1030         (WebCore):
1031         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
1032         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber): Update, optionally
1033         checking to see if the new value is greater than the old. (If caller got the value via
1034         getKeyGeneratorCurrentNumber it is safe to skip the check.)
1035         * Modules/indexeddb/IDBLevelDBBackingStore.h:
1036         (IDBLevelDBBackingStore):
1037         * Modules/indexeddb/IDBLevelDBCoding.cpp:
1038         * Modules/indexeddb/IDBLevelDBCoding.h:
1039         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1040         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl): Ditch the cache.
1041         (WebCore::IDBObjectStoreBackendImpl::put): No need for abort task.
1042         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys): Ditto.
1043         (WebCore::IDBObjectStoreBackendImpl::putInternal): Use the newfangled APIs below.
1044         (WebCore::IDBObjectStoreBackendImpl::generateKey):
1045         (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
1046         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
1047         (IDBObjectStoreBackendImpl):
1048
1049 2012-07-17  Alec Flett  <alecflett@chromium.org>
1050
1051         IndexedDB: createIndex should throw INVALID_ACCESS_ERR instead of NOT_SUPPORTED_ERR
1052         https://bugs.webkit.org/show_bug.cgi?id=91553
1053
1054         Reviewed by Tony Chang.
1055
1056         Update createIndex to throw an INVALID_ACCESS_ERR
1057         as per the IndexedDB spec.
1058
1059         No new tests: existing tests have been updated
1060
1061         * Modules/indexeddb/IDBDatabaseException.cpp:
1062         (WebCore):
1063         * Modules/indexeddb/IDBDatabaseException.h:
1064         * Modules/indexeddb/IDBObjectStore.cpp:
1065         (WebCore::IDBObjectStore::createIndex):
1066
1067 2012-07-17  Adam Barth  <abarth@webkit.org>
1068
1069         DragImageChromiumMac.cpp is never compiled and can be removed
1070         https://bugs.webkit.org/show_bug.cgi?id=91545
1071
1072         Reviewed by Tony Chang.
1073
1074         This file would only be compiled on chromium-mac, but it's excluded
1075         from that build. This is likely left over from the CG configuration.
1076
1077         * WebCore.gyp/WebCore.gyp:
1078         * WebCore.gypi:
1079         * platform/chromium/DragImageChromiumMac.cpp: Removed.
1080
1081 2012-07-17  Roger Fong  <roger_fong@apple.com>
1082
1083         Assertion failure/crash on Windows when using a font in an SVG 
1084         element with an unresaonbly large font size
1085         https://bugs.webkit.org/show_bug.cgi?id=91273
1086         Radar: <rdar://problem/8355401>
1087
1088         Reviewed by Tim Horton.
1089
1090         When using a font in an SVG element with an unreasonably large 
1091         font size in Windows, WebKit crashes. The problem has to do with 
1092         font sizes overflowing into negative values in the Windows specific code.
1093         The fix is to cap the font sizes to something reasonable when the font style is getting processed. 
1094         The fix will apply to both CSS and SVG so that behaviour is consistent.
1095
1096         Test: svg/text/font-size-too-large-crash.svg
1097
1098         * css/StyleBuilder.cpp:
1099         (WebCore::ApplyPropertyFontSize::applyValue):
1100         This is where the font size capping now occurs. Caps size to 1000000.
1101         Both CSS and SVG reach the font size capping code here.
1102         
1103         * css/StyleResolver.cpp:
1104         (WebCore::StyleResolver::collectMatchingRulesForList):
1105         Capping here removed, moved to StyleBuilder.cpp.
1106
1107 2012-07-17  David Barr  <davidbarr@chromium.org>
1108
1109         Add parsing and style application for css3-images image-orientation
1110         https://bugs.webkit.org/show_bug.cgi?id=89624
1111
1112         Reviewed by Tony Chang.
1113
1114         The css3-images module is at candidate recommendation.
1115         http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-orientation
1116
1117         Test: fast/css/image-orientation/image-orientation.html
1118
1119         * css/CSSComputedStyleDeclaration.cpp: Add computed style for image-orientation.
1120         (WebCore): Add CSSPropertyImageOrientation to computedProperties.
1121         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Map CSSPropertyImageOrientation using cast operator from PrimitiveValueMappings.
1122         * css/CSSParser.cpp: Add parsing rule for image-orientation.
1123         (WebCore::CSSParser::parseValue): Parse the value of CSSPropertyImageOrientation as an angle.
1124         * css/CSSPrimitiveValueMappings.h: Add mappings between CSSPrimitiveValue and ImageOrientationEnum.
1125         (WebCore): Add conditional include for ImageOrientation.h.
1126         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Map the natural orientations to angles.
1127         (WebCore::CSSPrimitiveValue::operator ImageOrientationEnum): Round angles away from zero to quarter turns and map to the natural orientations.
1128         * css/CSSProperty.cpp: Add CSSPropertyImageOrientation.
1129         (WebCore::CSSProperty::isInheritedProperty): Map CSSPropertyImageOrientation inherited.
1130         * css/CSSPropertyNames.in: Add image-orientation.
1131         * css/StyleBuilder.cpp: Add style application logic for CSSPropertyImageOrientation.
1132         (WebCore::StyleBuilder::StyleBuilder): Map CSSPropertyImageOrientation to RenderStyle::imageOrientation with type ImageOrientationEnum.
1133         * css/StyleResolver.cpp: Handle CSSPropertyImageOrientation.
1134         (WebCore::StyleResolver::applyProperty): Expect CSSPropertyImageOrientation to be handled by StyleBuilder.
1135         * rendering/style/RenderStyle.h: Add imageOrientation, setImageOrientation and initialImageOrientation.
1136         * rendering/style/StyleRareInheritedData.cpp: Add m_imageOrientation.
1137         (WebCore::StyleRareInheritedData::StyleRareInheritedData): Add m_imageOrientation to default and copy contructors.
1138         (WebCore::StyleRareInheritedData::operator==): Include m_imageOrientation in comparison.
1139         * rendering/style/StyleRareInheritedData.h: Add m_imageOrientation.
1140         (StyleRareInheritedData): Add 4-bit field m_imageOrientation, mapping to ImageOrientationEnum.
1141
1142 2012-07-17  Adrienne Walker  <enne@google.com>
1143
1144         REGRESSION(r122215) - RenderObject::willRenderImage crashes on null view()
1145         https://bugs.webkit.org/show_bug.cgi?id=91525
1146
1147         Reviewed by Julien Chaffraix.
1148
1149         Fix by doing an early out check.  This is intended to fix the crash in
1150         http://crbug.com/137161.
1151
1152         No new test, because unfortunately a layout test is ill-suited to
1153         reproing this kind of Document creation/destruction bug.
1154
1155         * rendering/RenderObject.cpp:
1156         (WebCore::RenderObject::willRenderImage):
1157
1158 2012-07-17  Emil A Eklund  <eae@chromium.org>
1159
1160         vertical-align: middle causes overflow with subpixel layout
1161         https://bugs.webkit.org/show_bug.cgi?id=91464
1162
1163         Reviewed by Eric Seidel.
1164
1165         Using vertical-align: middle in combination with an overflow value other
1166         than visible can cause the overflow height to be computed incorrectly.
1167
1168         Test: fast/sub-pixel/vertical-align-middle-overflow.html
1169
1170         * rendering/RootInlineBox.cpp:
1171         (WebCore::RootInlineBox::verticalPositionForBox):
1172         Round verticalPosition after calculation instead of flooring the result
1173         of the xHeight calculation. By flooring it the resulting value is in
1174         effect rounded up which can cause the height of the box to grow by one.
1175         By rounding the resulting value thevertical position is more accurate and
1176         the off by one error is avoided.
1177
1178 2012-07-17  Philip Rogers  <pdr@google.com>
1179
1180         Move zero-length-subpaths from RenderSVGShape to RenderSVGPath
1181         https://bugs.webkit.org/show_bug.cgi?id=90716
1182
1183         Reviewed by Nikolas Zimmermann.
1184
1185         Previously zero-length-subpath code was present in RenderSVGShape but it is
1186         only needed in RenderSVGPath. This patch moves the zero-length-subpath code
1187         to RenderSVGPath.
1188
1189         In this change, we gain:
1190         1) Ellipses, Circles, and Rects will no longer carry an empty Vector nor
1191            checks for zero-length subpaths which (per the spec) they cannot have.
1192         2) RenderSVGShape, the superclass of all shape rendering, has been
1193            drastically simplified by removing 70 lines of code that only applies
1194            to Path rendering. This generally aids in code understandability.
1195
1196         The patch is primarily a straightforward code move but useStrokeStyleToFill
1197         needs further explanation:
1198         Zero-length-subpaths are drawn using rectangular and circular paths which
1199         are filled.
1200         Previously in RenderSVGShape::fillAndStrokePath, strokePath was called for
1201         the main path with ApplyToStrokeMode and then strokePath was called for
1202         each zero-length-subpath with ApplyToFillMode.
1203         ApplyToFillMode had the effect of setting the context's stroke style to
1204         the fill style so zero-length-subpaths were "filled" with the stroke style.
1205         After this patch, the context is only setup once (which is faster!) using
1206         ApplyToStrokeMode so we manually set the stroke style to the fill style
1207         using useStrokeStyleToFill.
1208
1209         No new tests, just a refactoring.
1210
1211         * rendering/svg/RenderSVGPath.cpp:
1212         (WebCore::RenderSVGPath::updateShapeFromElement):
1213         (WebCore):
1214         (WebCore::RenderSVGPath::calculateUpdatedStrokeBoundingBox):
1215         (WebCore::useStrokeStyleToFill):
1216         (WebCore::RenderSVGPath::strokeShape):
1217         (WebCore::RenderSVGPath::shapeDependentStrokeContains):
1218         (WebCore::RenderSVGPath::shouldStrokeZeroLengthSubpath):
1219         (WebCore::RenderSVGPath::zeroLengthLinecapPath):
1220         (WebCore::RenderSVGPath::zeroLengthSubpathRect):
1221         (WebCore::RenderSVGPath::updateZeroLengthSubpaths):
1222         * rendering/svg/RenderSVGPath.h:
1223         (RenderSVGPath):
1224         * rendering/svg/RenderSVGShape.cpp:
1225         (WebCore::RenderSVGShape::updateShapeFromElement):
1226         (WebCore::RenderSVGShape::strokeShape):
1227         (WebCore::RenderSVGShape::strokeContains):
1228         (WebCore):
1229         (WebCore::RenderSVGShape::fillShape):
1230         (WebCore::RenderSVGShape::fillAndStrokeShape):
1231         (WebCore::RenderSVGShape::paint):
1232         (WebCore::RenderSVGShape::calculateStrokeBoundingBox):
1233         * rendering/svg/RenderSVGShape.h:
1234         (WebCore::RenderSVGShape::hasPath):
1235         (WebCore::RenderSVGShape::hasNonScalingStroke):
1236         (RenderSVGShape):
1237         (WebCore::RenderSVGShape::strokeBoundingBox):
1238
1239 2012-07-17  Ryosuke Niwa  <rniwa@webkit.org>
1240
1241         invalidateNodeListCachesInAncestors walks up ancestors even when an attribute that doesn't invalidate node lists changes
1242         https://bugs.webkit.org/show_bug.cgi?id=91530
1243
1244         Reviewed by Ojan Vafai.
1245
1246         The bug was caused by invalidateNodeListCachesInAncestors not calling Document::shouldInvalidateNodeListCaches with
1247         attrName. Done that.
1248         
1249         This chance revealed a bug in shouldInvalidateTypeOnAttributeChange that we weren't checking form attribute changes for
1250         RadioNodeList and HTMLCollection, so fixed the bug.
1251
1252         Also renamed Document::clearNodeListCaches to invalidateNodeListCaches to match the name convention used elsewhere,
1253         and added a new version of DynamicNodeListCacheBase::invalidateCache that takes attrName to reduce the code duplication.
1254
1255         Test: fast/forms/elements-invalidate-on-form-attribute-invalidation.html
1256
1257         * dom/Document.cpp:
1258         (WebCore::Document::invalidateNodeListCaches):
1259         * dom/Document.h:
1260         (Document):
1261         * dom/DynamicNodeList.h:
1262         (WebCore::DynamicNodeListCacheBase::invalidateCache):
1263         (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange):
1264         * dom/Node.cpp:
1265         (WebCore::Node::invalidateNodeListCachesInAncestors):
1266         (WebCore::NodeListsNodeData::invalidateCaches):
1267
1268 2012-07-17  Max Vujovic  <mvujovic@adobe.com>
1269
1270         Update ANGLE in WebKit
1271         https://bugs.webkit.org/show_bug.cgi?id=89039
1272
1273         Reviewed by Dean Jackson and Mark Rowe.
1274
1275         Update ANGLE to r1170, with the following modifications:
1276
1277         (1) Use Bison 2.3 instead of Bison 2.4.2 to generate ExpressionParser.cpp and
1278         glslang_tab.cpp. I had to modify ExpressionParser.y to make it compatible with Bison
1279         2.3. The changes have been contributed back to ANGLE in r1224.
1280
1281         (2) Continue to recognize QNX as POSIX in ANGLE. This has been contributed back to ANGLE
1282         in r1223.
1283
1284         (3) Rename ANGLE/src/compiler/preprocessor/new/Diagnostic.cpp to DiagnosticBase.cpp.
1285         Rename ANGLE/src/compiler/preprocessor/new/DirectiveHandler.cpp to DirectiveHandlerBase.cpp.
1286
1287         With the introduction of ANGLE's new preprocessor, there were two files named Diagnostic.cpp
1288         in ANGLE under different folders. This caused problems on the QT build when their object
1289         files, both named Diagnostic.o, tried to go in the same folder. Renaming one of them to
1290         DiagnosticBase.cpp avoids this conflict. The same situation occurred with
1291         DirectiveHandler.cpp. I will work on contributing this change back to ANGLE for future
1292         updates.
1293
1294         (4) Add the following lines to glslang.y and ExpressionParser.y:
1295         #define YYENABLE_NLS 0
1296         #define YYLTYPE_IS_TRIVIAL 1
1297
1298         Bison 2.3 doesn't first check that these macros are defined before reading their value,
1299         which causes the QT build to fail.
1300
1301         We work around this issue in the same way in CSSGrammar.y.
1302
1303         I will work on contributing this change back to ANGLE.
1304
1305         No new tests. No change in behavior.
1306
1307         * CMakeLists.txt:
1308         * GNUmakefile.list.am:
1309         * Target.pri:
1310
1311 2012-07-17  Stephen Chenney  <schenney@chromium.org>
1312
1313         Crash in SVGStopElement::stopColorIncludingOpacity
1314         https://bugs.webkit.org/show_bug.cgi?id=90814
1315
1316         Reviewed by Dirk Schulze.
1317
1318         No new tests as there should be no change in functionality.
1319
1320         * svg/SVGStopElement.cpp:
1321         (WebCore::SVGStopElement::stopColorIncludingOpacity): Added a check for null
1322         renderer and style. It is hard to see how this is happening because
1323         the code is only invoked if the parent gradient has a renderer, and it seems
1324         the stop element should always have a renderer when the parent has a renderer.
1325         Still, it obviously can happen and does so frequently enough to generate multiple
1326         Chromium crash reports per day. The fix is marked with a FIXME, as we expect to
1327         remove this code entirely soon.
1328
1329 2012-07-17  Emil A Eklund  <eae@chromium.org>
1330
1331         Incorrect offset used for scrollWidth/Height calculation
1332         https://bugs.webkit.org/show_bug.cgi?id=91461
1333
1334         Reviewed by Eric Seidel.
1335
1336         Due to a different offset being used to calculate the scrollWidth/Height
1337         and pixelSnappedClientWidth/Height the scroll value can be off by one in
1338         same cases. This can causes scrollbars to appear even when there is no
1339         overflow.
1340
1341         Test: fast/sub-pixel/block-with-margin-overflow.html
1342
1343         * rendering/RenderBox.cpp:
1344         (WebCore::RenderBox::scrollWidth):
1345         Change location offset passed to snapSizeToPixel to include x() to match
1346         offset used by pixelSnappedClientWidth.
1347         
1348         (WebCore::RenderBox::scrollHeight):
1349         Change location offset passed to snapSizeToPixel to include y() to match
1350         offset used by pixelSnappedClientHeight.
1351
1352         * rendering/RenderLayer.cpp:
1353         (WebCore::RenderLayer::clampScrollOffset):
1354         Change calculation to use pixelSnappedClientWidth/Height as it is
1355         subtracted from the pixel snapped scrollWidth/Height values.
1356         
1357         (WebCore::RenderLayer::scrollWidth):
1358         (WebCore::RenderLayer::scrollHeight):
1359         Change RenderLayer versions of scrollWidth/Height to include x()/y() as
1360         per the RenderBox versions.
1361
1362 2012-07-17  Hans Muller  <hmuller@adobe.com>
1363
1364         Rename CSS Exclusions CSSWrapShape class properties to match Exclusion shape function parameters
1365         https://bugs.webkit.org/show_bug.cgi?id=89669
1366
1367         Reviewed by Dirk Schulze.
1368
1369         Renamed left,top properties in the exclusion shape types to better match the specification
1370         http://dev.w3.org/csswg/css3-exclusions/#shapes-from-svg-syntax:
1371
1372         WrapShapeRectangle, CSSWrapShapeRectangle - left,top should be x, y
1373         WrapShapeCircle, CSSWrapShapeCircle - left,top should be centerX, centerY
1374         WrapShapeEllipse, CSSWrapShapeEllipse - left,top should be centerX, centerY
1375
1376         No new tests or tests revisions were needed, the existing tests cover these APIs.
1377
1378         * css/CSSParser.cpp:
1379         (WebCore::CSSParser::parseExclusionShapeRectangle):
1380         (WebCore::CSSParser::parseExclusionShapeCircle):
1381         (WebCore::CSSParser::parseExclusionShapeEllipse):
1382         * css/CSSWrapShapes.cpp:
1383         (WebCore::CSSWrapShapeRectangle::cssText):
1384         (WebCore::CSSWrapShapeCircle::cssText):
1385         (WebCore::CSSWrapShapeEllipse::cssText):
1386         * css/CSSWrapShapes.h:
1387         (WebCore::CSSWrapShapeRectangle::x):
1388         (WebCore::CSSWrapShapeRectangle::y):
1389         (WebCore::CSSWrapShapeRectangle::setX):
1390         (WebCore::CSSWrapShapeRectangle::setY):
1391         (CSSWrapShapeRectangle):
1392         (WebCore::CSSWrapShapeCircle::centerX):
1393         (WebCore::CSSWrapShapeCircle::centerY):
1394         (WebCore::CSSWrapShapeCircle::setCenterX):
1395         (WebCore::CSSWrapShapeCircle::setCenterY):
1396         (CSSWrapShapeCircle):
1397         (WebCore::CSSWrapShapeEllipse::centerX):
1398         (WebCore::CSSWrapShapeEllipse::centerY):
1399         (WebCore::CSSWrapShapeEllipse::setCenterX):
1400         (WebCore::CSSWrapShapeEllipse::setCenterY):
1401         (CSSWrapShapeEllipse):
1402         * css/WrapShapeFunctions.cpp:
1403         (WebCore::valueForWrapShape):
1404         (WebCore::wrapShapeForValue):
1405         * rendering/style/WrapShapes.h:
1406         (WebCore::WrapShapeRectangle::x):
1407         (WebCore::WrapShapeRectangle::y):
1408         (WebCore::WrapShapeRectangle::setX):
1409         (WebCore::WrapShapeRectangle::setY):
1410         (WrapShapeRectangle):
1411         (WebCore::WrapShapeCircle::centerX):
1412         (WebCore::WrapShapeCircle::centerY):
1413         (WebCore::WrapShapeCircle::setCenterX):
1414         (WebCore::WrapShapeCircle::setCenterY):
1415         (WrapShapeCircle):
1416         (WebCore::WrapShapeEllipse::centerX):
1417         (WebCore::WrapShapeEllipse::centerY):
1418         (WebCore::WrapShapeEllipse::setCenterX):
1419         (WebCore::WrapShapeEllipse::setCenterY):
1420         (WrapShapeEllipse):
1421
1422 2012-07-16  Pavel Feldman  <pfeldman@chromium.org>
1423
1424         Web Inspector: implement search / replace in source files (behind experiment flag)
1425         https://bugs.webkit.org/show_bug.cgi?id=91394
1426
1427         Reviewed by Vsevolod Vlasov.
1428
1429         This change adds "loop" parameter to the go to next / previous search + adds a UI component
1430         for search / replace of text in the sources panel. New UI component is behind the experiment.
1431
1432         * English.lproj/localizedStrings.js:
1433         * inspector/front-end/ConsolePanel.js:
1434         (WebInspector.ConsolePanel.prototype.performSearch):
1435         (WebInspector.ConsolePanel.prototype.jumpToNextSearchResult):
1436         (WebInspector.ConsolePanel.prototype.jumpToPreviousSearchResult):
1437         * inspector/front-end/ElementsPanel.js:
1438         (WebInspector.ElementsPanel.prototype.jumpToNextSearchResult):
1439         (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
1440         * inspector/front-end/ExtensionPanel.js:
1441         (WebInspector.ExtensionPanel.prototype.performSearch):
1442         (WebInspector.ExtensionPanel.prototype.jumpToNextSearchResult):
1443         (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
1444         * inspector/front-end/JavaScriptSourceFrame.js:
1445         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
1446         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
1447         * inspector/front-end/NetworkPanel.js:
1448         (WebInspector.NetworkLogView.prototype._sortItems):
1449         (WebInspector.NetworkLogView.prototype._updateFilter):
1450         (WebInspector.NetworkLogView.prototype.performSearch):
1451         (WebInspector.NetworkLogView.prototype.jumpToPreviousSearchResult):
1452         (WebInspector.NetworkLogView.prototype.jumpToNextSearchResult):
1453         (WebInspector.NetworkPanel.prototype.performSearch):
1454         * inspector/front-end/Panel.js:
1455         (WebInspector.Panel.prototype.performSearch):
1456         (WebInspector.Panel.prototype.jumpToNextSearchResult):
1457         (WebInspector.Panel.prototype.jumpToPreviousSearchResult):
1458         (WebInspector.Panel.prototype.canSearchAndReplace):
1459         (WebInspector.Panel.prototype.replaceSelectionWith):
1460         (WebInspector.Panel.prototype.replaceAllWith):
1461         * inspector/front-end/ProfilesPanel.js:
1462         (WebInspector.ProfilesPanel.prototype.jumpToNextSearchResult):
1463         (WebInspector.ProfilesPanel.prototype.jumpToPreviousSearchResult):
1464         * inspector/front-end/ResourcesPanel.js:
1465         (WebInspector.ResourcesPanel.prototype.jumpToNextSearchResult):
1466         (WebInspector.ResourcesPanel.prototype.jumpToPreviousSearchResult):
1467         * inspector/front-end/ScriptsPanel.js:
1468         (WebInspector.ScriptsPanel.prototype.performSearch.finishedCallback):
1469         (WebInspector.ScriptsPanel.prototype.performSearch):
1470         (WebInspector.ScriptsPanel.prototype.jumpToNextSearchResult):
1471         (WebInspector.ScriptsPanel.prototype.jumpToPreviousSearchResult):
1472         (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
1473         (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
1474         (WebInspector.ScriptsPanel.prototype.replaceAllWith):
1475         * inspector/front-end/SearchController.js:
1476         (WebInspector.SearchController):
1477         (WebInspector.SearchController.prototype.cancelSearch):
1478         (WebInspector.SearchController.prototype.disableSearchUntilExplicitAction):
1479         (WebInspector.SearchController.prototype.handleShortcut):
1480         (WebInspector.SearchController.prototype.activePanelChanged.performPanelSearch):
1481         (WebInspector.SearchController.prototype.activePanelChanged):
1482         (WebInspector.SearchController.prototype._updateSearchNavigationButtonState):
1483         (WebInspector.SearchController.prototype.showSearchField):
1484         (WebInspector.SearchController.prototype._onKeyDown):
1485         (WebInspector.SearchController.prototype._onInput):
1486         (WebInspector.SearchController.prototype._onNextButtonSearch):
1487         (WebInspector.SearchController.prototype._onPrevButtonSearch):
1488         (WebInspector.SearchController.prototype._performSearch):
1489         (WebInspector.SearchController.prototype._toggleReplaceVisibility):
1490         (WebInspector.SearchController.prototype._replace):
1491         (WebInspector.SearchController.prototype._replaceAll):
1492         * inspector/front-end/Settings.js:
1493         (WebInspector.ExperimentsSettings):
1494         * inspector/front-end/SourceFrame.js:
1495         (WebInspector.SourceFrame.createSearchRegex):
1496         (WebInspector.SourceFrame.prototype.beforeTextChanged):
1497         (WebInspector.SourceFrame.prototype.replaceSearchMatchWith):
1498         (WebInspector.SourceFrame.prototype.replaceAllWith):
1499         (WebInspector.TextEditorDelegateForSourceFrame.prototype.beforeTextChanged):
1500         (WebInspector.TextEditorDelegateForSourceFrame.prototype.commitEditing):
1501         * inspector/front-end/StylesPanel.js:
1502         (WebInspector.StyleSourceFrame.prototype.afterTextChanged):
1503         * inspector/front-end/TextEditor.js:
1504         (WebInspector.TextEditor.prototype._commitEditing):
1505         * inspector/front-end/TextEditorModel.js:
1506         (WebInspector.TextEditorModel.endsWithBracketRegex.):
1507         * inspector/front-end/inspector.css:
1508         (.search-replace):
1509         (.search-replace:focus):
1510         (.toolbar-search-navigation-controls):
1511         (.toolbar-search-navigation.enabled):
1512         (.toolbar-search):
1513         (.toolbar-search input[type="checkbox"]):
1514         (.toolbar-search button):
1515         (.toolbar-search button:active):
1516         (.toolbar-search-control):
1517         (.toolbar-replace-control):
1518         (.toolbar-search-navigation.enabled:active):
1519         (.toolbar-search-navigation.toolbar-search-navigation-prev):
1520         (.toolbar-search-navigation.toolbar-search-navigation-prev.enabled:active):
1521         (.toolbar-search-navigation.toolbar-search-navigation-next):
1522         (.toolbar-search-navigation.toolbar-search-navigation-next.enabled:active):
1523         (.drawer-header-close-button):
1524         (.inspector-footer):
1525
1526 2012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
1527
1528         [Qt][V8] Remove the V8 related codepaths and configuration
1529         https://bugs.webkit.org/show_bug.cgi?id=90863
1530
1531         Reviewed by Simon Hausmann.
1532
1533         No new tests because no new functionality.
1534
1535         * DerivedSources.pri:
1536         * Target.pri:
1537         * WebCore.gypi:
1538         * WebCore.pri:
1539         * bindings/v8/ScriptCachedFrameData.cpp:
1540         * bindings/v8/ScriptCachedFrameData.h:
1541         * bindings/v8/ScriptController.cpp:
1542         * bindings/v8/ScriptController.h:
1543         (ScriptController):
1544         * bindings/v8/ScriptControllerQt.cpp: Removed.
1545         * bindings/v8/V8GCController.cpp:
1546         (WebCore::V8GCController::checkMemoryUsage):
1547         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
1548         (WebCore::histogramEnumeration):
1549         (WebCore::V8InspectorFrontendHost::recordActionTakenCallback):
1550         (WebCore::V8InspectorFrontendHost::recordPanelShownCallback):
1551         (WebCore::V8InspectorFrontendHost::recordSettingChangedCallback):
1552         * config.h:
1553
1554 2012-07-17  Zoltan Horvath  <zoltan@webkit.org>
1555
1556         [QT] REGRESSION (r122720): svg/filters/feSpecularLight-premultiplied.svg
1557         https://bugs.webkit.org/show_bug.cgi?id=91390
1558
1559         Reviewed by Zoltan Herczeg.
1560
1561         Fix the regression by using the proper imagetype conversion in ImageBuffer::platformTransformColorSpace.
1562
1563         The test is unskipped.
1564
1565         * platform/graphics/qt/ImageBufferQt.cpp:
1566         (WebCore::ImageBuffer::platformTransformColorSpace):
1567
1568 2012-07-17  Vivek Galatage  <vivekgalatage@gmail.com>
1569
1570         Web Inspector: refactor InspectorController::connectFrontend() to accept InspectorFrontendChannel.
1571         https://bugs.webkit.org/show_bug.cgi?id=91196
1572
1573         Reviewed by Pavel Feldman.
1574
1575         Refactoring InspectorClients. InspectorClient::openInspectorFrontend
1576         now returning the InspectorFrontendChannel. Also refactored
1577         InspectorController::connectFrontend() to receive
1578         InspectorFrontendChannel.
1579
1580         No new test as code refactoring done.
1581
1582         * inspector/InspectorClient.h:
1583         (WebCore):
1584         (InspectorClient):
1585         * inspector/InspectorController.cpp:
1586         (WebCore::InspectorController::InspectorController):
1587         (WebCore::InspectorController::connectFrontend):
1588         (WebCore::InspectorController::show):
1589         (WebCore::InspectorController::reconnectFrontend):
1590         * inspector/InspectorController.h:
1591         (WebCore):
1592         (InspectorController):
1593         * loader/EmptyClients.h:
1594         (WebCore::EmptyInspectorClient::openInspectorFrontend):
1595         (WebCore::EmptyInspectorClient::hideHighlight):
1596
1597 2012-07-17  Sheriff Bot  <webkit.review.bot@gmail.com>
1598
1599         Unreviewed, rolling out r122834.
1600         http://trac.webkit.org/changeset/122834
1601         https://bugs.webkit.org/show_bug.cgi?id=91492
1602
1603         it broke the chromium (Requested by kkristof on #webkit).
1604
1605         * DerivedSources.pri:
1606         * Target.pri:
1607         * WebCore.pri:
1608         * bindings/v8/ScriptCachedFrameData.cpp:
1609         (WebCore):
1610         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
1611         (WebCore::ScriptCachedFrameData::domWindow):
1612         (WebCore::ScriptCachedFrameData::restore):
1613         (WebCore::ScriptCachedFrameData::clear):
1614         * bindings/v8/ScriptCachedFrameData.h:
1615         (WebCore):
1616         (ScriptCachedFrameData):
1617         (WebCore::ScriptCachedFrameData::~ScriptCachedFrameData):
1618         * bindings/v8/ScriptController.cpp:
1619         * bindings/v8/ScriptController.h:
1620         (ScriptController):
1621         * bindings/v8/ScriptControllerQt.cpp: Copied from Source/WebCore/bindings/v8/ScriptCachedFrameData.cpp.
1622         (WebCore):
1623         (WebCore::ScriptController::qtScriptEngine):
1624         * bindings/v8/V8GCController.cpp:
1625         (WebCore::V8GCController::checkMemoryUsage):
1626         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
1627         (WebCore):
1628         (WebCore::V8InspectorFrontendHost::recordActionTakenCallback):
1629         (WebCore::V8InspectorFrontendHost::recordPanelShownCallback):
1630         (WebCore::V8InspectorFrontendHost::recordSettingChangedCallback):
1631         * config.h:
1632
1633 2012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
1634
1635         [Qt][V8] Remove the V8 related codepaths and configuration
1636         https://bugs.webkit.org/show_bug.cgi?id=90863
1637
1638         Reviewed by Simon Hausmann.
1639
1640         No new tests, because there is no new functionality.
1641
1642         * DerivedSources.pri:
1643         * Target.pri:
1644         * WebCore.pri:
1645         * bindings/v8/ScriptCachedFrameData.cpp:
1646         * bindings/v8/ScriptCachedFrameData.h:
1647         * bindings/v8/ScriptController.cpp:
1648         * bindings/v8/ScriptController.h:
1649         (ScriptController):
1650         * bindings/v8/ScriptControllerQt.cpp: Removed.
1651         * bindings/v8/V8GCController.cpp:
1652         (WebCore::V8GCController::checkMemoryUsage):
1653         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
1654         (WebCore::histogramEnumeration):
1655         (WebCore::V8InspectorFrontendHost::recordActionTakenCallback):
1656         (WebCore::V8InspectorFrontendHost::recordPanelShownCallback):
1657         (WebCore::V8InspectorFrontendHost::recordSettingChangedCallback):
1658         * config.h:
1659
1660 2012-07-17  Kwang Yul Seo  <skyul@company100.net>
1661
1662         "in body" insertion mode, "any other end tag" step 2.1 is updated
1663         https://bugs.webkit.org/show_bug.cgi?id=91473
1664
1665         Reviewed by Eric Seidel.
1666
1667         The HTML5 spec is updated to change the 'end tag' processing to not imply
1668         its own end tag, since that makes no sense. Step 2.1 now says
1669         "Generate implied end tags, except for elements with the same tag name as the token."
1670         Modified to follow the updated spec. Also removed the first FIXME because now
1671         ElementRecord can't be deleted by the preceeding call.
1672
1673         This patch does not actually change the behavior because of the previous
1674         check (aborts if generateImpliedEndTags has already popped the node for the token),
1675         so no new tests.
1676
1677         * html/parser/HTMLTreeBuilder.cpp:
1678         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
1679
1680 2012-07-17  Shinya Kawanaka  <shinyak@chromium.org> 
1681
1682         [Regression] Infinite loop in document.elementFromPoint
1683         https://bugs.webkit.org/show_bug.cgi?id=90820
1684
1685         Reviewed by Nikolas Zimmermann.
1686
1687         Node::shadowAncestorNode returns the caller node itself for SVGElement. However,
1688         since we have already implemented event retargeting algorithm in Shadow DOM, we don't have to
1689         take a special care of SVGElement for Node.shadowAncestorNode() now.
1690
1691         This patch will removes the special care code and fixes infinite loop in document.elementFromPoint().
1692
1693         Test: svg/hittest/svg-use-element-from-point.html
1694
1695         * dom/Node.cpp:
1696         (WebCore::Node::shadowAncestorNode):
1697
1698 2012-07-17  Shinya Kawanaka  <shinyak@chromium.org>
1699
1700         Shadow DOM for img element
1701         https://bugs.webkit.org/show_bug.cgi?id=90532
1702
1703         Reviewed by Hajime Morita.
1704
1705         This patch adds Shadow DOM support for img element.
1706
1707         According to the Shadow DOM spec, img element should behave like having a user agent Shadow DOM.
1708         However, if we add Shadow DOM to img by default, it will cause performance regression and memory bloat.
1709
1710         So, we would like to postpone adding a Shadow DOM to img until when we really need it. In other words,
1711         we add our User Agent Shadow DOM to img just before a user adds Author Shadow DOM.
1712
1713         The User Agent Shadow DOM for img has only one element, which displays an image. If img has
1714         a Shadow DOM, img will behave like <span style="display: inline-block"> by default. The display style can
1715         be chagned using CSS though.
1716
1717         This patch also adds ImageLoaderClient. The element we render an image and the element we take an argument
1718         from were the same, however not they might be different. We would like to encapsulate the fact into
1719         ImageLoaderClient.
1720
1721         Tests: fast/dom/shadow/shadowdom-for-image-alt-update.html
1722                fast/dom/shadow/shadowdom-for-image-alt.html
1723                fast/dom/shadow/shadowdom-for-image-content.html
1724                fast/dom/shadow/shadowdom-for-image-dynamic.html
1725                fast/dom/shadow/shadowdom-for-image-event-click.html
1726                fast/dom/shadow/shadowdom-for-image-in-shadowdom.html
1727                fast/dom/shadow/shadowdom-for-image-map.html
1728                fast/dom/shadow/shadowdom-for-image-style.html
1729                fast/dom/shadow/shadowdom-for-image-with-multiple-shadow.html
1730                fast/dom/shadow/shadowdom-for-image-with-width-and-height.html
1731                fast/dom/shadow/shadowdom-for-image.html
1732
1733         * CMakeLists.txt:
1734         * GNUmakefile.list.am:
1735         * Target.pri:
1736         * WebCore.gypi:
1737         * WebCore.vcproj/WebCore.vcproj:
1738         * WebCore.xcodeproj/project.pbxproj:
1739         * css/html.css:
1740         (img):
1741         * html/HTMLImageElement.cpp:
1742         (WebCore::ImageElement::setImageIfNecessary):
1743         (WebCore):
1744         (WebCore::ImageElement::createRendererForImage):
1745         (WebCore::HTMLImageElement::willAddAuthorShadowRoot): When we don't have a user agent Shadow DOM yet
1746         we add it.
1747         (WebCore::HTMLImageElement::createShadowSubtree):
1748         (WebCore::HTMLImageElement::imageElement):
1749         (WebCore::HTMLImageElement::parseAttribute):
1750         (WebCore::HTMLImageElement::createRenderer): If a user agent Shadow DOM is attached, we create
1751         Renderer from style, instead of creating RenderImage.
1752         (WebCore::HTMLImageElement::attach):
1753         (WebCore::HTMLImageElement::innerElement):
1754         * html/HTMLImageElement.h:
1755         (WebCore):
1756         (ImageElement):
1757         (HTMLImageElement):
1758         (WebCore::HTMLImageElement::sourceElement):
1759         (WebCore::HTMLImageElement::refSourceElement):
1760         (WebCore::HTMLImageElement::derefSourceElement):
1761         (WebCore::HTMLImageElement::imageRenderer):
1762         (WebCore::HTMLImageElement::imageLoader):
1763         (WebCore::isHTMLImageElement):
1764         (WebCore::toHTMLImageElement):
1765         * html/HTMLImageLoader.cpp:
1766         (WebCore::HTMLImageLoader::HTMLImageLoader):
1767         (WebCore::HTMLImageLoader::dispatchLoadEvent):
1768         (WebCore::HTMLImageLoader::sourceURI):
1769         (WebCore::HTMLImageLoader::notifyFinished):
1770         * html/HTMLImageLoader.h:
1771         (HTMLImageLoader):
1772         * html/HTMLInputElement.h:
1773         * html/HTMLObjectElement.h:
1774         * html/HTMLPlugInElement.h:
1775         * html/HTMLTagNames.in:
1776         * html/HTMLVideoElement.h:
1777         * html/shadow/ImageInnerElement.cpp: Added.
1778         (WebCore):
1779         (WebCore::ImageInnerElement::ImageInnerElement):
1780         (WebCore::ImageInnerElement::hostImage):
1781         (WebCore::ImageInnerElement::imageLoader):
1782         (WebCore::ImageInnerElement::attach):
1783         (WebCore::ImageInnerElement::createRenderer):
1784         * html/shadow/ImageInnerElement.h: Added.
1785         (WebCore):
1786         (ImageInnerElement):
1787         (WebCore::ImageInnerElement::imageRenderer):
1788         (WebCore::ImageInnerElement::create):
1789         (WebCore::isImageInnerElement):
1790         (WebCore::toImageInnerElement):
1791         * loader/ImageLoader.cpp:
1792         (WebCore::ImageLoader::ImageLoader):
1793         (WebCore::ImageLoader::~ImageLoader):
1794         (WebCore):
1795         (WebCore::ImageLoader::document):
1796         (WebCore::ImageLoader::updateFromElement):
1797         (WebCore::ImageLoader::notifyFinished):
1798         (WebCore::ImageLoader::renderImageResource):
1799         (WebCore::ImageLoader::updatedHasPendingLoadEvent):
1800         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
1801         (WebCore::ImageLoader::dispatchPendingLoadEvent):
1802         (WebCore::ImageLoader::dispatchPendingErrorEvent):
1803         * loader/ImageLoader.h:
1804         (WebCore):
1805         (ImageLoader):
1806         (WebCore::ImageLoader::client):
1807         * loader/ImageLoaderClient.h: Added.
1808         (WebCore):
1809         (ImageLoaderClient): Provides the necessary interfaces to ImageLoader.
1810         (WebCore::ImageLoaderClient::~ImageLoaderClient):
1811         (ImageLoaderClientBase):
1812         (WebCore::ImageLoaderClientBase::sourceElement):
1813         (WebCore::ImageLoaderClientBase::imageElement):
1814         (WebCore::ImageLoaderClientBase::refSourceElement):
1815         (WebCore::ImageLoaderClientBase::derefSourceElement):
1816         * rendering/RenderImage.cpp:
1817         (WebCore::RenderImage::paintIntoRect):
1818         (WebCore::RenderImage::imageMap):
1819         (WebCore::RenderImage::updateAltText):
1820         (WebCore::RenderImage::hostImageElement):
1821         (WebCore):
1822         * rendering/RenderImage.h:
1823         (WebCore):
1824         (RenderImage):
1825         * rendering/RenderObject.cpp:
1826         (WebCore::RenderObject::shouldRespectImageOrientation):
1827         * svg/SVGImageElement.h:
1828         (SVGImageElement):
1829         * svg/SVGImageLoader.cpp:
1830         (WebCore::SVGImageLoader::SVGImageLoader):
1831         (WebCore::SVGImageLoader::dispatchLoadEvent):
1832         (WebCore::SVGImageLoader::sourceURI):
1833         * svg/SVGImageLoader.h:
1834         (SVGImageLoader):
1835
1836 2012-07-17  Kent Tamura  <tkent@chromium.org>
1837
1838         Internals: Remove injectPagePopupController()
1839         https://bugs.webkit.org/show_bug.cgi?id=91471
1840
1841         Reviewed by Hajime Morita.
1842
1843         r122558 introduced injectPagePopupController(), however we'd like to
1844         avoid adding such JavaScript binding code. We can avoid it by exposing a
1845         PagePopupController for a mock and injecting the following code to the
1846         popup document:
1847
1848         <script>window.pagePopupController = window.internals.pagePopupController</script>
1849
1850         No new tests. This is a kind of refactoring.
1851
1852         * testing/InternalSettings.cpp:
1853         (WebCore::InternalSettings::pagePopupController):
1854         Added. Accessor for PagePopupControler owned by the MockPagePopupDriver.
1855         * testing/InternalSettings.h:
1856         (InternalSettings): Declare pagePopupController() for Internals::pagePopupController().
1857         * testing/Internals.cpp:
1858         (WebCore::Internals::pagePopupController):
1859         Added. This uses InternalSettings::pagePopupController().
1860         * testing/Internals.h:
1861         (Internals): Declare pagePopupController() for Internals.idl.
1862         * testing/Internals.idl: Declare pagePopupController.
1863
1864         * testing/MockPagePopupDriver.cpp:
1865         Moved m_pagePopupController from MockPagePopup to MockPagePopupDriver.
1866         (WebCore::MockPagePopup::MockPagePopup):
1867         Added a script element to prepare window.pagePopupController.
1868         Removed a callsite of injectPagePopupController().
1869         (WebCore::MockPagePopupDriver::openPagePopup):
1870         (WebCore::MockPagePopupDriver::closePagePopup):
1871         * testing/MockPagePopupDriver.h:
1872         (WebCore::MockPagePopupDriver::pagePopupController):
1873         Accessor for a PagePopupController object.
1874         (MockPagePopupDriver): Add RefPtr<PagePopupController> data member.
1875
1876         * testing/v8/WebCoreTestSupport.cpp: Remove injectPagePopupController().
1877         * testing/v8/WebCoreTestSupport.h: ditto.
1878
1879 2012-07-17  Ryuan Choi  <ryuan.choi@samsung.com>
1880
1881         [EFL] Move codes related to theme setting from Widget to RenderTheme
1882         https://bugs.webkit.org/show_bug.cgi?id=89842
1883
1884         Reviewed by Kenneth Rohde Christiansen.
1885
1886         WebKit/Efl uses custom theme for Scrollbar, RenderTheme and Cursor.
1887         However, theme information itself is in WidgetEfl so it is accessed by
1888         calling recursive function.
1889         Because theme is managed by each page, this patch moves codes related to
1890         theme from WidgetEfl to RenderThemeEfl which is contained by page.
1891
1892         * platform/Widget.h: Removed functions related to theme.
1893         * platform/efl/RenderThemeEfl.cpp:
1894         (WebCore::RenderThemeEfl::setThemePath): Added to set theme path.
1895         (WebCore::RenderThemeEfl::createEdje): Updated method to use RenderThemeEfl's theme.
1896         (WebCore::RenderThemeEfl::RenderThemeEfl):
1897         * platform/efl/RenderThemeEfl.h:
1898         (WebCore::RenderThemeEfl::themePath): Added to get theme path
1899         * platform/efl/ScrollbarEfl.cpp: Updated method to use RenderThemeEfl's theme.
1900         (ScrollbarEfl::setParent):
1901         * platform/efl/WidgetEfl.cpp: Removed codes related theme.
1902         (WidgetPrivate):
1903
1904 2012-07-17  Shinya Kawanaka  <shinyak@chromium.org>
1905
1906         HTMLMediaElement should not use Element::ensureShadowRoot()
1907         https://bugs.webkit.org/show_bug.cgi?id=77936
1908
1909         Reviewed by Hajime Morita.
1910
1911         a video element and an audio element add UserAgentShadowRoot dynamically, and they assume that it's the oldest ShadowRoot.
1912         However an AuthorShadowRoot could be added by a user before a video element and an audio element add UserAgentShadowRoot.
1913         It breaks the assumption that the UserAgentShadowRoot is the oldest.
1914
1915         If the UserAgentShadowRoot is not the oldest, the AuthorShadowRoot a page author added might be ignored.
1916         Since the timing to add UserAgentShadowRoot is not known by a user, the fact that UserAgentShadorRoot is
1917         not the oldest will cause inconsistent behavior.
1918
1919         Adding AuthorShadowRoot to a video element and an audio element is allowed by this patch.
1920
1921         Test: fast/dom/shadow/shadowdom-for-media.html
1922
1923         * dom/ShadowRoot.cpp:
1924         (WebCore::allowsAuthorShadowRoot):
1925         * html/HTMLMediaElement.cpp:
1926         (WebCore::HTMLMediaElement::createShadowSubtree):
1927         (WebCore):
1928         (WebCore::HTMLMediaElement::willAddAuthorShadowRoot):
1929         (WebCore::HTMLMediaElement::createMediaControls):
1930         * html/HTMLMediaElement.h:
1931         (HTMLMediaElement):
1932
1933 2012-07-16  Daniel Bates  <dbates@webkit.org>
1934
1935         Attempt to fix the Chromium Mac build after <http://trac.webkit.org/changeset/122802>
1936         (https://bugs.webkit.org/show_bug.cgi?id=91451)
1937  
1938         Remove unused private instance variable AbsoluteQuadsGeneratorContext::m_wasFixed.
1939         This instance variable has remained unused since it was added in
1940         <http://trac.webkit.org/changeset/116718> (https://bugs.webkit.org/show_bug.cgi?id=85725).
1941
1942         I'm unclear as to why the Chromium Mac build began to complain about this
1943         unused instance variable following <http://trac.webkit.org/changeset/122802>, since this
1944         code has been in the tree for a while and we previously instantiated AbsoluteQuadsGeneratorContext
1945         with wasFixed (even though it wasn't used). Regardless, we should remove the unused
1946         instance variable AbsoluteQuadsGeneratorContext::m_wasFixed.
1947
1948         * rendering/RenderInline.cpp:
1949         (WebCore): Remove AbsoluteQuadsGeneratorContext::m_wasFixed.
1950         (WebCore::RenderInline::absoluteQuads):
1951
1952 2012-07-16  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1953
1954         Add RegisterProtocolHandlerClient to the Modules/protocolhandler
1955         https://bugs.webkit.org/show_bug.cgi?id=90940
1956
1957         Reviewed by Hajime Morita.
1958
1959         As a step to let protocol handler be moved to the modules, RegisterProtocolHandlerClient needs
1960         to be added to the Modules/protocolhandler. Because ChromeClient has some virtual functions for
1961         protocol handlers, virtual functions should be moved to RegisterProtocolHandlerClient.
1962
1963         In addition, NavigatorRegisterProtocolHandler should be supplementable.
1964
1965         No new tests. Covered by existing tests.
1966
1967         * GNUmakefile.list.am:
1968         * Modules/protocolhandler/NavigatorRegisterProtocolHandler.cpp:
1969         (WebCore::NavigatorRegisterProtocolHandler::from):
1970         (WebCore::NavigatorRegisterProtocolHandler::create):
1971         (WebCore):
1972         (WebCore::NavigatorRegisterProtocolHandler::registerProtocolHandler):
1973         (WebCore::customHandlersStateString):
1974         (WebCore::NavigatorRegisterProtocolHandler::isProtocolHandlerRegistered):
1975         (WebCore::NavigatorRegisterProtocolHandler::unregisterProtocolHandler):
1976         (WebCore::NavigatorRegisterProtocolHandler::supplementName):
1977         (WebCore::provideRegisterProtocolHandlerTo):
1978         * Modules/protocolhandler/NavigatorRegisterProtocolHandler.h:
1979         (WebCore):
1980         (NavigatorRegisterProtocolHandler):
1981         (WebCore::NavigatorRegisterProtocolHandler::NavigatorRegisterProtocolHandler):
1982         (WebCore::NavigatorRegisterProtocolHandler::client):
1983         * Modules/protocolhandler/RegisterProtocolHandlerClient.h: Added.
1984         (WebCore):
1985         (RegisterProtocolHandlerClient):
1986         * WebCore.gypi:
1987         * loader/EmptyClients.h:
1988         * page/ChromeClient.h:
1989         (ChromeClient):
1990         * platform/network/soup/CookieJarSoup.cpp:
1991         (WebCore::setCookies):
1992         (WebCore::getRawCookies):
1993
1994 2012-07-16  Pete Williamson  <petewil@google.com>
1995
1996         Changed the behavior of iconURLs to always recalculate the list.
1997         https://bugs.webkit.org/show_bug.cgi?id=88665
1998
1999         Reviewed by Kent Tamura.
2000
2001         As it turns out, it can contain stale URLs in the case that some script
2002         manipulates the DOM, which breaks scripts trying to reset the favicon
2003         URL. Also added a method in Internals to allow tests to get the list of
2004         icon
2005
2006         Tests: fast/dom/icon-url-change.html
2007                fast/dom/icon-url-list.html
2008
2009         * WebCore.exp.in: export Document::iconURLs on the mac for the Internals class
2010         * dom/Document.cpp:
2011         (WebCore::Document::iconURLs): Changed the method to recalculate the iconURL list every time
2012         (WebCore::Document::addIconURL): we no longer need to add to the internal list since we recalculate it
2013         (WebCore::Document::setUseSecureKeyboardEntryWhenActive): removed extra whitespace
2014         * dom/Document.h:
2015         (Document): removed the addIconURL method which is no longer used
2016         * html/HTMLLinkElement.cpp:
2017         (WebCore::HTMLLinkElement::iconType): exposed the icon type with an accessor
2018         (WebCore):
2019         (WebCore::HTMLLinkElement::iconSizes): exposed the icon sizes with an accessor
2020         * html/HTMLLinkElement.h:
2021         (HTMLLinkElement): declared the icon type and size accessors
2022         * testing/Internals.cpp:
2023         (WebCore::Internals::iconURLs): made a method to be used by unit tests for inspecting the icon URL list
2024         (WebCore):
2025         * testing/Internals.h:
2026         (Internals): declared the method for unit testing the icon URL list
2027         * testing/Internals.idl: exported the Document::iconURLs function
2028
2029 2012-07-16  Hajime Morrita  <morrita@chromium.org>
2030
2031         WebCore needs WEBCORE_TESTING macro to mark methods being exported for testing.
2032         https://bugs.webkit.org/show_bug.cgi?id=90764
2033
2034         Reviewed by Adam Barth.
2035
2036         Defined WEBCORE_TESTING based on USE(EXPORT_MACROS_FOR_TESTING) and
2037         applied it to FrameDestructionObserver.
2038
2039         * bindings/js/JSDOMGlobalObject.h: Removed conflicting symbols
2040         * page/FrameDestructionObserver.h: Added WEBKIT_TESTING
2041         (FrameDestructionObserver):
2042         * platform/PlatformExportMacros.h:
2043
2044 2012-07-16  Kiran Muppala  <cmuppala@apple.com>
2045
2046         REGRESSION: RenderInline::absoluteQuads produces incorrect results for fixed position.
2047         https://bugs.webkit.org/show_bug.cgi?id=91451
2048
2049         Reviewed by Simon Fraser.
2050
2051         RenderInline::absoluteQuads relies on copies of RenderGeometryMap,
2052         created indirectly by passing AbsoluteQuadsGeneratorContext object by
2053         value.  These copies are unsafe because the individual transform steps
2054         within the geometry map include a owned poitner to their respective
2055         transform.
2056
2057         Modify the callee methods to take context by reference and disable
2058         copy constructor for RenderGeometryMap.
2059
2060         Test: fast/inline/inline-fixed-position-boundingbox.html
2061
2062         * rendering/RenderGeometryMap.h:
2063         (WebCore::RenderGeometryMapStep::RenderGeometryMapStep): Add missing
2064         m_offset to copy constructor initialization list.
2065         (RenderGeometryMap): Disable copy constructor.
2066         * rendering/RenderInline.cpp: Pass context object by reference.
2067         (WebCore::RenderInline::generateLineBoxRects): 
2068         (WebCore::RenderInline::generateCulledLineBoxRects):
2069         (WebCore::RenderInline::absoluteRects):
2070         (WebCore::RenderInline::absoluteQuads):
2071         (WebCore::RenderInline::linesBoundingBox):
2072         (WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
2073         (WebCore::RenderInline::addFocusRingRects):
2074         * rendering/RenderInline.h:
2075         (RenderInline::generateLineBoxRects): Update method declarations to
2076         show pass by reference context parameter.
2077         (RenderInline::generateCulledLineBoxRects): Ditto.
2078
2079 2012-07-16  Hayato Ito  <hayato@chromium.org>
2080
2081         Some events should be always stopped at shadow boundary.
2082         https://bugs.webkit.org/show_bug.cgi?id=90436
2083
2084         Reviewed by Ryosuke Niwa.
2085
2086         The spec is here:
2087         https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#events-that-are-always-stopped
2088
2089         Test: fast/dom/shadow/events-stopped-at-shadow-boundary.html
2090
2091         * dom/EventDispatcher.cpp:
2092         (WebCore::EventDispatcher::determineDispatchBehavior):
2093
2094 2012-07-16  Yoshifumi Inoue  <yosin@chromium.org>
2095
2096         REGRESSION(r119948): [Form] HTMLInputElement.valueAsNumber for input type "month" should return number of month since January 1970
2097         https://bugs.webkit.org/show_bug.cgi?id=91211
2098
2099         Reviewed by Kent Tamura.
2100
2101         This patch changes BaseDateAndTimeInputType::valueAsDouble() to call
2102         virtual function parseToNumber() which "month" input type overrides
2103         instead of non-virtual function parseToDouble() which returns number
2104         of milliseconds.
2105
2106         No new tests. Existing test (fast/form/month/input-valueasnumber-month.html) coverts this, although it is disabled.
2107
2108         * html/BaseDateAndTimeInputType.cpp:
2109         (WebCore::BaseDateAndTimeInputType::valueAsDouble): Changed to call parseToNumber().
2110         (WebCore::BaseDateAndTimeInputType::parseToNumber): Changed to what parseToDouble() did.
2111         * html/BaseDateAndTimeInputType.h:
2112         (BaseDateAndTimeInputType): Remove parseToDouble().
2113
2114 2012-07-16  Adrienne Walker  <enne@google.com>
2115
2116         [chromium] Turn off ScrollbarLayerChromium for Windows due to bad alpha values
2117         https://bugs.webkit.org/show_bug.cgi?id=91438
2118
2119         Reviewed by Kenneth Russell.
2120
2121         r120509 turned on blending for scrollbar thumbs. Unfortunately for
2122         Windows XP scrollbar thumbs, their alpha channel is bogus and so the
2123         thumb ends up being completely transparent. This should ultimately be
2124         fixed in Chromium theme code, but in the meantime this patch turns
2125         off the use of ScrollbarLayerChromium.
2126
2127         This change makes Windows scrollbars fall back to using normal
2128         ContentLayerChromiums and being painted all in one layer on the main
2129         thread rather than being painted separately and composited on the
2130         compositor thread.
2131
2132         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2133         (WebCore::createScrollbarLayer):
2134
2135 2012-07-16  Koji Ishii  <kojiishi@gmail.com>
2136
2137         Vertical alternate glyph (GSUB) support for OpenTypeVerticalData
2138         https://bugs.webkit.org/show_bug.cgi?id=81389
2139
2140         Reviewed by Tony Chang.
2141
2142         This patch adds support for reading 'GSUB' OpenType table to get
2143         vertical alternate glyphs.
2144         http://www.microsoft.com/typography/otspec/gsub.htm
2145
2146         Like bug 81326, this code isn't on any code path yet.
2147
2148         Tests: WebKit/chromium/tests/OpenTypeVerticalDataTest.cpp
2149
2150         * platform/graphics/opentype/OpenTypeTypes.h:
2151         (WebCore::OpenType::validateTable): Moved from OpenTypeVerticalData.cpp for unit tests.
2152         (OpenType):
2153         (TableBase): Ditto.
2154         (WebCore::OpenType::TableBase::isValidEnd):
2155         (WebCore::OpenType::TableBase::validatePtr):
2156         (WebCore::OpenType::TableBase::validateOffset):
2157         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
2158         (OpenType): Added several OpenType tables used by 'GSUB' table.
2159         (CoverageTable):
2160         (Coverage1Table):
2161         (Coverage2Table):
2162         (RangeRecord):
2163         (SubstitutionSubTable):
2164         (WebCore::OpenType::SubstitutionSubTable::coverage):
2165         (SingleSubstitution2SubTable):
2166         (LookupTable):
2167         (WebCore::OpenType::LookupTable::getSubstitutions):
2168         (LookupList):
2169         (WebCore::OpenType::LookupList::lookup):
2170         (FeatureTable):
2171         (WebCore::OpenType::FeatureTable::getGlyphSubstitutions):
2172         (FeatureList):
2173         (FeatureRecord):
2174         (WebCore::OpenType::FeatureList::feature):
2175         (LangSysTable):
2176         (WebCore::OpenType::LangSysTable::feature):
2177         (ScriptTable):
2178         (LangSysRecord):
2179         (WebCore::OpenType::ScriptTable::defaultLangSys):
2180         (ScriptList):
2181         (ScriptRecord):
2182         (WebCore::OpenType::ScriptList::script):
2183         (WebCore::OpenType::ScriptList::defaultScript):
2184         (WebCore::OpenType::ScriptList::defaultLangSys):
2185         (GSUBTable):
2186         (WebCore::OpenType::GSUBTable::scriptList):
2187         (WebCore::OpenType::GSUBTable::featureList):
2188         (WebCore::OpenType::GSUBTable::lookupList):
2189         (WebCore::OpenType::GSUBTable::defaultLangSys):
2190         (WebCore::OpenType::GSUBTable::feature):
2191         (WebCore::OpenType::GSUBTable::getVerticalGlyphSubstitutions):
2192         (WebCore::OpenTypeVerticalData::OpenTypeVerticalData):
2193         (WebCore::OpenTypeVerticalData::loadMetrics): Split code to load metrics from ctor.
2194         (WebCore::OpenTypeVerticalData::loadVerticalGlyphSubstitutions): Load the vertical alternate Glyph substitution table.
2195         (WebCore):
2196         (WebCore::OpenTypeVerticalData::substituteWithVerticalGlyphs): Substitute Glyph IDs with vertical alternate Glyph IDs.
2197         * platform/graphics/opentype/OpenTypeVerticalData.h:
2198         (OpenTypeVerticalData): Added m_verticalGlyphMap.
2199
2200 2012-07-16  Vincent Scheib  <scheib@chromium.org>
2201
2202         Fix spelling of EnforceIFrameAllowFullScreenRequirement and ExemptIFrameAllowFullScreenRequirement.
2203         https://bugs.webkit.org/show_bug.cgi?id=91437
2204
2205         Reviewed by Adrienne Walker.
2206
2207         Document contained spelling errors of 'FulScreen' instead of 'FullScreen'
2208         for the FullScreenCheckType enumeration.
2209
2210         No test changes needed.
2211
2212         * dom/Document.cpp:
2213         (WebCore::Document::requestFullScreenForElement):
2214         * dom/Document.h:
2215         * dom/Element.cpp:
2216         (WebCore::Element::webkitRequestFullscreen):
2217         (WebCore::Element::webkitRequestFullScreen):
2218         * html/HTMLMediaElement.cpp:
2219         (WebCore::HTMLMediaElement::enterFullscreen):
2220         * html/shadow/MediaControlElements.cpp:
2221         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
2222
2223 2012-07-16  MORITA Hajime  <morrita@google.com>
2224
2225         Comment on WebCore::HTMLMediaElement::childShouldCreateRenderer() should explain why
2226         https://bugs.webkit.org/show_bug.cgi?id=91174
2227
2228         Reviewed by Kent Tamura.
2229
2230         Clarified the explanation.
2231
2232         * html/HTMLMediaElement.cpp:
2233         (WebCore::HTMLMediaElement::childShouldCreateRenderer):
2234
2235 2012-07-16  Sheriff Bot  <webkit.review.bot@gmail.com>
2236
2237         Unreviewed, rolling out r120033.
2238         http://trac.webkit.org/changeset/120033
2239         https://bugs.webkit.org/show_bug.cgi?id=91454
2240
2241         Broke background gradients (Requested by smfr on #webkit).
2242
2243         * platform/graphics/GeneratorGeneratedImage.cpp:
2244         (WebCore::GeneratorGeneratedImage::draw):
2245
2246 2012-07-16  Joshua Bell  <jsbell@chromium.org>
2247
2248         IndexedDB: Implement spec updates to IDBTransaction.error
2249         https://bugs.webkit.org/show_bug.cgi?id=91409
2250
2251         Reviewed by Tony Chang.
2252
2253         The Indexed DB spec was updated to resolve some edge cases around the
2254         IDBTransaction.error attribute. It was agreed that accessing error should
2255         never throw, error should be null if the transaction is not finished or
2256         abort() was explicitly called, an appropriate error should be returned if
2257         a commit failed, and a generic AbortError should be used if a request
2258         callback throws. These cases are now handled per spec, except that a reason
2259         is not provided for the commit failure (it's always UnknownError).
2260
2261         Test: storage/indexeddb/transaction-error.html
2262               storage/indexeddb/transaction-abort.html
2263
2264         * Modules/indexeddb/IDBRequest.cpp:
2265         (WebCore::IDBRequest::dispatchEvent): Refactor some nested if() blocks; don't
2266         re-abort the transaction if dispatching in response to an abort.
2267         (WebCore::IDBRequest::uncaughtExceptionInEventHandler): Abort transaction
2268         only if not already aborting, and set it's error to AbortError.
2269         * Modules/indexeddb/IDBTransaction.cpp:
2270         (WebCore::IDBTransaction::onAbort): Set error if abort triggered by back end.
2271         * Modules/indexeddb/IDBTransaction.h:
2272         (WebCore::IDBTransaction::db): Move impl to header file.
2273         (WebCore::IDBTransaction::error): Move impl to header file, simplify.
2274         (IDBTransaction):
2275         * Modules/indexeddb/IDBTransaction.idl: The error attribute no longer throws.
2276
2277 2012-07-16  Joshua Bell  <jsbell@chromium.org>
2278
2279         IndexedDB: Implement spec updates to IDBTransaction.error
2280         https://bugs.webkit.org/show_bug.cgi?id=91409
2281
2282         Reviewed by Tony Chang.
2283
2284         The Indexed DB spec was updated to resolve some edge cases around the
2285         IDBTransaction.error attribute. It was agreed that accessing error should
2286         never throw, error should be null if the transaction is not finished or
2287         abort() was explicitly called, an appropriate error should be returned if
2288         a commit failed, and a generic AbortError should be used if a request
2289         callback throws. These cases are now handled per spec, except that a reason
2290         is not provided for the commit failure (it's always UnknownError).
2291
2292         Test: storage/indexeddb/transaction-error.html
2293               storage/indexeddb/transaction-abort.html
2294
2295         * Modules/indexeddb/IDBRequest.cpp:
2296         (WebCore::IDBRequest::dispatchEvent): Refactor some nested if() blocks; don't
2297         re-abort the transaction if dispatching in response to an abort.
2298         (WebCore::IDBRequest::uncaughtExceptionInEventHandler): Abort transaction
2299         only if not already aborting, and set it's error to AbortError.
2300         * Modules/indexeddb/IDBTransaction.cpp:
2301         (WebCore::IDBTransaction::onAbort): Set error if abort triggered by back end.
2302         * Modules/indexeddb/IDBTransaction.h:
2303         (WebCore::IDBTransaction::db): Move impl to header file.
2304         (WebCore::IDBTransaction::error): Move impl to header file, simplify.
2305         (IDBTransaction):
2306         * Modules/indexeddb/IDBTransaction.idl: The error attribute no longer throws.
2307
2308 2012-07-16  Alec Flett  <alecflett@chromium.org>
2309
2310         IndexedDB: Introduce putWithIndexKeys and calculate them in the renderer
2311         https://bugs.webkit.org/show_bug.cgi?id=90923
2312
2313         Reviewed by Darin Fisher.
2314
2315         Refactor IndexWriter to depend only on IDBIndexMetadata and on
2316         (databaseId, objectStoreId, indexId) so that it can talk directly
2317         to the backing store, and also eventually be moved into the renderer.
2318
2319         This also introduces IDBObjectStoreBackendInterface::putWithIndexKeys
2320         as a replacement for IDBObjectStoreBackendInterface::put, already
2321         stubbed out in the chromium port. It will fully replace put()
2322         after both chromium and webkit sides have reached alignment.
2323
2324         No new tests as this is just a refactor and existing tests cover
2325         correctness.
2326
2327         * Modules/indexeddb/IDBCursor.cpp:
2328         (WebCore::IDBCursor::setValueReady):
2329         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
2330         * Modules/indexeddb/IDBIndexBackendImpl.h:
2331         * Modules/indexeddb/IDBObjectStore.h:
2332         (IDBObjectStore):
2333         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
2334         (WebCore::IDBObjectStoreBackendImpl::put):
2335         (WebCore):
2336         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
2337         (WebCore::IDBObjectStoreBackendImpl::putInternal):
2338         (WebCore::IDBObjectStoreBackendImpl::populateIndex):
2339         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
2340         (IDBObjectStoreBackendImpl):
2341         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
2342         * Modules/indexeddb/IDBRequest.cpp:
2343         (WebCore::IDBRequest::onSuccess):
2344
2345 2012-07-16  Adrienne Walker  <enne@google.com>
2346
2347         [chromium] Unify compositor quad transforms into content space
2348         https://bugs.webkit.org/show_bug.cgi?id=91350
2349
2350         Reviewed by Kenneth Russell.
2351
2352         For the purpose of simplification and as a first step towards removing
2353         any transform that takes a centered rect, remove the ability of layers
2354         to override the quad transform. All quads and quad transforms operate
2355         on content space with the origin in the top left.
2356
2357         The gutter quads used to use the root layer (that doesn't draw
2358         content) as the layer to create the shared quad state from. This is
2359         now created manually as a layer without bounds should never in general
2360         need a shared quad state created for it.
2361
2362         No change in functionality; tested by existing layout and unit tests.
2363
2364         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
2365         (WebCore::CCIOSurfaceLayerImpl::appendQuads):
2366         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2367         (WebCore::CCLayerImpl::createSharedQuadState):
2368         * platform/graphics/chromium/cc/CCLayerImpl.h:
2369         (CCLayerImpl):
2370         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2371         (WebCore::CCRenderPass::appendQuadsToFillScreen):
2372         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2373         (WebCore::CCSolidColorLayerImpl::appendQuads):
2374         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2375         (CCSolidColorLayerImpl):
2376         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2377         (WebCore::CCTextureLayerImpl::appendQuads):
2378         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2379         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2380         (CCTiledLayerImpl):
2381         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2382         (WebCore::CCVideoLayerImpl::appendQuads):
2383
2384 2012-07-16  Adrienne Walker  <enne@google.com>
2385
2386         [chromium] Unify compositor quad transforms into content space
2387         https://bugs.webkit.org/show_bug.cgi?id=91350
2388
2389         Reviewed by Kenneth Russell.
2390
2391         For the purpose of simplification and as a first step towards removing
2392         any transform that takes a centered rect, remove the ability of layers
2393         to override the quad transform. All quads and quad transforms operate
2394         on content space with the origin in the top left.
2395
2396         The gutter quads used to use the root layer (that doesn't draw
2397         content) as the layer to create the shared quad state from. This is
2398         now created manually as a layer without bounds should never in general
2399         need a shared quad state created for it.
2400
2401         No change in functionality; tested by existing layout and unit tests.
2402
2403         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
2404         (WebCore::CCIOSurfaceLayerImpl::appendQuads):
2405         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2406         (WebCore::CCLayerImpl::createSharedQuadState):
2407         * platform/graphics/chromium/cc/CCLayerImpl.h:
2408         (CCLayerImpl):
2409         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2410         (WebCore::CCRenderPass::appendQuadsToFillScreen):
2411         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2412         (WebCore::CCSolidColorLayerImpl::appendQuads):
2413         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2414         (CCSolidColorLayerImpl):
2415         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2416         (WebCore::CCTextureLayerImpl::appendQuads):
2417         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2418         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2419         (CCTiledLayerImpl):
2420         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2421         (WebCore::CCVideoLayerImpl::appendQuads):
2422
2423 2012-07-16  Joshua Bell  <jsbell@chromium.org>
2424
2425         IndexedDB: Resolve test and IDL FIXMEs for a handful of landed patches
2426         https://bugs.webkit.org/show_bug.cgi?id=91423
2427
2428         Reviewed by Tony Chang.
2429
2430         IDBObjectStore.createIndex() had a hack to handle a null keyPath argument for the
2431         DOMString[] overload and treat it as the string "null". Now that IDL arrays are not
2432         nullable by default following r121817 this hack can be removed and the binding layer
2433         will automagically coerce to DOMString.
2434
2435         Test: storage/indexeddb/keypath-basics.html
2436
2437         * Modules/indexeddb/IDBObjectStore.cpp:
2438         (WebCore::IDBObjectStore::createIndex): Remove special case for null in DOMString[] overload.
2439         * Modules/indexeddb/IDBObjectStore.idl: Remove Nullable suffix from DOMString[] overload
2440         so that the DOMString overload will match null.
2441
2442 2012-07-16  Bear Travis  <betravis@adobe.com>
2443
2444         Resolve CSS Exclusions shapeInside, shapeOutside properties to Length based WrapShape classes
2445         https://bugs.webkit.org/show_bug.cgi?id=89670
2446
2447         Reviewed by Dirk Schulze.
2448
2449         Layout of CSS Exclusions requires length based WrapShape classes,
2450         rather than the existing CSSValue based CSSWrapShape classes. This
2451         patch adds length based WrapShape analogs to the CSSWrapShapes, and
2452         modifies RenderStyle to use a WrapShape instead of a CSSWrapShape.
2453         The translation between WrapShape and CSSWrapShape classes
2454         is handled by helper functions in the new WrapShapeFunctions files.
2455         StyleBuilder resolves CSSWrapShapes to WrapShapes for layout use.
2456         CSSComputedStyleDeclaration translates WrapShapes to CSSWrapShapes
2457         for style use.
2458
2459         There are existing tests that cover the style serialization / resolution
2460         in fast/exclusions/parsing-wrap-shape-inside.html and
2461         fast/exclusions/parsing/wrap-shape-outside.html
2462
2463         Test: fast/exclusions/parsing-wrap-shape-lengths.html
2464
2465         * CMakeLists.txt: Build system changes for adding new files
2466         * GNUmakefile.list.am: Ditto
2467         * Target.pri: Ditto
2468         * WebCore.gypi: Ditto
2469         * WebCore.vcproj/WebCore.vcproj: Ditto
2470         * WebCore.xcodeproj/project.pbxproj: Ditto
2471         * css/CSSComputedStyleDeclaration.cpp: Translate WrapShapes back to CSSWrapShapes
2472         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2473         * css/CSSWrapShapes.h: Mostly changing functions to be const
2474         (WebCore::CSSWrapShapeRectangle::type):
2475         (WebCore::CSSWrapShapeCircle::type):
2476         (WebCore::CSSWrapShapeEllipse::type):
2477         (WebCore::CSSWrapShapePolygon::getXAt):
2478         (WebCore::CSSWrapShapePolygon::getYAt):
2479         (WebCore::CSSWrapShapePolygon::values):
2480         (WebCore::CSSWrapShapePolygon::type):
2481         * css/StyleBuilder.cpp: Resolve CSSWrapShapes to WrapShapes
2482         (WebCore):
2483         (WebCore::ApplyPropertyWrapShape::setValue):
2484         (WebCore::ApplyPropertyWrapShape::applyValue):
2485         (WebCore::ApplyPropertyWrapShape::createHandler):
2486         * css/WrapShapeFunctions.cpp: Added.
2487         (WebCore):
2488         (WebCore::valueForWrapShape):
2489         (WebCore::convertToLength):
2490         (WebCore::wrapShapeForValue):
2491         * css/WrapShapeFunctions.h: Added.
2492         (WebCore):
2493         * rendering/style/RenderStyle.h:
2494         * rendering/style/StyleRareNonInheritedData.h:
2495         (StyleRareNonInheritedData):
2496         * rendering/style/WrapShapes.h: Added.
2497         (WebCore):
2498         (WrapShape):
2499         (WebCore::WrapShape::~WrapShape):
2500         (WebCore::WrapShape::WrapShape):
2501         (WrapShapeRectangle):
2502         (WebCore::WrapShapeRectangle::create):
2503         (WebCore::WrapShapeRectangle::left):
2504         (WebCore::WrapShapeRectangle::top):
2505         (WebCore::WrapShapeRectangle::width):
2506         (WebCore::WrapShapeRectangle::height):
2507         (WebCore::WrapShapeRectangle::cornerRadiusX):
2508         (WebCore::WrapShapeRectangle::cornerRadiusY):
2509         (WebCore::WrapShapeRectangle::setLeft):
2510         (WebCore::WrapShapeRectangle::setTop):
2511         (WebCore::WrapShapeRectangle::setWidth):
2512         (WebCore::WrapShapeRectangle::setHeight):
2513         (WebCore::WrapShapeRectangle::setCornerRadiusX):
2514         (WebCore::WrapShapeRectangle::setCornerRadiusY):
2515         (WebCore::WrapShapeRectangle::type):
2516         (WebCore::WrapShapeRectangle::WrapShapeRectangle):
2517         (WrapShapeCircle):
2518         (WebCore::WrapShapeCircle::create):
2519         (WebCore::WrapShapeCircle::left):
2520         (WebCore::WrapShapeCircle::top):
2521         (WebCore::WrapShapeCircle::radius):
2522         (WebCore::WrapShapeCircle::setLeft):
2523         (WebCore::WrapShapeCircle::setTop):
2524         (WebCore::WrapShapeCircle::setRadius):
2525         (WebCore::WrapShapeCircle::type):
2526         (WebCore::WrapShapeCircle::WrapShapeCircle):
2527         (WrapShapeEllipse):
2528         (WebCore::WrapShapeEllipse::create):
2529         (WebCore::WrapShapeEllipse::top):
2530         (WebCore::WrapShapeEllipse::left):
2531         (WebCore::WrapShapeEllipse::radiusX):
2532         (WebCore::WrapShapeEllipse::radiusY):
2533         (WebCore::WrapShapeEllipse::setTop):
2534         (WebCore::WrapShapeEllipse::setLeft):
2535         (WebCore::WrapShapeEllipse::setRadiusX):
2536         (WebCore::WrapShapeEllipse::setRadiusY):
2537         (WebCore::WrapShapeEllipse::type):
2538         (WebCore::WrapShapeEllipse::WrapShapeEllipse):
2539         (WrapShapePolygon):
2540         (WebCore::WrapShapePolygon::create):
2541         (WebCore::WrapShapePolygon::windRule):
2542         (WebCore::WrapShapePolygon::values):
2543         (WebCore::WrapShapePolygon::getXAt):
2544         (WebCore::WrapShapePolygon::getYAt):
2545         (WebCore::WrapShapePolygon::setWindRule):
2546         (WebCore::WrapShapePolygon::appendPoint):
2547         (WebCore::WrapShapePolygon::type):
2548         (WebCore::WrapShapePolygon::WrapShapePolygon):
2549
2550 2012-07-16  Simon Fraser  <simon.fraser@apple.com>
2551
2552         Fix compositing layers in columns when in paginated mode
2553         https://bugs.webkit.org/show_bug.cgi?id=91425
2554
2555         Reviewed by Dave Hyatt.
2556
2557         Enhance a hack that was added to allow composited layers to
2558         display in columns to work for paginated mode, where the
2559         RenderView is renderer with columns.
2560
2561         Test: compositing/columns/composited-in-paginated.html
2562
2563         * rendering/RenderLayer.cpp:
2564         (WebCore::RenderLayer::updateLayerPosition):
2565
2566 2012-07-16  Emil A Eklund  <eae@chromium.org>
2567
2568         Inconsistent rounding in table layout causes background color to bleed through
2569         https://bugs.webkit.org/show_bug.cgi?id=91410
2570
2571         Reviewed by Eric Seidel.
2572
2573         At certain zoom levels a rounding error in the table layout code cases
2574         the table background color to bleed through between cells. Tables layout
2575         happens on pixel bounds however the paint offset wasn't correctly rounded.
2576
2577         Test: fast/sub-pixel/table-rows-no-gaps.html
2578
2579         * rendering/RenderTable.cpp:
2580         (WebCore::RenderTable::paintObject):
2581         Round paintOffset before passing it to the paint method of the children.
2582
2583 2012-07-16  Sheriff Bot  <webkit.review.bot@gmail.com>
2584
2585         Unreviewed, rolling out r122739.
2586         http://trac.webkit.org/changeset/122739
2587         https://bugs.webkit.org/show_bug.cgi?id=91424
2588
2589         Broke mac builds (Requested by rniwa on #webkit).
2590
2591         * inspector/CodeGeneratorInspector.py:
2592         (flatten_list):
2593
2594 2012-07-16  Dana Jansens  <danakj@chromium.org>
2595
2596         [chromium] Remove non-ephemeral data from RenderSurface as it duplicates data from the owning layer
2597         https://bugs.webkit.org/show_bug.cgi?id=91418
2598
2599         Reviewed by Adrienne Walker.
2600
2601         This removes the filters and masks from render surfaces, and makes them
2602         used directly from the owning layer. Also removes skipsDraw from
2603         surfaces as it was just not used at all.
2604
2605         Covered by existing tests.
2606
2607         * platform/graphics/chromium/LayerChromium.h:
2608         (WebCore::LayerChromium::filters):
2609         (WebCore::LayerChromium::backgroundFilters):
2610         (WebCore::LayerChromium::hasMask):
2611         (WebCore::LayerChromium::hasReplica):
2612         (WebCore::LayerChromium::replicaHasMask):
2613         (LayerChromium):
2614         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
2615         (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
2616         * platform/graphics/chromium/RenderSurfaceChromium.h:
2617         (RenderSurfaceChromium):
2618         * platform/graphics/chromium/cc/CCLayerImpl.h:
2619         (WebCore::CCLayerImpl::hasMask):
2620         (WebCore::CCLayerImpl::hasReplica):
2621         (WebCore::CCLayerImpl::replicaHasMask):
2622         (CCLayerImpl):
2623         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2624         (WebCore::CCLayerTreeHost::calculateMemoryForRenderSurfaces):
2625         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2626         (WebCore::calculateDrawTransformsInternal):
2627         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2628         (WebCore::::finishedRenderTarget):
2629         (WebCore::reduceOcclusionBelowSurface):
2630         (WebCore::::leaveToRenderTarget):
2631         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2632         (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
2633         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2634         (WebCore::CCRenderSurface::drawableContentRect):
2635         (WebCore::CCRenderSurface::appendQuads):
2636         * platform/graphics/chromium/cc/CCRenderSurface.h:
2637         (CCRenderSurface):
2638
2639 2012-07-16  Beth Dakin  <bdakin@apple.com>
2640
2641         https://bugs.webkit.org/show_bug.cgi?id=91299
2642         Paginated views should restrict available height to column height
2643         -and corresponding-
2644         <rdar://problem/11152108>
2645
2646         Reviewed by Dan Bernstein.
2647
2648         Now that RenderViews can have columns, availableLogicalHeight needs to consider 
2649         that column height, much like how availableLogicalWidth already considers column 
2650         width.
2651
2652         availableLogicalHeight is newly virtual, like the already-virtual 
2653         availableLogicalWidth.
2654         * rendering/RenderBox.h:
2655         (RenderBox):
2656
2657         Check with the columnHeight.
2658         * rendering/RenderView.cpp:
2659         (WebCore):
2660         (WebCore::RenderView::availableLogicalHeight):
2661         * rendering/RenderView.h:
2662
2663         setPagination now takes pageLength as an optional parameter. 
2664         * testing/InternalSettings.cpp:
2665         (WebCore::InternalSettings::setPagination):
2666         * testing/InternalSettings.h:
2667         (WebCore::InternalSettings::setPagination):
2668         (InternalSettings):
2669         * testing/InternalSettings.idl:
2670         * testing/Internals.cpp:
2671         (WebCore::Internals::setPagination):
2672         * testing/Internals.h:
2673         (WebCore::Internals::setPagination):
2674         (Internals):
2675         * testing/Internals.idl:
2676
2677 2012-07-16  Dana Jansens  <danakj@chromium.org>
2678
2679         [chromium] Remove targetRenderSurface concept, give layers a renderTarget which is the layer whose coordinate space they draw into
2680         https://bugs.webkit.org/show_bug.cgi?id=91288
2681
2682         Reviewed by Adrienne Walker.
2683
2684         Always use pointers to layers when discussing render targets instead of
2685         pointing directly to a RenderSurface.
2686
2687         Covered by existing tests.
2688
2689         * platform/graphics/chromium/LayerChromium.cpp:
2690         (WebCore::LayerChromium::LayerChromium):
2691         (WebCore::LayerChromium::createRenderSurface):
2692         * platform/graphics/chromium/LayerChromium.h:
2693         (WebCore::LayerChromium::renderTarget):
2694         (WebCore::LayerChromium::setRenderTarget):
2695         (LayerChromium):
2696         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
2697         * platform/graphics/chromium/RenderSurfaceChromium.h:
2698         * platform/graphics/chromium/ScrollbarLayerChromium.cpp:
2699         (WebCore::ScrollbarLayerChromium::setTexturePriorities):
2700         * platform/graphics/chromium/TiledLayerChromium.cpp:
2701         (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
2702         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2703         (WebCore::CCLayerImpl::CCLayerImpl):
2704         (WebCore::CCLayerImpl::createRenderSurface):
2705         (WebCore::CCLayerImpl::dumpLayerProperties):
2706         * platform/graphics/chromium/cc/CCLayerImpl.h:
2707         (WebCore::CCLayerImpl::renderTarget):
2708         (WebCore::CCLayerImpl::setRenderTarget):
2709         (CCLayerImpl):
2710         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2711         (WebCore::calculateLayerScissorRect):
2712         (WebCore::calculateSurfaceScissorRect):
2713         (WebCore::calculateVisibleContentRect):
2714         (WebCore::computeScrollCompensationForThisLayer):
2715         (WebCore::calculateDrawTransformsInternal):
2716         (WebCore::pointIsClippedBySurfaceOrClipRect):
2717         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2718         (WebCore::::enterLayer):
2719         (WebCore::::leaveLayer):
2720         (WebCore::::enterRenderTarget):
2721         (WebCore::::finishedRenderTarget):
2722         (WebCore):
2723         (WebCore::reduceOcclusionBelowSurface):
2724         (WebCore::::leaveToRenderTarget):
2725         (WebCore::::markOccludedBehindLayer):
2726         (WebCore::::occluded):
2727         (WebCore::::unoccludedContentRect):
2728         (WebCore::::unoccludedContributingSurfaceContentRect):
2729         (WebCore::::layerScissorRectInTargetSurface):
2730         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
2731         (CCOcclusionTrackerBase):
2732         (WebCore::CCOcclusionTrackerBase::StackObject::StackObject):
2733         (StackObject):
2734         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2735         (WebCore::CCQuadCuller::appendSurface):
2736         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2737         * platform/graphics/chromium/cc/CCRenderSurface.h:
2738         (CCRenderSurface):
2739
2740 2012-07-16  Florin Malita  <fmalita@chromium.org>
2741
2742         SVGAnimationElement::currentValuesForValuesAnimation crash
2743         https://bugs.webkit.org/show_bug.cgi?id=91326
2744
2745         Reviewed by Simon Fraser.
2746
2747         SVGSMILElement::progress() assumes that seekToIntervalCorrespondingToTime() always
2748         lands inside a defined interval, but one can force arbitrary time offsets using
2749         setCurrentTime(). This patch adds logic for handling non-interval time offsets
2750         gracefully.
2751
2752         Test: svg/animations/smil-setcurrenttime-crash.svg
2753
2754         * svg/animation/SVGSMILElement.cpp:
2755         (WebCore::SVGSMILElement::progress):
2756
2757 2012-07-16  Joshua Netterfield  <jnetterfield@rim.com>
2758
2759         [BlackBerry] Upstream WebGL Code
2760         https://bugs.webkit.org/show_bug.cgi?id=91143
2761
2762         Reviewed by Rob Buis.
2763
2764         This patch includes BlackBerry-specific fixes for anti-aliasing, logging, and shader compilation.
2765
2766         No new tests, because there is no new functionality.
2767
2768         * platform/graphics/GraphicsContext3D.h: Add a value for TI Imagination chipsets on BlackBerry platforms
2769         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp: Multiple downstream changes
2770         (WebCore::GraphicsContext3D::GraphicsContext3D):
2771         (WebCore::GraphicsContext3D::reshapeFBOs):
2772         (WebCore):
2773         (WebCore::GraphicsContext3D::logFrameBufferStatus):
2774         (WebCore::GraphicsContext3D::readPixelsIMG): BlackBerry-specific fix for Imagination hardware.
2775         (WebCore::GraphicsContext3D::paintsIntoCanvasBuffer):
2776         (WebCore::GraphicsContext3D::platformTexture):
2777         (WebCore::GraphicsContext3D::platformGraphicsContext3D):
2778         (WebCore::GraphicsContext3D::paintToCanvas):
2779         * platform/graphics/opengl/Extensions3DOpenGL.h: Remove unnecessary whitespace.
2780         (Extensions3DOpenGL):
2781         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
2782         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Hack to fix ANGLE-generated code on BlackBerry platforms.
2783         * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
2784         (Extensions3DOpenGLCommon):
2785         * platform/graphics/opengl/Extensions3DOpenGLES.cpp: I am not in a position to change system headers from correct to incorrect.
2786         (WebCore::Extensions3DOpenGLES::renderbufferStorageMultisample):
2787         (WebCore::Extensions3DOpenGLES::supportsExtension):
2788         * platform/graphics/opengl/Extensions3DOpenGLES.h: I am not in a position to change system headers from correct to incorrect.
2789         (Extensions3DOpenGLES):
2790         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: Add a BlackBerry-specific anti-aliasing fix.
2791         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
2792         (WebCore::GraphicsContext3D::prepareTexture):
2793         (WebCore::GraphicsContext3D::bindFramebuffer):
2794         (WebCore::GraphicsContext3D::compileShader):
2795         (WebCore::GraphicsContext3D::copyTexImage2D):
2796         (WebCore::GraphicsContext3D::copyTexSubImage2D):
2797         (WebCore):
2798         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2799         (WebCore):
2800
2801 2012-07-16  Tony Chang  <tony@chromium.org>
2802
2803         Position grid items by row/column index
2804         https://bugs.webkit.org/show_bug.cgi?id=91293
2805
2806         Reviewed by Ojan Vafai.
2807
2808         Do some initial grid positioning. Only handle the simple case where tracks are
2809         fixed values and don't properly size the grid items. This gives us something to
2810         work with and starts implementing the "Grid Track Sizing Algorithm":
2811         http://dev.w3.org/csswg/css3-grid-layout/#grid-track-sizing-algorithm0
2812
2813         Test: fast/css-grid-layout/place-cell-by-index.html
2814
2815         * rendering/RenderGrid.cpp:
2816         (RenderGrid::GridTrack): Data structure for holding the track size. UsedBreadth matches the terminology
2817         used in the spec.
2818         (WebCore::RenderGrid::layoutBlock): Pull in some boiler plate code and put the
2819         grid specific code in layoutGridItems.
2820         (WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Implement part of the grid track sizing algorithm.
2821         (WebCore::RenderGrid::layoutGridItems): Compute the size of grid tracks, layout and position children.
2822         (WebCore::RenderGrid::findChildLogicalPosition): Map track sizes to the actual position of the child.
2823         * rendering/RenderGrid.h:
2824         * rendering/style/RenderStyle.h: Just return a copy of Length rather than a reference to Length. This seems
2825         more consistent with other getters that return a Length.
2826
2827 2012-07-16  Sami Kyostila  <skyostil@chromium.org>
2828
2829         [chromium] Only apply page scale delta to root scroll layer
2830         https://bugs.webkit.org/show_bug.cgi?id=91374
2831
2832         Reviewed by Adrienne Walker.
2833
2834         When the user pinch-zooms the web page though the Chromium compositor, the
2835         per-layer page scale delta is used to keep track of the difference between the
2836         page scale on the compositor thread versus the main thread. On the next
2837         commit to the main thread these values are reset to 1.
2838
2839         When calculating layer positions, the compositor applies a layer's page scale
2840         delta both to the layer itself as well as all of its children. Since we are
2841         currently updating the page scale delta on all scrollable layers, this results
2842         in scrollable child layers getting scaled multiple times.
2843
2844         This patch changes the compositor to only apply the page scale delta on the
2845         root scroll layer.
2846
2847         New unit test: CCLayerTreeHostImplTest.pageScaleDeltaAppliedToRootScrollLayerOnly
2848
2849         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2850         (WebCore::CCLayerTreeHostImpl::setPageScaleFactorAndLimits):
2851         (WebCore::CCLayerTreeHostImpl::setPageScaleDelta):
2852
2853 2012-07-16  Kihong Kwon  <kihong.kwon@samsung.com>
2854
2855         Remove setController from BatteryClient
2856         https://bugs.webkit.org/show_bug.cgi?id=90944
2857
2858         Reviewed by Adam Barth.
2859
2860         BatteryClient doesn't need to keep m_controller,
2861         because BatteryController can be accessed using BatteryController::from().
2862         Remove BatteryClient::setController function.
2863
2864         No new tests. Covered by existing tests.
2865
2866         * Modules/battery/BatteryClient.h:
2867         * Modules/battery/BatteryController.cpp:
2868         (WebCore::BatteryController::BatteryController):
2869
2870 2012-07-16  Mike West  <mkwst@chromium.org>
2871
2872         Invalid `script-nonce` directives should block script execution.
2873         https://bugs.webkit.org/show_bug.cgi?id=91353
2874
2875         Reviewed by Adam Barth.
2876
2877         If the `script-nonce` Content Security Policy directive contains an
2878         invalid value, we should fail loudly, throwing a warning to the console
2879         and denying execution of script on the page. The is in line with the
2880         current state of the experimental CSP 1.1 Editors Draft[1].
2881
2882         [1]: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-nonce--experimental
2883
2884         Test: http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce.html
2885
2886         * page/ContentSecurityPolicy.cpp:
2887         (WebCore::CSPDirectiveList::checkNonceAndReportViolation):
2888             Check against null rather than empty for early exit, otherwise
2889             only compare nonces if the stored nonce isn't empty.
2890         (WebCore::CSPDirectiveList::parseScriptNonce):
2891             Assign the empty string if nonce is invalid.
2892
2893 2012-07-16  Min Qin  <qinmin@chromium.org>
2894
2895         [Android] remove RenderThemeChromiumAndroid::paintMediaFullscreenButton()
2896         https://bugs.webkit.org/show_bug.cgi?id=91291
2897
2898         Reviewed by Adam Barth.
2899
2900         The recent media control refactoring added paintMediaFullscreenButton() in RenderThemeChromiumSkia.
2901         Since RenderThemeChromiumAndroid inherits from that class, we don't need to redefine this function.
2902         No test needed as this change just removes an unnecessary override.
2903
2904         * rendering/RenderThemeChromiumAndroid.cpp:
2905         * rendering/RenderThemeChromiumAndroid.h:
2906
2907 2012-07-16  Peter Rybin  <peter.rybin@gmail.com>
2908
2909         Web Inspector: CodeGeneratorInspector.py: fix output write logic to support incremental build
2910         https://bugs.webkit.org/show_bug.cgi?id=90642
2911
2912         Reviewed by Yury Semikhatsky.
2913
2914         A small intermediate writer is added. It handles comparing old and new source before actual writing.
2915
2916         * inspector/CodeGeneratorInspector.py:
2917         (flatten_list):
2918         (SmartOutput):
2919         (SmartOutput.__init__):
2920         (SmartOutput.write):
2921         (SmartOutput.close):
2922
2923 2012-07-16  Dana Jansens  <danakj@chromium.org>
2924
2925         [chromium] Incorrect assertion: Replicas will cause a RenderPass to be removed twice
2926         https://bugs.webkit.org/show_bug.cgi?id=91328
2927
2928         Reviewed by Adrienne Walker.
2929
2930         We asserted that we would never attempt to remove a render pass that had
2931         already been removed. This was incorrect as a surface with a replica has
2932         two quads and both may cause us to attempt its removal. We must handle
2933         this case gracefully.
2934
2935         Test: CCLayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit
2936
2937         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2938         (WebCore::CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass):
2939
2940 2012-07-16  Ilya Tikhonovsky  <loislo@chromium.org>
2941
2942         Web Inspector: native memory: fix instrumentation for string members
2943         https://bugs.webkit.org/show_bug.cgi?id=91384
2944
2945         Reviewed by Pavel Feldman.
2946
2947         It was possible to report a string member via addMember instead of addString.
2948         This patch is fixing the problem and adding a link time guard.
2949
2950         Covered by existing inspector performance tests infrastructure.
2951
2952         * dom/ElementAttributeData.h:
2953         (WebCore::ElementAttributeData::reportMemoryUsage):
2954         * dom/MemoryInstrumentation.h:
2955         (WebCore):
2956         (WebCore::MemoryClassInfo::addString):
2957         * dom/QualifiedName.h:
2958         (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
2959
2960 2012-07-16  Zoltan Horvath  <zoltan@webkit.org>
2961
2962         Unreviewed. Remove unnecessary executable bits after r122720.
2963
2964         * platform/graphics/ImageSource.h:
2965         * platform/graphics/qt/ImageBufferQt.cpp:
2966         * platform/graphics/qt/ImageDecoderQt.cpp:
2967         * platform/graphics/qt/ImageQt.cpp:
2968         * platform/graphics/qt/StillImageQt.h:
2969         * platform/graphics/qt/TransparencyLayer.h:
2970
2971 2012-07-16  Zoltan Horvath  <zoltan@webkit.org>
2972
2973         [Qt] Change NativeImagePtr from QPixmap* to QImage*
2974         https://bugs.webkit.org/show_bug.cgi?id=88785
2975
2976         Reviewed by Simon Hausmann.
2977
2978         Since we use raster engine there is no difference between QPixmap and QImage, so we are going
2979         to use QImage everywhere where it is possible. This refactoring contains the change of the
2980         NativeImagePtr typedef from QPixmap* to QImage* and covers the related modifications.
2981
2982         Part of the change is similar to Viatcheslav Ostapenko's internal work.
2983
2984         Covered by existing tests.
2985
2986         * bridge/qt/qt_pixmapruntime.cpp:
2987         (JSC::Bindings::QtPixmapAssignToElementMethod::invoke):
2988         (JSC::Bindings::QtPixmapInstance::variantFromObject):
2989         * platform/DragImage.h:
2990         (WebCore):
2991         * platform/graphics/GraphicsContext.h:
2992         (GraphicsContext):
2993         * platform/graphics/Image.h:
2994         (Image):
2995         * platform/graphics/ImageSource.h:
2996         (WebCore):
2997         * platform/graphics/gstreamer/ImageGStreamer.h:
2998         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
2999         (ImageGStreamer::ImageGStreamer):
3000         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3001         (WebCore::GraphicsContext3D::getImageData):
3002         * platform/graphics/qt/GraphicsContextQt.cpp:
3003         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
3004         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3005         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3006         * platform/graphics/qt/ImageBufferDataQt.h:
3007         (ImageBufferData):
3008         * platform/graphics/qt/ImageBufferQt.cpp:
3009         (WebCore::ImageBufferData::ImageBufferData):
3010         (WebCore::ImageBuffer::copyImage):
3011         (WebCore::ImageBuffer::clip):
3012         (WebCore::ImageBuffer::platformTransformColorSpace):
3013         (WebCore::getImageData):
3014         (WebCore::ImageBuffer::putByteArray):
3015         (WebCore::encodeImage):
3016         (WebCore::ImageBuffer::toDataURL):
3017         * platform/graphics/qt/ImageDecoderQt.cpp:
3018         (WebCore::ImageFrame::asNewNativeImage):
3019         * platform/graphics/qt/ImageQt.cpp:
3020         (graphics):
3021         (loadResourceImage):
3022         (WebCore::Image::loadPlatformResource):
3023         (WebCore::Image::setPlatformResource):
3024         (WebCore::Image::drawPattern):
3025         (WebCore::BitmapImage::BitmapImage):
3026         (WebCore::BitmapImage::draw):
3027         (WebCore::BitmapImage::checkForSolidColor):
3028         (WebCore::BitmapImage::create):
3029         * platform/graphics/qt/NativeImageQt.h: Added.
3030         (WebCore):
3031         (NativeImageQt):
3032         (WebCore::NativeImageQt::defaultFormatForAlphaEnabledImages):
3033         (WebCore::NativeImageQt::defaultFormatForOpaqueImages):
3034          * platform/graphics/qt/PatternQt.cpp:
3035         (WebCore::Pattern::createPlatformPattern):
3036         * platform/graphics/qt/StillImageQt.cpp:
3037         (WebCore::StillImage::StillImage):
3038         (WebCore::StillImage::~StillImage):
3039         (WebCore::StillImage::currentFrameHasAlpha):
3040         (WebCore::StillImage::size):
3041         (WebCore::StillImage::nativeImageForCurrentFrame):
3042         (WebCore::StillImage::draw):
3043         * platform/graphics/qt/StillImageQt.h:
3044         (WebCore::StillImage::create):
3045         (WebCore::StillImage::createForRendering):
3046         (StillImage):
3047         * platform/graphics/qt/TransparencyLayer.h:
3048         (WebCore::TransparencyLayer::TransparencyLayer):
3049         (TransparencyLayer):
3050         * platform/graphics/texmap/TextureMapperGL.cpp:
3051         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
3052         (WebCore::GraphicsSurface::createReadOnlyImage):
3053          * platform/qt/ClipboardQt.cpp:
3054         (WebCore::ClipboardQt::createDragImage):
3055         (WebCore::ClipboardQt::declareAndWriteDragImage):
3056         * platform/qt/CursorQt.cpp:
3057         (WebCore::createCustomCursor):
3058         * platform/qt/DragImageQt.cpp:
3059         (WebCore::createDragImageFromImage):
3060         * platform/qt/PasteboardQt.cpp:
3061         (WebCore::Pasteboard::writeImage):
3062
3063 2012-07-16  Ilya Tikhonovsky  <loislo@chromium.org>
3064
3065         Web Inspector: moving forward to the better memory instrumentation API
3066         https://bugs.webkit.org/show_bug.cgi?id=91259
3067
3068         Reviewed by Pavel Feldman.
3069
3070         I'm trying to remove unnecessary complexity of the API
3071         reportInstrumentedObject and reportInstrumentedPointer will be replaced with addInstrumentedMember
3072         The same will happen with reportPointer, reportObject pair.
3073         Also info.report* will be replaced with info.add*
3074
3075         * bindings/js/ScriptWrappable.h:
3076         (WebCore::ScriptWrappable::reportMemoryUsage):
3077         * bindings/v8/DOMDataStore.cpp:
3078         (WebCore::DOMDataStore::reportMemoryUsage):
3079         * bindings/v8/IntrusiveDOMWrapperMap.h:
3080         (WebCore::ChunkedTable::reportMemoryUsage):
3081         * bindings/v8/ScriptProfiler.cpp:
3082         (WebCore::ScriptProfiler::collectBindingMemoryInfo):
3083         * bindings/v8/ScriptWrappable.h:
3084         (WebCore::ScriptWrappable::reportMemoryUsage):
3085         * bindings/v8/V8Binding.cpp:
3086         (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
3087         (WebCore::StringCache::reportMemoryUsage):
3088         * bindings/v8/V8DOMMap.h:
3089         * css/StylePropertySet.h:
3090         (WebCore::StylePropertySet::reportMemoryUsage):
3091         * dom/CharacterData.cpp:
3092         (WebCore::CharacterData::reportMemoryUsage):
3093         * dom/ContainerNode.h:
3094         (WebCore::ContainerNode::reportMemoryUsage):
3095         * dom/Document.cpp:
3096         (WebCore::Document::reportMemoryUsage):
3097         * dom/Element.h:
3098         (WebCore::Element::reportMemoryUsage):
3099         * dom/ElementAttributeData.h:
3100         (WebCore::ElementAttributeData::reportMemoryUsage):
3101         * dom/MemoryInstrumentation.h:
3102         (WebCore::MemoryInstrumentation::addInstrumentedMember):
3103         (MemoryInstrumentation):
3104         (WebCore::MemoryInstrumentation::addMember):
3105         (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedMember):
3106         (WebCore::MemoryInstrumentation::OwningTraits::addMember):
3107         (WebCore::MemoryInstrumentation::addInstrumentedMemberImpl):
3108         (WebCore::MemoryInstrumentation::addMemberImpl):
3109         (WebCore::MemoryClassInfo::addInstrumentedMember):
3110         (WebCore::MemoryClassInfo::addMember):
3111         (WebCore::MemoryClassInfo::addHashMap):
3112         (WebCore::MemoryClassInfo::addHashSet):
3113         (WebCore::MemoryClassInfo::addListHashSet):
3114         (WebCore::MemoryClassInfo::addVector):
3115         (WebCore::MemoryClassInfo::addString):
3116         (WebCore::MemoryInstrumentation::addHashMap):
3117         (WebCore::MemoryInstrumentation::addHashSet):
3118         (WebCore::MemoryInstrumentation::addListHashSet):
3119         (WebCore::MemoryInstrumentation::addVector):
3120         * dom/Node.cpp:
3121         (WebCore::Node::reportMemoryUsage):
3122         * dom/QualifiedName.h:
3123         (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
3124         (WebCore::QualifiedName::reportMemoryUsage):
3125         * inspector/InspectorMemoryAgent.cpp:
3126         (WebCore):
3127         * platform/TreeShared.h:
3128         (WebCore::TreeShared::reportMemoryUsage):
3129
3130 2012-07-16  Sheriff Bot  <webkit.review.bot@gmail.com>
3131
3132         Unreviewed, rolling out r122714.
3133         http://trac.webkit.org/changeset/122714
3134         https://bugs.webkit.org/show_bug.cgi?id=91380
3135
3136         It broke mac compilation (Requested by loislo on #webkit).
3137
3138         * bindings/js/ScriptWrappable.h:
3139         (WebCore::ScriptWrappable::reportMemoryUsage):
3140         * bindings/v8/DOMDataStore.cpp:
3141         (WebCore::DOMDataStore::reportMemoryUsage):
3142         * bindings/v8/IntrusiveDOMWrapperMap.h:
3143         (WebCore::ChunkedTable::reportMemoryUsage):
3144         * bindings/v8/ScriptProfiler.cpp:
3145         (WebCore::ScriptProfiler::collectBindingMemoryInfo):
3146         * bindings/v8/ScriptWrappable.h:
3147         (WebCore::ScriptWrappable::reportMemoryUsage):
3148         * bindings/v8/V8Binding.cpp:
3149         (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
3150         (WebCore::StringCache::reportMemoryUsage):
3151         * bindings/v8/V8DOMMap.h:
3152         * css/StylePropertySet.h:
3153         (WebCore::StylePropertySet::reportMemoryUsage):
3154         * dom/CharacterData.cpp:
3155         (WebCore::CharacterData::reportMemoryUsage):
3156         * dom/ContainerNode.h:
3157         (WebCore::ContainerNode::reportMemoryUsage):
3158         * dom/Document.cpp:
3159         (WebCore::Document::reportMemoryUsage):
3160         * dom/Element.h:
3161         (WebCore::Element::reportMemoryUsage):
3162         * dom/ElementAttributeData.h:
3163         (WebCore::ElementAttributeData::reportMemoryUsage):
3164         * dom/MemoryInstrumentation.h:
3165         (WebCore::MemoryInstrumentation::reportObject):
3166         (MemoryInstrumentation):
3167         (WebCore::MemoryInstrumentation::reportPointer):
3168         (WebCore::MemoryClassInfo::reportInstrumentedPointer):
3169         (WebCore::MemoryClassInfo::reportInstrumentedObject):
3170         (WebCore::MemoryClassInfo::reportPointer):
3171         (WebCore::MemoryClassInfo::reportObject):
3172         (WebCore::MemoryClassInfo::reportHashMap):
3173         (WebCore::MemoryClassInfo::reportHashSet):
3174         (WebCore::MemoryClassInfo::reportListHashSet):
3175         (WebCore::MemoryClassInfo::reportVector):
3176         (MemoryClassInfo):
3177         (WebCore::MemoryClassInfo::reportString):
3178         (WebCore):
3179         (WebCore::MemoryInstrumentation::reportInstrumentedPointer):
3180         (WebCore::MemoryInstrumentation::reportInstrumentedObject):
3181         (WebCore::MemoryInstrumentation::reportHashMap):
3182         (WebCore::MemoryInstrumentation::reportHashSet):
3183         (WebCore::MemoryInstrumentation::reportListHashSet):
3184         (WebCore::MemoryInstrumentation::reportVector):
3185         * dom/Node.cpp:
3186         (WebCore::Node::reportMemoryUsage):
3187         * dom/QualifiedName.h:
3188         (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
3189         (WebCore::QualifiedName::reportMemoryUsage):
3190         * inspector/InspectorMemoryAgent.cpp:
3191         (WebCore):
3192         * platform/TreeShared.h:
3193         (WebCore::TreeShared::reportMemoryUsage):
3194
3195 2012-07-16  Ilya Tikhonovsky  <loislo@chromium.org>
3196
3197         Web Inspector: moving forward to the better memory instrumentation API
3198         https://bugs.webkit.org/show_bug.cgi?id=91259
3199
3200         Reviewed by Pavel Feldman.
3201
3202         I'm trying to remove unnecessary complexity of the API
3203         reportInstrumentedObject and reportInstrumentedPointer will be replaced with addInstrumentedMember
3204         The same will happen with reportPointer, reportObject pair.
3205         Also info.report* will be replaced with info.add*
3206
3207         * bindings/js/ScriptWrappable.h:
3208         (WebCore::ScriptWrappable::reportMemoryUsage):
3209         * bindings/v8/DOMDataStore.cpp:
3210         (WebCore::DOMDataStore::reportMemoryUsage):
3211         * bindings/v8/IntrusiveDOMWrapperMap.h:
3212         (WebCore::ChunkedTable::reportMemoryUsage):
3213         * bindings/v8/ScriptProfiler.cpp:
3214         (WebCore::ScriptProfiler::collectBindingMemoryInfo):
3215         * bindings/v8/ScriptWrappable.h:
3216         (WebCore::ScriptWrappable::reportMemoryUsage):
3217         * bindings/v8/V8Binding.cpp:
3218         (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
3219         (WebCore::StringCache::reportMemoryUsage):
3220         * bindings/v8/V8DOMMap.h:
3221         * css/StylePropertySet.h:
3222         (WebCore::StylePropertySet::reportMemoryUsage):
3223         * dom/CharacterData.cpp:
3224         (WebCore::CharacterData::reportMemoryUsage):
3225         * dom/ContainerNode.h:
3226         (WebCore::ContainerNode::reportMemoryUsage):
3227         * dom/Document.cpp:
3228         (WebCore::Document::reportMemoryUsage):
3229         * dom/Element.h:
3230         (WebCore::Element::reportMemoryUsage):
3231         * dom/ElementAttributeData.h:
3232         (WebCore::ElementAttributeData::reportMemoryUsage):
3233         * dom/MemoryInstrumentation.h:
3234         (WebCore::MemoryInstrumentation::addInstrumentedMember):
3235         (MemoryInstrumentation):
3236         (WebCore::MemoryInstrumentation::addMember):
3237         (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedMember):
3238         (WebCore::MemoryInstrumentation::OwningTraits::addMember):
3239         (WebCore::MemoryInstrumentation::addInstrumentedMemberImpl):
3240         (WebCore::MemoryInstrumentation::addMemberImpl):
3241         (WebCore::MemoryClassInfo::addInstrumentedMember):
3242         (WebCore::MemoryClassInfo::addMember):
3243         (WebCore::MemoryClassInfo::addHashMap):
3244         (WebCore::MemoryClassInfo::addHashSet):
3245         (WebCore::MemoryClassInfo::addListHashSet):
3246         (WebCore::MemoryClassInfo::addVector):
3247         (WebCore::MemoryClassInfo::addString):
3248         (WebCore::MemoryInstrumentation::addHashMap):
3249         (WebCore::MemoryInstrumentation::addHashSet):
3250         (WebCore::MemoryInstrumentation::addListHashSet):
3251         (WebCore::MemoryInstrumentation::addVector):
3252         * dom/Node.cpp:
3253         (WebCore::Node::reportMemoryUsage):
3254         * dom/QualifiedName.h:
3255         (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
3256         (WebCore::QualifiedName::reportMemoryUsage):
3257         * inspector/InspectorMemoryAgent.cpp:
3258         (WebCore):
3259         * platform/TreeShared.h:
3260         (WebCore::TreeShared::reportMemoryUsage):
3261
3262 2012-07-16  Ilya Tikhonovsky  <loislo@chromium.org>
3263
3264         Web Inspector: native memory instrumentation: extract instrumentation methods into MemoryClassInfo
3265         https://bugs.webkit.org/show_bug.cgi?id=91227
3266
3267         Reviewed by Pavel Feldman.
3268
3269         void Node::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
3270         {
3271             MemoryClassInfo<Node> info(memoryObjectInfo, this, MemoryInstrumentation::DOM);
3272             info.visitBaseClass<ScriptWrappable>(this);
3273
3274             info.addMember(m_notInstrumentedPointer); // automatically detects poniter/reference
3275             info.addInstrumentedMember(m_next);
3276             info.addHashSet<MemoryInstrumentation::NonClass>(m_aHash);                // NonClass value_type (report only size of internal template structures)
3277             info.addHashSet<MemoryInstrumentation::NotInstrumentedClass>(m_aHashSet); // not instrumented value_type (use sizeof)
3278             info.addHashSet<MemoryInstrumentation::InstrumentedClass>(m_aHashSet);    // instrumented value_type (call visit)
3279         }
3280
3281         The change is covered by existing tests for native memory snapshot.
3282
3283         * bindings/v8/DOMDataStore.cpp:
3284         (WebCore::DOMDataStore::reportMemoryUsage):
3285         * bindings/v8/IntrusiveDOMWrapperMap.h:
3286         (WebCore::ChunkedTable::reportMemoryUsage):
3287         * bindings/v8/ScriptWrappable.h:
3288         (WebCore::ScriptWrappable::reportMemoryUsage):
3289         * bindings/v8/V8Binding.cpp:
3290         (WebCore::V8BindingPerIsolateData::reportMemoryUsage):
3291         (WebCore::StringCache::reportMemoryUsage):
3292         * bindings/v8/V8DOMMap.h:
3293         * css/StylePropertySet.h:
3294         (WebCore::StylePropertySet::reportMemoryUsage):
3295         * dom/CharacterData.cpp:
3296         (WebCore::CharacterData::reportMemoryUsage):
3297         * dom/ContainerNode.h:
3298         (WebCore::ContainerNode::reportMemoryUsage):
3299         * dom/Document.cpp:
3300         (WebCore::Document::reportMemoryUsage):
3301         * dom/Element.h:
3302         (WebCore::Element::reportMemoryUsage):
3303         * dom/ElementAttributeData.h:
3304         (WebCore::ElementAttributeData::reportMemoryUsage):
3305         * dom/MemoryInstrumentation.h:
3306         (MemoryInstrumentation):
3307         (WebCore::MemoryObjectInfo::objectType):
3308         (WebCore::MemoryObjectInfo::objectSize):
3309         (WebCore::MemoryObjectInfo::memoryInstrumentation):
3310         (MemoryObjectInfo):
3311         (WebCore::MemoryObjectInfo::reportObjectInfo):
3312         (WebCore):
3313         (MemoryClassInfo):
3314         (WebCore::MemoryClassInfo::MemoryClassInfo):
3315         (WebCore::MemoryClassInfo::visitBaseClass):
3316         (WebCore::MemoryClassInfo::reportInstrumentedPointer):
3317         (WebCore::MemoryClassInfo::reportInstrumentedObject):
3318         (WebCore::MemoryClassInfo::reportPointer):
3319         (WebCore::MemoryClassInfo::reportObject):
3320         (WebCore::MemoryClassInfo::reportHashMap):
3321         (WebCore::MemoryClassInfo::reportHashSet):
3322         (WebCore::MemoryClassInfo::reportListHashSet):
3323         (WebCore::MemoryClassInfo::reportVector):
3324         (WebCore::MemoryClassInfo::reportString):
3325         * dom/Node.cpp:
3326         (WebCore::Node::reportMemoryUsage):
3327         * dom/QualifiedName.h:
3328         (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
3329         (WebCore::QualifiedName::reportMemoryUsage):
3330         * platform/TreeShared.h:
3331         (WebCore::TreeShared::reportMemoryUsage):
3332
3333 2012-07-15  Carlos Garcia Campos  <cgarcia@igalia.com>
3334
3335         Unreviewed. Fix make distcheck.
3336
3337         * GNUmakefile.am: Add missing idl directory.
3338         * GNUmakefile.list.am: Add missing files to compilation.
3339
3340 2012-07-16  Eugene Klyuchnikov  <eustas.big@gmail.com>
3341
3342         Web Inspector: Implement message loop instrumentation for timeline
3343         https://bugs.webkit.org/show_bug.cgi?id=88325
3344
3345         Reviewed by Pavel Feldman.
3346
3347         Message loop instrumentation will show when the render thread is busy.
3348
3349         * inspector/front-end/Settings.js:
3350         (WebInspector.ExperimentsSettings):
3351         Added new experiment.
3352         * inspector/front-end/TimelineGrid.js:
3353         (WebInspector.TimelineGrid.prototype.get dividersLabelBarElement):
3354         Exposed label bar element.
3355         * inspector/front-end/TimelinePanel.js:
3356         (WebInspector.TimelinePanel):
3357         (WebInspector.TimelinePanel.prototype._resetPanel):
3358         Cleanups recorded tasks.
3359         (WebInspector.TimelinePanel.prototype._refresh):
3360         Updates CPU bar.
3361         (WebInspector.TimelinePanel.prototype._refreshRecords):
3362         Ditto.
3363         (WebInspector.TimelinePanel.prototype._refreshCpuBars.compareEndTime):
3364         Ditto.
3365         (WebInspector.TimelinePanel.prototype._refreshCpuBars):
3366         Ditto.
3367         (WebInspector.TimelinePanel.prototype._enableMainThreadMonitoringExperiment):
3368         Adds CPU bar to UI.
3369         (WebInspector.TimelinePanel.prototype._showPopover):
3370         Fix NPE.
3371         (WebInspector.TimelineCalculator.prototype.computeTime):
3372         Utility for position to time conversion.
3373         (WebInspector.TimelineCalculator.prototype.setDisplayWindow):
3374         Remenbers clientWidth.
3375         * inspector/front-end/TimelinePresentationModel.js:
3376         (WebInspector.TimelinePresentationModel.categories):
3377         Define CPU bar colors.
3378         * inspector/front-end/timelinePanel.css:
3379         (.timeline-cpu-bars):
3380         CPU bar styles.
3381         (.timeline-cpu-bars-label):
3382         Ditto.
3383
3384 2012-07-16  Sheriff Bot  <webkit.review.bot@gmail.com>
3385
3386         Unreviewed, rolling out r122681.
3387         http://trac.webkit.org/changeset/122681
3388         https://bugs.webkit.org/show_bug.cgi?id=91363
3389
3390         Patch introduces crashes in debug builds for GTK and EFL ports
3391         (Requested by zdobersek on #webkit).
3392
3393         * platform/ScrollableArea.cpp:
3394         (WebCore::ScrollableArea::scrollPositionChanged):
3395
3396 2012-07-16  Luke Macpherson  <macpherson@chromium.org>
3397
3398         Compilation failure in StyleResolver.cpp (clang)
3399         https://bugs.webkit.org/show_bug.cgi?id=89892
3400
3401         Reviewed by Ryosuke Niwa.
3402
3403         Patch adds assertions that unreachable code is in fact not reached.
3404
3405         Covered by fast/css/variables tests.
3406
3407         * css/CSSParser.cpp:
3408         (WebCore::CSSParser::parseValue):
3409         * css/StyleResolver.cpp:
3410         (WebCore::StyleResolver::collectMatchingRulesForList):
3411
3412 2012-07-15  Mike Lawther  <mikelawther@chromium.org>
3413
3414         Fix calculation of rgba's alpha in CSS custom text
3415         https://bugs.webkit.org/show_bug.cgi?id=91355
3416
3417         Reviewed by Ryosuke Niwa.
3418
3419         Alpha values are stored as an 8 bit value. To convert this to a float in the
3420         range [0,1], we need to divide by 255, not 256. 
3421
3422         Test: fast/css/rgba-custom-text.html
3423
3424         * css/CSSPrimitiveValue.cpp:
3425         (WebCore::CSSPrimitiveValue::customCssText):
3426
3427 2012-07-15  Jason Liu  <jason.liu@torchmobile.com.cn>
3428
3429         [BlackBerry] We shouldn't call didFinishLoading for the old request when a new request has been sent by notifyAuthReceived.
3430         https://bugs.webkit.org/show_bug.cgi?id=90962
3431
3432         Reviewed by Rob Buis.
3433
3434         We start a new NetworkJob with credentials after receiving 401/407 status.
3435         We should not release resources in webcore when the old job is closed because
3436         they are needed by the new one.
3437         We should do as 3XX.
3438
3439         No new tests. No change in behaviour.
3440
3441         * platform/network/blackberry/NetworkJob.cpp:
3442         (WebCore::NetworkJob::NetworkJob):
3443         (WebCore::NetworkJob::notifyAuthReceived):