70a3e9f04366198ee9e785903e194bd4a41aab92
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-09-21  Kihong Kwon  <kihong.kwon@samsung.com>
2
3         Remove useless class prototypes from Vibration.h
4         https://bugs.webkit.org/show_bug.cgi?id=97304
5
6         Reviewed by Kentaro Hara.
7
8         Remove two useless class prototype statements in the Vibration.h
9
10         * Modules/vibration/Vibration.h:
11
12 2012-09-21  Keishi Hattori  <keishi@webkit.org>
13
14         Prepare CalendarPicker so we can add another picker, SuggetionPicker
15         https://bugs.webkit.org/show_bug.cgi?id=97193
16
17         Reviewed by Kent Tamura.
18
19         Preparation so we can add another picker to CalendarPicker and switch
20         between them.
21
22         No new tests. No behavior change.
23
24         * Resources/pagepopups/calendarPicker.css:
25         (.calendar-picker): Added so we can apply these styles just to calendar picker.
26         * Resources/pagepopups/calendarPicker.js:
27         (CalendarPicker.validateConfig): Renamed so each picker can validate the config object.
28         (initialize):
29         (closePicker): Call Picker.cleanup().
30         (openCalendarPicker):
31         (CalendarPicker):
32         (CalendarPicker.prototype.cleanup): Cleanup event listener on document.body.
33         * Resources/pagepopups/pickerCommon.js:
34         (Picker.prototype.cleanup):
35
36 2012-09-20  John Mellor  <johnme@chromium.org>
37
38         Text Autosizing: Cluster text at flow roots, for consistency and to avoid autosizing headers/footers.
39         https://bugs.webkit.org/show_bug.cgi?id=97025
40
41         Reviewed by Julien Chaffraix.
42
43         This patch has 3 main changes:
44
45         1. All text within a "cluster" (roughly equivalent to a CSS flow root /
46            block formatting context) must have a uniform textAutosizingMultiplier,
47            except for subtrees which are themselves clusters. This improves the
48            consistency of the final output, since sibling blocks are now more
49            likely to have the same multiplier (hence grow in proportion).
50
51         2. Clusters must contain a minimum amount of text in order to be
52            autosized (4 lines of text, assuming each char is 1em wide, so about
53            2 lines of text in practice). This is to reduce the likelihood of
54            autosizing things like headers and footers, which can be quite
55            visually distracting. The rationale is that if a cluster contains
56            very few lines of text then it's ok to have to zoom in and pan from
57            side to side to read each line, since if there are very few lines of
58            text you'll only need to pan across once or twice.
59
60         3. To avoid adding a 3rd tree traversal, processSubtree/processBox were
61            refactored such that all of Text Autosizing now happens as a single
62            tree traversal (hence halving the number of tree traversals done).
63
64         Tests: fast/text-autosizing/cluster-narrow-in-wide.html
65                fast/text-autosizing/cluster-wide-in-narrow.html
66                fast/text-autosizing/clusters-insufficient-text.html
67                fast/text-autosizing/clusters-insufficient-width.html
68                fast/text-autosizing/clusters-sufficient-text-except-in-root.html
69                fast/text-autosizing/clusters-sufficient-width.html
70
71         * rendering/TextAutosizer.cpp:
72         (TextAutosizingWindowInfo):
73
74             Added this struct to bundle together the various sizes that
75             processSubtree needs to pass to every recursive call to
76             processCluster and processContainer.
77
78         (WebCore::TextAutosizer::processSubtree):
79
80             - Bundle windowSize and minLayoutSize together as a single struct,
81               TextAutosizingWindowInfo, rather than passing them separately.
82             - Walk up the tree to find the current cluster and container, rather
83               than (incorrectly) assuming that the layoutRoot is always a
84               container.
85             - Call processCluster instead of traversing the tree.
86
87         (WebCore::TextAutosizer::processCluster):
88
89             Calculates the multiplier based on the width of the cluster (moved
90             the calculation here from processBox, since now the multiplier is
91             fixed per cluster), and delegates to processContainer for the actual
92             tree traversal (since clusters are also containers).
93
94         (WebCore::contentHeightIsConstrained):
95
96             Changed parameter to RenderBlock.
97
98         (WebCore::TextAutosizer::processContainer):
99
100             This now takes care of the whole tree traversal, recursively calling
101             processCluster/processContainer when it encounters such an object,
102             and setMultiplier on RenderText objects (as processBox used to).
103             Also added a check that the RenderText's multiplier is not already
104             equal to the target multiplier (to save needlessly setting it).
105
106         (WebCore::TextAutosizer::isContainer):
107
108             - Changed to be a positive (is) instead of negative (isNot) check.
109             - Require objects to be RenderBlocks so it's easier to find them
110               using containingBlock, and there don't seem to be many interesting
111               RenderBoxes that aren't RenderBlocks.
112
113         (WebCore::TextAutosizer::isAutosizingCluster):
114
115             A container that is also a flow root / block formatting context
116             (approximately), hence demarcates an independent region of the page,
117             within which we want consistent autosizing.
118
119         (WebCore::TextAutosizer::clusterShouldBeAutosized):
120
121             Uses measureDescendantTextWidth and to check whether the cluster
122             contains enough text to be worth autosizing.
123
124         (WebCore::TextAutosizer::measureDescendantTextWidth):
125
126             Recursively traverse the cluster, skipping constrained height
127             containers as processContainer does, to measure how much autosizable
128             text it contains. Early out as soon as the minimum text width is
129             reached.
130
131         (WebCore::TextAutosizer::nextInPreOrderSkippingDescendantsOfContainers):
132
133             Replaces nextInPreOrderMatchingFilter. The filter is now fixed to
134             isContainer (we no longer need an isAutosizingCluster filter, since
135             I consolidated the tree traversal), and filtered objects are
136             actually returned (so they can in turn be recursively traversed),
137             it's just their descendants that get skipped.
138
139         * rendering/TextAutosizer.h:
140         (TextAutosizer):
141
142             - Deleted RenderObjectFilterFunctor, since the filter of
143               nextInPreOrderSkippingDescendantsOfContainers is now fixed.
144
145 2012-09-20  Yoshifumi Inoue  <yosin@chromium.org>
146
147         [Platform] There are memory leak in LocaleICU
148         https://bugs.webkit.org/show_bug.cgi?id=97289
149
150         Reviewed by Kent Tamura.
151
152         This patch adds udt_close() calls for medium time format and short
153         time format data used in LocaleICU class to avoid memory leak.
154
155         This memory leak is found by external tool Valgrind and reported in
156         Chromium bug repositry(http://crbug.com/151006) with stack trace of
157         call path of leaked memory.
158
159         This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
160         ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
161
162         No new tests. External tool such as Valgrind will check this memory leak.
163
164         * platform/text/LocaleICU.cpp:
165         (WebCore::LocaleICU::~LocaleICU): Added to call udt_close() for m_mediumTimeFormat
166         and m_shortTimeFormat which have UDateFormat objects.
167
168 2012-09-20  Kenichi Ishibashi  <bashi@chromium.org>
169
170         Chromium mac cannot display AppleColorEmoji
171         https://bugs.webkit.org/show_bug.cgi?id=97286
172
173         Reviewed by Kent Tamura.
174
175         Disable AppleColorEmoji for now. We will re-enable it after Skia supports CTFontDrawGlyphs().
176
177         No new tests. Fallback fonts should be used for emoji codepoints.
178
179         * platform/graphics/mac/FontCacheMac.mm:
180         (WebCore::FontCache::getFontDataForCharacters):
181
182 2012-09-20  Luke Macpherson   <macpherson@chromium.org>
183
184         Fix use-after free when using a variable to specify a -webkit-filter.
185         https://bugs.webkit.org/show_bug.cgi?id=97153
186
187         Reviewed by Abhishek Arya.
188
189         Make StyleResolver's m_pendingSVGDocuments a hashmap of RefPtr instead of raw pointers such that the document values cannot be freed prematurely.
190         Present assumption is that storing raw pointers is ok because CSSValues will live as long as the StyleResolver instance, however that it no longer
191         true when variables are used, so we must ensure we increment the reference counter to ensure the CSSValues are not freed prematurely.
192
193         Test: fast/css/variables/var-filter.html
194
195         * css/StyleResolver.cpp:
196         (WebCore::StyleResolver::collectMatchingRulesForList):
197         * css/StyleResolver.h:
198         (StyleResolver):
199
200 2012-09-20  Levi Weintraub  <leviw@chromium.org>
201
202         Prevent reading stale data from InlineTextBoxes
203         https://bugs.webkit.org/show_bug.cgi?id=94750
204
205         Reviewed by Abhishek Arya.
206
207         Text from dirty InlineTextBoxes should never be read or used. This change
208         enforces this design goal by forcefully zero-ing out the start and length
209         of InlineTextBoxes when they're being marked dirty. Ideally, we'd also
210         add asserts to the accessors for this data, but there are still several
211         places in editing that cause this. https://bugs.webkit.org/show_bug.cgi?id=97264
212         tracks these cases.
213
214         This change involves making markDirty virtual. Running the line-layout
215         performance test as well as profiling resizing the html5 spec showed
216         negligable impact with this change.
217
218         No new tests as this doesn't change any proper behavior.
219
220         * dom/Position.cpp:
221         (WebCore::Position::downstream): Adding a FIXME.
222         * rendering/InlineBox.h:
223         (WebCore::InlineBox::markDirty): Marking virtual to allow InlineTextBox to
224         overload and zero out its start and length.
225         * rendering/InlineTextBox.cpp:
226         (WebCore::InlineTextBox::markDirty): Zeroing out the start and length when
227         we mark the box dirty.
228         * rendering/InlineTextBox.h:
229         * rendering/RenderText.cpp:
230         (WebCore::RenderText::setTextWithOffset): Adding a FIXME.
231
232 2012-09-20  Adam Barth  <abarth@webkit.org>
233
234         Measure how often web pages use Worker and SharedWorker
235         https://bugs.webkit.org/show_bug.cgi?id=97273
236
237         Reviewed by Ojan Vafai.
238
239         We're not considering removing these features, but it will give us a
240         baseline idea of how often they're used.
241
242         * page/FeatureObserver.h:
243         * workers/SharedWorker.cpp:
244         (WebCore::SharedWorker::create):
245         * workers/Worker.cpp:
246         (WebCore::Worker::create):
247
248 2012-09-20  Tony Chang  <tony@chromium.org>
249
250         [chromium] Enable more clang warnings
251         https://bugs.webkit.org/show_bug.cgi?id=97257
252
253         Reviewed by James Robinson.
254
255         Add -Wunused-parameter to WebCore targets. Apple's Mac compile already
256         warns on this and it's a common source of error for Chromium patches.
257
258         No new tests, should compile cleanly.
259
260         * WebCore.gyp/WebCore.gyp:
261
262 2012-09-20  Dan Bernstein  <mitz@apple.com>
263
264         Kerning never occurs between a space and the following glyph
265         https://bugs.webkit.org/show_bug.cgi?id=97269
266
267         Reviewed by Tim Horton.
268
269         Covered by several existing tests.
270
271         * platform/graphics/mac/ComplexTextController.cpp:
272         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Changed to not reset the advance
273         of a space, and added a comment about how this also needs to be fixed for other characters
274         that are treated as spaces.
275
276 2012-09-20  Kenichi Ishibashi  <bashi@chromium.org>
277
278         [Chromium] Improve glyph selection of HarfBuzzShaper
279         https://bugs.webkit.org/show_bug.cgi?id=97164
280
281         Reviewed by Tony Chang.
282
283         Take into account clusters for selection.
284
285         Test: fast/text/international/hebrew-selection.html
286
287         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
288         (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Removed m_logClusters.
289         m_logCluster is no longer used.
290         (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
291         - If targetX is in the left side of the first cluster, return the leftmost character index.
292         - If targetX is in the right side of the last cluster, return the rightmost character index.
293         - If targetX is between the right side of the cluster N and the left side of the cluster N+1, then:
294           - return N+1 for LTR.
295           - return N for RTL.
296         (WebCore::HarfBuzzShaper::HarfBuzzRun::xPositionForOffset):
297         Find the cluster of index in question, then:
298         - return the left side boundary of the cluster for LTR.
299         - return the right side boundary of the cluster for RTL.
300         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
301         (HarfBuzzRun):
302
303 2012-09-20  Tony Chang  <tony@chromium.org>
304
305         Replace RenderListBox::updateLogicalHeight with RenderListBox::computeLogicalHeight
306         https://bugs.webkit.org/show_bug.cgi?id=97263
307
308         Reviewed by Ojan Vafai.
309
310         This is part of making computeLogicalHeight virtual so with any RenderBox pointer, one
311         can compute the logical height without mutating the RenderBox.
312
313         No new tests, this is a refactor and existing list box tests should pass.
314
315         * rendering/RenderBox.h:
316         (RenderBox):
317         * rendering/RenderListBox.cpp:
318         (WebCore::RenderListBox::layout): Move layout related logic here.
319         (WebCore::RenderListBox::computeLogicalHeight): Use const version and remove layout related code.
320         * rendering/RenderListBox.h:
321         (RenderListBox): Override computeLogicalHeight.
322
323 2012-09-20  Mike West  <mkwst@chromium.org>
324
325         CSP reports should send an empty "blocked-uri" rather than nothing.
326         https://bugs.webkit.org/show_bug.cgi?id=97256
327
328         Reviewed by Adam Barth.
329
330         In cases where a Content Security Policy violation report is generated
331         without blocking a resource at a particular URI (inline scripts, for
332         example), we currently leave the "blocked-uri" attribute out of the
333         report entirely. For the same reason that we included the "referrer"
334         attribute in webkit.org/b/97233, we should include an explicitly empty
335         "blocked-uri" in these cases.
336
337         This new behavior is covered by updates to existing test expectations
338         around the reporting functionality.
339
340         * page/ContentSecurityPolicy.cpp:
341         (WebCore::ContentSecurityPolicy::reportViolation):
342             If the 'blocked-uri' is invalid, add a "blocked-uri" attribute that
343             is explicitly empty.
344
345 2012-09-20  Patrick Gansterer  <paroga@webkit.org>
346
347         Add String::numberToFixedPrecisionString()
348         https://bugs.webkit.org/show_bug.cgi?id=96330
349
350         Reviewed by Benjamin Poulain.
351
352         * platform/text/TextStream.cpp:
353         (WebCore::TextStream::operator<<): Use the new function instead of String::number() with flags.
354
355 2012-09-20  Adam Klein  <adamk@chromium.org>
356
357         Rename ContainerNode::parserAddChild "parserAppendChild" for consistency
358         https://bugs.webkit.org/show_bug.cgi?id=97254
359
360         Reviewed by Adam Barth.
361
362         No functional change, all the below changes are simple renames.
363
364         * dom/ContainerNode.cpp:
365         (WebCore::ContainerNode::takeAllChildrenFrom):
366         (WebCore::ContainerNode::parserAppendChild):
367         * dom/ContainerNode.h:
368         (ContainerNode):
369         * dom/DOMImplementation.cpp:
370         (WebCore::DOMImplementation::createDocument):
371         * editing/markup.cpp:
372         (WebCore::createFragmentForTransformToFragment):
373         * html/HTMLViewSourceDocument.cpp:
374         (WebCore::HTMLViewSourceDocument::createContainingTable):
375         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
376         (WebCore::HTMLViewSourceDocument::addLine):
377         (WebCore::HTMLViewSourceDocument::finishLine):
378         (WebCore::HTMLViewSourceDocument::addText):
379         (WebCore::HTMLViewSourceDocument::addBase):
380         (WebCore::HTMLViewSourceDocument::addLink):
381         * html/parser/HTMLConstructionSite.cpp:
382         (WebCore::executeTask):
383         * html/parser/HTMLTreeBuilder.cpp:
384         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
385         * html/track/WebVTTParser.cpp:
386         (WebCore::WebVTTParser::constructTreeFromToken):
387         * xml/XMLErrors.cpp:
388         (WebCore::createXHTMLParserErrorHeader):
389         (WebCore::XMLErrors::insertErrorMessageBlock):
390         * xml/parser/XMLDocumentParser.cpp:
391         (WebCore::XMLDocumentParser::enterText):
392         (WebCore::XMLDocumentParser::parseDocumentFragment):
393         * xml/parser/XMLDocumentParserLibxml2.cpp:
394         (WebCore::XMLDocumentParser::startElementNs):
395         (WebCore::XMLDocumentParser::processingInstruction):
396         (WebCore::XMLDocumentParser::cdataBlock):
397         (WebCore::XMLDocumentParser::comment):
398         (WebCore::XMLDocumentParser::internalSubset):
399         * xml/parser/XMLDocumentParserQt.cpp:
400         (WebCore::XMLDocumentParser::parseStartElement):
401         (WebCore::XMLDocumentParser::parseProcessingInstruction):
402         (WebCore::XMLDocumentParser::parseCdata):
403         (WebCore::XMLDocumentParser::parseComment):
404         (WebCore::XMLDocumentParser::parseDtd):
405         * xml/parser/XMLTreeBuilder.cpp:
406         (WebCore::XMLTreeBuilder::processDOCTYPE):
407         (WebCore::XMLTreeBuilder::processStartTag):
408         (WebCore::XMLTreeBuilder::add):
409
410 2012-09-20  James Robinson  <jamesr@chromium.org>
411
412         [chromium] Remove unused copy of chromium compositor implementation files
413         https://bugs.webkit.org/show_bug.cgi?id=97255
414
415         Reviewed by Adam Barth.
416
417         Now that use_libcc_for_compositor is set to 1 these files aren't used anywhere.
418
419         * WebCore.gyp/WebCore.gyp:
420         * WebCore.gypi:
421         * platform/chromium/support/CCThreadImpl.cpp: Removed.
422         * platform/chromium/support/CCThreadImpl.h: Removed.
423         * platform/chromium/support/WebCompositorImpl.cpp: Removed.
424         * platform/chromium/support/WebCompositorImpl.h: Removed.
425         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp: Removed.
426         * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h: Removed.
427         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp: Removed.
428         * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h: Removed.
429         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
430         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
431         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
432         * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp: Removed.
433         * platform/graphics/chromium/CanvasLayerTextureUpdater.h: Removed.
434         * platform/graphics/chromium/ContentLayerChromium.cpp: Removed.
435         * platform/graphics/chromium/ContentLayerChromium.h: Removed.
436         * platform/graphics/chromium/ContentLayerChromiumClient.h: Removed.
437         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp: Removed.
438         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h: Removed.
439         * platform/graphics/chromium/GeometryBinding.cpp: Removed.
440         * platform/graphics/chromium/GeometryBinding.h: Removed.
441         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
442         * platform/graphics/chromium/HeadsUpDisplayLayerChromium.cpp: Removed.
443         * platform/graphics/chromium/HeadsUpDisplayLayerChromium.h: Removed.
444         * platform/graphics/chromium/IOSurfaceLayerChromium.cpp: Removed.
445         * platform/graphics/chromium/IOSurfaceLayerChromium.h: Removed.
446         * platform/graphics/chromium/ImageLayerChromium.cpp: Removed.
447         * platform/graphics/chromium/ImageLayerChromium.h: Removed.
448         * platform/graphics/chromium/LayerChromium.cpp: Removed.
449         * platform/graphics/chromium/LayerChromium.h: Removed.
450         * platform/graphics/chromium/LayerTextureSubImage.cpp: Removed.
451         * platform/graphics/chromium/LayerTextureSubImage.h: Removed.
452         * platform/graphics/chromium/LayerTextureUpdater.h: Removed.
453         * platform/graphics/chromium/PlatformColor.h: Removed.
454         * platform/graphics/chromium/ProgramBinding.cpp: Removed.
455         * platform/graphics/chromium/ProgramBinding.h: Removed.
456         * platform/graphics/chromium/RateLimiter.cpp: Removed.
457         * platform/graphics/chromium/RateLimiter.h: Removed.
458         * platform/graphics/chromium/RenderSurfaceChromium.cpp: Removed.
459         * platform/graphics/chromium/RenderSurfaceChromium.h: Removed.
460         * platform/graphics/chromium/ScrollbarLayerChromium.cpp: Removed.
461         * platform/graphics/chromium/ScrollbarLayerChromium.h: Removed.
462         * platform/graphics/chromium/ShaderChromium.cpp: Removed.
463         * platform/graphics/chromium/ShaderChromium.h: Removed.
464         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp: Removed.
465         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h: Removed.
466         * platform/graphics/chromium/SolidColorLayerChromium.cpp: Removed.
467         * platform/graphics/chromium/SolidColorLayerChromium.h: Removed.
468         * platform/graphics/chromium/TextureCopier.cpp: Removed.
469         * platform/graphics/chromium/TextureCopier.h: Removed.
470         * platform/graphics/chromium/TextureLayerChromium.cpp: Removed.
471         * platform/graphics/chromium/TextureLayerChromium.h: Removed.
472         * platform/graphics/chromium/TextureLayerChromiumClient.h: Removed.
473         * platform/graphics/chromium/ThrottledTextureUploader.cpp: Removed.
474         * platform/graphics/chromium/ThrottledTextureUploader.h: Removed.
475         * platform/graphics/chromium/TiledLayerChromium.cpp: Removed.
476         * platform/graphics/chromium/TiledLayerChromium.h: Removed.
477         * platform/graphics/chromium/TreeSynchronizer.cpp: Removed.
478         * platform/graphics/chromium/TreeSynchronizer.h: Removed.
479         * platform/graphics/chromium/UnthrottledTextureUploader.h: Removed.
480         * platform/graphics/chromium/VideoLayerChromium.cpp: Removed.
481         * platform/graphics/chromium/VideoLayerChromium.h: Removed.
482         * platform/graphics/chromium/cc/CCActiveAnimation.cpp: Removed.
483         * platform/graphics/chromium/cc/CCActiveAnimation.h: Removed.
484         * platform/graphics/chromium/cc/CCAnimationCurve.cpp: Removed.
485         * platform/graphics/chromium/cc/CCAnimationCurve.h: Removed.
486         * platform/graphics/chromium/cc/CCAnimationEvents.h: Removed.
487         * platform/graphics/chromium/cc/CCAppendQuadsData.h: Removed.
488         * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.cpp: Removed.
489         * platform/graphics/chromium/cc/CCCheckerboardDrawQuad.h: Removed.
490         * platform/graphics/chromium/cc/CCCompletionEvent.h: Removed.
491         * platform/graphics/chromium/cc/CCDamageTracker.cpp: Removed.
492         * platform/graphics/chromium/cc/CCDamageTracker.h: Removed.
493         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp: Removed.
494         * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h: Removed.
495         * platform/graphics/chromium/cc/CCDebugRectHistory.cpp: Removed.
496         * platform/graphics/chromium/cc/CCDebugRectHistory.h: Removed.
497         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp: Removed.
498         * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h: Removed.
499         * platform/graphics/chromium/cc/CCDirectRenderer.cpp: Removed.
500         * platform/graphics/chromium/cc/CCDirectRenderer.h: Removed.
501         * platform/graphics/chromium/cc/CCDrawQuad.cpp: Removed.
502         * platform/graphics/chromium/cc/CCDrawQuad.h: Removed.
503         * platform/graphics/chromium/cc/CCFontAtlas.cpp: Removed.
504         * platform/graphics/chromium/cc/CCFontAtlas.h: Removed.
505         * platform/graphics/chromium/cc/CCFrameRateController.cpp: Removed.
506         * platform/graphics/chromium/cc/CCFrameRateController.h: Removed.
507         * platform/graphics/chromium/cc/CCFrameRateCounter.cpp: Removed.
508         * platform/graphics/chromium/cc/CCFrameRateCounter.h: Removed.
509         * platform/graphics/chromium/cc/CCGraphicsContext.h: Removed.
510         * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp: Removed.
511         * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.h: Removed.
512         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp: Removed.
513         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h: Removed.
514         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp: Removed.
515         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h: Removed.
516         * platform/graphics/chromium/cc/CCInputHandler.h: Removed.
517         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.cpp: Removed.
518         * platform/graphics/chromium/cc/CCKeyframedAnimationCurve.h: Removed.
519         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp: Removed.
520         * platform/graphics/chromium/cc/CCLayerAnimationController.h: Removed.
521         * platform/graphics/chromium/cc/CCLayerImpl.cpp: Removed.
522         * platform/graphics/chromium/cc/CCLayerImpl.h: Removed.
523         * platform/graphics/chromium/cc/CCLayerIterator.cpp: Removed.
524         * platform/graphics/chromium/cc/CCLayerIterator.h: Removed.
525         * platform/graphics/chromium/cc/CCLayerQuad.cpp: Removed.
526         * platform/graphics/chromium/cc/CCLayerQuad.h: Removed.
527         * platform/graphics/chromium/cc/CCLayerSorter.cpp: Removed.
528         * platform/graphics/chromium/cc/CCLayerSorter.h: Removed.
529         * platform/graphics/chromium/cc/CCLayerTilingData.cpp: Removed.
530         * platform/graphics/chromium/cc/CCLayerTilingData.h: Removed.
531         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: Removed.
532         * platform/graphics/chromium/cc/CCLayerTreeHost.h: Removed.
533         * platform/graphics/chromium/cc/CCLayerTreeHostClient.h: Removed.
534         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp: Removed.
535         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h: Removed.
536         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp: Removed.
537         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h: Removed.
538         * platform/graphics/chromium/cc/CCMathUtil.cpp: Removed.
539         * platform/graphics/chromium/cc/CCMathUtil.h: Removed.
540         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp: Removed.
541         * platform/graphics/chromium/cc/CCOcclusionTracker.h: Removed.
542         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp: Removed.
543         * platform/graphics/chromium/cc/CCOverdrawMetrics.h: Removed.
544         * platform/graphics/chromium/cc/CCPageScaleAnimation.cpp: Removed.
545         * platform/graphics/chromium/cc/CCPageScaleAnimation.h: Removed.
546         * platform/graphics/chromium/cc/CCPrioritizedTexture.cpp: Removed.
547         * platform/graphics/chromium/cc/CCPrioritizedTexture.h: Removed.
548         * platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp: Removed.
549         * platform/graphics/chromium/cc/CCPrioritizedTextureManager.h: Removed.
550         * platform/graphics/chromium/cc/CCPriorityCalculator.cpp: Removed.
551         * platform/graphics/chromium/cc/CCPriorityCalculator.h: Removed.
552         * platform/graphics/chromium/cc/CCProxy.cpp: Removed.
553         * platform/graphics/chromium/cc/CCProxy.h: Removed.
554         * platform/graphics/chromium/cc/CCQuadCuller.cpp: Removed.
555         * platform/graphics/chromium/cc/CCQuadCuller.h: Removed.
556         * platform/graphics/chromium/cc/CCQuadSink.h: Removed.
557         * platform/graphics/chromium/cc/CCRenderPass.cpp: Removed.
558         * platform/graphics/chromium/cc/CCRenderPass.h: Removed.
559         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp: Removed.
560         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h: Removed.
561         * platform/graphics/chromium/cc/CCRenderPassSink.h: Removed.
562         * platform/graphics/chromium/cc/CCRenderSurface.cpp: Removed.
563         * platform/graphics/chromium/cc/CCRenderSurface.h: Removed.
564         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp: Removed.
565         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.h: Removed.
566         * platform/graphics/chromium/cc/CCRenderer.h: Removed.
567         * platform/graphics/chromium/cc/CCRendererGL.cpp: Removed.
568         * platform/graphics/chromium/cc/CCRendererGL.h: Removed.
569         * platform/graphics/chromium/cc/CCRenderingStats.h: Removed.
570         * platform/graphics/chromium/cc/CCResourceProvider.cpp: Removed.
571         * platform/graphics/chromium/cc/CCResourceProvider.h: Removed.
572         * platform/graphics/chromium/cc/CCScheduler.cpp: Removed.
573         * platform/graphics/chromium/cc/CCScheduler.h: Removed.
574         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp: Removed.
575         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h: Removed.
576         * platform/graphics/chromium/cc/CCScopedTexture.cpp: Removed.
577         * platform/graphics/chromium/cc/CCScopedTexture.h: Removed.
578         * platform/graphics/chromium/cc/CCScopedThreadProxy.h: Removed.
579         * platform/graphics/chromium/cc/CCScrollbarAnimationController.cpp: Removed.
580         * platform/graphics/chromium/cc/CCScrollbarAnimationController.h: Removed.
581         * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.cpp: Removed.
582         * platform/graphics/chromium/cc/CCScrollbarAnimationControllerLinearFade.h: Removed.
583         * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.cpp: Removed.
584         * platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.h: Removed.
585         * platform/graphics/chromium/cc/CCScrollbarGeometryStub.cpp: Removed.
586         * platform/graphics/chromium/cc/CCScrollbarGeometryStub.h: Removed.
587         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp: Removed.
588         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h: Removed.
589         * platform/graphics/chromium/cc/CCSettings.cpp: Removed.
590         * platform/graphics/chromium/cc/CCSettings.h: Removed.
591         * platform/graphics/chromium/cc/CCSharedQuadState.cpp: Removed.
592         * platform/graphics/chromium/cc/CCSharedQuadState.h: Removed.
593         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: Removed.
594         * platform/graphics/chromium/cc/CCSingleThreadProxy.h: Removed.
595         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp: Removed.
596         * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h: Removed.
597         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp: Removed.
598         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h: Removed.
599         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.cpp: Removed.
600         * platform/graphics/chromium/cc/CCStreamVideoDrawQuad.h: Removed.
601         * platform/graphics/chromium/cc/CCTexture.cpp: Removed.
602         * platform/graphics/chromium/cc/CCTexture.h: Removed.
603         * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp: Removed.
604         * platform/graphics/chromium/cc/CCTextureDrawQuad.h: Removed.
605         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp: Removed.
606         * platform/graphics/chromium/cc/CCTextureLayerImpl.h: Removed.
607         * platform/graphics/chromium/cc/CCTextureUpdateController.cpp: Removed.
608         * platform/graphics/chromium/cc/CCTextureUpdateController.h: Removed.
609         * platform/graphics/chromium/cc/CCTextureUpdateQueue.cpp: Removed.
610         * platform/graphics/chromium/cc/CCTextureUpdateQueue.h: Removed.
611         * platform/graphics/chromium/cc/CCThread.h: Removed.
612         * platform/graphics/chromium/cc/CCThreadProxy.cpp: Removed.
613         * platform/graphics/chromium/cc/CCThreadProxy.h: Removed.
614         * platform/graphics/chromium/cc/CCThreadTask.h: Removed.
615         * platform/graphics/chromium/cc/CCTileDrawQuad.cpp: Removed.
616         * platform/graphics/chromium/cc/CCTileDrawQuad.h: Removed.
617         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp: Removed.
618         * platform/graphics/chromium/cc/CCTiledLayerImpl.h: Removed.
619         * platform/graphics/chromium/cc/CCTimeSource.h: Removed.
620         * platform/graphics/chromium/cc/CCTimer.cpp: Removed.
621         * platform/graphics/chromium/cc/CCTimer.h: Removed.
622         * platform/graphics/chromium/cc/CCTimingFunction.cpp: Removed.
623         * platform/graphics/chromium/cc/CCTimingFunction.h: Removed.
624         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp: Removed.
625         * platform/graphics/chromium/cc/CCVideoLayerImpl.h: Removed.
626         * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp: Removed.
627         * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h: Removed.
628
629 2012-09-20  Tony Chang  <tony@chromium.org>
630
631         Implement absolutely positioned flex items
632         https://bugs.webkit.org/show_bug.cgi?id=93798
633
634         Reviewed by Ojan Vafai.
635
636         Previously, we treated absolutely positioned flex items as a 0x0 placeholder element.
637         Now we position the 0x0 placeholder where the next item would go. This causes the
638         following changes:
639         - justify-content: space-{around,between} no longer change due to the existence of absolutely positioned flex items.
640         - alignment doesn't change the placement of absolutely positioned flex items.
641         - auto margins in the alignment direction don't do anything on absolutely positioned flex items.
642
643         Test: css3/flexbox/position-absolute-children.html
644
645         * rendering/RenderFlexibleBox.cpp:
646         (WebCore::RenderFlexibleBox::availableAlignmentSpaceForChild): Absolutely positioned flex items should not use this.
647         (WebCore::RenderFlexibleBox::updateAutoMarginsInCrossAxis): Absolutely positioned flex items should not use this.
648         (WebCore::initialJustifyContentOffset): If there are no flex items, space-around should center an absolutely positioned flex item.
649         (WebCore::RenderFlexibleBox::numberOfInFlowPositionedChildren): Helper method for helping to compute space-between and space-around.
650         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Fix spacing when space-between or space-around.
651         (WebCore::RenderFlexibleBox::layoutColumnReverse): Fix spacing when space-between or space-around.
652         (WebCore::RenderFlexibleBox::alignChildren): Treat absolutely positioned children like flex-start.
653         * rendering/RenderFlexibleBox.h: numberOfInFlowPositionedChildren method.
654
655 2012-09-20  Sheriff Bot  <webkit.review.bot@gmail.com>
656
657         Unreviewed, rolling out r129144.
658         http://trac.webkit.org/changeset/129144
659         https://bugs.webkit.org/show_bug.cgi?id=97244
660
661         causing lots of assertions in tests (Requested by smfr on
662         #webkit).
663
664         * rendering/InlineBox.h:
665         (WebCore::InlineBox::markDirty):
666         * rendering/InlineTextBox.cpp:
667         * rendering/InlineTextBox.h:
668         (WebCore::InlineTextBox::start):
669         (WebCore::InlineTextBox::end):
670         (WebCore::InlineTextBox::len):
671         (WebCore::InlineTextBox::offsetRun):
672
673 2012-09-20  Mike West  <mkwst@chromium.org>
674
675         CSP reports should send an empty 'referrer' rather than nothing.
676         https://bugs.webkit.org/show_bug.cgi?id=97233
677
678         Reviewed by Adam Barth.
679
680         Currently, if a protected resource doesn't have a referrer, then any
681         Content Security Policy violations send a report that doesn't contain
682         a referrer attribute. It's arguably friendlier to developers to include
683         an explicitly empty attribute.
684
685         This new behavior is covered by updates to existing test expectations
686         around the reporting functionality.
687
688         * page/ContentSecurityPolicy.cpp:
689         (WebCore::ContentSecurityPolicy::reportViolation):
690             Drop the 'if', and always write out a referrer.
691
692 2012-09-20  David Barton  <dbarton@mathscribe.com>
693
694         [MathML] Increase visual space around fraction parts, italic variables, and operators
695         https://bugs.webkit.org/show_bug.cgi?id=97228
696
697         Reviewed by Eric Seidel.
698
699         This makes MathML more readable, and more in agreement with Firefox and TeX.
700
701         Tested by existing tests.
702
703         * css/mathml.css:
704         (mfrac > :first-child):
705         (mfrac > :last-child):
706         (mfrac):
707         (mi):
708         (msub > mi:first-child, msubsup > mi:first-child):
709             - Subscripts don't need to move right after an italic <mi>.
710         (msubsup > mi:first-child + * + *):
711             - Superscripts do need to move right after an italic <mi>.
712         (math > mo, mrow > mo, msqrt > mo, mtd > mo):
713             - These are ok values for now. It will be better to use different values for different operators, as the FIXME says.
714         (math > mo:last-child, mrow > mo:last-child, msqrt > mo:last-child, mtd > mo:last-child):
715             - Prefix and postfix operators, including fences, generally get less spacing than infix operators.
716         
717         * rendering/mathml/RenderMathMLFenced.cpp:
718         (WebCore::RenderMathMLFenced::createMathMLOperator):
719             - Usually the separator is a comma or semicolon, so we only put space after it for now.
720         (WebCore::RenderMathMLFenced::makeFences):
721         (WebCore::RenderMathMLFenced::addChild):
722         (WebCore::RenderMathMLFenced::styleDidChange):
723         * rendering/mathml/RenderMathMLFenced.h:
724         (RenderMathMLFenced):
725         
726         * rendering/mathml/RenderMathMLFraction.cpp:
727         (WebCore):
728         (WebCore::RenderMathMLFraction::updateFromElement):
729             - gDenominatorPad is now handled by mathml.css.
730         
731         * rendering/mathml/RenderMathMLSubSup.cpp:
732         (WebCore):
733         (WebCore::RenderMathMLSubSup::fixScriptsStyle):
734             - gSubsupScriptMargin is now handled by mathml.css.
735
736 2012-09-20  Tommy Widenflycht  <tommyw@google.com>
737
738         MediaStream API: Extend UserMediaRequest with a ownerDocument method
739         https://bugs.webkit.org/show_bug.cgi?id=97095
740
741         Reviewed by Adam Barth.
742
743         Chromium need to know exactly which frame called getUserMedia so that it can
744         clean away the stream when the frame goes away.
745         Since that information is available in webkit add an accessor method.
746
747         Chromium mock class extended to test the added method.
748
749         * Modules/mediastream/UserMediaRequest.cpp:
750         (WebCore::UserMediaRequest::ownerDocument):
751         (WebCore):
752         * Modules/mediastream/UserMediaRequest.h:
753         (WebCore):
754         (UserMediaRequest):
755
756 2012-09-20  Levi Weintraub  <leviw@chromium.org>
757
758         Prevent reading stale data from InlineTextBoxes
759         https://bugs.webkit.org/show_bug.cgi?id=94750
760
761         Reviewed by Eric Seidel.
762
763         Text from dirty InlineTextBoxes should never be read or used. This change enforces this
764         design goal by forcefully zero-ing out the start and length of InlineTextBoxes when 
765         they're being marked dirty. It also adds asserts to accessors for those members.
766
767         This change involves making markDirty virtual. Running the line-layout performance test
768         as well as profiling resizing the html5 spec showed negligable impact with this change.
769
770         No new tests as this doesn't change any proper behavior.
771
772         * rendering/InlineBox.h:
773         (WebCore::InlineBox::markDirty): Making virtual to allow InlineTextBox to overload and
774         zero out its start and length.
775         * rendering/InlineTextBox.cpp:
776         (WebCore::InlineTextBox::markDirty): Zeroing out start and length when we mark the box dirty.
777         * rendering/InlineTextBox.h:
778         (WebCore::InlineTextBox::start): Adding an assert when we hit this case.
779         (WebCore::InlineTextBox::end): Ditto.
780         (WebCore::InlineTextBox::len): Ditto.
781         (WebCore::InlineTextBox::offsetRun): Ditto.
782
783 2012-09-20  Mike West  <mkwst@chromium.org>
784
785         Support paths in Content Security Policy directives.
786         https://bugs.webkit.org/show_bug.cgi?id=89750
787
788         Reviewed by Adam Barth.
789
790         In CSP 1.0, paths are simply ignored: 'script-src
791         http://example.com/path/to/a/file' would allow script to be loaded from
792         http://example.com/path/to/a/file/javascript.js, but also from
793         http://example.com/javascript.js.
794
795         This patch is an experimental implementation of more granular path
796         support in CSP source lists as proposed in the current editor's draft of
797         CSP 1.1. Paths are treated as specifying directories in which resources
798         can be found, and are implicitly terminated with a '/': in other words,
799         'script-src http://a.com/path' is the same as
800         'script-src http://a.com/path/'. Moreover, paths cannot contain either
801         '?' or '#' characters.
802
803         This is implemented outside the CSP_NEXT flag. All ports will be
804         effected.
805
806         Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#matching
807
808         Tests: http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01.html
809                http/tests/security/contentSecurityPolicy/source-list-parsing-paths-02.html
810
811         * page/ContentSecurityPolicy.cpp:
812         (WebCore::CSPSource::CSPSource):
813             Store a path along with each CSP source.
814         (WebCore::CSPSource::matches):
815             Check the path when comparing a URL to the source.
816         (WebCore::CSPSource::pathMatches):
817             Compare the URL-decoded version of the resource to validate against
818             the source's stored path. If the resource's path begins with the
819             stored path, then it matches! If not, it doesn't.
820         (CSPSource):
821             Store a path along with each CSP source.
822         (WebCore::CSPSourceList::parse):
823             Pass a 'path' in when creating CSPSource objects.
824         (WebCore::CSPSourceList::parsePath):
825             Actually parse the path, flagging errors if '?' or '#' are present,
826             URL-decoding the result, and ensuring that a terminal '/' is
827             added if necessary.
828         (WebCore::CSPSourceList::addSourceSelf):
829             Ensure that 'self' sources have an empty path.
830         * page/ContentSecurityPolicy.h:
831             Dropping the "ignored path component" console warning.
832
833 2012-09-20  Joanmarie Diggs  <jdiggs@igalia.com>
834
835         [GTK] ControlsPanel string is not localized in LocalizedStringsGtk
836         https://bugs.webkit.org/show_bug.cgi?id=96502
837
838         Reviewed by Chris Fleizach.
839
840         Adds the ControlsPanel string to the strings localized in LocalizedStringsGtk.
841
842         Test: platform/gtk/accessibility/media-controls-panel-title.html
843
844         * platform/gtk/LocalizedStringsGtk.cpp:
845         (WebCore::localizedMediaControlElementString):
846
847 2012-09-20  Julien Chaffraix  <jchaffraix@webkit.org>
848
849         Remove isStartColumn in the border collapsing code
850         https://bugs.webkit.org/show_bug.cgi?id=97024
851
852         Reviewed by Abhishek Arya.
853
854         isStartColumn is embedding the same information as prevCell. As we need to compute it
855         in most of the cases, we may as well just reuse them.
856
857         While touching this code, I cleaned up the code by removing some unneeded checks and renaming
858         some variables in preparation for bug 79272.
859
860         Refactoring covered by existing collapsing borders tests.
861
862         * rendering/RenderTableCell.cpp:
863         (WebCore::RenderTableCell::computeCollapsedStartBorder):
864         Removed |isStartColumn|.
865
866         (WebCore::RenderTableCell::computeCollapsedEndBorder):
867         Added a comment about why |isEndColumn| is needed. Also cleaned up this code to be
868         consistent with computeCollapsedStartBorder.
869
870 2012-09-20  Andrey Adaikin  <aandrey@chromium.org>
871
872         Web Inspector: setPropertyValue does not work for non-finite numbers
873         https://bugs.webkit.org/show_bug.cgi?id=97016
874
875         Reviewed by Vsevolod Vlasov.
876
877         Fix: setting a property to NaN, Infinity or -Infinity numbers did not work.
878
879         * inspector/front-end/RemoteObject.js:
880         (WebInspector.RemoteObject.prototype.setPropertyValue):
881
882 2012-09-20  Otto Derek Cheung  <otcheung@rim.com>
883
884         Web Inspector: Cookie info in Network Resources Cookies tab are incorrect
885         https://bugs.webkit.org/show_bug.cgi?id=95491
886
887         Reviewed by Vsevolod Vlasov.
888
889         Web Inspector: Cookie info in Network Resources Cookies tab are incorrect
890         https://bugs.webkit.org/show_bug.cgi?id=95491
891
892         Fixing a typo that causes cookies to appear as a "Session"
893         cookie in the Networking panel because it can never find a properly named
894         "expired" header.
895
896         This bug exposes another bug where the cookie GMT strings are inproperly
897         parsed, causing an "invalid date" error to show up in the cookies tab in 
898         the Networking panel.
899
900         Also changed test expectations in LayoutTests/inspector/cookie-parser-expected.txt
901
902         * inspector/front-end/CookieParser.js:
903         (WebInspector.Cookie.prototype.get session):
904
905 2012-09-20  Alexander Pavlov  <apavlov@chromium.org>
906
907         Web Inspector: [Elements] Word wrap disablement in the DOM tree broken
908         https://bugs.webkit.org/show_bug.cgi?id=97185
909
910         Reviewed by Pavel Feldman.
911
912         Restored the effective "white-space: nowrap" for the tree elements.
913
914         * inspector/front-end/inspector.css:
915         (.nowrap):
916
917 2012-09-20  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
918
919         [TouchAdjustment] Simplify and improve hybrid distance function.
920         https://bugs.webkit.org/show_bug.cgi?id=96519
921
922         Reviewed by Antonio Gomes.
923
924         The current distance function is a combination of two functions. One measuring the distance from
925         the hot-spot in the touch-area to the centerline of the target, and one measuring how much of the
926         target is covered.
927
928         The distance to the center-line was used instead of just the distance to the target, to make it
929         easier to hit small targets near big targets. The very same feature is however also the reason
930         measuring how much the target is covered is added. Using the distance to center-line is therefore
931         redundant now, and can be replaced with the simpler 'distance the hot-spot needs to be adjusted'.
932
933         Tested by existing touchadjustment tests.
934
935         * page/TouchAdjustment.cpp:
936         (TouchAdjustment):
937         (WebCore::TouchAdjustment::hybridDistanceFunction):
938         * platform/graphics/IntRect.cpp:
939         * platform/graphics/IntRect.h:
940         (IntRect):
941
942 2012-09-20  Yoshifumi Inoue  <yosin@chromium.org>
943
944         [Forms] HTMLSelectElement should call formStateDidChange on both menulist and lisbox mode
945         https://bugs.webkit.org/show_bug.cgi?id=97177
946
947         Reviewed by Kent Tamura.
948
949         This patch makes listbox mode select element to call formStateDidChange()
950         when selected options are changed.
951
952         For this change, this patch moves notifyFormStateChanged() to
953         HTMLFormControlElementWithState class from HTMLTextFormControlElement
954         for sharing code HTMLSelectElement class and HTMLInputElement/HTMLTextAreaElement
955         derived from HTMLTextFormControlElement.
956
957         No new tests. We can't test this change in WebKit test tools. Test script
958         will be implemented in Chromium side.
959
960         * html/HTMLFormControlElementWithState.cpp:
961         (WebCore::HTMLFormControlElementWithState::notifyFormStateChanged):
962         (WebCore):
963         * html/HTMLFormControlElementWithState.h: Moved a declaration of notifyFormStateChanged() from HTMLTextFormControlElement.
964         (HTMLFormControlElementWithState): Moved an implemented of notifyFormStateChanged() from HTMLTextFormControlElement.
965         * html/HTMLSelectElement.cpp:
966         (WebCore::HTMLSelectElement::selectOption): Changed to call notifyFormStateChanged() instead of formStateDidChange().
967         (WebCore::HTMLSelectElement::updateListBoxSelection): Changed to call notifyFormStateChanged().
968         * html/HTMLTextFormControlElement.cpp: Moved an implemented of notifyFormStateChanged() to HTMLFormControlElementWithState class.
969         * html/HTMLTextFormControlElement.h: Moved a declaration of notifyFormStateChanged() to HTMLFormControlElementWithState class.
970
971 2012-09-20  Keishi Hattori  <keishi@webkit.org>
972
973         REGRESSION(r127727): Can't navigate between months with arrow keys in calendar picker
974         https://bugs.webkit.org/show_bug.cgi?id=97166
975
976         Reviewed by Kent Tamura.
977
978         Fixing bug in r127727 so arrow keys work properly.
979
980         Test: fast/forms/date/calendar-picker-key-operations.html
981
982         * Resources/pagepopups/calendarPicker.js:
983         (DaysTable.prototype._maybeSetPreviousMonth):
984         (DaysTable.prototype._maybeSetNextMonth):
985
986 2012-09-18  Alexander Pavlov  <apavlov@chromium.org>
987
988         Web Inspector: Use and process the actual ScriptId in the protocol EventListener object
989         https://bugs.webkit.org/show_bug.cgi?id=93271
990
991         Reviewed by Yury Semikhatsky.
992
993         - Use the actual script identifier in the "location" object's "scriptId" field
994           for the DOM.EventListener protocol type, but send the script URL in the new "sourceName" field.
995         - Use 0-based lines in the "location" object's "lineNumber" field for linkifyRawLocation() to work correctly.
996         - Fixed formatting of links to listener locations to contain "(program)" rather than empty string.
997
998         * bindings/js/ScriptEventListener.cpp:
999         (WebCore::eventListenerHandlerLocation):
1000         * bindings/js/ScriptEventListener.h:
1001         (WebCore):
1002         * bindings/v8/ScriptEventListener.cpp:
1003         (WebCore::eventListenerHandlerLocation):
1004         * bindings/v8/ScriptEventListener.h:
1005         (WebCore):
1006         * inspector/Inspector.json:
1007         * inspector/InspectorDOMAgent.cpp:
1008         (WebCore::InspectorDOMAgent::buildObjectForEventListener):
1009         * inspector/front-end/BreakpointsSidebarPane.js:
1010         * inspector/front-end/EventListenersSidebarPane.js:
1011         * inspector/front-end/Linkifier.js:
1012         (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor):
1013         * inspector/front-end/ResourceUtils.js:
1014         (WebInspector.formatLinkText): Use "(program)" if URL is empty.
1015
1016 2012-09-19  Dan Bernstein  <mitz@apple.com>
1017
1018         WebCore part of adding a setting and API for disabling screen font substitution
1019         https://bugs.webkit.org/show_bug.cgi?id=97168
1020
1021         Reviewed by Tim Horton.
1022
1023         * WebCore.exp.in: Added an entry for Settings::setScreenFontSubstitutionEnabled.
1024         * css/StyleResolver.cpp:
1025         (WebCore::StyleResolver::collectMatchingRulesForList): Changed to use printer fonts if
1026         screen font substitution is not enabled.
1027         * page/Settings.cpp:
1028         (WebCore::Settings::Settings): Added initializer for new m_screenFontSubstitutionEnabled
1029         member variable. The initial value is true, matching existing behavior.
1030         (WebCore::Settings::setScreenFontSubstitutionEnabled): Added this setter, which updated the
1031         member variable and forces a style recalc in all pages using this Settings.
1032         * page/Settings.h:
1033         (Settings): Added m_screenFontSubstitutionEnabled boolean member variable.
1034         (WebCore::Settings::screenFontSubstitutionEnabled): Added this getter.
1035
1036 2012-09-19  Yoshifumi Inoue  <yosin@chromium.org>
1037
1038         [Forms] multiple fields time input UI should call notifyFormStateChanged() when value of field is changed
1039         https://bugs.webkit.org/show_bug.cgi?id=97169
1040
1041         Reviewed by Kent Tamura.
1042
1043         This patch makes multiple fields time input UI calls notifyFormStateChanged()
1044         when field value is changed as other input types do.
1045
1046         This patch affects ports which enable both ENABLE_INPUT_TYPE_TIME and
1047         ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS.
1048
1049         No new tests. We can't test this change in WebKit test tools. Test script
1050         will be implemented in Chromium side.
1051
1052         * html/TimeInputType.cpp:
1053         (WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged):
1054
1055 2012-09-19  Keishi Hattori  <keishi@webkit.org>
1056
1057         REGRESSION(r127727): Calendar picker focus ring should be hidden until key event
1058         https://bugs.webkit.org/show_bug.cgi?id=97165
1059
1060         Reviewed by Kent Tamura.
1061
1062         The regression was caused because NoFocusRing class was being removed
1063         from then main element inside resetMain().
1064
1065         No new tests. Covered by calendar-picker-appearance.html.
1066
1067         * Resources/pagepopups/calendarPicker.js:
1068         (initialize):
1069         (CalendarPicker):
1070         (CalendarPicker.prototype._layout):
1071         (DaysTable.prototype._handleKey):
1072         (CalendarPicker.prototype._handleBodyKeyDown):
1073         (CalendarPicker.prototype.maybeUpdateFocusStyle): Make this a method of CalendarPicker because we don't use it for other pickers.
1074
1075 2012-09-19  David Grogan  <dgrogan@chromium.org>
1076
1077         IndexedDB: Print console warning about setVersion
1078         https://bugs.webkit.org/show_bug.cgi?id=96575
1079
1080         Reviewed by Tony Chang.
1081
1082         setVersion has been out of the spec for almost a year but there are
1083         still a lot of users.
1084
1085         We show the warning once per database object as an approximation for
1086         once per page.
1087
1088         No new tests, but 150-something rebaselines.
1089
1090         * Modules/indexeddb/IDBDatabase.cpp:
1091         (WebCore::IDBDatabase::IDBDatabase):
1092         (WebCore::IDBDatabase::setVersion):
1093         * Modules/indexeddb/IDBDatabase.h:
1094         (IDBDatabase):
1095
1096 2012-09-19  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>
1097
1098         [BlackBerry] Basic authentication challenge credentials for stored credentials again after restarting browser
1099         https://bugs.webkit.org/show_bug.cgi?id=96362
1100
1101         Reviewed by Rob Buis.
1102
1103         This patch enable reading credentials from the persistent credential storage
1104         when it is not private browsing mode and there is not a credential in the RAM
1105         for the requested resource.
1106
1107         Since we don't load persistent stored credentials into RAM at the starting time,
1108         even we have saved the credentials at the last browsing, after restarting the browser,
1109         it will still challenge for credentials for the requesting resources.
1110
1111         No new tests, it uses the original authentication tests. There is no way to
1112         clear all credentials or restarting browsers to test this feature.
1113
1114         * platform/network/blackberry/CredentialBackingStore.cpp:
1115         (WebCore::CredentialBackingStore::getProtectionSpace):
1116         (WebCore):
1117         * platform/network/blackberry/CredentialBackingStore.h:
1118         (CredentialBackingStore):
1119         * platform/network/blackberry/NetworkManager.cpp:
1120         (WebCore::NetworkManager::startJob):
1121
1122 2012-09-19  Shinya Kawanaka  <shinyak@chromium.org>
1123
1124         [Refactoring] ButtonInputType of <input> element should have innerElement to make <input> AuthorShadowDOM-ready
1125         https://bugs.webkit.org/show_bug.cgi?id=95939
1126
1127         Reviewed by Dimitri Glazkov.
1128
1129         We had 2 ways to show text in RenderButton. One is to use RenderButton::setText() and the other is to add renderer
1130         as a child of RenderButton. <input type="button"> used the former one, and <button> used the latter one.
1131         The former makes RenderButton a bit messy, and also prevents from making <input> AuthorShadowDOM ready.
1132
1133         So we remove RenderButton::setText() and refactor <input type="button"> to use a Shadow DOM to show text.
1134
1135         Since the text in <input type="button"> should create RenderTextFragment, we introduce TextForButtonInputType
1136         class. RenderText will allow us to select the inner text of <input>, but it should not.
1137
1138         No new tests, existing tests should cover the change.
1139
1140         * html/BaseButtonInputType.cpp:
1141         (TextForButtonInputType): Special Text node which creates RenderTextFragment.
1142         (WebCore):
1143         (WebCore::TextForButtonInputType::create):
1144         (WebCore::TextForButtonInputType::TextForButtonInputType):
1145         (WebCore::TextForButtonInputType::createRenderer):
1146         (WebCore::BaseButtonInputType::BaseButtonInputType):
1147         (WebCore::BaseButtonInputType::createShadowSubtree):
1148         (WebCore::BaseButtonInputType::destroyShadowSubtree):
1149         (WebCore::BaseButtonInputType::valueAttributeChanged): When a button value is changed, we reflect the value to
1150         the text node in ShadowDOM.
1151         * html/BaseButtonInputType.h:
1152         (BaseButtonInputType):
1153         * html/FileInputType.cpp:
1154         (WebCore::UploadButtonElement::create): Creates Shadow DOM subtree.
1155         (WebCore::UploadButtonElement::createForMultiple): Creates Shadow DOM subtree.
1156         * html/HTMLInputElement.cpp:
1157         (WebCore::HTMLInputElement::parseAttribute):
1158         * html/InputType.cpp:
1159         (WebCore::InputType::valueAttributeChanged):
1160         (WebCore):
1161         * html/InputType.h:
1162         (InputType):
1163         * rendering/RenderButton.cpp:
1164         (WebCore::RenderButton::RenderButton):
1165         (WebCore::RenderButton::styleDidChange): Removed unnecessary text related code.
1166         * rendering/RenderButton.h:
1167         (RenderButton):
1168
1169 2012-09-19  Jason Liu  <jason.liu@torchmobile.com.cn>
1170
1171         [BlackBerry] Get infinite amount of requests after attempting re-authentication basic.
1172         https://bugs.webkit.org/show_bug.cgi?id=96994
1173
1174         Reviewed by Rob Buis.
1175
1176         We should remove the wrong credentials before calling sendRequestWithCredentials again.
1177         #PR 200226
1178         Reviewed internally by Jonathan Dong.
1179
1180         No new tests. It is covered by ManualTests/blackberry/http-auth-challenge.html.
1181
1182
1183         * platform/network/blackberry/NetworkJob.cpp:
1184         (WebCore::NetworkJob::notifyAuthReceived):
1185
1186 2012-09-19  Adam Barth  <abarth@webkit.org>
1187
1188         Remove Blob.webkitSlice
1189         https://bugs.webkit.org/show_bug.cgi?id=96715
1190
1191         Reviewed by Darin Fisher.
1192
1193         Based on these usage metrics, it appears that it is safe to remove
1194         Blob.webkitSlice. Folks that were previously calling webkitSlice should
1195         just call slice instead. They do the same thing.
1196
1197         Ratio of Blob.webkitSlice calls to Blob.slice: 14.87%
1198         Ratio of Blob.webkitSlice calls to Document creation: 0.0053%
1199
1200         * fileapi/Blob.cpp:
1201         (WebCore::Blob::slice):
1202         * fileapi/Blob.h:
1203         (Blob):
1204         * fileapi/Blob.idl:
1205         * fileapi/File.h:
1206         (File):
1207         * inspector/front-end/FileUtils.js:
1208         (WebInspector.ChunkedFileReader.prototype._loadChunk):
1209
1210 2012-09-19  Julien Chaffraix  <jchaffraix@webkit.org>
1211
1212         The collapsing border code needs direction-aware border getters
1213         https://bugs.webkit.org/show_bug.cgi?id=96710
1214
1215         Reviewed by Ojan Vafai.
1216
1217         This refactoring is needed to extend our collapsing border support for mixed directionality
1218         at the table cell level (we currently wrongly ignore any direction below the row-group). For
1219         now, the new helpers are dumb and return exactly the old result but they will be made
1220         direction-aware in a follow-up change.
1221
1222         Refactoring covered by existing tests.
1223
1224         * rendering/RenderBox.h:
1225         (WebCore::RenderBox::hasSameDirectionAs):
1226         Added this helper function. For now, it's only used to compare against
1227         the table direction but we will reuse it to compare the current cell
1228         direction against the other table parts.
1229
1230         * rendering/RenderTableCell.h:
1231         (WebCore::RenderTableCell::computeCollapsedStartBorder):
1232         (WebCore::RenderTableCell::computeCollapsedEndBorder):
1233         Transitioned those 2 functions to using the new direction-aware functions.
1234
1235         * rendering/RenderTable.cpp:
1236         (WebCore::RenderTable::tableStartBorderAdjoiningCell):
1237         (WebCore::RenderTable::tableEndBorderAdjoiningCell):
1238         * rendering/RenderTableSection.cpp:
1239         (WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
1240         (WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):
1241         * rendering/RenderTableCell.h:
1242         (WebCore::RenderTableCell::borderAdjoiningTableStart):
1243         (WebCore::RenderTableCell::borderAdjoiningTableEnd):
1244         * rendering/RenderTableSection.h:
1245         (WebCore::RenderTableSection::borderAdjoiningTableStart):
1246         (WebCore::RenderTableSection::borderAdjoiningTableEnd):
1247         Updated those call sites to use RenderBox::hasSameDirectionAs.
1248
1249         * rendering/RenderTableCell.h:
1250         (WebCore::RenderTableCell::borderAdjoiningNextCell):
1251         (WebCore::RenderTableCell::borderAdjoiningPreviousCell):
1252         * rendering/RenderTableCol.cpp:
1253         (WebCore::RenderTableCol::borderAdjoiningCellStartBorder):
1254         (WebCore::RenderTableCol::borderAdjoiningCellEndBorder):
1255         (WebCore::RenderTableCol::borderAdjoiningCellBefore):
1256         (WebCore::RenderTableCol::borderAdjoiningCellAfter):
1257         * rendering/RenderTableCol.h:
1258         * rendering/RenderTableRow.cpp:
1259         (WebCore::RenderTableRow::borderAdjoiningStartCell):
1260         (WebCore::RenderTableRow::borderAdjoiningEndCell):
1261         * rendering/RenderTableRow.h:
1262         (WebCore::RenderTableRow::borderAdjoiningTableStart):
1263         (WebCore::RenderTableRow::borderAdjoiningTableEnd):
1264         * rendering/RenderTableSection.cpp:
1265         (WebCore::RenderTableSection::borderAdjoiningStartCell):
1266         (WebCore::RenderTableSection::borderAdjoiningEndCell):
1267         New direction-aware functions. Added some ASSERT to ensure
1268         we don't call them with the wrong parameters.
1269
1270 2012-09-19  Kentaro Hara  <haraken@chromium.org>
1271
1272         [V8] ScriptController::compileAndRunScript() can crash
1273         https://bugs.webkit.org/show_bug.cgi?id=96567
1274
1275         Reviewed by Adam Barth.
1276
1277         See chromium bug: http://code.google.com/p/chromium/issues/detail?id=146776
1278
1279         The root cause is that v8::PreCompile() can return 0 when the stack of
1280         V8's parser overflows (c.f. http://code.google.com/codesearch#OAMlx_jo-ck/src/v8/src/parser.cc&exact_package=chromium&q=kPreParseStackOverflow&type=cs&l=6021).
1281
1282         This patch adds the 0 check to the caller side. Given that precompileScript()
1283         is just trying to speculatively precompile a script, it's OK to give up
1284         precompiling for such edge cases.
1285
1286         Manually tested with the html generated by the following shell script:
1287
1288           echo '<script language="JavaScript" type="text/javascript" src="asan-crash.js"></script>' > asan-crash.html
1289           echo 'if(wURLF.search("")>=0) {}' > asan-crash.js
1290           for i in `seq 14830`
1291           do
1292             echo 'else if(wURLF.search("")>=0) {}' >> asan-crash.js
1293           done
1294
1295         I didn't add the test because '14380' depends on an environment
1296         and because we don't want to add a huge html test.
1297
1298         * bindings/v8/ScriptSourceCode.cpp:
1299         (WebCore::ScriptSourceCode::precompileScript):
1300
1301 2012-09-19  Joshua Bell  <jsbell@chromium.org>
1302
1303         IndexedDB: Pending call cleanup
1304         https://bugs.webkit.org/show_bug.cgi?id=96952
1305
1306         Reviewed by Tony Chang.
1307
1308         Replace RefPtr usage with OwnPtr for PendingXXXCalls (since they're never referenced twice)
1309         and replace queue of "second half open" calls with a single item.
1310
1311         No new tests - no functional changes.
1312
1313         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1314         (WebCore::IDBDatabaseBackendImpl::PendingOpenCall::create):
1315         (WebCore::IDBDatabaseBackendImpl::PendingOpenWithVersionCall::create):
1316         (WebCore::IDBDatabaseBackendImpl::PendingDeleteCall::create):
1317         (WebCore::IDBDatabaseBackendImpl::PendingSetVersionCall::create):
1318         (WebCore::IDBDatabaseBackendImpl::setVersion):
1319         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
1320         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1321         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
1322         (WebCore::IDBDatabaseBackendImpl::close):
1323         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1324         (IDBDatabaseBackendImpl):
1325
1326 2012-09-19  Kenichi Ishibashi  <bashi@chromium.org>
1327
1328         [Chromium] Improve glyph positioning of HarfBuzzShaper
1329         https://bugs.webkit.org/show_bug.cgi?id=97093
1330
1331         Reviewed by Tony Chang.
1332
1333         For proper positioning, HarfBuzzShaper requires the positions(offsets and advance)
1334         of the previous glyph. This mean we need to shape all HarfBuzzRuns before glyph positioning.
1335         Collect and shape HarfBuzzRuns, then set positions of glyphs.
1336
1337         No new tests. Tests that uses spacing for complex text (e.g. fast/text/atsui-negative-spacing-features.html)
1338         should close in the expectations. (not the identical, maybe there are subtle differences between
1339         harfbuzz old and harfbuzz ng)
1340
1341         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
1342         (WebCore::HarfBuzzShaper::HarfBuzzRun::applyShapeResult): Allocate m_offsets.
1343         (WebCore::HarfBuzzShaper::HarfBuzzRun::setGlyphAndPositions): Renamed and set offset too.
1344         (WebCore::HarfBuzzShaper::HarfBuzzRun::characterIndexForXPosition):
1345         (WebCore::HarfBuzzShaper::shape): Call fillGlyphBuffer() if we need to fill glyphBuffer.
1346         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Removed glyph positioning code.
1347         (WebCore::HarfBuzzShaper::setGlyphPositionsForHarfBuzzRun): Ditto.
1348         (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun): Added.
1349         (WebCore):
1350         (WebCore::HarfBuzzShaper::fillGlyphBuffer): Added.
1351         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
1352         (HarfBuzzRun):
1353         (WebCore::HarfBuzzShaper::HarfBuzzRun::offsets): Added.
1354         (WebCore::HarfBuzzShaper::HarfBuzzRun::glyphToCharacterIndexes): Added.
1355         (HarfBuzzShaper):
1356
1357 2012-09-19  James Simonsen  <simonjam@chromium.org>
1358
1359         [Chromium] Disable resource load scheduling
1360         https://bugs.webkit.org/show_bug.cgi?id=97131
1361
1362         Reviewed by Nate Chapin.
1363
1364         We'll use Chrome's network stack for scheduling instead.
1365
1366         No new tests.
1367
1368         * loader/ResourceLoadScheduler.cpp:
1369         * loader/cache/CachedResourceLoader.cpp:
1370         (WebCore::CachedResourceLoader::preload):
1371
1372 2012-09-19  Dan Bernstein  <mitz@apple.com>
1373
1374         When kerning is enabled, word spacing is doubly accounted for in RenderText::computePreferredLogicalWidths
1375         https://bugs.webkit.org/show_bug.cgi?id=97146
1376
1377         Reviewed by Anders Carlsson.
1378
1379         Test: fast/text/word-space-with-kerning.html
1380
1381         * rendering/RenderText.cpp:
1382         (WebCore::RenderText::computePreferredLogicalWidths): When kerning is enabled, words are
1383         measured with their trailing space, if there is one, then the width of a space is subtracted.
1384         Changed that width, stored in the local variable wordTrailingSpaceWidth, to include the
1385         word spacing, since it is included in the result of widthFromCache().
1386
1387 2012-09-19  Joshua Bell  <jsbell@chromium.org>
1388
1389         IndexedDB: Remove "current transaction" concept from backing store
1390         https://bugs.webkit.org/show_bug.cgi?id=96663
1391
1392         Reviewed by Tony Chang.
1393
1394         IndexedDB should allow multiple transactions to run in parallel within and
1395         across databases within an origin. As an initial step to enabling this, the
1396         backing store should not hold a "current transaction" - instead, operations
1397         should be done relative to a transaction managed by the database.
1398
1399         No new tests - no functional changes.
1400
1401         * Modules/indexeddb/IDBBackingStore.h:
1402         (IDBBackingStore):
1403         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1404         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
1405         (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
1406         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
1407         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
1408         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1409         (IDBDatabaseBackendImpl):
1410         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
1411         (WebCore::IDBIndexBackendImpl::openCursorInternal):
1412         (WebCore::IDBIndexBackendImpl::countInternal):
1413         (WebCore::IDBIndexBackendImpl::count):
1414         (WebCore::IDBIndexBackendImpl::getInternal):
1415         (WebCore::IDBIndexBackendImpl::getKeyInternal):
1416         (WebCore::IDBIndexBackendImpl::get):
1417         (WebCore::IDBIndexBackendImpl::getKey):
1418         * Modules/indexeddb/IDBIndexBackendImpl.h:
1419         (IDBIndexBackendImpl):
1420         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1421         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
1422         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
1423         (WebCore::IDBLevelDBBackingStore::createObjectStore):
1424         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
1425         (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
1426         (WebCore):
1427         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
1428         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
1429         (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
1430         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
1431         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
1432         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
1433         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
1434         (WebCore::IDBLevelDBBackingStore::createIndex):
1435         (WebCore::IDBLevelDBBackingStore::deleteIndex):
1436         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
1437         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
1438         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
1439         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
1440         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
1441         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
1442         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
1443         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
1444         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
1445         (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
1446         (WebCore::IDBLevelDBBackingStore::Transaction::begin):
1447         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
1448         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
1449         * Modules/indexeddb/IDBLevelDBBackingStore.h:
1450         (IDBLevelDBBackingStore):
1451         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransaction):
1452         (Transaction):
1453         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
1454         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1455         (WebCore::IDBObjectStoreBackendImpl::get):
1456         (WebCore::IDBObjectStoreBackendImpl::getInternal):
1457         (WebCore):
1458         (WebCore::makeIndexWriters):
1459         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
1460         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1461         (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
1462         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1463         (WebCore::IDBObjectStoreBackendImpl::clear):
1464         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
1465         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
1466         (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
1467         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
1468         (WebCore::IDBObjectStoreBackendImpl::count):
1469         (WebCore::IDBObjectStoreBackendImpl::countInternal):
1470         (WebCore::IDBObjectStoreBackendImpl::generateKey):
1471         (WebCore::IDBObjectStoreBackendImpl::updateKeyGenerator):
1472         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
1473         (IDBObjectStoreBackendImpl):
1474
1475 2012-09-19  Terry Anderson  <tdanderson@chromium.org>
1476
1477         [chromium] Store the contents scale factor in PlatformContextSkia on initialization
1478         https://bugs.webkit.org/show_bug.cgi?id=96137
1479
1480         Reviewed by Stephen White.
1481
1482         When the compositor creates a PlatformContextSkia, the scale on |canvas| will 
1483         be equal to the content scale factor (which, without pinch-to-zoom, will be
1484         the same as the device scale factor). Set this value as a member on PlatformContextSkia, 
1485         which will be used to correctly render glyphs when hinting is used and the device
1486         scale factor is not 1.
1487
1488         Tests: added two new unit tests.
1489
1490         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
1491         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
1492         * platform/graphics/skia/PlatformContextSkia.cpp:
1493         (WebCore::PlatformContextSkia::PlatformContextSkia):
1494         (WebCore::PlatformContextSkia::setupPaintCommon):
1495         * platform/graphics/skia/PlatformContextSkia.h:
1496         (PlatformContextSkia):
1497         (WebCore::PlatformContextSkia::setHintingScaleFactor):
1498         (WebCore::PlatformContextSkia::hintingScaleFactor):
1499
1500 2012-09-19  Kenichi Ishibashi  <bashi@chromium.org>
1501
1502         [Chromium] HarfBuzzShaper should take into account combining characters
1503         https://bugs.webkit.org/show_bug.cgi?id=97069
1504
1505         Reviewed by Tony Chang.
1506
1507         When dividing a text run into HarfBuzzRuns, try to find suitable SimpleFontData for
1508         combining character sequence if there are one or more mark characters are followed.
1509         If there is no combined glyphs in the font, use fallback font for mark characters.
1510
1511         No new tests.
1512         In platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html,
1513         U+0947 (devanagari vowel sign e) should be displayed.
1514         In fast/text/wide-zero-width-space.html, &eacute; and e&#0301; should look identical.
1515
1516         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
1517         (WebCore):
1518         (WebCore::fontDataForCombiningCharacterSequence): Added.
1519         (WebCore::HarfBuzzShaper::collectHarfBuzzRuns): See above description.
1520
1521 2012-09-19  Tony Chang  <tony@chromium.org>
1522
1523         Remove RenderIFrame::updateLogicalHeight and RenderIFrame::updateLogicalWidth
1524         https://bugs.webkit.org/show_bug.cgi?id=97049
1525
1526         Reviewed by Ojan Vafai.
1527
1528         This is an incremental step in making updateLogicalHeight non-virtual so it's
1529         possible to call computeLogicalHeight on any RenderBox and get the right
1530         version of the function.
1531
1532         The code in RenderIFrame::layout was calling flattenFrame(), which would
1533         query it's bounding box size.  Since we hadn't done a layout yet, the size
1534         is unknown.  The fix is to only call flattenFrame() after calling
1535         updateLogicalWidth and updateLogicalHeight. We can then fixup the size of
1536         the iframe.
1537
1538         No new tests, existing tests in fast/frames/flattening should continue to pass.
1539
1540         * rendering/RenderIFrame.cpp:
1541         (WebCore::RenderIFrame::layout):
1542         * rendering/RenderIFrame.h:
1543         (RenderIFrame):
1544
1545 2012-09-19  Joshua Bell  <jsbell@chromium.org>
1546
1547         IndexedDB: Free up resources used by completed cursors earlier
1548         https://bugs.webkit.org/show_bug.cgi?id=97023
1549
1550         Reviewed by Tony Chang.
1551
1552         Prior to this patch, IDBCursor objects are kept around by their parent
1553         IDBTransaction until the transaction finishes. It's possible to release
1554         references to them earlier, when the cursor has been "run to the end",
1555         as no further events will fire and all calls to continue() etc should fail.
1556
1557         This change tells the cursor it's done when "null" finally comes through in
1558         the IDBRequest, and the cursor then lets transaction know it can be
1559         forgotten.
1560
1561         The added test doesn't distinguish the new behavior, but does exercise
1562         "finished" cursors and apparently we didn't have tests for these before.
1563
1564         Test: storage/indexeddb/cursor-finished.html
1565
1566         * Modules/indexeddb/IDBCursor.cpp:
1567         (WebCore::IDBCursor::close): Make idempotent; notify transaction.
1568         * Modules/indexeddb/IDBRequest.cpp:
1569         (WebCore::IDBRequest::onSuccess): Tell cursor it's finished before releasing.
1570         * Modules/indexeddb/IDBTransaction.cpp:
1571         (WebCore::IDBTransaction::OpenCursorNotifier::~OpenCursorNotifier):
1572         (WebCore):
1573         (WebCore::IDBTransaction::OpenCursorNotifier::cursorFinished): New method for explicit notification.
1574         * Modules/indexeddb/IDBTransaction.h:
1575         (OpenCursorNotifier):
1576
1577 2012-09-19  David Grogan  <dgrogan@chromium.org>
1578
1579         IndexedDB: fire upgradeneeded even without an explicit integer version
1580         https://bugs.webkit.org/show_bug.cgi?id=96444
1581
1582         Reviewed by Tony Chang.
1583
1584         Also of note:
1585         - New databases now get a default version of 1 instead of
1586         the empty string when they are opened.
1587         - We now allow databases with an integer version to revert to a string
1588         version by calling setVersion.
1589
1590         Implementation detail: we store both an integer version and string
1591         version for a particular database. If both are set we give preference
1592         to the integer version and assume the db is on the integer track.
1593
1594         Test: storage/indexeddb/intversion-two-opens-no-versions.html
1595
1596         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1597         (WebCore):
1598         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
1599         (WebCore::IDBDatabaseBackendImpl::setVersion):
1600         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
1601         Now that this can be called even after an int version is set we have
1602         to make it revoke the int version.
1603
1604         (WebCore::IDBDatabaseBackendImpl::openConnection):
1605         Nested ifs were getting deep, so refactor to return early instead.
1606
1607         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
1608         (WebCore::IDBDatabaseBackendImpl::resetVersion):
1609         Now that an int version could have been set before setVersion was
1610         called we have to reset the int version on abort.
1611
1612         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
1613         (IDBDatabaseBackendImpl):
1614         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1615         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
1616         * Modules/indexeddb/IDBOpenDBRequest.cpp:
1617         0 is now a valid integer version to store to leveldb if an idb
1618         database is reverting to a string version.
1619
1620         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
1621         If the open request did not specify an integer version but
1622         upgradeneeded is called, it means the database was given the default
1623         version of 1.
1624
1625 2012-09-19  Dominic Mazzoni  <dmazzoni@google.com>
1626
1627         AX: A few control types are returning the wrong answer for isReadOnly
1628         https://bugs.webkit.org/show_bug.cgi?id=96735
1629
1630         Reviewed by Chris Fleizach.
1631
1632         All input types should be read-only except ones that
1633         are text fields. The previous logic was marking things like
1634         checkboxes as not read-only.
1635
1636         Tests: platform/chromium/accessibility/readonly.html
1637                platform/mac/accessibility/form-control-value-settable.html
1638
1639         * accessibility/AccessibilityNodeObject.cpp:
1640         (WebCore::AccessibilityNodeObject::isReadOnly):
1641
1642 2012-09-19  Mark Pilgrim  <pilgrim@chromium.org>
1643
1644         [Chromium] Remove unused PlatformSupport reference in V8GCController
1645         https://bugs.webkit.org/show_bug.cgi?id=97118
1646
1647         Reviewed by Ryosuke Niwa.
1648
1649         Part of a refactoring series. See tracking bug 82948.
1650         
1651         * bindings/v8/V8GCController.cpp:
1652
1653 2012-09-19  Mark Pilgrim  <pilgrim@chromium.org>
1654
1655         [Chromium] Remove unused PlatformSupport reference in V8DOMWindowShell
1656         https://bugs.webkit.org/show_bug.cgi?id=97117
1657
1658         Reviewed by Ryosuke Niwa.
1659
1660         Part of a refactoring series. See tracking bug 82948.
1661
1662         * bindings/v8/V8DOMWindowShell.cpp:
1663
1664 2012-09-19  Kentaro Hara  <haraken@chromium.org>
1665
1666         [V8] Remove WorkerContextExecutionProxy::runScript()
1667         https://bugs.webkit.org/show_bug.cgi?id=97060
1668
1669         Reviewed by Adam Barth.
1670
1671         To kill WorkerContextExecutionProxy, this patch removes
1672         WorkerContextExecutionProxy::runScript() by replacing it
1673         with ScriptRunner::runCompiledScript().
1674
1675         For the replacement, this patch moves TryCatch logic in
1676         runCompiledScript() to the caller side. The reason why
1677         we have to avoid nesting TryCatches is a V8 bug:
1678         http://code.google.com/p/v8/issues/detail?id=2166
1679
1680         No tests. No change in behavior.
1681
1682         * bindings/v8/ScriptController.cpp:
1683         (WebCore::ScriptController::compileAndRunScript):
1684         * bindings/v8/ScriptRunner.cpp:
1685         (WebCore::ScriptRunner::runCompiledScript):
1686         * bindings/v8/WorkerContextExecutionProxy.cpp:
1687         (WebCore::WorkerContextExecutionProxy::evaluate):
1688         * bindings/v8/WorkerContextExecutionProxy.h:
1689         (WorkerContextExecutionProxy):
1690
1691 2012-09-19  Rob Buis  <rbuis@rim.com>
1692
1693         [BlackBerry] Fix vertical positioning problem for 'X' in search field
1694         https://bugs.webkit.org/show_bug.cgi?id=97126
1695
1696         Reviewed by Antonio Gomes.
1697
1698         We have the same problem as described in bug 30245, so integrate that code.
1699
1700         * platform/blackberry/RenderThemeBlackBerry.cpp:
1701         (WebCore::RenderThemeBlackBerry::convertToPaintingRect):
1702         (WebCore):
1703         (WebCore::RenderThemeBlackBerry::paintSearchFieldCancelButton):
1704
1705 2012-09-19  Rob Buis  <rbuis@rim.com>
1706
1707         [BlackBerry] Remove custom painting code for searchCancel
1708         https://bugs.webkit.org/show_bug.cgi?id=97119
1709
1710         Reviewed by Antonio Gomes.
1711
1712         Remove the dynamic painting code for searchCancel, we use a png file now.
1713
1714         * platform/graphics/blackberry/ImageBlackBerry.cpp:
1715         (WebCore::Image::loadPlatformResource):
1716
1717 2012-09-19  Mark Pilgrim  <pilgrim@chromium.org>
1718
1719         [Chromium] Move notifyJSOutOfMemory out of PlatformSupport
1720         https://bugs.webkit.org/show_bug.cgi?id=97116
1721
1722         Reviewed by Adam Barth.
1723
1724         Part of a refactoring series. See tracking bug 82948.
1725
1726         * bindings/v8/V8Binding.cpp:
1727         (WebCore::handleOutOfMemory):
1728         * loader/FrameLoaderClient.h:
1729         (WebCore::FrameLoaderClient::didExhaustMemoryAvailableForScript):
1730         (FrameLoaderClient):
1731         * platform/chromium/PlatformSupport.h:
1732         (PlatformSupport):
1733
1734 2012-09-18  Dirk Schulze  <krit@webkit.org>
1735
1736         Implement 'mask-type' for <mask>
1737         https://bugs.webkit.org/show_bug.cgi?id=97011
1738
1739         Reviewed by Andreas Kling.
1740
1741         The CSS Masking specification defines the presentation attribute 'mask-type' to
1742         switch between luminance and alpha masking. 'mask-type' just affects the SVG
1743         mask element. The luminance masking is the current behavior of of SVG masking.
1744         Alpha masking is simular to '-webkit-mask-image'.
1745
1746         This patch implements this property and make it possible to switch between both
1747         masking modes. Since the default value is 'luminance', this does not break
1748         exisiting content which is tested with exisiting tests.
1749
1750         http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#the-mask-type
1751
1752         Tests: svg/css/mask-type.html
1753                svg/masking/mask-type-alpha-expected.svg
1754                svg/masking/mask-type-alpha.svg
1755                svg/masking/mask-type-luminance-expected.svg
1756                svg/masking/mask-type-luminance.svg
1757                svg/masking/mask-type-not-set-expected.svg
1758                svg/masking/mask-type-not-set.svg
1759
1760         * css/CSSComputedStyleDeclaration.cpp: Add mask-type property.
1761         (WebCore):
1762         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1763         * css/CSSPrimitiveValueMappings.h:
1764         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1765         (WebCore):
1766         (WebCore::CSSPrimitiveValue::operator EMaskType):
1767         * css/CSSProperty.cpp:
1768         (WebCore::CSSProperty::isInheritedProperty):
1769         * css/SVGCSSComputedStyleDeclaration.cpp:
1770         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
1771         * css/SVGCSSParser.cpp:
1772         (WebCore::CSSParser::parseSVGValue):
1773         * css/SVGCSSPropertyNames.in: Add mask-type.
1774         * css/SVGCSSStyleSelector.cpp:
1775         (WebCore::StyleResolver::applySVGProperty):
1776         * css/SVGCSSValueKeywords.in:
1777         * rendering/style/SVGRenderStyle.cpp:
1778         (WebCore::SVGRenderStyle::diff):
1779         * rendering/style/SVGRenderStyle.h:
1780         (WebCore::SVGRenderStyle::initialMaskType):
1781         (WebCore::SVGRenderStyle::setMaskType):
1782         (SVGRenderStyle):
1783         (WebCore::SVGRenderStyle::maskType):
1784         (WebCore::SVGRenderStyle::setBitDefaults):
1785         * rendering/style/SVGRenderStyleDefs.h:
1786         * rendering/svg/RenderSVGResourceMasker.cpp:
1787
1788             Switch between the two masking modes according to the
1789             computed value of mask-type.
1790
1791         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
1792         * svg/SVGStyledElement.cpp:
1793         (WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
1794         (WebCore::cssPropertyToTypeMap):
1795         * svg/svgattrs.in: Add the new attribute to the attribute list.
1796
1797 2012-09-19  Mark Pilgrim  <pilgrim@chromium.org>
1798
1799         [Chromium] Remove unused popupsAllowed function from PlatformSupport
1800         https://bugs.webkit.org/show_bug.cgi?id=96521
1801
1802         Reviewed by Eric Seidel.
1803
1804         Part of a refactoring series. See tracking bug 82948.
1805
1806         * bindings/v8/NPV8Object.cpp:
1807         (WebCore::v8ObjectToNPObject):
1808         (_NPN_Evaluate):
1809         (_NPN_GetProperty):
1810         * platform/chromium/PlatformSupport.h:
1811         (PlatformSupport):
1812
1813 2012-09-19  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1814
1815         [BlackBerry] Add function playerId() in class PageClientBlackBerry
1816         https://bugs.webkit.org/show_bug.cgi?id=97099
1817
1818         Reviewed by Yong Li.
1819
1820         Added function playerID() in class PageClientBlackBerry.
1821
1822         Internally reviewed by Charles Wei.
1823
1824         No new tests since there's no functional change.
1825
1826         * platform/blackberry/PageClientBlackBerry.h:
1827
1828 2012-09-19  Raul Hudea  <rhudea@adobe.com>
1829
1830         [CSSRegions][CSSOM] Make sure all Regions APIs are not visible if CSS_REGIONS is not defined
1831         https://bugs.webkit.org/show_bug.cgi?id=96300
1832
1833         Reviewed by Yury Semikhatsky.
1834
1835         All CSS Regions APIs should be exposed only if CSS_REGIONS is enabled
1836
1837         No new tests because of no behavior changes.
1838
1839         * css/StyleRule.cpp:
1840         (WebCore::StyleRuleBase::reportMemoryUsage): Fix compile without CSS_REGIONS enabled and added an ASSERT_NOT_REACHED as in other functions
1841         * dom/Element.cpp: Compile webkitRegionOverset only if CSS_REGIONS is enabled
1842         (WebCore):
1843         * dom/Element.h:
1844         * dom/Element.idl: Expose webkitRegionOverset only if CSS_REGIONS is enabled
1845
1846 2012-09-19  Patrick Gansterer  <paroga@webkit.org>
1847
1848         Remove all usages of M_PI from WebCore
1849         https://bugs.webkit.org/show_bug.cgi?id=93109
1850
1851         Reviewed by Dirk Schulze.
1852
1853         <wtf/MathExtras.h> implements many functions dealing with M_PI.
1854         Use them in WebCore instead of duplicating the functionality.
1855
1856         * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
1857         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
1858         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1859         (PlatformCALayer::setFilters):
1860         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1861         (WebCore::GraphicsContext::drawEllipse):
1862         (WebCore::GraphicsContext::strokeArc):
1863         * platform/graphics/wx/FontPlatformDataWxMac.mm:
1864         * platform/mac/WebWindowAnimation.mm:
1865         (-[WebWindowScaleAnimation currentValue]):
1866         * platform/wx/wxcode/gdiplus/non-kerned-drawing.cpp:
1867         (DegToRad):
1868         (RadToDeg):
1869
1870 2012-09-10  Vsevolod Vlasov  <vsevik@chromium.org>
1871
1872         Web Inspector: Network request headers text fallback has typo.
1873         https://bugs.webkit.org/show_bug.cgi?id=96280
1874
1875         Reviewed by Pavel Feldman.
1876
1877         * inspector/front-end/NetworkRequest.js:
1878         (WebInspector.NetworkRequest.prototype.get requestHeadersText):
1879         (WebInspector.NetworkRequest.prototype.get responseHeadersText):
1880
1881 2012-09-19  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
1882
1883         [BlackBerry] remove static_cast which will cause video crash
1884         https://bugs.webkit.org/show_bug.cgi?id=97070
1885
1886         Reviewed by Antonio Gomes.
1887
1888         Removed the static_cast to avoid layering violation which
1889         will cause a runtime crash.
1890         We won't create a real MediaPlayerPrivate object before we call
1891         MediaPlayer::load(), so if we use player()->implementation()
1892         before calling load() in some cases, it points to a
1893         NullMediaPlayerPrivate object. Here we should not use static_cast,
1894         instead we should use HTMLMediaElement::percentLoaded() to
1895         avoid layering violation as we don't have the buffering bug which
1896         the deleted comment refers to.
1897
1898         Internally reviewed by Max Feil.
1899
1900         Test case: media/video-size.html
1901
1902         * platform/blackberry/RenderThemeBlackBerry.cpp:
1903         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
1904
1905 2012-09-19  Rick Byers  <rbyers@chromium.org>
1906
1907         Do touch adjustment on GestureTapDown
1908         https://bugs.webkit.org/show_bug.cgi?id=96677
1909
1910         Reviewed by Antonio Gomes.
1911
1912         Do touch adjustment on GestureTapDown exactly as for GestureTap today.
1913
1914         Test: touchadjustment/touch-links-active.html
1915
1916         * page/EventHandler.cpp:
1917         (WebCore::EventHandler::handleGestureEvent):
1918         (WebCore::EventHandler::adjustGesturePosition):
1919
1920 2012-09-19  Vsevolod Vlasov  <vsevik@chromium.org>
1921
1922         Unreviewed another follow up Apple Win build fix for r128992.
1923
1924         * inspector/InspectorAllInOne.cpp:
1925
1926 2012-09-19  Carlos Garcia Campos  <cgarcia@igalia.com>
1927
1928         [GTK] REGRESSION(r128907): it broke several WebKit2 API tests
1929         https://bugs.webkit.org/show_bug.cgi?id=97092
1930
1931         Reviewed by Martin Robinson.
1932
1933         Calling resizeLater() from the constructor of
1934         RedirectedXCompositeWindow can cause the callback to be called
1935         later by the main loop after the RedirectedXCompositeWindow object
1936         has been destroyed. Instead of calling resizeLater(), initialize
1937         the usable size to the given initial size.
1938
1939         * platform/gtk/RedirectedXCompositeWindow.cpp:
1940         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
1941
1942 2012-09-19  Vsevolod Vlasov  <vsevik@chromium.org>
1943
1944         Unreviewed follow up Apple Win build fix for r128992.
1945
1946         * inspector/InspectorAllInOne.cpp:
1947
1948 2012-09-19  Andrey Adaikin  <aandrey@chromium.org>
1949
1950         Web Inspector: [WebGL] -> [Canvas] Rename WebGLAgent to CanvasAgent
1951         https://bugs.webkit.org/show_bug.cgi?id=96917
1952
1953         Reviewed by Vsevolod Vlasov.
1954
1955         Rename WebGLAgent* and WebGLInstrumentation* files to Canvas* as we will support both 2D and 3D/WebGL canvas instrumentation.
1956
1957         * CMakeLists.txt:
1958         * DerivedSources.make:
1959         * DerivedSources.pri:
1960         * GNUmakefile.am:
1961         * GNUmakefile.list.am:
1962         * Target.pri:
1963         * WebCore.gyp/WebCore.gyp:
1964         * WebCore.gypi:
1965         * WebCore.vcproj/WebCore.vcproj:
1966         * WebCore.xcodeproj/project.pbxproj:
1967         * bindings/js/JSHTMLCanvasElementCustom.cpp:
1968         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
1969         * inspector/CodeGeneratorInspector.py:
1970         * inspector/InjectedScriptCanvasModule.cpp: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModule.cpp.
1971         (WebCore):
1972         (WebCore::InjectedScriptCanvasModule::InjectedScriptCanvasModule):
1973         (WebCore::InjectedScriptCanvasModule::moduleForState):
1974         (WebCore::InjectedScriptCanvasModule::source):
1975         (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
1976         (WebCore::InjectedScriptCanvasModule::captureFrame):
1977         (WebCore::InjectedScriptCanvasModule::dropTraceLog):
1978         (WebCore::InjectedScriptCanvasModule::traceLog):
1979         (WebCore::InjectedScriptCanvasModule::replayTraceLog):
1980         * inspector/InjectedScriptCanvasModule.h: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModule.h.
1981         (WebCore):
1982         (InjectedScriptCanvasModule):
1983         * inspector/InjectedScriptCanvasModuleSource.js: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModuleSource.js.
1984         (.):
1985         * inspector/Inspector.json:
1986         * inspector/InspectorAllInOne.cpp:
1987         * inspector/InspectorCanvasAgent.cpp: Renamed from Source/WebCore/inspector/InspectorWebGLAgent.cpp.
1988         (WebCore):
1989         (CanvasAgentState):
1990         (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
1991         (WebCore::InspectorCanvasAgent::~InspectorCanvasAgent):
1992         (WebCore::InspectorCanvasAgent::setFrontend):
1993         (WebCore::InspectorCanvasAgent::clearFrontend):
1994         (WebCore::InspectorCanvasAgent::restore):
1995         (WebCore::InspectorCanvasAgent::enable):
1996         (WebCore::InspectorCanvasAgent::disable):
1997         (WebCore::InspectorCanvasAgent::dropTraceLog):
1998         (WebCore::InspectorCanvasAgent::captureFrame):
1999         (WebCore::InspectorCanvasAgent::getTraceLog):
2000         (WebCore::InspectorCanvasAgent::replayTraceLog):
2001         (WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
2002         (WebCore::InspectorCanvasAgent::injectedScriptCanvasModuleForTraceLogId):
2003         * inspector/InspectorCanvasAgent.h: Renamed from Source/WebCore/inspector/InspectorWebGLAgent.h.
2004         (WebCore):
2005         (InspectorCanvasAgent):
2006         (WebCore::InspectorCanvasAgent::create):
2007         (WebCore::InspectorCanvasAgent::enabled):
2008         * inspector/InspectorCanvasInstrumentation.h: Renamed from Source/WebCore/inspector/InspectorWebGLInstrumentation.h.
2009         (WebCore):
2010         (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
2011         * inspector/InspectorController.cpp:
2012         (WebCore::InspectorController::InspectorController):
2013         * inspector/InstrumentingAgents.h:
2014         (WebCore):
2015         (WebCore::InstrumentingAgents::InstrumentingAgents):
2016         (WebCore::InstrumentingAgents::inspectorCanvasAgent):
2017         (WebCore::InstrumentingAgents::setInspectorCanvasAgent):
2018         (InstrumentingAgents):
2019         * inspector/compile-front-end.py:
2020         * inspector/front-end/CanvasProfileView.js: Renamed from Source/WebCore/inspector/front-end/WebGLProfileView.js.
2021         (WebInspector.CanvasProfileView):
2022         (WebInspector.CanvasProfileView.prototype.dispose):
2023         (WebInspector.CanvasProfileView.prototype.get statusBarItems):
2024         (WebInspector.CanvasProfileView.prototype.get profile):
2025         (WebInspector.CanvasProfileView.prototype.wasShown):
2026         (WebInspector.CanvasProfileView.prototype.willHide):
2027         (WebInspector.CanvasProfileView.prototype._showTraceLog):
2028         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick.didReplayTraceLog):
2029         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
2030         (WebInspector.CanvasProfileType):
2031         (WebInspector.CanvasProfileType.prototype.get buttonTooltip):
2032         (WebInspector.CanvasProfileType.prototype.buttonClicked.didStartCapturingFrame):
2033         (WebInspector.CanvasProfileType.prototype.buttonClicked):
2034         (WebInspector.CanvasProfileType.prototype.get treeItemTitle):
2035         (WebInspector.CanvasProfileType.prototype.get description):
2036         (WebInspector.CanvasProfileType.prototype.reset):
2037         (WebInspector.CanvasProfileType.prototype.createTemporaryProfile):
2038         (WebInspector.CanvasProfileType.prototype.createProfile):
2039         (WebInspector.CanvasProfileHeader):
2040         (WebInspector.CanvasProfileHeader.prototype.traceLogId):
2041         (WebInspector.CanvasProfileHeader.prototype.createSidebarTreeElement):
2042         (WebInspector.CanvasProfileHeader.prototype.createView):
2043         * inspector/front-end/ProfilesPanel.js:
2044         (WebInspector.ProfilesPanel):
2045         * inspector/front-end/Settings.js:
2046         (WebInspector.ExperimentsSettings):
2047         * inspector/front-end/WebKit.qrc:
2048         * inspector/front-end/canvasProfiler.css: Renamed from Source/WebCore/inspector/front-end/webGLProfiler.css.
2049         (.canvas-profile-view):
2050         (.canvas-trace-log):
2051         (.canvas-trace-log div):
2052         (#canvas-replay-image-container):
2053         (#canvas-replay-image):
2054
2055 2012-09-19  Carlos Garcia Campos  <cgarcia@igalia.com>
2056
2057         [GTK] Add API to get/set the security policy of a given URI scheme to WebKit2 GTK+
2058         https://bugs.webkit.org/show_bug.cgi?id=96497
2059
2060         Reviewed by Martin Robinson.
2061
2062         * WebCore.exp.in: Add new exported symbols.
2063
2064 2012-09-19  Patrick Gansterer  <paroga@webkit.org>
2065
2066         [WIN] Use BString in favour of BSTR to improve memory management
2067         https://bugs.webkit.org/show_bug.cgi?id=93128
2068
2069         Reviewed by Anders Carlsson.
2070
2071         BString automatically calls SysFreeString() in its destructor which helps
2072         avoiding memory leaks. So it should be used instead of BSTR directly.
2073         Add operator& to BString to allow its usage for out parameters too (like COMPtr).
2074         This fixes already a few memory leaks in the existing code.
2075
2076         * platform/win/BString.cpp:
2077         (WebCore::BString::~BString):
2078         (WebCore::BString::adoptBSTR):
2079         (WebCore::BString::clear):
2080         (WebCore):
2081         * platform/win/BString.h:
2082         (BString):
2083         (WebCore::BString::operator&):
2084
2085 2012-09-19  Simon Hausmann  <simon.hausmann@digia.com>
2086
2087         [Qt] Link failure with bfd linker on --minimal build
2088         https://bugs.webkit.org/show_bug.cgi?id=97075
2089
2090         Reviewed by Tor Arne Vestbø.
2091
2092         Fix two dependency errors triggered by --minimal:
2093
2094         - GStreamerVersioning.cpp uses functions from libgstvideo (gst_video_format_parse_caps), so we need to pull
2095         that module not only when video is enabled by generally when using gstreamer.
2096         - GraphicsSurfaceGLX depends on Xlib (XOpenDisplay, etc.), so we need to do CONFIG += x11 to get that and not
2097         implicitly rely on x11 netscape plugins being enabled.
2098
2099         * WebCore.pri:
2100
2101 2012-09-19  Tommy Widenflycht  <tommyw@google.com>
2102
2103         MediaStream API: Rename the RTCIceServer uri parameter to url.
2104         https://bugs.webkit.org/show_bug.cgi?id=97086
2105
2106         Reviewed by Hajime Morita.
2107
2108         Either the standard has changed or I can't read.
2109         http://dev.w3.org/2011/webrtc/editor/webrtc.html#dictionary-rtciceserver-members
2110
2111         Existing tests changed to cover this patch.
2112
2113         * Modules/mediastream/RTCPeerConnection.cpp:
2114         (WebCore::RTCPeerConnection::parseConfiguration):
2115
2116 2012-09-19  Sheriff Bot  <webkit.review.bot@gmail.com>
2117
2118         Unreviewed, rolling out r128976.
2119         http://trac.webkit.org/changeset/128976
2120         https://bugs.webkit.org/show_bug.cgi?id=97083
2121
2122         Breaks compilation on QT, Apple WIn (Requested by vsevik on
2123         #webkit).
2124
2125         * CMakeLists.txt:
2126         * DerivedSources.make:
2127         * DerivedSources.pri:
2128         * GNUmakefile.am:
2129         * GNUmakefile.list.am:
2130         * Target.pri:
2131         * WebCore.gyp/WebCore.gyp:
2132         * WebCore.gypi:
2133         * WebCore.vcproj/WebCore.vcproj:
2134         * WebCore.xcodeproj/project.pbxproj:
2135         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2136         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2137         * inspector/CodeGeneratorInspector.py:
2138         * inspector/InjectedScriptWebGLModule.cpp: Renamed from Source/WebCore/inspector/InjectedScriptCanvasModule.cpp.
2139         (WebCore):
2140         (WebCore::InjectedScriptWebGLModule::InjectedScriptWebGLModule):
2141         (WebCore::InjectedScriptWebGLModule::moduleForState):
2142         (WebCore::InjectedScriptWebGLModule::source):
2143         (WebCore::InjectedScriptWebGLModule::wrapWebGLContext):
2144         (WebCore::InjectedScriptWebGLModule::captureFrame):
2145         (WebCore::InjectedScriptWebGLModule::dropTraceLog):
2146         (WebCore::InjectedScriptWebGLModule::traceLog):
2147         (WebCore::InjectedScriptWebGLModule::replayTraceLog):
2148         * inspector/InjectedScriptWebGLModule.h: Renamed from Source/WebCore/inspector/InjectedScriptCanvasModule.h.
2149         (WebCore):
2150         (InjectedScriptWebGLModule):
2151         * inspector/InjectedScriptWebGLModuleSource.js: Renamed from Source/WebCore/inspector/InjectedScriptCanvasModuleSource.js.
2152         (.):
2153         * inspector/Inspector.json:
2154         * inspector/InspectorAllInOne.cpp:
2155         * inspector/InspectorController.cpp:
2156         (WebCore::InspectorController::InspectorController):
2157         * inspector/InspectorWebGLAgent.cpp: Renamed from Source/WebCore/inspector/InspectorCanvasAgent.cpp.
2158         (WebCore):
2159         (WebGLAgentState):
2160         (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
2161         (WebCore::InspectorWebGLAgent::~InspectorWebGLAgent):
2162         (WebCore::InspectorWebGLAgent::setFrontend):
2163         (WebCore::InspectorWebGLAgent::clearFrontend):
2164         (WebCore::InspectorWebGLAgent::restore):
2165         (WebCore::InspectorWebGLAgent::enable):
2166         (WebCore::InspectorWebGLAgent::disable):
2167         (WebCore::InspectorWebGLAgent::dropTraceLog):
2168         (WebCore::InspectorWebGLAgent::captureFrame):
2169         (WebCore::InspectorWebGLAgent::getTraceLog):
2170         (WebCore::InspectorWebGLAgent::replayTraceLog):
2171         (WebCore::InspectorWebGLAgent::wrapWebGLRenderingContextForInstrumentation):
2172         (WebCore::InspectorWebGLAgent::injectedScriptWebGLModuleForTraceLogId):
2173         * inspector/InspectorWebGLAgent.h: Renamed from Source/WebCore/inspector/InspectorCanvasAgent.h.
2174         (WebCore):
2175         (InspectorWebGLAgent):
2176         (WebCore::InspectorWebGLAgent::create):
2177         (WebCore::InspectorWebGLAgent::enabled):
2178         * inspector/InspectorWebGLInstrumentation.h: Renamed from Source/WebCore/inspector/InspectorCanvasInstrumentation.h.
2179         (WebCore):
2180         (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
2181         * inspector/InstrumentingAgents.h:
2182         (WebCore):
2183         (WebCore::InstrumentingAgents::InstrumentingAgents):
2184         (InstrumentingAgents):
2185         (WebCore::InstrumentingAgents::inspectorWebGLAgent):
2186         (WebCore::InstrumentingAgents::setInspectorWebGLAgent):
2187         * inspector/compile-front-end.py:
2188         * inspector/front-end/ProfilesPanel.js:
2189         (WebInspector.ProfilesPanel):
2190         * inspector/front-end/Settings.js:
2191         (WebInspector.ExperimentsSettings):
2192         * inspector/front-end/WebGLProfileView.js: Renamed from Source/WebCore/inspector/front-end/CanvasProfileView.js.
2193         (WebInspector.WebGLProfileView):
2194         (WebInspector.WebGLProfileView.prototype.dispose):
2195         (WebInspector.WebGLProfileView.prototype.get statusBarItems):
2196         (WebInspector.WebGLProfileView.prototype.get profile):
2197         (WebInspector.WebGLProfileView.prototype.wasShown):
2198         (WebInspector.WebGLProfileView.prototype.willHide):
2199         (WebInspector.WebGLProfileView.prototype._showTraceLog):
2200         (WebInspector.WebGLProfileView.prototype._onTraceLogItemClick.didReplayTraceLog):
2201         (WebInspector.WebGLProfileView.prototype._onTraceLogItemClick):
2202         (WebInspector.WebGLProfileType):
2203         (WebInspector.WebGLProfileType.prototype.get buttonTooltip):
2204         (WebInspector.WebGLProfileType.prototype.buttonClicked.didStartCapturingFrame):
2205         (WebInspector.WebGLProfileType.prototype.buttonClicked):
2206         (WebInspector.WebGLProfileType.prototype.get treeItemTitle):
2207         (WebInspector.WebGLProfileType.prototype.get description):
2208         (WebInspector.WebGLProfileType.prototype.reset):
2209         (WebInspector.WebGLProfileType.prototype.createTemporaryProfile):
2210         (WebInspector.WebGLProfileType.prototype.createProfile):
2211         (WebInspector.WebGLProfileHeader):
2212         (WebInspector.WebGLProfileHeader.prototype.traceLogId):
2213         (WebInspector.WebGLProfileHeader.prototype.createSidebarTreeElement):
2214         (WebInspector.WebGLProfileHeader.prototype.createView):
2215         * inspector/front-end/WebKit.qrc:
2216         * inspector/front-end/webGLProfiler.css: Renamed from Source/WebCore/inspector/front-end/canvasProfiler.css.
2217         (.webgl-profile-view):
2218         (.webgl-trace-log):
2219         (.webgl-trace-log div):
2220         (#webgl-replay-image-container):
2221         (#webgl-replay-image):
2222
2223 2012-09-19  Simon Hausmann  <simon.hausmann@digia.com>
2224
2225         [Qt][Win] Fix rendering of flash content when scrolling
2226         https://bugs.webkit.org/show_bug.cgi?id=92905
2227
2228         Reviewed by Jocelyn Turcotte.
2229
2230         Fix rendering offset similar to r121441.
2231
2232         * plugins/win/PluginViewWin.cpp:
2233         (WebCore::PluginView::paint):
2234         (WebCore::PluginView::setNPWindowRect):
2235
2236 2012-09-19  Andrey Adaikin  <aandrey@chromium.org>
2237
2238         Web Inspector: [WebGL] -> [Canvas] Rename WebGLAgent to CanvasAgent
2239         https://bugs.webkit.org/show_bug.cgi?id=96917
2240
2241         Reviewed by Vsevolod Vlasov.
2242
2243         Rename WebGLAgent* and WebGLInstrumentation* files to Canvas* as we will support both 2D and 3D/WebGL canvas instrumentation.
2244
2245         * CMakeLists.txt:
2246         * DerivedSources.make:
2247         * DerivedSources.pri:
2248         * GNUmakefile.am:
2249         * GNUmakefile.list.am:
2250         * Target.pri:
2251         * WebCore.gyp/WebCore.gyp:
2252         * WebCore.gypi:
2253         * WebCore.vcproj/WebCore.vcproj:
2254         * WebCore.xcodeproj/project.pbxproj:
2255         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2256         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2257         * inspector/CodeGeneratorInspector.py:
2258         * inspector/InjectedScriptCanvasModule.cpp: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModule.cpp.
2259         (WebCore):
2260         (WebCore::InjectedScriptCanvasModule::InjectedScriptCanvasModule):
2261         (WebCore::InjectedScriptCanvasModule::moduleForState):
2262         (WebCore::InjectedScriptCanvasModule::source):
2263         (WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
2264         (WebCore::InjectedScriptCanvasModule::captureFrame):
2265         (WebCore::InjectedScriptCanvasModule::dropTraceLog):
2266         (WebCore::InjectedScriptCanvasModule::traceLog):
2267         (WebCore::InjectedScriptCanvasModule::replayTraceLog):
2268         * inspector/InjectedScriptCanvasModule.h: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModule.h.
2269         (WebCore):
2270         (InjectedScriptCanvasModule):
2271         * inspector/InjectedScriptCanvasModuleSource.js: Renamed from Source/WebCore/inspector/InjectedScriptWebGLModuleSource.js.
2272         (.):
2273         * inspector/Inspector.json:
2274         * inspector/InspectorAllInOne.cpp:
2275         * inspector/InspectorCanvasAgent.cpp: Renamed from Source/WebCore/inspector/InspectorWebGLAgent.cpp.
2276         (WebCore):
2277         (CanvasAgentState):
2278         (WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
2279         (WebCore::InspectorCanvasAgent::~InspectorCanvasAgent):
2280         (WebCore::InspectorCanvasAgent::setFrontend):
2281         (WebCore::InspectorCanvasAgent::clearFrontend):
2282         (WebCore::InspectorCanvasAgent::restore):
2283         (WebCore::InspectorCanvasAgent::enable):
2284         (WebCore::InspectorCanvasAgent::disable):
2285         (WebCore::InspectorCanvasAgent::dropTraceLog):
2286         (WebCore::InspectorCanvasAgent::captureFrame):
2287         (WebCore::InspectorCanvasAgent::getTraceLog):
2288         (WebCore::InspectorCanvasAgent::replayTraceLog):
2289         (WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
2290         (WebCore::InspectorCanvasAgent::injectedScriptCanvasModuleForTraceLogId):
2291         * inspector/InspectorCanvasAgent.h: Renamed from Source/WebCore/inspector/InspectorWebGLAgent.h.
2292         (WebCore):
2293         (InspectorCanvasAgent):
2294         (WebCore::InspectorCanvasAgent::create):
2295         (WebCore::InspectorCanvasAgent::enabled):
2296         * inspector/InspectorCanvasInstrumentation.h: Renamed from Source/WebCore/inspector/InspectorWebGLInstrumentation.h.
2297         (WebCore):
2298         (WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
2299         * inspector/InspectorController.cpp:
2300         (WebCore::InspectorController::InspectorController):
2301         * inspector/InstrumentingAgents.h:
2302         (WebCore):
2303         (WebCore::InstrumentingAgents::InstrumentingAgents):
2304         (WebCore::InstrumentingAgents::inspectorCanvasAgent):
2305         (WebCore::InstrumentingAgents::setInspectorCanvasAgent):
2306         (InstrumentingAgents):
2307         * inspector/compile-front-end.py:
2308         * inspector/front-end/CanvasProfileView.js: Renamed from Source/WebCore/inspector/front-end/WebGLProfileView.js.
2309         (WebInspector.CanvasProfileView):
2310         (WebInspector.CanvasProfileView.prototype.dispose):
2311         (WebInspector.CanvasProfileView.prototype.get statusBarItems):
2312         (WebInspector.CanvasProfileView.prototype.get profile):
2313         (WebInspector.CanvasProfileView.prototype.wasShown):
2314         (WebInspector.CanvasProfileView.prototype.willHide):
2315         (WebInspector.CanvasProfileView.prototype._showTraceLog):
2316         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick.didReplayTraceLog):
2317         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
2318         (WebInspector.CanvasProfileType):
2319         (WebInspector.CanvasProfileType.prototype.get buttonTooltip):
2320         (WebInspector.CanvasProfileType.prototype.buttonClicked.didStartCapturingFrame):
2321         (WebInspector.CanvasProfileType.prototype.buttonClicked):
2322         (WebInspector.CanvasProfileType.prototype.get treeItemTitle):
2323         (WebInspector.CanvasProfileType.prototype.get description):
2324         (WebInspector.CanvasProfileType.prototype.reset):
2325         (WebInspector.CanvasProfileType.prototype.createTemporaryProfile):
2326         (WebInspector.CanvasProfileType.prototype.createProfile):
2327         (WebInspector.CanvasProfileHeader):
2328         (WebInspector.CanvasProfileHeader.prototype.traceLogId):
2329         (WebInspector.CanvasProfileHeader.prototype.createSidebarTreeElement):
2330         (WebInspector.CanvasProfileHeader.prototype.createView):
2331         * inspector/front-end/ProfilesPanel.js:
2332         (WebInspector.ProfilesPanel):
2333         * inspector/front-end/Settings.js:
2334         (WebInspector.ExperimentsSettings):
2335         * inspector/front-end/WebKit.qrc:
2336         * inspector/front-end/canvasProfiler.css: Renamed from Source/WebCore/inspector/front-end/webGLProfiler.css.
2337         (.canvas-profile-view):
2338         (.canvas-trace-log):
2339         (.canvas-trace-log div):
2340         (#canvas-replay-image-container):
2341         (#canvas-replay-image):
2342
2343 2012-09-18  Kenichi Ishibashi  <bashi@chromium.org>
2344
2345         [Chromium] SkiaGetGlyphWidthAndExtents() should invert y-axis
2346         https://bugs.webkit.org/show_bug.cgi?id=97067
2347
2348         Reviewed by Yuta Kitamura.
2349
2350         Invert skBounds.fTop and skBounds.height(). Don't call hb_font_set_ppem().
2351
2352         No new tests. Arabic shadda (U+0651) should be placed more higher when Arabic lam (U+0644) follows it.
2353         Tests under svg/W3C-I18N contain such sequences so these tests cover this change.
2354
2355         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
2356         (WebCore::SkiaGetGlyphWidthAndExtents):
2357         (WebCore::HarfBuzzNGFace::createFont):
2358
2359 2012-09-18  Kenichi Ishibashi  <bashi@chromium.org>
2360
2361         [Chromium] Don't treat tab as spaces for word-end in HarfBuzzShaper
2362         https://bugs.webkit.org/show_bug.cgi?id=97068
2363
2364         Reviewed by Yuta Kitamura.
2365
2366         No new tests. fast/text/wide-zero-width-space.html should cover this change.
2367
2368         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
2369         (WebCore::normalizeCharacters): Don't treat tab as space.
2370
2371 2012-09-18  Eric Carlson  <eric.carlson@apple.com>
2372
2373         Check settings before registering AVFoundation media engine.
2374         https://bugs.webkit.org/show_bug.cgi?id=97048
2375         <rdar://problem/12313594>
2376
2377         Reviewed by Dan Bernstein.
2378
2379         Fix the bug introduced in r122676.
2380
2381         * platform/graphics/MediaPlayer.cpp:
2382         (WebCore::installedMediaEngines): Uncomment the call to check AVFoundation settings.
2383
2384 2012-09-18  Sailesh Agrawal  <sail@chromium.org>
2385
2386         Chromium: Scrollbar with tickmarks doesn't respond to clicks
2387         https://bugs.webkit.org/show_bug.cgi?id=96049
2388
2389         Reviewed by Beth Dakin.
2390
2391         Currently when a scrollbar has tickmarks its forced to be visible by setting its alpha to 1.0. The alpha value is reset to its old value at the end of the drawing routine. This approach doesn't work with the hit testing code which relies on the scrollbar's alpha value
2392
2393         Unfortunately there doesn't seem to be anyway to force a scrollbar to be visible. The closest API is -[NSScrollerImpPair lockOverlayScrollerState:]. Unfortunately this locks both the horizontal and vertical scrollbar. It also doesn't expand the knob width.
2394
2395         My fix simply adds a new alphaLocked attribute to the scrollbar. If this attribute is set to true then hit testing will return true.
2396
2397         Test: fast/scrolling/scrollbar-tickmarks-hittest.html
2398
2399         * WebCore.exp.in:
2400         * WebCore.order:
2401         * page/Settings.cpp:
2402         (WebCore):
2403         (WebCore::Settings::setUsesOverlayScrollbars): Sets the usesOverlayScrollbars flag.
2404         (WebCore::Settings::usesOverlayScrollbars): Gets the usesOverlayScrollbars flag.
2405         * page/Settings.h:
2406         (Settings):
2407         * platform/Scrollbar.cpp:
2408         (WebCore::Scrollbar::Scrollbar):
2409         * platform/Scrollbar.h:
2410         (WebCore::Scrollbar::isAlphaLocked):
2411         (WebCore::Scrollbar::setIsAlphaLocked):
2412         (Scrollbar):
2413         * platform/ScrollbarThemeClient.h:
2414         (ScrollbarThemeClient):
2415         * platform/chromium/ScrollbarThemeChromiumMac.mm:
2416         (WebCore::ScrollbarThemeChromiumMac::paint): Updated to set and unset the alphaLocked attribute.
2417         * platform/chromium/support/WebScrollbarImpl.cpp:
2418         (WebKit::WebScrollbarImpl::isAlphaLocked):
2419         (WebKit):
2420         (WebKit::WebScrollbarImpl::setIsAlphaLocked):
2421         * platform/chromium/support/WebScrollbarImpl.h:
2422         (WebScrollbarImpl):
2423         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2424         (WebCore::CCScrollbarLayerImpl::CCScrollbarLayerImpl):
2425         (WebCore::CCScrollbarLayerImpl::CCScrollbar::isAlphaLocked):
2426         (WebCore):
2427         (WebCore::CCScrollbarLayerImpl::CCScrollbar::setIsAlphaLocked):
2428         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2429         (CCScrollbar):
2430         (CCScrollbarLayerImpl):
2431         * platform/mac/NSScrollerImpDetails.mm:
2432         (WebCore::recommendedScrollerStyle): Check the usesOverlayScrollbars setting to see if overlay scrollbars should be forced on.
2433         * platform/mac/ScrollAnimatorMac.mm:
2434         (WebCore::ScrollAnimatorMac::shouldScrollbarParticipateInHitTesting): Updated to check the alphaLocked attribute.
2435         * testing/InternalSettings.cpp:
2436         (WebCore::InternalSettings::reset): Resets the usesOverlayScrollbars setting.
2437         (WebCore::InternalSettings::setUsesOverlayScrollbars): Sets the usesOverlayScrollbars setting.
2438         (WebCore):
2439         * testing/InternalSettings.h:
2440         (InternalSettings):
2441         * testing/InternalSettings.idl: Add a new setUsesOverlayScrollbars function.
2442
2443 2012-09-18  Kentaro Hara  <haraken@chromium.org>
2444
2445         [V8] Notification.requestPermission(function() {alert();}) crashes
2446         https://bugs.webkit.org/show_bug.cgi?id=94462
2447
2448         Reviewed by Adam Barth.
2449
2450         Since Notification.requestPermission() is a static method,
2451         we need to use getExecutionContext() instead of retrieving a context
2452         from a DOM object.
2453
2454         Test: http/tests/notifications/notification-request-permission.html
2455
2456         * bindings/v8/custom/V8NotificationCustom.cpp:
2457         (WebCore::V8Notification::requestPermissionCallback):
2458
2459 2012-09-18  Shinya Kawanaka  <shinyak@chromium.org>
2460
2461         [Refactoring] ContentDistributor::distributeSelectionsTo should not change ContentDistribution pool.
2462         https://bugs.webkit.org/show_bug.cgi?id=96993
2463
2464         Reviewed by Dimitri Glazkov.
2465
2466         Since we would like to reuse ContentDistribution pool, it should not be updated in
2467         ContentDistributor::distributeSelectionsTo. Instead, we should have Vector<bool> to indicate an element is
2468         distributed or not.
2469
2470         No new tests, simple refactoring.
2471
2472         * html/shadow/ContentDistributor.cpp:
2473         (WebCore::ContentDistributor::distribute):
2474         (WebCore::ContentDistributor::distributeSelectionsTo):
2475         * html/shadow/ContentDistributor.h:
2476         (ContentDistributor):
2477
2478 2012-09-18  Byungwoo Lee  <bw80.lee@samsung.com>
2479
2480         Title string should be changed when document.title is set to ''.
2481         https://bugs.webkit.org/show_bug.cgi?id=96793
2482
2483         Reviewed by Kenneth Rohde Christiansen.
2484
2485         DocumentLoader::setTitle() function returns without anything (changing
2486         m_pageTitle and calling FrameLoaderClient::setTitle()) when new title
2487         string is empty.
2488         So, when document.title is set to '', title string of a browser cannot
2489         be changed.
2490         For applying the change of document.title properly, empty string check
2491         should be removed.
2492
2493         Test: fast/dom/title-text-property-assigning-empty-string.html
2494
2495         * loader/DocumentLoader.cpp:
2496         (WebCore::DocumentLoader::setTitle):
2497
2498 2012-09-18  Simon Fraser  <simon.fraser@apple.com>
2499
2500         fast/forms/search-event-delay.html is asserting in markAllMisspellingsAndBadGrammarInRanges()
2501         https://bugs.webkit.org/show_bug.cgi?id=82761
2502
2503         Reviewed by Ryosuke Niwa.
2504
2505         Speculative fix for this assertion: have InternalSettings save
2506         and restore the value of the "unifiedTextCheckerEnabled" setting
2507         between tests, so that tests change the value of this setting don't
2508         affect later tests.
2509
2510         * testing/InternalSettings.cpp:
2511         (WebCore::InternalSettings::Backup::Backup):
2512         (WebCore::InternalSettings::Backup::restoreTo):
2513         * testing/InternalSettings.h:
2514         (Backup):
2515
2516 2012-09-18  John Mellor  <johnme@chromium.org>
2517
2518         Text Autosizing: Ignore constrained heights in certain circumstances.
2519         https://bugs.webkit.org/show_bug.cgi?id=96848
2520
2521         Reviewed by Julien Chaffraix.
2522
2523         Ignore constrained heights on html and body elements, as some sites
2524         (e.g. wikipedia) set height:100% on these, without intending to
2525         constrain the height of descendants.
2526
2527         Also ignore constrained heights on ancestors of floats and out-of-flow
2528         positioned elements with no height set, since the height of these is
2529         determined independently from their ancestors.
2530
2531         Test: fast/text-autosizing/constrained-height-body.html
2532               fast/text-autosizing/constrained-out-of-flow.html
2533               fast/text-autosizing/constrained-then-float-ancestors.html
2534               fast/text-autosizing/constrained-then-position-absolute-ancestors.html
2535               fast/text-autosizing/constrained-then-position-fixed-ancestors.html
2536
2537         * rendering/TextAutosizer.cpp:
2538         (WebCore::contentHeightIsConstrained):
2539
2540             Adjusted constrainedness algorithm.
2541
2542 2012-09-18  Tommy Widenflycht  <tommyw@google.com>
2543
2544         MediaStream API: Create a flag to enable PeerConnection00
2545         https://bugs.webkit.org/show_bug.cgi?id=96989
2546
2547         Reviewed by Adam Barth.
2548
2549         Adding the functionality to separately enable/disable PeerConnection00.
2550         For now it is enabled by default.
2551
2552         Not testable, nor likely to cause issues.
2553
2554         * bindings/generic/RuntimeEnabledFeatures.cpp:
2555         (WebCore):
2556         * bindings/generic/RuntimeEnabledFeatures.h:
2557         (WebCore::RuntimeEnabledFeatures::deprecatedPeerConnectionEnabled):
2558         (WebCore::RuntimeEnabledFeatures::setDeprecatedPeerConnectionEnabled):
2559         (WebCore::RuntimeEnabledFeatures::webkitPeerConnection00Enabled):
2560         (RuntimeEnabledFeatures):
2561
2562 2012-09-18  Bo Liu  <boliu@chromium.org>
2563
2564         Revert 128780, 128676, 128645
2565         https://bugs.webkit.org/show_bug.cgi?id=97022
2566
2567         Reviewed by Adam Barth.
2568
2569         I made these revisions to add in-place reload behavior to ImagesEnabled setting.
2570         Reverting this for now due to them causing performance regression in
2571         chromium, possibly caused by increased calls to
2572         PermissionClient::imageAllowed.
2573
2574         * WebCore.exp.in:
2575         * loader/FrameLoader.cpp:
2576         (WebCore::FrameLoader::didBeginDocument):
2577         * loader/SubresourceLoader.cpp:
2578         (WebCore::SubresourceLoader::willSendRequest):
2579         * loader/cache/CachedImage.cpp:
2580         (WebCore::CachedImage::load):
2581         * loader/cache/CachedImage.h:
2582         (WebCore::CachedImage::stillNeedsLoad):
2583         * loader/cache/CachedResource.cpp:
2584         (WebCore::CachedResource::didAddClient):
2585         * loader/cache/CachedResource.h:
2586         * loader/cache/CachedResourceLoader.cpp:
2587         (WebCore::CachedResourceLoader::CachedResourceLoader):
2588         (WebCore::CachedResourceLoader::requestImage):
2589         (WebCore::CachedResourceLoader::canRequest):
2590         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
2591         (WebCore::CachedResourceLoader::setAutoLoadImages):
2592         * loader/cache/CachedResourceLoader.h:
2593         (CachedResourceLoader):
2594         * page/Settings.cpp:
2595         (WebCore::setLoadsImagesAutomaticallyInAllFrames):
2596         (WebCore::Settings::Settings):
2597         (WebCore::Settings::setLoadsImagesAutomatically):
2598         (WebCore::Settings::loadsImagesAutomaticallyTimerFired):
2599         (WebCore::Settings::setImagesEnabled):
2600         * page/Settings.h:
2601         (Settings):
2602         * testing/InternalSettings.cpp:
2603         (WebCore::InternalSettings::Backup::Backup):
2604         (WebCore::InternalSettings::Backup::restoreTo):
2605         (WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
2606         * testing/InternalSettings.h:
2607         (Backup):
2608         (InternalSettings):
2609         * testing/InternalSettings.idl:
2610
2611 2012-09-18  John J. Barton  <johnjbarton@chromium.org>
2612
2613         Web Inspector: Set focus on the ExtensionPanel's iframe when it is selected
2614         https://bugs.webkit.org/show_bug.cgi?id=96148
2615
2616         Reviewed by Vsevolod Vlasov.
2617
2618         ExtensionView ctor calls setDefaultFocusedElement with its iframe,
2619         ExtensionPanel ctor calls setDefaultFocusedElement with the extensionView
2620         and ExtensionPanel's setDefaultFocusedElement calls its grandparent impl
2621
2622         Tests: Added hasFocus test to extensions/extension-panel.html
2623
2624         * inspector/front-end/ExtensionPanel.js:
2625         (WebInspector.ExtensionPanel):
2626         (WebInspector.ExtensionPanel.prototype.defaultFocusedElement):
2627         * inspector/front-end/ExtensionView.js:
2628         (WebInspector.ExtensionView):
2629
2630 2012-09-18  Martin Robinson  <mrobinson@igalia.com>
2631
2632         [GTK] [WebKit2] Use XComposite window for accelerated compositing
2633         https://bugs.webkit.org/show_bug.cgi?id=94417
2634
2635         Reviewed by Carlos Garcia Campos.
2636
2637         Instead of rendering directly to the widget's native window, render to an
2638         offscreen window redirected to a Pixmap with XComposite.
2639
2640         No new tests. This will be covered by the existing accelerated compositing tests,
2641         which should now give correct pixel results.
2642
2643         * platform/gtk/RedirectedXCompositeWindow.cpp:
2644         (WebCore::RedirectedXCompositeWindow::resize): Add a call to XFlush which ensures
2645         that pending X11 operations complete.
2646         * platform/gtk/RedirectedXCompositeWindow.h:
2647         (WebCore::RedirectedXCompositeWindow::windowId): Added this accessor.
2648
2649 2012-09-18  Julien Chaffraix  <jchaffraix@webkit.org>
2650
2651         Tables without any descendant and auto logical width should have a 0px logical width
2652         https://bugs.webkit.org/show_bug.cgi?id=95521
2653
2654         Reviewed by Abhishek Arya.
2655
2656         The code would wrongly add the border-spacing in the row direction to the table's logical
2657         width even if we didn't have a column. The new behavior matches FireFox and Opera. IE
2658         matches our old behavior for inline tables but our new behavior for normal tables which
2659         is a bug on their side.
2660
2661         Tests: fast/table/empty-table-should-take-no-space.html
2662                fast/table/fixed-table-layout/empty-table-should-take-no-space-fixed-layout.html
2663
2664         * rendering/RenderTable.h:
2665         (WebCore::RenderTable::borderSpacingInRowDirection):
2666         Added this new helper function to return the right border-spacing. Added a FIXME as the code always
2667         return the horizontal dimension which is wrong in vertical-writing mode.
2668
2669         (WebCore::RenderTable::bordersPaddingAndSpacingInRowDirection):
2670         Changed to call borderSpacingInRowDirection. Added a comment as to why we don't add border-spacing on
2671         border-collapse: separate tables.
2672
2673 2012-09-18  Zan Dobersek  <zandobersek@gmail.com>
2674
2675         [GTK] Build is broken without option --enable-unstable-features
2676         https://bugs.webkit.org/show_bug.cgi?id=96996
2677
2678         Reviewed by Martin Robinson.
2679
2680         When searching for the bare feature define in feature_defines_unstable or
2681         feature_defines_overrides, search for the bare define followed by = character.
2682         This avoids incorrectly matching the ENABLE_VIDEO define to the ENABLE_VIDEO_TRACK
2683         overriding define (and works as well for other similarly named feature defines).
2684
2685         No new tests - no new functionality.
2686
2687         * GNUmakefile.am:
2688
2689 2012-09-18  Andrey Kosyakov  <caseq@chromium.org>
2690
2691         Web Inspector: [Extensions API] postpone requests to add extensions until extension server is initialized
2692         https://bugs.webkit.org/show_bug.cgi?id=97012
2693
2694         Reviewed by Vsevolod Vlasov.
2695
2696         - queue extensions being added unless initialization is complete;
2697         - add queued extensions upon completion of initialization;
2698
2699         * inspector/front-end/ExtensionServer.js:
2700         (WebInspector.ExtensionServer.prototype.initExtensions):
2701         (WebInspector.ExtensionServer.prototype._addExtensions):
2702         (WebInspector.ExtensionServer.prototype._addExtension):
2703         (WebInspector.ExtensionServer.prototype._innerAddExtension):
2704
2705 2012-09-18  Christophe Dumez  <christophe.dumez@intel.com>
2706
2707         [EFL] min-device-width failures in media tests
2708         https://bugs.webkit.org/show_bug.cgi?id=96920
2709
2710         Reviewed by Kenneth Rohde Christiansen.
2711
2712         Return a realistic value (800x600) for screen resolution if
2713         it cannot be detected, instead of returning (0x0).
2714
2715         This allows for some tests to pass on the build bots
2716         where X is not running.
2717
2718         No new tests, already covered by existing tests.
2719
2720         * platform/efl/PlatformScreenEfl.cpp:
2721         (WebCore::screenRect):
2722
2723 2012-09-18  Simon Hausmann  <simon.hausmann@digia.com>
2724
2725         Fix compilation with Qt 5 on MeeGo 1.2 Harmattan
2726         https://bugs.webkit.org/show_bug.cgi?id=96937
2727
2728         Reviewed by Jocelyn Turcotte.
2729
2730         The gl2ext.h header file on the platform is outdated. Instead use the newer copy from Qt
2731         through implicit inclusion of qopengl.h. Since Qt's declarations are based on newer Khronos
2732         headers, the multi sampling extensions do have the PROC suffix, we need the same workaround
2733         as QNX.
2734
2735         * platform/graphics/opengl/Extensions3DOpenGLES.h:
2736
2737 2012-09-14  Andrey Kosyakov  <caseq@chromium.org>
2738
2739         Web Inspector: [Extensions API] explicitly manage extension audit progress
2740         https://bugs.webkit.org/show_bug.cgi?id=96803
2741
2742         Reviewed by Alexander Pavlov.
2743
2744         - create a sub-progress per audit category;
2745         - manage audit category progress within the category, not in the panel logic;
2746         - consider audit is done when all categories are done;
2747         - expose AuditResults.updateProgress(worked, totalWork) in the extensions API;
2748         - retain old magic for computing audit progress if extension specifies extension results count.
2749
2750         * inspector/front-end/AuditsPanel.js:
2751         (WebInspector.AuditsPanel.prototype._executeAudit.ruleResultReadyCallback):
2752         (WebInspector.AuditsPanel.prototype._executeAudit):
2753         (WebInspector.AuditCategory.prototype.run.callbackWrapper):
2754         (WebInspector.AuditCategory.prototype.run):
2755         * inspector/front-end/ExtensionAPI.js:
2756         (defineCommonExtensionSymbols):
2757         (injectedExtensionAPI.Audits.prototype.addCategory):
2758         (injectedExtensionAPI.AuditResultImpl.prototype.updateProgress):
2759         * inspector/front-end/ExtensionAuditCategory.js:
2760         (WebInspector.ExtensionAuditCategory.prototype.run):
2761         (WebInspector.ExtensionAuditCategoryResults):
2762         (WebInspector.ExtensionAuditCategoryResults.prototype.done):
2763         (WebInspector.ExtensionAuditCategoryResults.prototype._addResult):
2764         (WebInspector.ExtensionAuditCategoryResults.prototype.updateProgress):
2765         * inspector/front-end/ExtensionServer.js:
2766         (WebInspector.ExtensionServer):
2767         (WebInspector.ExtensionServer.prototype._onUpdateAuditProgress):
2768         (WebInspector.ExtensionServer.prototype._onStopAuditCategoryRun):
2769         * inspector/front-end/ProgressBar.js:
2770         (WebInspector.ProgressIndicator.prototype.done): Assure only first call to done() has effect.
2771
2772 2012-09-19  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2773
2774         Revert r127457 and following fixes due to several hit-testing regressions
2775         https://bugs.webkit.org/show_bug.cgi?id=96830
2776
2777         Reviewed by Antonio Gomes.
2778
2779         The revert misssed one related follow-up.
2780
2781         * dom/Document.cpp:
2782         (WebCore::Document::updateHoverActiveState):
2783
2784
2785 2012-09-18  Mihnea Ovidenie  <mihnea@adobe.com>
2786
2787         [CSSRegions]Flag auto-height regions
2788         https://bugs.webkit.org/show_bug.cgi?id=96267
2789
2790         Reviewed by Julien Chaffraix.
2791
2792         The regions having auto logical height should be flagged so that their height will computed as part of a 2 pass-layout mechanism.
2793         A valid region is flagged as having auto logical height if:
2794         - has auto logical height and is part of the normal flow
2795         - has auto logical height, is not part of normal flow and does not have logical top/bottom specified
2796
2797         An invalid region (part of circular dependency) will not be marked even if its style matches the above situations.
2798
2799         Test: fast/regions/autoheight-regions-mark.html
2800
2801         * rendering/FlowThreadController.cpp: Keep a counter of auto logical height valid regions.
2802         (WebCore::FlowThreadController::FlowThreadController):
2803         (WebCore::FlowThreadController::layoutRenderNamedFlowThreads): Verify that the current number of auto logical height regions is correct by iterating over all the regions attached to the flow threads
2804         and compute the number of auto logical height regions on the spot.
2805         (WebCore):
2806         (WebCore::FlowThreadController::isAutoLogicalHeightRegionsFlagConsistent): Helper function that is used to verify the number of auto logical height regions.
2807         * rendering/FlowThreadController.h:
2808         (WebCore::FlowThreadController::hasAutoLogicalHeightRegions):
2809         (WebCore::FlowThreadController::incrementAutoLogicalHeightRegions):
2810         (WebCore::FlowThreadController::decrementAutoLogicalHeightRegions):
2811         (FlowThreadController):
2812         * rendering/RenderFlowThread.cpp:
2813         (WebCore):
2814         (WebCore::RenderFlowThread::autoLogicalHeightRegionsCount): Helper function that is used to count the number of regions marked as having auto logical height.
2815         * rendering/RenderFlowThread.h:
2816         * rendering/RenderRegion.cpp:
2817         (WebCore::RenderRegion::RenderRegion):
2818         (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
2819         (WebCore):
2820         (WebCore::RenderRegion::styleDidChange): For a region that is attached to a flow thread, verify whether the style change modified its auto logical height appearance.
2821         (WebCore::RenderRegion::attachRegion): Handle the case of attaching region to a flow thread and the detach/attach sequence when the region is moved in the render tree.
2822         (WebCore::RenderRegion::detachRegion):
2823         * rendering/RenderRegion.h:
2824         (WebCore::RenderRegion::shouldHaveAutoLogicalHeight):
2825         (WebCore::RenderRegion::hasAutoLogicalHeight):
2826         (RenderRegion):
2827         * rendering/RenderTreeAsText.cpp: For the regions that use auto logical height, modify the output to reflect that.
2828         (WebCore::writeRenderNamedFlowThreads):
2829
2830 2012-09-18  Shinya Kawanaka  <shinyak@chromium.org>
2831
2832         Disable adding an AuthorShadowRoot to replaced elements.
2833         https://bugs.webkit.org/show_bug.cgi?id=96978
2834
2835         Reviewed by Hajime Morita.
2836
2837         We (people who implement Shadow DOM) have concluded that we don't support adding AuthorShadowRoot to
2838         replaced elements in the current spec, since it turned out that a lot of difficulties exist and it brings
2839         a lot of mess to our codebase.
2840
2841         For now, we just disable adding AuthorShadowRoot to these replaced elements.
2842
2843         Test: fast/dom/shadow/shadow-disable.html
2844
2845         * html/HTMLImageElement.h:
2846         * html/HTMLKeygenElement.h:
2847         * html/HTMLMeterElement.h:
2848         * html/HTMLProgressElement.h:
2849         * html/HTMLTextAreaElement.h:
2850
2851 2012-09-17  Csaba Osztrogonác  <ossy@webkit.org>
2852
2853         Unreviewed, rolling out r128826 and r128813.
2854
2855         * ForwardingHeaders/runtime/JSDestructibleObject.h: Removed.
2856         * bindings/js/JSDOMWrapper.h:
2857         (WebCore::JSDOMWrapper::JSDOMWrapper):
2858         * bindings/scripts/CodeGeneratorJS.pm:
2859         (GenerateHeader):
2860         * bridge/objc/objc_runtime.h:
2861         (ObjcFallbackObjectImp):
2862         * bridge/objc/objc_runtime.mm:
2863         (Bindings):
2864         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
2865         * bridge/runtime_array.cpp:
2866         (JSC):
2867         (JSC::RuntimeArray::destroy):
2868         * bridge/runtime_array.h:
2869         (JSC::RuntimeArray::create):
2870         * bridge/runtime_object.cpp:
2871         (Bindings):
2872         (JSC::Bindings::RuntimeObject::RuntimeObject):
2873         * bridge/runtime_object.h:
2874         (RuntimeObject):
2875
2876 2012-09-17  Kent Tamura  <tkent@chromium.org>
2877
2878         Export RuntimeEnabledFeatures::isLangAttributeAwareFormControlUIEnabled correctly
2879         https://bugs.webkit.org/show_bug.cgi?id=96855
2880
2881         Reviewed by Hajime Morita.
2882
2883         * bindings/generic/RuntimeEnabledFeatures.h:
2884         (RuntimeEnabledFeatures): Add WEBCORE_TESTING.
2885         * testing/InternalSettings.cpp: Remove a workaround.
2886         (WebCore::InternalSettings::Backup::Backup):
2887         (WebCore::InternalSettings::Backup::restoreTo):
2888         (WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
2889         * testing/InternalSettings.h: ditto.
2890
2891 2012-09-17  Vivek Galatage  <vivekgalatage@gmail.com>
2892
2893         [Gtk] Remove the unused variable warning in GamepadsGtk.cpp using ASSERT_UNUSED macro
2894         https://bugs.webkit.org/show_bug.cgi?id=96975
2895
2896         Reviewed by Kentaro Hara.
2897
2898         Replacing a simple ASSERT with ASSERT_UNUSED to avoid the warning.
2899
2900         No new tests as refactoring done.
2901
2902         * platform/gtk/GamepadsGtk.cpp:
2903         (WebCore::GamepadDeviceGtk::readCallback):
2904
2905 2012-09-17  Roger Fong  <roger_fong@apple.com>
2906
2907         [Win] Null check timing function received from CoreAnimation when calling CACFAnimationGetTimingFunction.
2908         https://bugs.webkit.org/show_bug.cgi?id=96972
2909
2910         Reviewed by Timothy Horton
2911
2912         When paused, some CSS animations cause CoreAnimation to pass back a null timing function when calling CACFAnimationGetTimingFunction.
2913         This patch fixes this simply by ensuring that if the output of this method is null, it does not get passed into CACFAnimationSetTimingFunction
2914         via the PlatformCAAnimation::copyTimingFunctionFrom method.
2915
2916         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
2917         (PlatformCAAnimation::copyTimingFunctionFrom):
2918
2919 2012-09-17  David Barton  <dbarton@mathscribe.com>
2920
2921         Convert MathML to use flexboxes
2922         https://bugs.webkit.org/show_bug.cgi?id=96843
2923
2924         Reviewed by Eric Seidel.
2925
2926         Using the CSS Flexible Box Model simplifies MathML in many ways. Control over alignment, row vs.
2927         column layout, and child layout order are all much easier. Complexities involving floats,
2928         continuations, and most anonymous boxes are eliminated, as are their potential for crashes and
2929         security vulnerabilities.
2930
2931         In a flexbox, column alignment is done with align-items or align-self, instead of text-align.
2932         vertical-align and baselinePosition() are replaced by the firstLineBoxBaseline() virtual
2933         function.
2934
2935         Tested by existing tests.
2936
2937         * css/mathml.css:
2938         (math):
2939         (math[display="block"]):
2940         (mo, mrow, mfenced, mfrac, msub, msup, msubsup, munder, mover, munderover, msqrt, mroot):
2941         (math, mrow, mfenced, msqrt, mroot):
2942         (msqrt > *):
2943         (mo, mfrac, munder, mover, munderover):
2944         (munder, mover, munderover):
2945         (mfrac > *):
2946         (mfrac[numalign="left"] > :first-child):
2947         (mfrac[numalign="right"] > :first-child):
2948         (mfrac[denomalign="left"] > :last-child):
2949         (mfrac[denomalign="right"] > :last-child):
2950         (msubsup > :last-child, mover > :last-child, munderover > :last-child):
2951         (msub > * + *, msup > * + *, msubsup > * + *, munder > * + *, mover > * + *, munderover > * + *):
2952         (mroot):
2953         (mroot > * + *):
2954         (mtable):
2955         
2956         * mathml/MathMLInlineContainerElement.cpp:
2957         (WebCore::MathMLInlineContainerElement::createRenderer):
2958         * mathml/mathtags.in:
2959         
2960         * rendering/mathml/RenderMathMLBlock.cpp:
2961         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
2962         (WebCore::RenderMathMLBlock::computePreferredLogicalWidths):
2963         (WebCore::RenderMathMLBlock::baselinePosition):
2964         (WebCore::RenderMathMLBlock::renderName):
2965         (WebCore::RenderMathMLBlock::paint):
2966         (WebCore::RenderMathMLTable::firstLineBoxBaseline):
2967         * rendering/mathml/RenderMathMLBlock.h:
2968         (RenderMathMLBlock):
2969         (RenderMathMLTable):
2970         (WebCore::RenderMathMLTable::RenderMathMLTable):
2971             - Change RenderMathMLBlock's base class to RenderFlexibleBox, and its display to FLEX or INLINE_FLEX.
2972             - Add RenderMathMLTable for its firstLineBoxBaseline() function, like { vertical-align: middle }.
2973         
2974         * rendering/mathml/RenderMathMLFenced.cpp:
2975         (WebCore::RenderMathMLFenced::createMathMLOperator):
2976         (WebCore::RenderMathMLFenced::makeFences):
2977             - Use RenderMathMLRow::addChild as a more robust name for RenderBlock::addChild.
2978         (WebCore::RenderMathMLFenced::addChild):
2979             - All inline children of a flexbox are treated as blocks automatically.
2980         
2981         * rendering/mathml/RenderMathMLFraction.cpp:
2982         (WebCore::RenderMathMLFraction::fixChildStyle):
2983         (WebCore::RenderMathMLFraction::updateFromElement):
2984             - numalign and denomalign attributes are now handled by mathml.css.
2985         (WebCore::RenderMathMLFraction::addChild):
2986         (WebCore::RenderMathMLFraction::layout):
2987         (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
2988         * rendering/mathml/RenderMathMLFraction.h:
2989         (RenderMathMLFraction):
2990         
2991         * rendering/mathml/RenderMathMLOperator.cpp:
2992         (WebCore::RenderMathMLOperator::updateFromElement):
2993         (WebCore::RenderMathMLOperator::createStackableStyle):
2994         (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
2995         * rendering/mathml/RenderMathMLOperator.h:
2996         * rendering/mathml/RenderMathMLRow.cpp:
2997         (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
2998         
2999         * rendering/mathml/RenderMathMLSubSup.cpp:
3000         (WebCore::RenderMathMLSubSup::RenderMathMLSubSup):
3001         (WebCore::RenderMathMLSubSup::fixScriptsStyle):
3002         (WebCore::RenderMathMLSubSup::addChild):
3003         (WebCore::RenderMathMLSubSup::styleDidChange):
3004         (WebCore::RenderMathMLSubSup::layout):
3005         * rendering/mathml/RenderMathMLSubSup.h:
3006             - Rename Sup to Super, to make it more readable vs. Sub.
3007             - Instead of vertical-align, msub and msup now use the m_scripts anonymous box like msubsup does.
3008             - Individual anonymous block wrappers are no longer needed around the superscript and subscript to
3009               lay them out in a column.
3010             - Handle msub and msup layout, and improve msubsup layout, by requiring a superscript's baseline
3011               to be at least (int) fontSize / 3 + 1 above the main baseline, and a subscript's baseline to be
3012               at least (int) fontSize / 5 + 1 below it.
3013         
3014         * rendering/mathml/RenderMathMLUnderOver.cpp:
3015         (WebCore::RenderMathMLUnderOver::unembellishedOperator):
3016         (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
3017         * rendering/mathml/RenderMathMLUnderOver.h:
3018         (RenderMathMLUnderOver):
3019             - RenderMathMLUnderOver no longer needs to use anonymous wrappers for column layout. Centering and
3020               child layout order (overscript first) are also handled by mathml.css.
3021
3022 2012-09-17  Ryuan Choi  <ryuan.choi@samsung.com>
3023
3024         [EFL] Several key codes are not mapped with evas key name.
3025         https://bugs.webkit.org/show_bug.cgi?id=96915
3026
3027         Reviewed by Gyuyoung Kim.
3028
3029         * platform/efl/EflKeyboardUtilities.cpp:
3030         (WebCore::createWindowsKeyMap):
3031         Added missing items of hashmap for virtual key code.
3032
3033 2012-09-17  Filip Pizlo  <fpizlo@apple.com>
3034
3035         Unreviewed, fix build.
3036
3037         * css/CSSRule.cpp:
3038         (SameSizeAsCSSRule):
3039
3040 2012-09-16  Mark Hahnenberg  <mhahnenberg@apple.com>
3041
3042         Delayed structure sweep can leak structures without bound
3043         https://bugs.webkit.org/show_bug.cgi?id=96546
3044
3045         Reviewed by Gavin Barraclough.
3046
3047         This patch gets rid of the separate Structure allocator in the MarkedSpace and adds two new destructor-only
3048         allocators. We now have separate allocators for our three types of objects: those objects with no destructors,
3049         those objects with destructors and with immortal structures, and those objects with destructors that don't have 
3050         immortal structures. All of the objects of the third type (destructors without immortal structures) now 
3051         inherit from a new class named JSDestructibleObject (which in turn is a subclass of JSNonFinalObject), which stores 
3052         the ClassInfo for these classes at a fixed offset for safe retrieval during sweeping/destruction.
3053
3054         No new tests.
3055
3056         * ForwardingHeaders/runtime/JSDestructableObject.h: Added.
3057         * bindings/js/JSDOMWrapper.h: Inherits from JSDestructibleObject.
3058         (JSDOMWrapper):
3059         (WebCore::JSDOMWrapper::JSDOMWrapper):
3060         * bindings/scripts/CodeGeneratorJS.pm: Add finalizers to anything that inherits from JSGlobalObject,
3061         e.g. JSDOMWindow and JSWorkerContexts. For those classes we also need to use the NEEDS_DESTRUCTOR macro.
3062         (GenerateHeader):
3063         * bridge/objc/objc_runtime.h: Inherit from JSDestructibleObject.
3064         (ObjcFallbackObjectImp):
3065         * bridge/objc/objc_runtime.mm:
3066         (Bindings):
3067         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
3068         * bridge/runtime_array.cpp: Use a finalizer so that JSArray isn't forced to inherit from JSDestructibleObject.
3069         (JSC):
3070         (JSC::RuntimeArray::destroy):
3071         * bridge/runtime_array.h:
3072         (JSC::RuntimeArray::create):
3073         (JSC):
3074         * bridge/runtime_object.cpp: Inherit from JSDestructibleObject.
3075         (Bindings):
3076         (JSC::Bindings::RuntimeObject::RuntimeObject):
3077         * bridge/runtime_object.h:
3078         (RuntimeObject):
3079
3080 2012-09-17  Sheriff Bot  <webkit.review.bot@gmail.com>
3081
3082         Unreviewed, rolling out r128809.
3083         http://trac.webkit.org/changeset/128809
3084         https://bugs.webkit.org/show_bug.cgi?id=96958
3085
3086         Broke the Windows build. (Requested by andersca on #webkit).
3087
3088         * platform/win/BString.cpp:
3089         (WebCore::BString::~BString):
3090         (WebCore::BString::adoptBSTR):
3091         * platform/win/BString.h:
3092         (BString):
3093
3094 2012-09-17  Patrick Gansterer  <paroga@webkit.org>
3095
3096         [WIN] Use BString in favour of BSTR to improve memory management
3097         https://bugs.webkit.org/show_bug.cgi?id=93128
3098
3099         Reviewed by Anders Carlsson.
3100
3101         BString automatically calls SysFreeString() in its destructor which helps
3102         avoiding memory leaks. So it should be used instead of BSTR directly.
3103         Add operator& to BString to allow its usage for out parameters too (like COMPtr).
3104         This fixes already a few memory leaks in the existing code.
3105
3106         * platform/win/BString.cpp:
3107         (WebCore::BString::~BString):
3108         (WebCore::BString::adoptBSTR):
3109         (WebCore::BString::clear):
3110         (WebCore):
3111         * platform/win/BString.h:
3112         (BString):
3113         (WebCore::BString::operator&):
3114
3115 2012-09-17  Tony Chang  <tony@chromium.org>
3116
3117         Make CSS.PrefixUsage histogram smaller to save memory
3118         https://bugs.webkit.org/show_bug.cgi?id=96941
3119
3120         Reviewed by Ojan Vafai.
3121
3122         Each bucket costs about 12 bytes. This reduces the size of the histogram
3123         from 600 to 384, which will save about 2.5k per renderer and browser
3124         process.
3125
3126         In the long run, we could probably generate a table in makeprop.pl that
3127         only has the webkit prefix values to save even more memory (there are
3128         194 properties that start with -webkit).
3129
3130         No new tests, just refactoring.
3131
3132         * css/CSSParser.cpp:
3133         (WebCore::cssPropertyID):
3134
3135 2012-09-17  Rob Buis  <rbuis@rim.com>
3136
3137         [BlackBerry] Enable VIDEO_TRACK
3138         https://bugs.webkit.org/show_bug.cgi?id=96949
3139
3140         Reviewed by Antonio Gomes.
3141
3142         Turn on runtime feature for VIDEO_TRACK.
3143
3144         * bindings/generic/RuntimeEnabledFeatures.cpp:
3145         (WebCore):
3146
3147 2012-09-17  Adam Barth  <abarth@webkit.org>
3148
3149         Measure the usage of window.webkitIndexedDB so we can measure the transition to webkit.indexedDB
3150         https://bugs.webkit.org/show_bug.cgi?id=96943
3151
3152         Reviewed by Ojan Vafai.
3153
3154         We don't yet support window.indexedDB but we will once
3155         https://bugs.webkit.org/show_bug.cgi?id=96548 lands. This metric will
3156         help us measure the transition from the prefixed to the unprefixed API.
3157
3158         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
3159         * page/FeatureObserver.h:
3160
3161 2012-09-17  Adam Barth  <abarth@webkit.org>
3162
3163         Measure usage of the legacy WebKitBlobBuilder API in the hopes of being able to remove it
3164         https://bugs.webkit.org/show_bug.cgi?id=96939
3165
3166         Reviewed by Ojan Vafai.
3167
3168         In the course of standardization, the BlobBuilder API was removed in
3169         favor of just using the Blob constructor. This patch adds some
3170         measurement to see how often this legacy API is used. If the API is not
3171         used very much, we might be able to remove it.
3172
3173         * fileapi/WebKitBlobBuilder.cpp:
3174         (WebCore::WebKitBlobBuilder::create):
3175         * page/FeatureObserver.h:
3176
3177 2012-09-17  Joshua Bell  <jsbell@chromium.org>
3178
3179         IndexedDB: Result of IDBFactory.deleteDatabase() should be undefined, not null
3180         https://bugs.webkit.org/show_bug.cgi?id=96538
3181
3182         Reviewed by Tony Chang.
3183
3184         Trivial implementation change to match the spec.
3185
3186         Tests: storage/indexeddb/factory-deletedatabase-expected.html
3187                storage/indexeddb/intversion-long-queue-expected.html
3188
3189         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3190         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
3191
3192 2012-09-17  Rick Byers  <rbyers@chromium.org>
3193
3194         Allow gesture events to set active/hover state.
3195         https://bugs.webkit.org/show_bug.cgi?id=96060
3196
3197         Reviewed by Antonio Gomes.
3198
3199         Adds GestureTapDownCancel as a new PlatformGestureEvent type.  On ports
3200         that support gesture events, use GestureTapDown to trigger active/hover
3201         states, and GestureTap/GestureTapDownCancel to clear them.  This is
3202         superior to using touch events for a number of reasons:
3203           1) some ports (chromium) avoid sending touch events unless absolutely
3204           necessary, since they hurt scroll performance by blocking threaded
3205           scrolling.
3206           2) with touch, and element really shouldn't be 'active' when the user
3207           happens to be touching it while scrolling.  In that case they aren't
3208           'manipulating the element', they're manipulating the page or div that
3209           is scrolling.
3210           3) similarly, there may be other gestures that involve touching the
3211           element which aren't really about manipulating that element (eg.
3212           pinch to zoom).
3213
3214         Test: fast/events/touch/gesture/gesture-tap-active-state.html
3215         Test: fast/events/touch/gesture/gesture-tap-active-state-iframe.html
3216         * dom/GestureEvent.cpp:
3217         (WebCore::GestureEvent::create):
3218         * page/EventHandler.cpp:
3219         (WebCore::EventHandler::handleGestureEvent):
3220         (WebCore::EventHandler::handleTouchEvent):
3221         * platform/PlatformEvent.h:
3222
3223 2012-09-17  Alec Flett  <alecflett@chromium.org>
3224
3225         IndexedDB: Use ScriptValue instead of SerializedScriptValue for get/openCursor
3226         https://bugs.webkit.org/show_bug.cgi?id=95409
3227
3228         Reviewed by Kentaro Hara.
3229
3230         This reduces a bunch of serialization/deserialization when writing
3231         to objectstores with indexes.
3232
3233         No new tests, as this covers core functionality of IndexedDB, and
3234         almost every test would fail. Some likely tests that would fail
3235         fundamentally include:
3236
3237         storage/indexeddb/objectstore-basics.html
3238         storage/indexeddb/cursor-basics.html
3239         storage/indexeddb/index-basics.html
3240
3241         * Modules/indexeddb/IDBAny.cpp:
3242         (WebCore::IDBAny::scriptValue):
3243         (WebCore::IDBAny::integer):
3244         (WebCore):
3245         (WebCore::IDBAny::set):
3246         * Modules/indexeddb/IDBAny.h:
3247         (WebCore):
3248         (IDBAny):
3249         (WebCore::IDBAny::create):
3250         * Modules/indexeddb/IDBCursor.cpp:
3251         (WebCore::IDBCursor::setValueReady):
3252         * Modules/indexeddb/IDBCursor.h:
3253         (WebCore):
3254         (IDBCursor):
3255         * Modules/indexeddb/IDBDatabase.cpp:
3256         (WebCore::IDBDatabase::version):
3257         * Modules/indexeddb/IDBObjectStore.cpp:
3258         (WebCore):
3259         * Modules/indexeddb/IDBRequest.cpp:
3260         (WebCore::IDBRequest::setResultCursor):
3261         (WebCore::IDBRequest::onSuccess):
3262         (WebCore):
3263         (WebCore::IDBRequest::onSuccessInternal):
3264         (WebCore::IDBRequest::dispatchEvent):
3265         * Modules/indexeddb/IDBRequest.h:
3266         (IDBRequest):
3267         * Modules/indexeddb/IDBTransactionCallbacks.h:
3268         * bindings/v8/IDBBindingUtilities.cpp:
3269         (WebCore::deserializeIDBValue):
3270         (WebCore::injectIDBKeyIntoScriptValue):
3271         * bindings/v8/IDBBindingUtilities.h:
3272         (WebCore):
3273         * bindings/v8/custom/V8IDBAnyCustom.cpp:
3274         (WebCore::toV8):
3275
3276 2012-09-17  Adam Barth  <abarth@webkit.org>
3277
3278         We should make collecting metrics easier by adding an IDL attribute
3279         https://bugs.webkit.org/show_bug.cgi?id=96837
3280
3281         Reviewed by Kentaro Hara.
3282
3283         Currently it is too hard to set up a good measurement experiment to see
3284         whether we can safely remove a feature (including vendor-prefixed
3285         features). This patch introduces the [V8MeasureAs] IDL attribute to make
3286         that process easier.
3287
3288         When you add the [V8MeasureAs] IDL property to an API, we'll count what
3289         fraction of Page objects used that API.
3290
3291         * Modules/notifications/DOMWindowNotifications.idl:
3292         * bindings/scripts/CodeGeneratorV8.pm:
3293         (GenerateFeatureObservation):
3294         (GenerateNormalAttrGetter):
3295         (GenerateReplaceableAttrSetter):
3296         (GenerateNormalAttrSetter):
3297         (GenerateOverloadedFunctionCallback):
3298         (GenerateFunctionCallback):
3299         (GenerateConstructorCallback):
3300         (GenerateNamedConstructorCallback):
3301         * bindings/scripts/IDLAttributes.txt:
3302         * bindings/scripts/test/TestObj.idl:
3303         * bindings/scripts/test/V8/V8TestObj.cpp:
3304         (WebCore::TestObjV8Internal::testObjAttrAttrGetter):
3305         (WebCore::TestObjV8Internal::testObjAttrAttrSetter):
3306         (WebCore::TestObjV8Internal::objMethodCallback):
3307         (WebCore):
3308         * page/Page.h:
3309         (WebCore::Page::featureObserver):
3310         (Page):
3311
3312 2012-09-17  Bear Travis  <betravis@adobe.com>
3313
3314         [CSS Exclusions] Enable shape-inside for percentage lengths based on logical height
3315         https://bugs.webkit.org/show_bug.cgi?id=93547
3316
3317         Reviewed by Levi Weintraub.
3318
3319         Shape-inside needs to be passed the logical size to use when computing percentage
3320         based coordinates. The CSS Regions-specific method computeInitialRegionRangeForBlock
3321         has been generalized to updateRegionsAndExclusionsLogicalSize. This method takes
3322         the pre-child-layout logical width and height, and uses them to compute the logical
3323         width and height that regions and exclusions should use for layout. Regions use a
3324         block's maximum possible logical height to compute a region's maximum extent.
3325         Exclusions use a block's fixed logical width and height, or 0 if one does not exist,
3326         to resolve percentage-based shape lengths. The default logical size used for resolving
3327         percentage based coordinates is tested in shape-inside-percentage-auto.html.
3328
3329         Test: fast/exclusions/shape-inside/shape-inside-percentage.html
3330
3331         * rendering/RenderBlock.cpp:
3332         (WebCore::RenderBlock::updateRegionsAndExclusionsLogicalSize): Calculates the logical
3333         height regions and exclusions should use, and updates their layout sizes through
3334         computeExclusionShapeSize and computeRegionRangeForBlock.
3335         (WebCore):
3336         (WebCore::RenderBlock::computeExclusionShapeSize): Pass the appropriate logical size
3337         to exclusion shapes so they can resolve percentage based coordinates.
3338         (WebCore::RenderBlock::layoutBlock): Call the new updateRegionsAndExclusionsLogicalSize
3339         method.
3340         * rendering/RenderBlock.h:
3341         (RenderBlock):
3342         * rendering/RenderBox.cpp:
3343         (WebCore::percentageLogicalHeightIsResolvable): Determine if percentage lengths
3344         based on logical height can be resolved.
3345         (WebCore):
3346         (WebCore::RenderBox::percentageLogicalHeightIsResolvableFromBlock): Added declaration.
3347         * rendering/RenderBox.h:
3348         (RenderBox):
3349         * rendering/RenderDeprecatedFlexibleBox.cpp:
3350         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock): Calling
3351         updateRegionsAndExclusionsLogicalSize rather than computeInitialRegionRangeForBlock.
3352         * rendering/RenderFlexibleBox.cpp:
3353         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
3354         * rendering/RenderGrid.cpp:
3355         (WebCore::RenderGrid::layoutBlock): Ditto.
3356
3357 2012-09-17  Vangelis Kokkevis  <vangelis@chromium.org>
3358
3359         [chromium] Add gpu_test trace events tracking the creation of a DrawingBuffer
3360         and Canvas2DLayerBridge. They will be used by browser tests to verify the
3361         existence of WebGL and accelerated canvas.
3362         https://bugs.webkit.org/show_bug.cgi?id=96871
3363
3364         Reviewed by James Robinson.
3365
3366         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
3367         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
3368         * platform/graphics/chromium/DrawingBufferChromium.cpp:
3369         (WebCore::DrawingBuffer::DrawingBuffer):
3370
3371 2012-09-17  Bo Liu  <boliu@chromium.org>
3372
3373         Fix LoadImagesAutomatically cache behavior
3374         https://bugs.webkit.org/show_bug.cgi?id=96829
3375
3376         Reviewed by Adam Barth.
3377
3378         I broke the caching behavior of LoadImagesAutomatically in
3379         http://trac.webkit.org/changeset/128645
3380
3381         This restores the original behavior that AutoLoadImage does not block
3382         loads from memory cache.
3383
3384         Test: fast/loader/display-image-unset-allows-cached-image-load.html
3385
3386         * loader/cache/CachedResourceLoader.cpp:
3387         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
3388         (WebCore::CachedResourceLoader::clientAllowsImage):
3389         (WebCore::CachedResourceLoader::shouldDeferImageLoad):
3390         * loader/cache/CachedResourceLoader.h:
3391         (CachedResourceLoader):
3392
3393 2012-09-17  Andrei Poenaru  <poenaru@adobe.com>
3394
3395         Web Inspector: Display Named Flows in the Tabbed Pane of the "CSS Named Flows" Drawer
3396         https://bugs.webkit.org/show_bug.cgi?id=96733
3397
3398         Reviewed by Alexander Pavlov.
3399
3400         Added functionality to the Tabbed Pane from the CSS Named Flows Drawer.
3401
3402         * English.lproj/localizedStrings.js:
3403         * WebCore.gypi:
3404         * WebCore.vcproj/WebCore.vcproj:
3405         * inspector/compile-front-end.py:
3406         * inspector/front-end/CSSNamedFlowCollectionsView.js:
3407         (WebInspector.CSSNamedFlowCollectionsView.prototype._appendNamedFlow):
3408         (WebInspector.CSSNamedFlowCollectionsView.prototype._removeNamedFlow):
3409         (WebInspector.CSSNamedFlowCollectionsView.prototype._updateNamedFlow):
3410         (WebInspector.CSSNamedFlowCollectionsView.prototype._showNamedFlow):
3411         (WebInspector.CSSNamedFlowCollectionsView.prototype._selectNamedFlowInSidebar):
3412         (WebInspector.CSSNamedFlowCollectionsView.prototype._selectNamedFlowTab):
3413         (WebInspector.CSSNamedFlowCollectionsView.prototype._tabSelected):
3414         (WebInspector.CSSNamedFlowCollectionsView.prototype._tabClosed):
3415         (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
3416         (WebInspector.CSSNamedFlowCollectionsView.prototype.willHide):
3417         (WebInspector.FlowTreeElement):
3418         (WebInspector.FlowTreeElement.prototype.setOverset):
3419         * inspector/front-end/CSSNamedFlowView.js: Added.
3420         (WebInspector.CSSNamedFlowView):
3421         (WebInspector.CSSNamedFlowView.prototype._createFlowTreeOutline):
3422         (WebInspector.CSSNamedFlowView.prototype._insertContentNode):
3423         (WebInspector.CSSNamedFlowView.prototype._insertRegion):
3424         (WebInspector.CSSNamedFlowView.prototype.get flow):
3425         (WebInspector.CSSNamedFlowView.prototype.set flow):
3426         (WebInspector.CSSNamedFlowView.prototype._updateRegionOverset):
3427         (WebInspector.CSSNamedFlowView.prototype._mergeContentNodes):
3428         (WebInspector.CSSNamedFlowView.prototype._mergeRegions):
3429         (WebInspector.CSSNamedFlowView.prototype._update):
3430         * inspector/front-end/ElementsPanel.js:
3431         * inspector/front-end/Images/regionEmpty.png: Added.
3432         * inspector/front-end/Images/regionFit.png: Added.
3433         * inspector/front-end/Images/regionOverset.png: Added.
3434         * inspector/front-end/WebKit.qrc:
3435         * inspector/front-end/cssNamedFlows.css:
3436         (.css-named-flow-collections-view .split-view-sidebar-left .named-flow-overflow::before, .css-named-flow-collections-view .region-empty:before, .css-named-flow-collections-view .region-fit::before, .css-named-flow-collections-view .region-overset::before):
3437         (.css-named-flow-collections-view .split-view-sidebar-left .named-flow-overflow::before):
3438         (.css-named-flow-collections-view .region-empty::before):
3439         (.css-named-flow-collections-view .region-fit::before):
3440         (.css-named-flow-collections-view .region-overset::before):
3441         (.css-named-flow-collections-view .split-view-contents .named-flow-element):
3442
3443 2012-09-17  Zan Dobersek  <zandobersek@gmail.com>
3444
3445         [Gtk] Remove configuration options for stable features that are currently enabled
3446         https://bugs.webkit.org/show_bug.cgi?id=96621
3447
3448         Reviewed by Martin Robinson.
3449
3450         Remove Automake conditional checking for features that are being removed in
3451         configure.ac. Unstable features that don't introduce dependencies are now
3452         disabled if necessary by being listed in the unstable feature defines overriding
3453         variable.
3454
3455         No new tests - no new functionality.
3456
3457         * GNUmakefile.am:
3458         * GNUmakefile.features.am:
3459         * bindings/gobject/GNUmakefile.am:
3460
3461 2012-09-17  Lauro Neto  <lauro.neto@openbossa.org>
3462
3463         [Qt] Cleanup/refactor the user agent detection code
3464         https://bugs.webkit.org/show_bug.cgi?id=96822
3465
3466         Unreviewed build fix.
3467
3468         Build fixes for Windows and Mac OS builds.
3469
3470         * platform/qt/UserAgentQt.cpp:
3471         (WebCore::UserAgentQt::standardUserAgent):
3472
3473             QLatin1String doesn't have a default contructor. Replaced #ifdef with #if.
3474
3475 2012-09-17  Lauro Neto  <lauro.neto@openbossa.org>
3476
3477         Updates to the useragent patch
3478
3479         [Qt] Cleanup/refactor the user agent detection code
3480         https://bugs.webkit.org/show_bug.cgi?id=96822
3481
3482         Reviewed by Simon Hausmann.
3483
3484         Replaced Q_WS_*/Q_OS_* with WTF OS/CPU detection macros.
3485         Cleanup the check for unsupported OS.
3486         Replaced QString.arg() usage with simple string concatenation.
3487
3488         * platform/qt/UserAgentQt.cpp:
3489         (WebCore::UserAgentQt::standardUserAgent):
3490
3491 2012-09-17  Sheriff Bot  <webkit.review.bot@gmail.com>
3492
3493         Unreviewed, rolling out r128759.
3494         http://trac.webkit.org/changeset/128759
3495         https://bugs.webkit.org/show_bug.cgi?id=96929
3496
3497         New assertion hit on multiple platforms (Requested by carewolf
3498         on #webkit).
3499
3500         * dom/Document.cpp:
3501         (WebCore::Document::updateHoverActiveState):
3502
3503 2012-09-17  Ilya Tikhonovsky  <loislo@chromium.org>
3504
3505         Web Inspector: NMI: now when we can detect instrumented classes we can
3506         remove addInstrumentedMember and use addMember for everything.
3507         https://bugs.webkit.org/show_bug.cgi?id=96913
3508
3509         Reviewed by Yury Semikhatsky.
3510
3511         * bindings/v8/DOMDataStore.cpp:
3512         (WebCore::DOMDataStore::reportMemoryUsage):
3513         * bindings/v8/IntrusiveDOMWrapperMap.h:
3514         * bindings/v8/V8PerIsolateData.cpp:
3515         (WebCore::V8PerIsolateData::reportMemoryUsage):
3516         * css/CSSBorderImageSliceValue.cpp:
3517         (WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
3518         * css/CSSCalculationValue.cpp:
3519         * css/CSSCanvasValue.cpp:
3520         (WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
3521         * css/CSSCharsetRule.cpp:
3522         (WebCore::CSSCharsetRule::reportDescendantMemoryUsage):
3523         * css/CSSComputedStyleDeclaration.cpp:
3524         (WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
3525         * css/CSSCrossfadeValue.cpp:
3526         (WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
3527         * css/CSSFontFaceRule.cpp:
3528         (WebCore::CSSFontFaceRule::reportDescendantMemoryUsage):
3529         * css/CSSFontFaceSrcValue.cpp:
3530         (WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
3531         * css/CSSFunctionValue.cpp:
3532         (WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
3533         * css/CSSGradientValue.cpp:
3534         (WebCore::CSSGradientColorStop::reportMemoryUsage):
3535         (WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
3536         (WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
3537         (WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
3538         * css/CSSImageSetValue.cpp:
3539         (WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
3540         * css/CSSImageValue.cpp:
3541         (WebCore::CSSImageValue::reportDescendantMemoryUsage):
3542         * css/CSSImportRule.cpp:
3543         (WebCore::CSSImportRule::reportDescendantMemoryUsage):
3544         * css/CSSMediaRule.cpp:
3545         (WebCore::CSSMediaRule::reportDescendantMemoryUsage):
3546         * css/CSSPageRule.cpp:
3547         (WebCore::CSSPageRule::reportDescendantMemoryUsage):
3548         * css/CSSPrimitiveValue.cpp:
3549         (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
3550         * css/CSSProperty.cpp:
3551         (WebCore::CSSProperty::reportMemoryUsage):
3552         * css/CSSReflectValue.cpp:
3553         (WebCore::CSSReflectValue::reportDescendantMemoryUsage):
3554         * css/CSSRule.cpp:
3555         (WebCore::CSSRule::reportBaseClassMemoryUsage):
3556         * css/CSSRuleList.h:
3557         * css/CSSStyleRule.cpp:
3558         (WebCore::CSSStyleRule::reportDescendantMemoryUsage):
3559         * css/CSSStyleSheet.cpp:
3560         (WebCore::CSSStyleSheet::reportMemoryUsage):
3561         * css/CSSValue.cpp:
3562         (WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
3563         * css/CSSVariableValue.h:
3564         (WebCore::CSSVariableValue::reportDescendantMemoryUsage):
3565         * css/FontFeatureValue.cpp:
3566         (WebCore::FontFeatureValue::reportDescendantMemoryUsage):
3567         * css/FontValue.cpp:
3568         (WebCore::FontValue::reportDescendantMemoryUsage):
3569         * css/MediaList.cpp:
3570         (WebCore::MediaList::reportMemoryUsage):
3571         * css/MediaQuery.cpp:
3572         (WebCore::MediaQuery::reportMemoryUsage):
3573         * css/MediaQueryExp.cpp:
3574         (WebCore::MediaQueryExp::reportMemoryUsage):
3575         * css/PropertySetCSSStyleDeclaration.cpp:
3576         (WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
3577         (WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
3578         (WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
3579         * css/ShadowValue.cpp:
3580         (WebCore::ShadowValue::reportDescendantMemoryUsage):
3581         * css/StylePropertySet.cpp:
3582         (WebCore::StylePropertySet::reportMemoryUsage):
3583         * css/StyleResolver.cpp:
3584         (WebCore::StyleResolver::collectMatchingRulesForList):
3585         * css/StyleRule.cpp:
3586         (WebCore::StyleRule::reportDescendantMemoryUsage):
3587         (WebCore::StyleRulePage::reportDescendantMemoryUsage):
3588         (WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
3589         (WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
3590         (WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
3591         * css/StyleRuleImport.cpp:
3592         (WebCore::StyleRuleImport::reportDescendantMemoryUsage):
3593         * css/StyleSheetContents.cpp:
3594         (WebCore::StyleSheetContents::reportMemoryUsage):
3595         * css/WebKitCSSKeyframeRule.cpp:
3596         (WebCore::StyleKeyframe::reportMemoryUsage):
3597         (WebCore::WebKitCSSKeyframeRule::reportDescendantMemoryUsage):
3598         * css/WebKitCSSKeyframesRule.cpp:
3599         (WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
3600         (WebCore::WebKitCSSKeyframesRule::reportDescendantMemoryUsage):
3601         * css/WebKitCSSRegionRule.cpp:
3602         (WebCore::WebKitCSSRegionRule::reportDescendantMemoryUsage):
3603         * css/WebKitCSSSVGDocumentValue.cpp:
3604         (WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
3605         * css/WebKitCSSShaderValue.cpp:
3606         (WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
3607         * dom/Attribute.h:
3608         (WebCore::Attribute::reportMemoryUsage):
3609         * dom/CharacterData.cpp:
3610         (WebCore::CharacterData::reportMemoryUsage):
3611         * dom/ContainerNode.h:
3612         (WebCore::ContainerNode::reportMemoryUsage):
3613         * dom/Document.cpp:
3614         (WebCore::Document::reportMemoryUsage):
3615         * dom/Element.h:
3616         (WebCore::Element::reportMemoryUsage):
3617         * dom/ElementAttributeData.cpp:
3618         (WebCore::ElementAttributeData::reportMemoryUsage):
3619         * dom/Event.cpp:
3620         (WebCore::Event::reportMemoryUsage):
3621         * dom/Node.cpp:
3622         (WebCore::Node::reportMemoryUsage):
3623         * dom/QualifiedName.cpp:
3624         (WebCore::QualifiedName::reportMemoryUsage):
3625         (WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
3626         * html/HTMLImageElement.cpp:
3627         (WebCore::HTMLImageElement::reportMemoryUsage):
3628         * loader/DocumentLoader.cpp:
3629         (WebCore::DocumentLoader::reportMemoryUsage):
3630         * loader/FrameLoader.cpp:
3631         (WebCore::FrameLoader::reportMemoryUsage):
3632         * loader/MainResourceLoader.cpp:
3633         (WebCore::MainResourceLoader::reportMemoryUsage):
3634         * loader/ResourceLoader.cpp:
3635         (WebCore::ResourceLoader::reportMemoryUsage):
3636         * loader/SubresourceLoader.cpp:
3637         (WebCore::SubresourceLoader::reportMemoryUsage):
3638         * loader/SubstituteData.cpp:
3639         (WebCore::SubstituteData::reportMemoryUsage):
3640         * loader/cache/CachedCSSStyleSheet.cpp:
3641         (WebCore::CachedCSSStyleSheet::reportMemoryUsage):
3642         * loader/cache/CachedFont.cpp:
3643         (WebCore::CachedFont::reportMemoryUsage):
3644         * loader/cache/CachedImage.cpp:
3645         (WebCore::CachedImage::reportMemoryUsage):
3646         * loader/cache/CachedResource.cpp:
3647         (WebCore::CachedResource::reportMemoryUsage):
3648         * loader/cache/CachedResourceHandle.cpp:
3649         (WebCore::CachedResourceHandleBase::reportMemoryUsage):
3650         * loader/cache/CachedResourceLoader.cpp:
3651         (WebCore::CachedResourceLoader::reportMemoryUsage):
3652         * loader/cache/CachedSVGDocument.cpp:
3653         (WebCore::CachedSVGDocument::reportMemoryUsage):
3654         * loader/cache/CachedScript.cpp:
3655         (WebCore::CachedScript::reportMemoryUsage):
3656         * loader/cache/CachedShader.cpp:
3657         (WebCore::CachedShader::reportMemoryUsage):
3658         * loader/cache/CachedXSLStyleSheet.cpp:
3659         (WebCore::CachedXSLStyleSheet::reportMemoryUsage):
3660         * loader/cache/MemoryCache.cpp:
3661         (WebCore::MemoryCache::reportMemoryUsage):
3662         * page/Frame.cpp:
3663         (WebCore::Frame::reportMemoryUsage):
3664         * platform/KURL.cpp:
3665         (WebCore::KURL::reportMemoryUsage):
3666         * platform/KURLGoogle.cpp:
3667         (WebCore::KURLGooglePrivate::reportMemoryUsage):
3668         * platform/KURLWTFURLImpl.h:
3669         (WebCore::KURLWTFURLImpl::reportMemoryUsage):
3670         * platform/TreeShared.h:
3671         (WebCore::TreeShared::reportMemoryUsage):
3672         * platform/graphics/CrossfadeGeneratedImage.cpp:
3673         (WebCore::CrossfadeGeneratedImage::reportMemoryUsage):
3674         * platform/graphics/Image.cpp:
3675         (WebCore::Image::reportMemoryUsage):
3676         * platform/network/ResourceRequestBase.cpp:
3677         (WebCore::ResourceRequestBase::reportMemoryUsage):
3678         * platform/network/ResourceResponseBase.cpp:
3679         (WebCore::ResourceResponseBase::reportMemoryUsage):
3680         * rendering/style/DataRef.h:
3681         (WebCore::DataRef::reportMemoryUsage):
3682         * rendering/style/RenderStyle.cpp:
3683         (WebCore::RenderStyle::reportMemoryUsage):
3684         * rendering/style/StyleRareInheritedData.cpp:
3685         (WebCore::StyleRareInheritedData::reportMemoryUsage):
3686         * rendering/style/StyleRareNonInheritedData.cpp:
3687         (WebCore::StyleRareNonInheritedData::reportMemoryUsage):
3688         * svg/SVGPaint.cpp:
3689         (WebCore::SVGPaint::reportDescendantMemoryUsage):
3690         * svg/graphics/SVGImage.cpp:
3691         (WebCore::SVGImage::reportMemoryUsage):
3692
3693 2012-09-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3694
3695         [TouchAdjustment] Adjusted point outside bounds for non-rectilinear targets
3696         https://bugs.webkit.org/show_bug.cgi?id=96098
3697
3698         Reviewed by Antonio Gomes.
3699
3700         Simplifies how snapTo tries to restrict the adjustment to the touch-area, and 
3701         at the same fix it to give better guarantees.
3702
3703         Test: touchadjustment/rotated-node.html
3704
3705         * page/TouchAdjustment.cpp:
3706         (WebCore::TouchAdjustment::snapTo):
3707
3708 2012-09-17  Filip Spacek  <fspacek@rim.com>
3709
3710         [BlackBerry] Use glDeleteProgram to delete OpenGL shader programs.
3711         https://bugs.webkit.org/show_bug.cgi?id=96771
3712
3713         Reviewed by Rob Buis.
3714
3715         Reviewed internally by Arvid Nilsson.
3716
3717         * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
3718         (WebCore::EGLImageLayerWebKitThread::EGLImageLayerWebKitThread):
3719         (WebCore::EGLImageLayerWebKitThread::~EGLImageLayerWebKitThread):
3720         (WebCore::EGLImageLayerWebKitThread::deleteFrontBuffer):
3721         (WebCore::EGLImageLayerWebKitThread::createShaderIfNeeded):
3722         (WebCore::EGLImageLayerWebKitThread::blitToFrontBuffer):
3723         * platform/graphics/blackberry/EGLImageLayerWebKitThread.h:
3724         (EGLImageLayerWebKitThread):
3725
3726 2012-09-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3727
3728         Revert r127457 and following fixes due to several hit-testing regressions
3729         https://bugs.webkit.org/show_bug.cgi?id=96830
3730
3731         Reviewed by Antonio Gomes.
3732
3733         The revert misssed one related follow-up.
3734
3735         * dom/Document.cpp:
3736         (WebCore::Document::updateHoverActiveState):
3737
3738 2012-09-17  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3739
3740         [TouchAdjustment] Adjusted point outside bounds for non-rectilinear targets
3741         https://bugs.webkit.org/show_bug.cgi?id=96098
3742
3743         Reviewed by Antonio Gomes.
3744
3745         Simplifies how snapTo tries to restrict the adjustment to the touch-area, and 
3746         at the same fix it to give better guarantees.
3747
3748         Test: touchadjustment/rotated-node.html
3749
3750         * page/TouchAdjustment.cpp:
3751         (WebCore::TouchAdjustment::snapTo):
3752
3753 2012-09-17  Yury Semikhatsky  <yurys@chromium.org>
3754
3755         Unreviewed. Fix Mac compilation.
3756
3757         * bindings/v8/DOMDataStore.h: added missing virtual modifier.
3758         (DOMDataStore):
3759
3760 2012-09-17  Yury Semikhatsky  <yurys@chromium.org>
3761
3762         Web Inspector: NMI don't double count fields of StaticDOMDataStore
3763         https://bugs.webkit.org/show_bug.cgi?id=96911
3764
3765         Reviewed by Alexander Pavlov.
3766
3767         Provided two separate memory usage reporting routines for static and
3768         scoped DOM data stores.
3769
3770         * bindings/v8/DOMDataStore.cpp:
3771         * bindings/v8/DOMDataStore.h:
3772         (DOMDataStore):
3773         * bindings/v8/ScopedDOMDataStore.cpp:
3774         (WebCore::ScopedDOMDataStore::reportMemoryUsage):
3775         (WebCore):
3776         * bindings/v8/ScopedDOMDataStore.h:
3777         (ScopedDOMDataStore):
3778         * bindings/v8/StaticDOMDataStore.cpp:
3779         (WebCore::StaticDOMDataStore::reportMemoryUsage):
3780         (WebCore):
3781         * bindings/v8/StaticDOMDataStore.h:
3782         (StaticDOMDataStore):
3783
3784 2012-09-17  Christophe Dumez  <christophe.dumez@intel.com>
3785
3786         [EFL] autoscroll-in-textarea.html fails on EFL
3787         https://bugs.webkit.org/show_bug.cgi?id=94150
3788
3789         Reviewed by Kenneth Rohde Christiansen.
3790
3791         Do not call adjustTextAreaStyle() from RenderThemeEfl::adjustTextAreaStyle().
3792         This is consistent with Mac port implementation.
3793
3794         Calling adjustTextAreaStyle() causes the TextArea in the test to display 6.5
3795         rows instead of the 6 that are requested. This causes the test case to fail
3796         because the top row that is being displayed when scrolling down is different
3797         than the one expected.
3798
3799         Test: fast/events/autoscroll-in-textarea.html
3800
3801         * platform/efl/RenderThemeEfl.cpp:
3802         (WebCore::RenderThemeEfl::adjustTextAreaStyle):
3803
3804 2012-09-17  Vsevolod Vlasov  <vsevik@chromium.org>
3805
3806         Web Inspector: XHR replay fixes: should remove replayed xhr from memory cache, should not assert.
3807         https://bugs.webkit.org/show_bug.cgi?id=96904
3808
3809         Reviewed by Yury Semikhatsky.
3810
3811         Replayed request is now removed from meory cache before replaying.
3812         Request body is now set to 0 when it was not present in original request.
3813
3814         Test: http/tests/inspector/network/network-xhr-replay.html
3815
3816         * inspector/InspectorResourceAgent.cpp:
3817         (WebCore::InspectorResourceAgent::replayXHR):
3818         * xml/XMLHttpRequest.cpp:
3819         (WebCore::XMLHttpRequest::sendFromInspector):
3820
3821 2012-09-17  Alejandro Piñeiro  <apinheiro@igalia.com>
3822
3823         AX: Regression (r126369) - toggle buttons no longer return accessible titles
3824         https://bugs.webkit.org/show_bug.cgi?id=94858
3825
3826         Reviewed by Chris Fleizach.
3827
3828         After the addition of the ToggleButtonRole some logic broke because some parts
3829         of the code were assuming/waiting for a ButtonRole
3830
3831         Test: platform/gtk/accessibility/aria-toggle-button-with-title.html
3832
3833         * accessibility/AccessibilityNodeObject.cpp:
3834         (WebCore::AccessibilityNodeObject::isImageButton): using
3835         isButton instead of a ButtonRole comparison
3836         (WebCore::AccessibilityNodeObject::isPressed): using isButton
3837         instead of a ButtonRole comparison
3838         (WebCore::AccessibilityNodeObject::actionElement):
3839         ToggleButtonRole also contemplated in order to call or not toElement
3840         (WebCore::AccessibilityNodeObject::title): ToggleButtonRole also
3841         contemplated in order to call or not textUnderElement
3842         * accessibility/AccessibilityObject.cpp:
3843         (WebCore::AccessibilityObject::actionVerb): buttonAction also
3844         assigned to ToggleButtonRole
3845         (WebCore::AccessibilityObject::isButton): isButton now returns
3846         that an object is a button if it is a ButtonRole, a
3847         PopUpButtonRole or a ToggleButtonRole
3848         * accessibility/AccessibilityObject.h:
3849         (AccessibilityObject): isButton is now implemented on the .c file
3850         * accessibility/AccessibilityRenderObject.cpp:
3851         (WebCore::AccessibilityRenderObject::actionVerb): ToggleButtonRole
3852         also returns a buttonAction
3853
3854 2012-09-14  Alexander Pavlov  <apavlov@chromium.org>
3855
3856         Web Inspector: Group selectors to highlight matched selector in the Styles pane of Elements Panel
3857         https://bugs.webkit.org/show_bug.cgi?id=96626
3858
3859         Reviewed by Vsevolod Vlasov.
3860
3861         Introduced evaluation of element.webkitMatchesSelector() for every part of a selector group (delimited by commas).
3862         Non-matching selectors in groups are dimmed. If element styles have changed so that the element matches none of the selectors,
3863         the entire group is rendered as matched.
3864
3865         * inspector/front-end/StylesSidebarPane.js:
3866         (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate.markCallback):
3867         (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
3868         (WebInspector.StylesSidebarPane.prototype._rebuildStyleRules):
3869         (WebInspector.StylePropertiesSection):
3870         (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup.mycallback):
3871         (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup.trim):
3872         (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup.resolvedCallback):
3873         (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup):
3874         (WebInspector.StylePropertiesSection.prototype._markMatchedSelectorsInGroup.matchesCallback):
3875         (WebInspector.StylePropertiesSection.prototype.startEditingSelector):
3876         (WebInspector.StylePropertiesSection.prototype._moveEditorFromSelector.markCallback):
3877         (WebInspector.StylePropertiesSection.prototype._moveEditorFromSelector):
3878         (WebInspector.StylePropertiesSection.prototype.editingSelectorCancelled):
3879         * inspector/front-end/elementsPanel.css:
3880         (.styles-section .selector):
3881         (.styles-section .selector-matches):
3882
3883 2012-09-17  Mike West  <mkwst@chromium.org>
3884
3885         Don't GC img elements blocked by CSP until error events fire.
3886         https://bugs.webkit.org/show_bug.cgi?id=94677
3887
3888         Reviewed by Jochen Eisinger.
3889
3890         Currently, the GC checks that no load events are pending for an image
3891         element before reclaiming its memory. It's not, however, checking that
3892         error events are taken care of. This leads to the potential of firing an
3893         event on a DOM element that we've already collected. That's a Bad Thing.
3894
3895         This patch adjusts the check to catch error events as well as load
3896         events, which should ensure that the element isn't collected until it's
3897         really ready. As a drive-by, it also changes the name of the check to
3898         'hasPendingActivity' from 'hasPendingLoadEvent' for clarity.
3899
3900         http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html
3901         should no longer crash, and the new
3902         http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html
3903         and fast/events/onerror-img-after-gc.html shouldn't crash either.
3904
3905         Tests: fast/events/onerror-img-after-gc.html
3906                http/tests/security/contentSecurityPolicy/img-blocked-no-gc-crash.html
3907
3908         * bindings/v8/V8GCController.cpp:
3909         (WebCore::calculateGroupId):
3910             Switch to using ImageLoader::hasPendingActivity().
3911         * html/HTMLImageElement.h:
3912         (WebCore::HTMLImageElement::hasPendingActivity):
3913             Switch to using ImageLoader::hasPendingActivity().
3914         * loader/ImageLoader.h:
3915         (WebCore::ImageLoader::hasPendingActivity):
3916             Added a check against pending error events in order to ensure that
3917             elements aren't garbage collected prematurely. Aslo renamed from
3918             ImageLoader::hasPendingLoadEvent for clarity.
3919         * svg/SVGImageElement.cpp:
3920         (WebCore::SVGImageElement::haveLoadedRequiredResources):
3921             Switch to using ImageLoader::hasPendingActivity().
3922
3923 2012-09-17  Philip Rogers  <pdr@google.com>
3924
3925         Make SVGPathSegList.appendItem O(1) instead of O(n)
3926         https://bugs.webkit.org/show_bug.cgi?id=94048
3927
3928         Reviewed by Nikolas Zimmermann.
3929
3930         Paths in SVG can be specified with a String (with the d attribute) or
3931         with an SVGPathSegList. In SVGPathElement a single representation is
3932         maintained: an SVGPathByteStream. To keep the byte stream synchronized with
3933         the d attribute and the PathSegList, this byte stream is
3934         rebuilt on every operation. As a result, any modification to the
3935         path is an O(n) operation.
3936
3937         This patch takes advantage of the stream aspect of SVGPathByteStream
3938         to make SVGPathSegList.append an O(1) operation instead of O(n).
3939         When an SVGPathSeg is appended to an SVGPathSegList, this patch parses
3940         the SVGPathSeg and directly appends the resulting bytes to the
3941         byte stream.
3942
3943         To achieve this some plumbing has been added to pass more information
3944         about the actual path changes from the SVGPathSegListTearOff to the
3945         SVGPathElement: instead of the generic commitChange() this patch adds
3946         commitChange(ListModification type). If we decide to change our
3947         internal path data structure in the future, this additional commitChange
3948         function can be used to pass the information needed to make
3949         SVGPathSegList synchronization faster.
3950
3951         SVG Path Benchmark (http://bl.ocks.org/1296930) showing just the
3952         appendItem() time used in building a 5000 segment path (avg of 3 runs):
3953         WebKit without patch: 562 ms
3954         Firefox 18.01a:       55 ms
3955         Opera 12.50 internal: 27 ms
3956         WebKit with patch:    7 ms
3957
3958         Test: perf/svg-path-appenditem.html
3959
3960             This test proves the claim: SVGPathSegList.appendItem is now O(1).
3961             Additional tests that appendItem works are covered with existing tests.
3962
3963         * svg/SVGPathByteStream.h:
3964         (WebCore::SVGPathByteStream::append):
3965
3966             This additional append method allows an SVGPathByteStream to be
3967             appended to another.
3968
3969         * svg/SVGPathElement.cpp:
3970         (WebCore::SVGPathElement::pathSegListChanged):
3971
3972             By passing the extra ListModification type to pathSegListChanged,
3973             SVGPathElement is now able to only synchronize the parts of the byte stream
3974             that actually changed. In this patch only append is treated
3975             differently but one can imagine other performance improvements this
3976             additional information allows.
3977
3978         * svg/SVGPathElement.h:
3979         (SVGPathElement):
3980         * svg/SVGPathParser.cpp:
3981         (WebCore::SVGPathParser::parsePathDataFromSource):
3982
3983             During normal SVGPathSegList parsing we enforce that the path start with a moveto
3984             command. This function has been expanded to make that optional so that parsing
3985             can be performed elsewhere in the path (e.g., in the middle).
3986
3987         * svg/SVGPathParser.h:
3988         (SVGPathParser):
3989         * svg/SVGPathSegList.cpp:
3990         (WebCore::SVGPathSegList::commitChange):
3991         * svg/SVGPathSegList.h:
3992         (SVGPathSegList):
3993         * svg/SVGPathSegWithContext.h:
3994         (WebCore::SVGPathSegWithContext::commitChange):
3995         * svg/SVGPathUtilities.cpp: