Fix the issue that Web Audio test case fails on PR3.
[framework/web/webkit-efl.git] / Source / WebCore / ChangeLog
1 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
2
3         Deleting across multiple paragraphs can change the style of surrounding text
4         https://bugs.webkit.org/show_bug.cgi?id=97266
5
6         Reviewed by Levi Weintraub.
7
8         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
9         even when we're not annotating. We don't want to preserve all styles because it's against
10         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
11         styles from a mail blockquote because that's not a style the user has applied. See the comment
12         in EditingStyle::wrappingStyleForSerialization.
13
14         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
15
16         * editing/EditingStyle.cpp:
17         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
18         (WebCore::EditingStyle::wrappingStyleForSerialization):
19
20 2012-09-24  Tony Chang  <tony@chromium.org>
21
22         flex-grow should be 1 when omitted from flex shorthand
23         https://bugs.webkit.org/show_bug.cgi?id=97480
24
25         Reviewed by Ojan Vafai.
26
27         We were using 0, based on an outdated version of the spec.
28
29         Tests: css3/flexbox/flex-property-parsing.html
30                css3/flexbox/flex-algorithm.html: New test case.
31
32         * css/CSSParser.cpp:
33         (WebCore::CSSParser::parseFlex):
34
35 2013-02-13  Morten Stenshorne  <mstensho@opera.com>
36
37         WebKit ignores column-rules wider than column-gap
38         https://bugs.webkit.org/show_bug.cgi?id=15553
39
40         Paint column rules even if they are wider than the gap.
41         Rules wider than the gap should just overlap with column contents.
42
43         Reviewed by Eric Seidel.
44
45         Test: fast/multicol/rule-thicker-than-gap.html
46
47         * rendering/RenderBlock.cpp:
48         (WebCore::RenderBlock::paintColumnRules):
49
50 2013-03-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
51
52         [EFL] Cancel mark on search field is not displayed
53         https://bugs.webkit.org/show_bug.cgi?id=94880
54
55         Reviewed by Kenneth Rohde Christiansen.
56
57         adjustSearchFieldCancelButtonStyle() doesn't set style width and height for search cancel button.
58         So, the button isn't showing up in search input field. Besides the button size should be scaled based
59         on the font size as chromium, qt, and blackberry ports.
60
61         Tests: fast/forms/search-cancel-button-style-sharing.html
62                fast/forms/search-rtl.html
63         * platform/efl/RenderThemeEfl.cpp:
64         (WebCore):
65         (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
66
67 2012-08-30  Kangil Han  <kangil.han@samsung.com>
68
69         Fix compile warning when enable tiled backing store
70         https://bugs.webkit.org/show_bug.cgi?id=95422
71
72         Reviewed by Kentaro Hara.
73
74         Fixed compile warning messages when enabled tiled backing store.
75         In case of TiledBackingStore, it was first thought about static_cast<unsigned>.
76         However, if minus value is assigned to the comparison, it would be critical.
77         So, it was modified as using int value in tiled coordinate calculation.
78
79         * page/Frame.cpp:
80         (WebCore::Frame::tiledBackingStorePaintEnd): comparison between signed and unsigned integer expressions [-Wsign-compare]
81         * platform/graphics/TiledBackingStore.cpp:
82         (WebCore::TiledBackingStore::invalidate): comparison between signed and unsigned integer expressions [-Wsign-compare]
83         (WebCore::TiledBackingStore::paint): comparison between signed and unsigned integer expressions [-Wsign-compare]
84         (WebCore::TiledBackingStore::coverageRatio): comparison between signed and unsigned integer expressions [-Wsign-compare]
85         (WebCore::TiledBackingStore::createTiles): comparison between signed and unsigned integer expressions [-Wsign-compare]
86         * platform/graphics/cairo/GLContext.cpp:
87         (WebCore::GLContext::createOffscreenContext): no return statement in function returning non-void [-Wreturn-type]
88
89 2012-09-28  Alberto Garcia  <agarcia@igalia.com>
90
91         TextureMapperGL: fix -Wsign-compare compilation warning.
92         https://bugs.webkit.org/show_bug.cgi?id=97928
93
94         Reviewed by Martin Robinson.
95
96         Use size_t rather than int to iterate over FilterOperations.
97
98         * platform/graphics/texmap/TextureMapperGL.cpp:
99         (WebCore::BitmapTextureGL::applyFilters):
100
101 2013-03-11  Kent Tamura  <tkent@chromium.org>
102
103         Inappropriate validation message for required number/date input elements
104         https://bugs.webkit.org/show_bug.cgi?id=111982
105
106         Reviewed by Kentaro Hara.
107
108         For validation message, badInput messages should take precedence
109         over valueMissing messages because users already filled out the
110         field with a bad value.
111
112         Tests: Update fast/forms/validationMessage.html
113
114         * html/InputType.cpp:
115         (WebCore::InputType::validationMessage):
116         Check badInput first.
117
118 2013-03-11  Kent Tamura  <tkent@chromium.org>
119
120         Refactoring: Move the content of HTMLInputElement::subtreeHasChanged to TextFieldInputType
121         https://bugs.webkit.org/show_bug.cgi?id=103195
122
123         Reviewed by Kentaro Hara.
124
125         HTMLInputElement::subtreeHasChanged is called only if the input is
126         a text field. The code should be moved to TextFieldInputType.
127
128         No new tests. This should not change any behavior.
129
130         * html/HTMLInputElement.cpp:
131         - Remove unnecessary NumberInputType.h inclusion.
132         - Remove convertFromVisibleValue. It was used only by subtreeHasChanged.
133         (WebCore::HTMLInputElement::subtreeHasChanged):
134         Move the code to TextFieldInputType::subtreeHasChanged except
135         calculateAndAdjustDirectionality, which is a protected member of
136         HTMLElement.
137         * html/HTMLInputElement.h:
138         (HTMLInputElement): Remove convertFromVisibleValue.
139
140         * html/InputType.cpp:
141         Move convertFromVisibleValue to TextFieldInputType.
142         (WebCore::InputType::subtreeHasChanged):
143         Add ASSERT_NOT_REACHED.
144         * html/InputType.h:
145         (InputType): Remove convertFromVisibleValue.
146
147         * html/TextFieldInputType.cpp:
148         (WebCore::TextFieldInputType::convertFromVisibleValue):
149         Moved from InputType.
150         (WebCore::TextFieldInputType::subtreeHasChanged):
151         Moved from HTMLInputElement. A latter part is moved to
152         didSetValueByUserEdit to be hooked by SearchInputType.
153         (WebCore::TextFieldInputType::didSetValueByUserEdit):
154         Moved from HTMLInputElement::subtreeHasChanged, and clean up the code.
155         * html/TextFieldInputType.h:
156         (TextFieldInputType):
157         - Move convertFromVisibleValue from InputType.
158         - Add didSetValueByUserEdit and subtreeHasChanged.
159
160         * html/SearchInputType.cpp:
161         (WebCore::SearchInputType::didSetValueByUserEdit):
162         Renamed from subtreeHasChanged, and calls TextFieldInputType::didSetValueByUserEdit.
163         * html/SearchInputType.h:
164         (SearchInputType): Rename subtreeHasChanged to didSetValueByUserEdit.
165
166 2012-11-22  Kentaro Hara  <haraken@chromium.org>
167
168         [V8] Move WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer
169         https://bugs.webkit.org/show_bug.cgi?id=103061
170
171         Reviewed by Adam Barth.
172
173         This is an incremental step to remove WorkerExecutionContextProxy.
174         This patch moves WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer.
175         This patch also renames methods so that the names become consistent
176         between the main thread and workers.
177
178         No tests. No change in behavior.
179
180         * bindings/v8/V8Initializer.cpp:
181         (WebCore::reportFatalErrorInMainThread):
182         (WebCore::messageHandlerInMainThread):
183         (WebCore::failedAccessCheckCallbackInMainThread):
184         (WebCore::V8Initializer::initializeMainThreadIfNeeded):
185         (WebCore::reportFatalErrorInWorker):
186         (WebCore):
187         (WebCore::messageHandlerInWorker):
188         (WebCore::V8Initializer::initializeWorkerIfNeeded):
189         * bindings/v8/V8Initializer.h:
190         (V8Initializer):
191         * bindings/v8/WorkerContextExecutionProxy.cpp:
192         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
193         * bindings/v8/WorkerContextExecutionProxy.h:
194         (WorkerContextExecutionProxy):
195
196 2012-11-25  Christophe Dumez  <christophe.dumez@intel.com>
197
198         [EFL] Refactor RenderThemeEfl::ThemePartCacheEntry::reuse()
199         https://bugs.webkit.org/show_bug.cgi?id=103189
200
201         Reviewed by Kenneth Rohde Christiansen.
202
203         Check if the entry size and type changed in
204         RenderThemeEfl::ThemePartCacheEntry::reuse() to avoid
205         useless processing if one of them did not change.
206
207         Remove useless call to cairo_surface_finish() since
208         we are using a smart pointer for the surface.
209
210         Resize the edge object *after* loading its content
211         from the theme file as it seems more logical this
212         way.
213
214         No new tests, no behavior change for layout tests.
215
216         * platform/efl/RenderThemeEfl.cpp:
217         (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
218         * platform/efl/RenderThemeEfl.h:
219         (ThemePartCacheEntry):
220
221 2012-11-25  Ryosuke Niwa  <rniwa@webkit.org>
222
223         Rename DynamicNodeList to LiveNodeList
224         https://bugs.webkit.org/show_bug.cgi?id=103197
225
226         Reviewed by Ojan Vafai.
227
228         Rename DynamicNodeList to LiveNodeList to match the terminology used in DOM4 working draft:
229         http://www.w3.org/TR/2012/WD-dom-20120405/#concept-collection-live
230         "A collection (either NodeList or HTMLCollection) can be either live or static".
231
232         Also rename DynamicNodeListCacheBase to LiveNodeListBase, and merge DynamicSubtreeNodeList
233         into LiveNodeList (old DynamicNodeList) now that the only difference between those two classes
234         is the former calling registerNodeListCache and unregisterNodeListCache on Document.
235
236         This patch completes the series of simplification of NodeList/HTMLCollection classes.
237
238         * CMakeLists.txt:
239         * GNUmakefile.list.am:
240         * Target.pri:
241         * WebCore.gypi:
242         * WebCore.xcodeproj/project.pbxproj:
243         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
244         (WebCore::getNamedItems):
245         * bindings/js/JSNodeListCustom.cpp:
246         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
247         * bindings/v8/custom/V8NodeListCustom.cpp:
248         (WebCore::V8NodeList::opaqueRootForGC):
249         * dom/ChildNodeList.cpp:
250         (WebCore::ChildNodeList::ChildNodeList):
251         (WebCore::ChildNodeList::nodeMatches):
252         * dom/ChildNodeList.h:
253         * dom/ClassNodeList.cpp:
254         (WebCore::ClassNodeList::ClassNodeList):
255         * dom/ClassNodeList.h:
256         * dom/DOMAllInOne.cpp:
257         * dom/Document.cpp:
258         (WebCore::Document::registerNodeListCache):
259         (WebCore::Document::unregisterNodeListCache):
260         (WebCore):
261         * dom/Document.h:
262         (WebCore):
263         (Document):
264         * dom/DynamicNodeList.cpp: Removed.
265         * dom/DynamicNodeList.h: Removed.
266         * dom/LiveNodeList.cpp: Copied from Source/WebCore/dom/DynamicNodeList.cpp.
267         (WebCore::LiveNodeListBase::rootNode):
268         (WebCore::LiveNodeListBase::invalidateCache):
269         (WebCore::LiveNodeListBase::invalidateIdNameCacheMaps):
270         (WebCore::LiveNodeListBase::reportMemoryUsage):
271         (WebCore::LiveNodeList::namedItem):
272         * dom/LiveNodeList.h: Copied from Source/WebCore/dom/DynamicNodeList.h.
273         (WebCore::LiveNodeListBase::LiveNodeListBase):
274         (WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange):
275         (WebCore::LiveNodeList::LiveNodeList):
276         (WebCore::LiveNodeList::~LiveNodeList):
277         (LiveNodeList):
278         * dom/MicroDataItemList.cpp:
279         (WebCore::MicroDataItemList::MicroDataItemList):
280         * dom/MicroDataItemList.h:
281         * dom/NameNodeList.cpp:
282         (WebCore::NameNodeList::NameNodeList):
283         * dom/NameNodeList.h:
284         * dom/Node.cpp:
285         (WebCore::shouldInvalidateNodeListCachesForAttr):
286         (WebCore::Document::invalidateNodeListCaches):
287         * dom/Node.h:
288         (WebCore):
289         * dom/NodeList.h:
290         (WebCore::NodeList::isLiveNodeList):
291         * dom/NodeRareData.h:
292         (NodeListsNodeData):
293         (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
294         (WebCore::NodeListsNodeData::removeCacheWithName):
295         (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
296         (WebCore::NodeListsNodeData::adoptTreeScope):
297         * dom/PropertyNodeList.cpp:
298         (WebCore::PropertyNodeList::PropertyNodeList):
299         * dom/PropertyNodeList.h:
300         * dom/TagNodeList.cpp:
301         (WebCore::TagNodeList::TagNodeList):
302         * dom/TagNodeList.h:
303         * html/HTMLCollection.cpp:
304         (WebCore::HTMLCollection::HTMLCollection):
305         (WebCore::LiveNodeListBase::iterateForNextNode):
306         (WebCore::LiveNodeListBase::itemBeforeOrAfter):
307         (WebCore::LiveNodeListBase::itemBefore):
308         (WebCore::LiveNodeListBase::itemAfter):
309         (WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
310         (WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
311         (WebCore::LiveNodeListBase::setItemCache):
312         (WebCore::LiveNodeListBase::length):
313         (WebCore::LiveNodeListBase::item):
314         (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
315         * html/HTMLCollection.h:
316         * html/LabelsNodeList.cpp:
317         (WebCore::LabelsNodeList::LabelsNodeList):
318         * html/LabelsNodeList.h:
319         * html/RadioNodeList.cpp:
320         (WebCore::RadioNodeList::RadioNodeList):
321         * html/RadioNodeList.h:
322
323 2012-10-08  Robert Hogan  <robert@webkit.org>
324
325         Changing position:relative to position:static results in mis-positioned div
326         https://bugs.webkit.org/show_bug.cgi?id=26397
327
328         Reviewed by Ojan Vafai.
329
330         When a block changes position from relative to static it is no longer the containing block for any
331         positioned objects it may have. If any of those positioned objects actually have a position specified
332         they are going to need a layout as their new containing block will likely have a different location they
333         need to offset from. Positioned objects without a specified position always get a layout anyway 
334         in layoutPositionedObjects() so no need to worry about them in this situation. 
335
336         Test: fast/block/abspos-child-container-changes-from-relative-to-static-expected.html
337
338         * rendering/RenderBlock.cpp:
339         (WebCore::RenderBlock::styleWillChange):
340         (WebCore::RenderBlock::layoutPositionedObjects):
341         (WebCore::RenderBlock::removePositionedObjects):
342         * rendering/RenderBlock.h:
343         (RenderBlock):
344
345 2012-11-25  Kent Tamura  <tkent@chromium.org>
346
347         Correct input[type=number] value sanitization for user-input
348         https://bugs.webkit.org/show_bug.cgi?id=103018
349
350         Reviewed by Kentaro Hara.
351
352         If a number field has non-number string, HTMLInputElement::value is not
353         updated and returns the past valid value. It doesn't match to the value
354         sanitization algorithm defined by the HTML standard [1], and Opera's
355         behavior. We should sanitize non-number strings to "".
356
357         [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)
358         > The value sanitization algorithm is as follows: If the value of the
359         > element is not a valid floating-point number, then set it to the empty
360         > string instead.
361
362         No new tests. Update existing tests;
363         fast/forms/number/number-commit-valid-only.html and
364         fast/forms/number/number-unacceptable-style.html
365
366         * html/HTMLInputElement.cpp:
367         (WebCore::HTMLInputElement::subtreeHasChanged):
368         Remove isAcceptableValue check.
369
370         * html/HTMLInputElement.h:
371         (HTMLInputElement): isAcceptableValue is no longer needed.
372         * html/InputType.cpp: Remove isAcceptableValue.
373         * html/InputType.h: Ditto.
374         * html/NumberInputType.cpp: Ditto.
375         (WebCore::NumberInputType::hasUnacceptableValue):
376         Fold the isAcceptableValue content into this.
377         * html/NumberInputType.h:
378         (NumberInputType): Remove isAcceptableValue.
379
380 2012-12-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
381
382         Remove conversion to/from float and float division from ImageFrame::setRGBA
383         https://bugs.webkit.org/show_bug.cgi?id=103693
384
385         Reviewed by Brent Fulgham.
386
387         Replace floating point operations used for alpha premultiply with fixed point arithmetic
388         which is basically integer operations. Allows to shave extra couple percent from decoding
389         images with transparency.
390
391         Covered by existing tests.
392
393         * platform/image-decoders/ImageDecoder.h:
394         (ImageFrame):
395         (WebCore::ImageFrame::fixPointUnsignedMultiply):
396         (WebCore::ImageFrame::setRGBA):
397
398 2012-11-30  Jer Noble  <jer.noble@apple.com>
399
400         Unreviewed Windows build fix.
401
402         Add a default: entry to an case statement to fix a build error when compiled in VS2005.
403
404         * html/MediaController.cpp:
405         (MediaController::playbackState):
406
407 2012-11-28  Byungwoo Lee  <bw80.lee@samsung.com>
408
409         [EFL] Use mutex locker in wakeUp() to ensure thread-safety.
410         https://bugs.webkit.org/show_bug.cgi?id=101132
411
412         Reviewed by Gyuyoung Kim.
413
414         Add mutex locker for the ecore pipe to ensure thread-safety of
415         RunLoop::wakeUp().
416
417         RunLoop::wakeUp() can be called by multiple thread. It uses
418         ecore_pipe_write() function but the function is not thread-safe.
419
420         * platform/RunLoop.h:
421         (RunLoop):
422         * platform/efl/RunLoopEfl.cpp:
423         (WebCore::RunLoop::wakeUp):
424
425 2012-11-09  Huang Dongsung  <luxtella@company100.net>
426
427         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
428         https://bugs.webkit.org/show_bug.cgi?id=101656
429
430         Reviewed by Kenneth Rohde Christiansen.
431
432         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
433         smartly, but currently TiledBackingStore expects a contents rect is big enough
434         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
435         is usually wrong expectation.
436
437         We must compute cover and keep rects using the visibleRect, instead of
438         the rect intersecting the visibleRect with m_rect, because TBS can be
439         used as a backing store of GraphicsLayer and the visible rect usually
440         does not intersect with m_rect.
441         In the below case, the intersecting rect is an empty.
442
443          +---------------+
444          |               |
445          |   m_rect      |
446          |       +-------|-----------------------+
447          |       | HERE  |  cover or keep        |
448          +---------------+      rect             |
449                  |         +---------+           |
450                  |         | visible |           |
451                  |         |  rect   |           |
452                  |         +---------+           |
453                  |                               |
454                  |                               |
455                  +-------------------------------+
456
457         We must create or keep the tiles in the HERE region. Currently in the
458         case, we do not create or keep tiles on the HERE region. Moreover, in
459         the case, we early return, which means we don't remove any tiles. It
460         causes to waste heap and video memory.
461
462         This patch changes TiledBackingStore to manage tiles smartly for
463         Coordinated Graphics.
464
465         Changing cache policy is not testable in layout tests.
466
467         * platform/graphics/TiledBackingStore.cpp:
468         (WebCore::TiledBackingStore::visibleRect):
469         (WebCore::TiledBackingStore::visibleAreaIsCovered):
470         (WebCore::TiledBackingStore::createTiles):
471         (WebCore::TiledBackingStore::adjustForContentsRect):
472         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
473         * platform/graphics/TiledBackingStore.h:
474         (TiledBackingStore):
475
476 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
477
478         SQLResultSet.rowsAffected not cleared
479         https://bugs.webkit.org/show_bug.cgi?id=46070
480
481         Reviewed by Kenneth Rohde Christiansen.
482
483         SQLResultSet.rowsAffected is supposed to return the number
484         of rows that were changed by the statement. For "SELECT"
485         statements, it should return 0.
486
487         However, our implementation currently relies on sqlite3_changes()
488         to compute this value. sqlite3_changes() returns the number of
489         direct row changes in the most recent INSERT, UPDATE, or DELETE
490         statement within the same trigger context. Unfortunately, the
491         most recent INSERT, UPDATE, or DELETE statement may not be the
492         last statement. As a consequence, if you INSERT 1 row, then
493         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
494         INSERT and the SELECT statements.
495
496         The proposed solution is to use sqlite3_total_changes() instead
497         of sqlite3_changes(). sqlite3_total_changes() returns the number
498         of row changes caused by INSERT, UPDATE or DELETE statements since
499         the database connection was opened. We now store the value
500         returned by sqlite3_total_changes() before each statement in
501         order to return the count difference in
502         SQLiteDatabase::lastChanges().
503
504         Test: storage/websql/execute-sql-rowsAffected.html
505
506         * platform/sql/SQLiteDatabase.cpp:
507         (WebCore::SQLiteDatabase::SQLiteDatabase):
508         (WebCore::SQLiteDatabase::updateLastChangesCount):
509         (WebCore):
510         (WebCore::SQLiteDatabase::lastChanges):
511         * platform/sql/SQLiteDatabase.h:
512         (SQLiteDatabase):
513         * platform/sql/SQLiteStatement.cpp:
514         (WebCore::SQLiteStatement::step):
515
516 2012-11-20  Keishi Hattori  <keishi@webkit.org>
517
518         Week picker width is too small
519         https://bugs.webkit.org/show_bug.cgi?id=102766
520
521         Reviewed by Kent Tamura.
522
523         The width of week picker was too small because we were forgetting about
524         the week number column when calculating the desired width.
525
526         No new tests. Covered by week-picker-appearance*.html.
527
528         * Resources/pagepopups/calendarPicker.css:
529         (.week-mode .week-column): Needs to be table-cell.
530         * Resources/pagepopups/calendarPicker.js:
531         (CalendarPicker.prototype.fixWindowSize):
532
533 2012-11-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>
534
535         [GTK] no volume slider in HTML5 media element controls
536         https://bugs.webkit.org/show_bug.cgi?id=97192
537
538         Reviewed by Philippe Normand.
539
540         r115829 was causing this regression so it was partially
541         reverted. The revert causes some small regressions, in the tests
542         but it is better to have the volume slider shown.
543
544         * css/mediaControlsGtk.css:
545         (audio::-webkit-media-controls-panel)
546         (video::-webkit-media-controls-panel): Partially reverted
547         r115829.
548
549 2012-11-19  Antti Koivisto  <antti@apple.com>
550
551         Collect user style sheets in DocumentStyleSheetCollection
552         https://bugs.webkit.org/show_bug.cgi?id=102683
553
554         Reviewed by Andreas Kling.
555
556         Move the user stylesheet collection logic from StyleResolver to DocumentStyleSheetCollection.
557         
558         * css/StyleResolver.cpp:
559         (WebCore::StyleResolver::StyleResolver):
560         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
561         (WebCore::collectCSSOMWrappers):
562         * css/StyleResolver.h:
563         (StyleResolver):
564         * dom/DocumentStyleSheetCollection.cpp:
565         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
566         (WebCore::DocumentStyleSheetCollection::pageUserStyleSheet):
567         (WebCore::DocumentStyleSheetCollection::clearPageUserStyleSheet):
568         (WebCore::DocumentStyleSheetCollection::updatePageUserStyleSheet):
569         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
570         (WebCore::collectActiveStyleSheetsFromSeamlessParents):
571         (WebCore::DocumentStyleSheetCollection::updateStyleResolver):
572         
573             Factor the StyleResolver updating code to function.
574
575         (WebCore):
576         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
577         
578             Collect the user style sheets. Some renaming and other minor refactoring.
579
580         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
581         * dom/DocumentStyleSheetCollection.h:
582         (WebCore::DocumentStyleSheetCollection::activeUserStyleSheets):
583         
584             Add activeUserStyleSheets vector that contains all user stylesheets from different sources,
585             similar to activeAuthorStyleSheets.
586
587         (DocumentStyleSheetCollection):
588         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
589
590 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
591
592         Remove unneeded optimization in Element::isInTopLayer
593         https://bugs.webkit.org/show_bug.cgi?id=102772
594
595         Reviewed by Andreas Kling.
596
597         There's no reason to worry about calling elementRareData() multiple
598         times in this non performance sensitive code path as it's only used
599         in HTMLDialogElement's showModal and close methods.
600
601         No new tests, just simplification.
602
603         * dom/Element.cpp:
604         (WebCore::Element::setIsInTopLayer):
605
606 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
607
608         Simplify Element::isSpellCheckingEnabled
609         https://bugs.webkit.org/show_bug.cgi?id=102779
610
611         Reviewed by Andreas Kling.
612
613         isSpellCheckingEnabled contains logic that duplicates parentOrHostElement
614         and can be simplified by just calling that.
615
616         No new tests, just simplification.
617
618         * dom/Element.cpp:
619         (WebCore::Element::isSpellCheckingEnabled):
620
621 2012-11-20  Kihong Kwon  <kihong.kwon@samsung.com>
622
623         Apply DeviceController as parent class of DeviceMotionController.
624         https://bugs.webkit.org/show_bug.cgi?id=102578
625
626         Reviewed by Hajime Morita.
627
628         DeviceController needs to be applied as parent class of DeviceMotionController
629         because DeviceController which is extracted as parent class of
630         DeviceMotionController and DeviceOrientationController is already added.
631         Therefore duplicated implementation can be removed.
632
633         Covered by existing tests.
634
635         * dom/DeviceMotionClient.h:
636         * dom/DeviceMotionController.cpp:
637         (WebCore::DeviceMotionController::DeviceMotionController):
638         (WebCore::DeviceMotionController::didChangeDeviceMotion):
639         (WebCore::DeviceMotionController::deviceMotionClient):
640         (WebCore::DeviceMotionController::hasLastData):
641         (WebCore::DeviceMotionController::getLastEvent):
642         (WebCore::DeviceMotionController::from):
643         (WebCore):
644         * dom/DeviceMotionController.h:
645         (WebCore):
646         (WebCore::DeviceMotionController::~DeviceMotionController):
647         (DeviceMotionController):
648         * dom/Document.cpp:
649         Remove all implementations which are related DeviceOrientationEvnet and DeviceMotionEvent.
650         Because DeviceController checks suspend and stop status of active dom object before dispatchEvent.
651         (WebCore::Document::suspendActiveDOMObjects):
652         (WebCore::Document::resumeActiveDOMObjects):
653         * loader/EmptyClients.h:
654         * page/DOMWindow.cpp:
655         (WebCore::DOMWindow::addEventListener):
656         (WebCore::DOMWindow::removeEventListener):
657         (WebCore::DOMWindow::removeAllEventListeners):
658
659 2012-11-20  Kentaro Hara  <haraken@chromium.org>
660
661         [V8] Remove V8ParameterBase
662         https://bugs.webkit.org/show_bug.cgi?id=102774
663
664         Reviewed by Adam Barth.
665
666         V8ParameterBase is a redundant indirection.
667         We can flatten methods of V8ParameterBase to V8Parameter.
668
669         No tests. No change in behavior.
670
671         * bindings/v8/V8StringResource.h:
672         (WebCore::V8Parameter::V8Parameter):
673         (V8Parameter):
674         (WebCore::V8Parameter::toString):
675         (WebCore::::prepare):
676
677 2012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>
678
679         Use localized date-time format in datetime input
680         https://bugs.webkit.org/show_bug.cgi?id=102769
681
682         Reviewed by Kent Tamura.
683
684         Move the implementation of Locale::dateTimeFormatWithSeconds and Locale::dateTimeFormatWithoutSeconds
685         to its subclasses and use platform-specific methods to get date-time pattern.
686         Because Windows does not provide an API to get date-time pattern. We use fixed "{date} {time}"
687         pattern for Windows.
688
689         Test: fast/forms/datetime/datetime-appearance-l10n.html
690
691         * platform/text/LocaleICU.cpp:
692         (WebCore::LocaleICU::initializeDateTimeFormat): Retrieve datetime formats too.
693         (WebCore::LocaleICU::dateTimeFormatWithSeconds): Added.
694         (WebCore):
695         (WebCore::LocaleICU::dateTimeFormatWithoutSeconds): Added.
696         * platform/text/LocaleICU.h:
697         (LocaleICU): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
698         * platform/text/LocaleNone.cpp:
699         (LocaleNone):
700         (WebCore::LocaleNone::dateTimeFormatWithSeconds): Added. Always returns "dd/MM/yyyyy HH:mm:ss".
701         (WebCore):
702         (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Added. Always returns "dd/MM/yyyyy HH:mm".
703         * platform/text/PlatformLocale.cpp:
704         (WebCore): Remove dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() as these are now pure virtual.
705         * platform/text/PlatformLocale.h:
706         (Locale): Make dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() pure virtual.
707         * platform/text/mac/LocaleMac.h:
708         (LocaleMac): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
709         * platform/text/mac/LocaleMac.mm:
710         (WebCore::LocaleMac::dateTimeFormatterWithSeconds): Added.
711         (WebCore):
712         (WebCore::LocaleMac::dateTimeFormatterWithoutSeconds): Added.
713         (WebCore::LocaleMac::dateTimeFormatWithSeconds): Added.
714         (WebCore::LocaleMac::dateTimeFormatWithoutSeconds): Added.
715         * platform/text/win/LocaleWin.cpp:
716         (WebCore::LocaleWin::dateTimeFormatWithSeconds): Copied from original Locale::dateTimeFormatWithSeconds().
717         (WebCore):
718         (WebCore::LocaleWin::dateTimeFormatWithoutSeconds): Copied from original Locale::dateTimeFormatWithoutSeconds().
719         * platform/text/win/LocaleWin.h:
720         (LocaleWin): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
721
722 2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
723
724         Unreviewed, rolling out r135257.
725         http://trac.webkit.org/changeset/135257
726         https://bugs.webkit.org/show_bug.cgi?id=102777
727
728         Broke Chromium Debug compilation (Requested by yurys on
729         #webkit).
730
731         * bindings/v8/DOMDataStore.h:
732         (WebCore::DOMDataStore::getNode):
733
734 2012-11-20  Vsevolod Vlasov  <vsevik@chromium.org>
735
736         Web Inspector: Revert r133149: breaks revision reverting
737         https://bugs.webkit.org/show_bug.cgi?id=102672
738
739         Reviewed by Yury Semikhatsky.
740
741         * inspector/front-end/JavaScriptSourceFrame.js:
742         (WebInspector.JavaScriptSourceFrame):
743         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
744         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
745         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
746
747 2012-11-19  Csaba Osztrogonác  <ossy@webkit.org>
748
749         [Qt][Win] Unreviewed speculative buildfix after r135217.
750
751         * platform/win/WindowsExtras.h:
752
753 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
754
755         Unreviewed. Fix Chromium Win compilation after r135255.
756         https://bugs.webkit.org/show_bug.cgi?id=97803
757
758         * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which
759         was deleted in the aforementioned change.
760
761 2012-11-19  Kentaro Hara  <haraken@chromium.org>
762
763         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
764         https://bugs.webkit.org/show_bug.cgi?id=102158
765
766          Reviewed by Adam Barth.
767
768         A follow-up patch for r135230. This patch adds a correct ASSERTION.
769
770         No tests. No change in behavior.
771
772         * bindings/v8/DOMDataStore.h:
773         (WebCore::DOMDataStore::getNode):
774
775 2012-11-19  Kentaro Hara  <haraken@chromium.org>
776
777         [JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm
778         https://bugs.webkit.org/show_bug.cgi?id=102757
779
780         Reviewed by Adam Barth.
781
782         In CodeGeneratorJS.pm $implClassName and $interfaceName are
783         equivalent. We're using them interchangeably. We should replace
784         $implClassName with $interfaceName.
785
786         No tests. No change in behavior.
787
788         * bindings/scripts/CodeGeneratorJS.pm:
789         (AddClassForwardIfNeeded):
790         (GenerateGetOwnPropertySlotBody):
791         (GenerateGetOwnPropertyDescriptorBody):
792         (GenerateHeader):
793         (GenerateOverloadedFunction):
794         (GenerateImplementation):
795         (GenerateParametersCheck):
796         (GenerateImplementationFunctionCall):
797         (NativeToJSValue):
798
799 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
800
801         Port DragDataWin.cpp to WinCE
802         https://bugs.webkit.org/show_bug.cgi?id=97803
803
804         Reviewed by Brent Fulgham.
805
806         Add two simple #if OS(WINCE) to DragDataWin.cpp, so it can be used by the WinCE port too.
807
808         * PlatformWinCE.cmake:
809         * platform/win/DragDataWin.cpp:
810         (WebCore::DragData::containsFiles):
811         (WebCore::DragData::numberOfFiles):
812         (WebCore::DragData::asFilenames):
813         * platform/wince/DragDataWinCE.cpp: Removed.
814
815 2012-11-19  Pan Deng  <pan.deng@intel.com>
816
817         [Web Inspector] This patch makes script line number search-able in Timeline panel.
818         https://bugs.webkit.org/show_bug.cgi?id=101910.
819
820         Reviewed by Pavel Feldman.
821
822         Script line number is visible in Timeline panel, however, not search-able. This patch makes it search-able.
823
824         No new tests. 
825
826         * inspector/front-end/TimelinePanel.js:
827         (WebInspector.TimelineRecordListRow.prototype.update):
828         (WebInspector.TimelineRecordListRow.testContentMatching):
829         * inspector/front-end/TimelinePresentationModel.js:
830         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
831         (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
832         (WebInspector.TimelinePresentationModel.Record.prototype.detailsNode):
833         (WebInspector.TimelinePresentationModel.Record.prototype._createSpanWithText):
834         (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
835
836 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
837
838         Remove unneeded null check in NodeRendererFactory::createRendererIfNeeded
839         https://bugs.webkit.org/show_bug.cgi?id=102765
840
841         Reviewed by Ojan Vafai.
842
843         If parentRenderer() was null then we return early from
844         createRendererIfNeeded() because shouldCreateRenderer() will return false
845         so there's no reason to check for it again.
846
847         Additionally if either parentRenderer() or style() is null then
848         implementations of rendererIsNeeded() will crash, so add asserts to
849         make this assumption more clear.
850
851         No new tests, just simplification.
852
853         * dom/NodeRenderingContext.cpp:
854         (WebCore::NodeRendererFactory::createRendererIfNeeded):
855
856 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
857
858         [Refactoring] Remove WebCore::isInsertionPoint(Node*)
859         https://bugs.webkit.org/show_bug.cgi?id=102756
860
861         Reviewed by Hajime Morita.
862
863         Now that WebCore::isInsertionPoint(Node* node) does nothing special. We can remove this.
864
865         No new tests, simple refactoring.
866
867         * dom/ComposedShadowTreeWalker.cpp:
868         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
869         * dom/ContainerNode.cpp:
870         (WebCore::childAttachedAllowedWhenAttachingChildren):
871         * html/shadow/ContentDistributor.cpp:
872         (WebCore::ContentDistributor::invalidate):
873         * html/shadow/InsertionPoint.cpp:
874         (WebCore::InsertionPoint::isActive):
875         * html/shadow/InsertionPoint.h:
876         (WebCore::toInsertionPoint):
877         (WebCore::isActiveInsertionPoint):
878         (WebCore::isLowerEncapsulationBoundary):
879         (WebCore::parentNodeForDistribution):
880         * testing/Internals.cpp:
881         (WebCore::Internals::isValidContentSelect):
882
883 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
884
885         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <progress> ElementShadow.
886         https://bugs.webkit.org/show_bug.cgi?id=101703
887
888         Reviewed by Hajime Morita.
889
890         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
891         setPseudo()/pseudo() instead.
892
893         No new tests, simple refactoring.
894
895         * html/shadow/ProgressShadowElement.cpp:
896         (WebCore::ProgressInnerElement::ProgressInnerElement):
897         * html/shadow/ProgressShadowElement.h:
898         (ProgressInnerElement):
899         (WebCore::ProgressBarElement::ProgressBarElement):
900         (ProgressBarElement):
901         (WebCore::ProgressValueElement::ProgressValueElement):
902
903 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
904
905         Unreviewed. Fix Chromium Debug compilation after r135230.
906         https://bugs.webkit.org/show_bug.cgi?id=102158
907
908         Removed ASSERT that used instance field in a static method.
909
910         * bindings/v8/DOMDataStore.h:
911         (WebCore::DOMDataStore::getWrapperFromObject):
912
913 2012-11-19  Chris Guan  <chris.guan@torchmobile.com.cn>
914
915         [Blackberry] When a frame is being detached, cancel all its network jobs.
916         https://bugs.webkit.org/show_bug.cgi?id=102758
917
918         Reviewed by George Staikos.
919
920         I use FrameDestructionObserver to refactor Networkjob code.
921         NetworkJob is inheriting from FrameDestructionObserver to be
922         aware of frame's destroyed. When a frame is being detached,
923         the willDetachPage() can be called in which we can cancel 
924         the job. This patch reverted the fix for RIM PR134207 as well.
925
926         Manually test is on 
927         "http://www.reuters.com/article/2012/01/27/us-greece-idUSTRE80P0DE20120127"
928         which triggers a ping loader.
929
930         No behavior changed, no new layout tests.
931
932         * platform/network/blackberry/NetworkJob.cpp:
933         (WebCore::NetworkJob::NetworkJob):
934         (WebCore::NetworkJob::initialize):
935         (WebCore::NetworkJob::handleNotifyHeaderReceived):
936         (WebCore::NetworkJob::startNewJobWithRequest):
937         (WebCore::NetworkJob::frameDestroyed):
938         (WebCore):
939         (WebCore::NetworkJob::willDetachPage):
940         * platform/network/blackberry/NetworkJob.h:
941         (NetworkJob):
942         * platform/network/blackberry/NetworkManager.cpp:
943         (WebCore::NetworkManager::startJob):
944         * platform/network/blackberry/NetworkManager.h:
945         (NetworkManager):
946         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
947         (WebCore::ResourceHandle::start):
948         (WebCore::ResourceHandle::loadResourceSynchronously):
949
950 2012-11-19  Matt Falkenhagen  <falken@chromium.org>
951
952         Implement the new stacking layer needed by the Fullscreen API and the new <dialog> element
953         https://bugs.webkit.org/show_bug.cgi?id=84796
954
955         Reviewed by Julien Chaffraix.
956
957         This adds the top layer element stack to Document. The Fullscreen
958         specification mandates that we track the ordering of the DOM nodes in
959         the top layer, not the renderers. That makes it hard to implement on
960         the rendering side only.
961
962         Elements in the top layer get a layer. Layers in the top layer are
963         added to the root layer's child list after normal layers and in the
964         order of the top layer stack. This way, the top layer appears above
965         all other stacking contexts and in the desired order.
966
967         In addition, top layer renderers are added as children of RenderView
968         in top layer order. This is to satisfy requirements such as the
969         containing block of an element in the top layer is the initial
970         containing block. It also allows RenderLayer to know the proper
971         stacking order of the layers without going directly from the top layer
972         elements to their layers.
973
974         So far, only modal dialog elements can be added to the top layer.
975         The plan is to make the Fullscreen API also use the top layer.
976
977         Tests: fast/dom/HTMLDialogElement/top-layer-containing-block.html
978                fast/dom/HTMLDialogElement/top-layer-display-none.html
979                fast/dom/HTMLDialogElement/top-layer-nesting.html
980                fast/dom/HTMLDialogElement/top-layer-stacking-dynamic.html
981                fast/dom/HTMLDialogElement/top-layer-stacking.html
982
983         * WebCore.exp.in:
984         * css/StyleResolver.cpp:
985         (WebCore::StyleResolver::adjustRenderStyle): Elements in the top layer have a stacking context.
986         * dom/Document.cpp:
987         (WebCore):
988         (WebCore::Document::addToTopLayer):
989         (WebCore::Document::removeFromTopLayer):
990         * dom/Document.h:
991         (Document):
992         (WebCore::Document::topLayerElements): Add the top layer element stack to Document.
993         * dom/Element.cpp:
994         (WebCore::Element::removedFrom):
995         (WebCore):
996         (WebCore::Element::isInTopLayer):
997         (WebCore::Element::setIsInTopLayer):
998         * dom/Element.h:
999         * dom/ElementRareData.h:
1000         (ElementRareData):
1001         * dom/Node.cpp:
1002         (WebCore::Node::detach): Add an exception to the assert since top layer elements and their descendants are moved from their
1003         regular position in the render tree.
1004         * dom/NodeRareData.h:
1005         (WebCore::NodeRareData::NodeRareData):
1006         (NodeRareData):
1007         (WebCore::NodeRareData::isInTopLayer):
1008         (WebCore::NodeRareData::setIsInTopLayer):
1009         * dom/NodeRenderingContext.cpp:
1010         (WebCore):
1011         (WebCore::adjustInsertionPointForTopLayerElement):
1012         (WebCore::NodeRendererFactory::createRendererIfNeeded): Add renderers for top layer elements as children of RenderView, and
1013         in top layer stacking order.
1014         * html/HTMLDialogElement.cpp:
1015         (WebCore::HTMLDialogElement::close):
1016         (WebCore::HTMLDialogElement::showModal):
1017         * rendering/RenderLayer.cpp:
1018         (WebCore):
1019         (WebCore::RenderLayer::isInTopLayer):
1020         (WebCore::RenderLayer::isInTopLayerSubtree):
1021         (WebCore::RenderLayer::rebuildZOrderLists): Add the top layer stack after normal layer collection.
1022         (WebCore::RenderLayer::collectLayers): Avoid adding layers for top layer elements during normal layer collection.
1023         * rendering/RenderLayer.h:
1024         (RenderLayer):
1025
1026 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1027
1028         In CodeGeneratorObj.pm we should rename $dataNode to $interface.
1029         https://bugs.webkit.org/show_bug.cgi?id=102749
1030
1031         Reviewed by Adam Barth.
1032
1033         $dataNode is misnamed. It should be renamed to $interface.
1034
1035         No tests. No change in behavior.
1036
1037         * bindings/scripts/CodeGeneratorObjC.pm:
1038         (GenerateInterface):
1039         (GetParentImplClassName):
1040         (GetParentAndProtocols):
1041         (GenerateHeader):
1042         (GenerateImplementation):
1043
1044 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1045
1046         In CodeGeneratorV8.pm, we should rename $dataNode to $interface
1047         https://bugs.webkit.org/show_bug.cgi?id=102747
1048
1049         Reviewed by Adam Barth.
1050
1051         $dataNode is misnamed. It should be $interface.
1052
1053         No tests. No change in behavior.
1054
1055         * bindings/scripts/CodeGeneratorV8.pm:
1056         (GenerateInterface):
1057         (NeedsCustomOpaqueRootForGC):
1058         (GetGenerateIsReachable):
1059         (GetCustomIsReachable):
1060         (GenerateOpaqueRootForGC):
1061         (GenerateHeader):
1062         (GetInternalFields):
1063         (GenerateHeaderCustomInternalFieldIndices):
1064         (GenerateHeaderNamedAndIndexedPropertyAccessors):
1065         (GenerateHeaderCustomCall):
1066         (IsConstructable):
1067         (GenerateConstructorGetter):
1068         (GenerateNormalAttrGetter):
1069         (GenerateReplaceableAttrSetter):
1070         (GenerateNormalAttrSetter):
1071         (GenerateOverloadedFunctionCallback):
1072         (GenerateFunctionCallback):
1073         (GenerateArgumentsCountCheck):
1074         (GenerateOverloadedConstructorCallback):
1075         (GenerateSingleConstructorCallback):
1076         (GenerateConstructorCallback):
1077         (GenerateEventConstructorCallback):
1078         (GenerateTypedArrayConstructorCallback):
1079         (GenerateNamedConstructorCallback):
1080         (GenerateBatchedAttributeData):
1081         (IsStandardFunction):
1082         (GenerateNonStandardFunction):
1083         (GenerateImplementationIndexer):
1084         (GenerateImplementationNamedPropertyGetter):
1085         (GenerateImplementationCustomCall):
1086         (GenerateImplementationMasqueradesAsUndefined):
1087         (GenerateImplementation):
1088         (GenerateHeaderContentHeader):
1089         (GenerateImplementationContentHeader):
1090         (GenerateCallbackHeader):
1091         (GenerateCallbackImplementation):
1092         (BaseInterfaceName):
1093         (GenerateToV8Converters):
1094         (GetNativeTypeForConversions):
1095         (GetTypeNameOfExternalTypedArray):
1096         (WriteData):
1097
1098 2012-11-19  Keishi Hattori  <keishi@webkit.org>
1099
1100         Move in animation should be disabled until the calendar picker is loaded.
1101         https://bugs.webkit.org/show_bug.cgi?id=102661
1102
1103         Reviewed by Kent Tamura.
1104
1105         On weeks where the first day is in the previous month (e.x. 2013-W01)
1106         the move in animation happens when you open the calendar picker. This
1107         patch disables the move in animation until the calendar picker is fully
1108         loaded.
1109
1110         No new tests.
1111
1112         * Resources/pagepopups/calendarPicker.js:
1113         (CalendarPicker):
1114         (CalendarPicker.prototype._handleWindowResize):
1115         (DaysTable.prototype._startMoveInAnimation):
1116
1117 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
1118
1119         Clean up loop in NodeRenderingContext::nextRenderer and previousRenderer
1120         https://bugs.webkit.org/show_bug.cgi?id=102743
1121
1122         Reviewed by Hajime Morita.
1123
1124         Clean up while (true) loops in NodeRenderingContext reducing the
1125         amount of code and the need for ASSERT_NOT_REACHED.
1126
1127         No new tests, just simplifcation.
1128
1129         * dom/NodeRenderingContext.cpp:
1130         (WebCore::NodeRenderingContext::nextRenderer):
1131         (WebCore::NodeRenderingContext::previousRenderer):
1132
1133 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1134
1135         [Shadow] attribute pseudo should return empty string instead of null when nothing is specified.
1136         https://bugs.webkit.org/show_bug.cgi?id=102753
1137
1138         Reviewed by Hajime Morita.
1139
1140         The ShadowDOM spec is changed so that attribute 'pseudo' returns empty string instead of null when
1141         no value is set.
1142
1143         Test: fast/dom/shadow/pseudo-attribute.html
1144
1145         * dom/Element.idl:
1146
1147 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1148
1149         In CodeGeneratorGObject.pm we should rename $dataNode to $interface
1150         https://bugs.webkit.org/show_bug.cgi?id=102751
1151
1152         Reviewed by Adam Barth.
1153
1154         $dataNode is misnamed. It should be $interface.
1155
1156         No tests. No change in behavior.
1157
1158         * bindings/scripts/CodeGeneratorGObject.pm:
1159         (GetParentClassName):
1160         (GetParentGObjType):
1161         (GenerateProperties):
1162         (GenerateFunctions):
1163         (GenerateCFile):
1164         (GenerateEventTargetIface):
1165         (Generate):
1166         (WriteData):
1167         (GenerateInterface):
1168
1169 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1170
1171         In CodeGenerator.pm we should rename $dataNode to $interface
1172         https://bugs.webkit.org/show_bug.cgi?id=102754
1173
1174         Reviewed by Adam Barth.
1175
1176         $dataNode is misnamed. It should be $interface.
1177
1178         No tests. No change in behavior.
1179
1180         * bindings/scripts/CodeGenerator.pm:
1181         (ForAllParents):
1182         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1183         (FindSuperMethod):
1184         (IsConstructorTemplate):
1185         (LinkOverloadedFunctions):
1186         (GenerateCompileTimeCheckForEnumsIfNeeded):
1187         (GetVisibleInterfaceName):
1188         (IsSubType):
1189
1190 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1191
1192         In CodeGeneratorCPP.pm we should rename $dataNode to $interface
1193         https://bugs.webkit.org/show_bug.cgi?id=102752
1194
1195         Reviewed by Adam Barth.
1196
1197         $dataNode is misnamed. It should be $interface.
1198
1199         No tests. No change in behavior.
1200
1201         * bindings/scripts/CodeGeneratorCPP.pm:
1202         (GenerateInterface):
1203         (GetParentImplClassName):
1204         (GetParent):
1205         (GenerateHeader):
1206         (GenerateImplementation):
1207
1208 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1209
1210         In CodeGeneratorJS.pm we should rename $dataNode to $interface
1211         https://bugs.webkit.org/show_bug.cgi?id=102748
1212
1213         Reviewed by Adam Barth.
1214
1215         $dataNode is misnamed. It should be $interface.
1216
1217         No tests. No change in behavior.
1218
1219         * bindings/scripts/CodeGeneratorJS.pm:
1220         (GenerateInterface):
1221         (GetParentClassName):
1222         (GetGenerateIsReachable):
1223         (GetCustomIsReachable):
1224         (GenerateGetOwnPropertySlotBody):
1225         (GenerateGetOwnPropertyDescriptorBody):
1226         (GenerateHeaderContentHeader):
1227         (GenerateImplementationContentHeader):
1228         (ShouldGenerateToJSDeclaration):
1229         (ShouldGenerateToJSImplementation):
1230         (GenerateHeader):
1231         (GenerateAttributesHashTable):
1232         (GenerateOverloadedFunction):
1233         (GenerateImplementation):
1234         (GenerateArgumentsCountCheck):
1235         (GenerateParametersCheck):
1236         (GenerateCallbackHeader):
1237         (GenerateCallbackImplementation):
1238         (WriteData):
1239         (GenerateConstructorDeclaration):
1240         (GenerateConstructorDefinition):
1241         (IsConstructable):
1242
1243 2012-11-19  Adam Barth  <abarth@webkit.org>
1244
1245         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
1246         https://bugs.webkit.org/show_bug.cgi?id=102158
1247
1248         Reviewed by Eric Seidel.
1249
1250         This patch is an incremental step towards fully merging the Node code
1251         path with the general code path. After this patch, at least Nodes flow
1252         through the same class.
1253
1254         * Modules/indexeddb/IDBTransactionCoordinator.h:
1255         * bindings/scripts/CodeGeneratorV8.pm:
1256         (GenerateHeader):
1257         (GenerateToV8Converters):
1258         * bindings/v8/DOMDataStore.h:
1259         (WebCore::DOMDataStore::getNode):
1260         (DOMDataStore):
1261         (WebCore::DOMDataStore::getWrapperFromObject):
1262         * bindings/v8/DOMWrapperWorld.cpp:
1263         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
1264         (WebCore):
1265         * bindings/v8/DOMWrapperWorld.h:
1266         (WebCore):
1267         (DOMWrapperWorld):
1268         * bindings/v8/V8DOMWrapper.h:
1269         (V8DOMWrapper):
1270
1271 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1272
1273         In the IDL parser, we should rename $dataNode to $interface
1274         https://bugs.webkit.org/show_bug.cgi?id=102746
1275
1276         Reviewed by Adam Barth.
1277
1278         $dataNode is misnamed. It should be $interface.
1279
1280         No tests. No change in behavior.
1281
1282         * bindings/scripts/IDLParser.pm:
1283         (parseInterface):
1284         (parseException):
1285         (parseAttributeOrOperationRest):
1286         (parseOperationOrIterator):
1287         (parseSpecialOperation):
1288         (parseInterfaceOld):
1289         (parseExceptionOld):
1290         (parseAttributeOrOperationOrIteratorOld):
1291         (parseAttributeOrOperationRestOld):
1292         (applyMemberList):
1293         (applyExtendedAttributeList):
1294         * bindings/scripts/generate-bindings.pl:
1295         * bindings/scripts/preprocess-idls.pl:
1296         (checkIDLAttributes):
1297
1298 2012-11-19  Adam Klein  <adamk@chromium.org>
1299
1300         MutationObserver wrapper should not be collected while still observing
1301         https://bugs.webkit.org/show_bug.cgi?id=102328
1302
1303         Reviewed by Adam Barth.
1304
1305         Use the new opaqueRootForGC helper in V8GCController to put each
1306         MutationObserver wrapper in the same object group as the nodes it's
1307         observing.
1308
1309         Only includes V8 impl for now, JSC impl coming soon.
1310
1311         Tests: fast/mutation/observer-wrapper-dropoff-transient.html
1312                fast/mutation/observer-wrapper-dropoff.html
1313
1314         * bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
1315         with a FIXME to move this out once we update the opaque roots API.
1316         * dom/MutationObserver.cpp:
1317         (WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
1318         to the GC controller.
1319         (WebCore):
1320         * dom/MutationObserver.h:
1321         * dom/MutationObserverRegistration.cpp:
1322         (WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
1323         (WebCore):
1324         * dom/MutationObserverRegistration.h:
1325         (MutationObserverRegistration):
1326
1327 2012-11-19  Tony Chang  <tony@chromium.org>
1328
1329         Move more non-settings out of InternalSettings
1330         https://bugs.webkit.org/show_bug.cgi?id=102711
1331
1332         Reviewed by Adam Barth.
1333
1334         Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
1335         from internal.settings since they are already exposed by window.internals (in
1336         fact, no one calls the internal.settings version).
1337
1338         Move setUsesOverlayScrollbars from internals.settings to internals because it is
1339         a global (static) setting and not tied to the lifetime of the Settings object.
1340
1341         No new tests, there should be no behavior change since this is a refactor.
1342
1343         * testing/InternalSettings.cpp:
1344         (WebCore::InternalSettings::reset): Remove custom reset code.
1345         (WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
1346         * testing/InternalSettings.h:
1347         * testing/InternalSettings.idl: Remove unnecessary methods.
1348         * testing/Internals.cpp:
1349         (WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
1350         (WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
1351         (WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
1352         (WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
1353         (WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.
1354
1355 2012-11-19  David Grogan  <dgrogan@chromium.org>
1356
1357         IndexedDB: Complex series of opens/deleteDatabase fails an ASSERT
1358         https://bugs.webkit.org/show_bug.cgi?id=101810
1359
1360         Reviewed by Tony Chang.
1361
1362         Tests - storage/indexeddb/deletedatabase-delayed-by-versionchange.html
1363
1364         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1365         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1366         The condition tested by this assert is a valid state.
1367
1368 2012-11-19  Peter Wang  <peter.wang@torchmobile.com.cn>
1369
1370         Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
1371         https://bugs.webkit.org/show_bug.cgi?id=102637
1372
1373         Reviewed by Timothy Hatcher.
1374
1375         Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.
1376
1377         No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
1378         worker inspector window.
1379
1380         * bindings/js/ScriptDebugServer.cpp:
1381         (WebCore::ScriptDebugServer::createCallFrame):
1382         (WebCore::ScriptDebugServer::callEvent):
1383         (WebCore::ScriptDebugServer::willExecuteProgram):
1384         * bindings/js/ScriptDebugServer.h:
1385         (ScriptDebugServer):
1386         * bindings/js/WorkerScriptDebugServer.cpp:
1387         (WebCore::WorkerScriptDebugServer::willExecuteProgram):
1388         (WebCore):
1389         * bindings/js/WorkerScriptDebugServer.h:
1390         (WorkerScriptDebugServer):
1391
1392 2012-11-19  Pratik Solanki  <psolanki@apple.com>
1393
1394         For single element arrays use the pointer into the CFDataRef instead of copying data
1395         https://bugs.webkit.org/show_bug.cgi?id=102306
1396
1397         Reviewed by Brent Fulgham.
1398
1399         Address review comments for slightly nicer code.
1400
1401         * platform/SharedBuffer.cpp:
1402         (WebCore::SharedBuffer::data):
1403         * platform/cf/SharedBufferCF.cpp:
1404         (WebCore::SharedBuffer::singleDataArrayBuffer):
1405
1406 2012-11-19  Chris Rogers  <crogers@google.com>
1407
1408         Remove empirical bass-boost for HRTF spatialization
1409         https://bugs.webkit.org/show_bug.cgi?id=102745
1410
1411         Reviewed by Kenneth Russell.
1412
1413         Some empirically-based post-processing is being removed so that we'll
1414         now process with the exact HRTF impulse response measurements.
1415         Listening tests have determined that this post-processing is not necessary.
1416
1417         * platform/audio/HRTFElevation.cpp:
1418         (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
1419         * platform/audio/HRTFKernel.cpp:
1420         (WebCore::HRTFKernel::HRTFKernel):
1421         * platform/audio/HRTFKernel.h:
1422         (WebCore::HRTFKernel::create):
1423         (HRTFKernel):
1424
1425 2012-11-19  Adam Barth  <abarth@webkit.org>
1426
1427         DISALLOW_COPY_AND_ASSIGN is not a WebKit macro
1428         https://bugs.webkit.org/show_bug.cgi?id=102755
1429
1430         Reviewed by Sam Weinig.
1431
1432         WTF_MAKE_NONCOPYABLE is the idiom we use in WebKit.  I don't understand
1433         how this compiles.
1434
1435         * Modules/indexeddb/IDBBackingStore.h:
1436         (RecordIdentifier):
1437
1438 2012-11-19  Chris Rogers  <crogers@google.com>
1439
1440         Implement .detune attribute for BiquadFilterNode
1441         https://bugs.webkit.org/show_bug.cgi?id=102737
1442
1443         Reviewed by Kenneth Russell.
1444
1445         Similar to OscillatorNode, BiquadFilterNode must have a .detune attribute
1446
1447         Tests changed: webaudio/biquad-lowpass.html
1448
1449         * Modules/webaudio/BiquadDSPKernel.cpp:
1450         (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
1451         * Modules/webaudio/BiquadFilterNode.h:
1452         (WebCore::BiquadFilterNode::detune):
1453         * Modules/webaudio/BiquadFilterNode.idl:
1454         * Modules/webaudio/BiquadProcessor.cpp:
1455         (WebCore::BiquadProcessor::BiquadProcessor):
1456         (WebCore::BiquadProcessor::checkForDirtyCoefficients):
1457         * Modules/webaudio/BiquadProcessor.h:
1458         (WebCore::BiquadProcessor::parameter4):
1459         (BiquadProcessor):
1460
1461 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
1462
1463         [WIN] Add WebCore::getRegistryValue()
1464         https://bugs.webkit.org/show_bug.cgi?id=97828
1465
1466         Reviewed by Brent Fulgham.
1467
1468         The new function adds an abstraction to SHGetValue(), which isn't available on WinCE.
1469         Changing the existing files allows us to share more code between WinCE and WinNT in a next step.
1470
1471         * platform/win/MIMETypeRegistryWin.cpp:
1472         (WebCore::mimeTypeForExtension):
1473         (WebCore):
1474         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1475         * platform/win/WindowsExtras.h:
1476         (WebCore::getRegistryValue):
1477         (WebCore):
1478         * plugins/win/PluginDatabaseWin.cpp:
1479         (WebCore::addPluginPathsFromRegistry):
1480         (WebCore::addWindowsMediaPlayerPluginDirectory):
1481         (WebCore::addQuickTimePluginDirectory):
1482         (WebCore::addAdobeAcrobatPluginDirectory):
1483         (WebCore::addJavaPluginDirectory):
1484
1485 2012-11-19  Alpha Lam  <hclam@chromium.org>
1486
1487         Not reviewed. Build fix for Chromium.
1488
1489         Added SkTypes.h includes for Windows.
1490
1491         * platform/graphics/chromium/ImageDecodingStore.h:
1492         * platform/graphics/chromium/ImageFrameGenerator.h:
1493         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1494
1495 2012-11-19  Adam Barth  <abarth@webkit.org>
1496
1497         [V8] Simplify V8DOMWindowShell::getEntered
1498         https://bugs.webkit.org/show_bug.cgi?id=102156
1499
1500         Reviewed by Eric Seidel.
1501
1502         This patch is an incremental step towards merging
1503         V8DOMWrapper::getCachedWrapper(Node*) with the general case for looking
1504         up DOM wrappers. In order to merge with the general case, we need to
1505         get down to calling v8::Context::GetCurrent once, which means we need
1506         to factor the call to v8::Context::GetEntered out of V8DOMWindowShell.
1507
1508         As a side-benefit to this change, we can remove some redundant checks
1509         for isolatedWorldsExist and v8::Context::InContext from callers of
1510         V8DOMWindowShell::getEntered, including in getCachedWrapper.
1511
1512         * bindings/v8/DOMDataStore.cpp:
1513         (WebCore::DOMDataStore::current):
1514         * bindings/v8/ScriptController.cpp:
1515         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
1516         (WebCore::ScriptController::currentWorldContext):
1517         * bindings/v8/V8DOMWindowShell.h:
1518         (WebCore::V8DOMWindowShell::isolated):
1519         (WebCore::V8DOMWindowShell::perContextData):
1520         (WebCore::V8DOMWindowShell::world):
1521         (V8DOMWindowShell):
1522         * bindings/v8/V8DOMWrapper.h:
1523         (WebCore::V8DOMWrapper::getCachedWrapper):
1524         * bindings/v8/WorldContextHandle.cpp:
1525         (WebCore::WorldContextHandle::WorldContextHandle):
1526         * bindings/v8/custom/V8DocumentCustom.cpp:
1527         (WebCore::V8Document::dispatchWrapCustom):
1528         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1529         (WebCore::V8HTMLDocument::dispatchWrapCustom):
1530         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1531         (WebCore::V8SVGDocument::dispatchWrapCustom):
1532         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
1533         (WebCore::V8XMLHttpRequest::constructorCallback):
1534
1535 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1536
1537         Rename idlDocument::classes to idlDocument::interfaces in the IDL parser
1538         https://bugs.webkit.org/show_bug.cgi?id=102671
1539
1540         Reviewed by Adam Barth.
1541
1542         Most part of code generators use 'interface'. The spec uses 'interface'.
1543         Thus, the IDL parser should use 'interface' instead of 'class'.
1544
1545         No tests. No change in behavior.
1546
1547         * bindings/scripts/CodeGenerator.pm:
1548         (ProcessDocument):
1549         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1550         (ParseInterface):
1551         * bindings/scripts/CodeGeneratorCPP.pm:
1552         (GenerateImplementation):
1553         * bindings/scripts/CodeGeneratorJS.pm:
1554         (GenerateHeader):
1555         * bindings/scripts/CodeGeneratorObjC.pm:
1556         (GenerateImplementation):
1557         * bindings/scripts/CodeGeneratorV8.pm:
1558         (GenerateHeader):
1559         (GenerateFunctionCallback):
1560         * bindings/scripts/IDLParser.pm:
1561         (Parse):
1562         (parseModule):
1563         * bindings/scripts/generate-bindings.pl:
1564
1565 2012-11-19  Eric Carlson  <eric.carlson@apple.com>
1566
1567         HTMLMediaElement::configureTextTracks should configure all text tracks
1568         https://bugs.webkit.org/show_bug.cgi?id=102561
1569
1570         Reviewed by Philippe Normand.
1571
1572         No new tests, track-mode-not-changed-by-new-track.html was updated to test the changes.
1573
1574         * html/HTMLMediaElement.cpp:
1575         (WebCore::HTMLMediaElement::textTrackModeChanged): HTMLTrackElement -> TextTrack.
1576         (WebCore::HTMLMediaElement::willRemoveTrack): Ditto.
1577         (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
1578         (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
1579         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
1580         * html/HTMLMediaElement.h:
1581
1582         * html/HTMLTrackElement.cpp:
1583         (WebCore::HTMLTrackElement::HTMLTrackElement): Move hasBeenConfigured down to TextTrack.
1584         (WebCore::HTMLTrackElement::parseAttribute): isDefault is stored on TextTrack.
1585         (WebCore::HTMLTrackElement::ensureTrack): LoadableTextTrack constructor doesn't take 
1586             "default" argument.
1587         * html/HTMLTrackElement.h:
1588
1589         * html/track/LoadableTextTrack.cpp:
1590         (WebCore::LoadableTextTrack::LoadableTextTrack): Initialize m_isDefault to false.
1591         * html/track/LoadableTextTrack.h: 
1592         (WebCore::TextTrack::isDefault): Override base class implementation, because a track element
1593             can be flagged as default.
1594         (WebCore::TextTrack::setIsDefault): Ditto.
1595
1596         * html/track/TextTrack.cpp:
1597         (WebCore::TextTrack::TextTrack): Initialize m_hasBeenConfigured.
1598         * html/track/TextTrack.h:
1599         (WebCore::TextTrack::hasBeenConfigured): New, moved from HTMLTrackElement so other code doesn't
1600             need know what type of track it is calling.
1601         (WebCore::TextTrack::setHasBeenConfigured): Ditto.
1602         (WebCore::TextTrack::isDefault): Base, do nothing, implementation because only LoadableTextTrack
1603             can be "default".
1604         (WebCore::TextTrack::setIsDefault): Ditto.
1605
1606 2012-11-19  Huang Dongsung  <luxtella@company100.net>
1607
1608         Coordinated Graphics: refactor syncCanvas to handle the lifecycle clearly.
1609         https://bugs.webkit.org/show_bug.cgi?id=102664
1610
1611         Reviewed by Noam Rosenthal.
1612
1613         As refactoring Coordinated Graphics in WebKit2, code related to
1614         TextureMapper is changed.
1615
1616         No new tests. Refactoring only.
1617
1618         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1619         (GraphicsContext3DPrivate):
1620         (WebCore::GraphicsContext3DPrivate::platformLayerSize):
1621             We need to know the size of a texture mapper platform layer.
1622         (WebCore):
1623         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
1624           Because CoordinatedGraphicsLayer handles the canvas GraphicsSurface
1625           lifecycle, TextureMapperSurfaceBackingStore does not need to know
1626           GraphicsSurfaceToken.
1627         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
1628         (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
1629         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
1630         * platform/graphics/texmap/TextureMapperBackingStore.h:
1631         (TextureMapperSurfaceBackingStore):
1632         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
1633         (WebCore::TextureMapperPlatformLayer::platformLayerSize):
1634
1635 2012-11-19  Alpha Lam  <hclam@chromium.org>
1636
1637         [chromium] Lazy image decoding without cache
1638         https://bugs.webkit.org/show_bug.cgi?id=102021
1639
1640         Reviewed by Stephen White.
1641
1642         Goal of this change is to make image decoding in ImageFrameGenerator
1643         completely lazy without caching. Image decoding logic is then removed
1644         from ImageDecodingStore.
1645
1646         These methods are removed.
1647         - ImageDecodingStore::lockPixels
1648         - ImageDecodingStore::unlockPixels
1649
1650         Instead image decoding and scaling is done in
1651         ImageFrameGenerator::decodeAndScale().
1652
1653         Unit tests are updated:
1654         DeferredImageDecoderTest::drawIntoSkPicture
1655         DeferredImageDecoderTest::drawScaledIntoSkPicture
1656
1657         Also covered by layout tests:
1658         platform/chromium/virtual/deferred
1659
1660         * platform/graphics/chromium/DeferredImageDecoder.cpp:
1661         (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
1662         * platform/graphics/chromium/ImageDecodingStore.h:
1663         (ImageDecodingStore):
1664         * platform/graphics/chromium/ImageFrameGenerator.cpp:
1665         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
1666         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
1667         (WebCore::ImageFrameGenerator::setData):
1668         (WebCore::ImageFrameGenerator::decodeAndScale):
1669         * platform/graphics/chromium/ImageFrameGenerator.h:
1670         (WebCore::ImageFrameGenerator::create):
1671         (ImageFrameGenerator):
1672         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
1673         (WebCore::LazyDecodingPixelRef::onLockPixels):
1674         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
1675         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1676         (LazyDecodingPixelRef):
1677
1678 2012-11-19  Abhishek Arya  <inferno@chromium.org>
1679
1680         Crash in ApplyStyleCommand::cleanupUnstyledAppleStyleSpans.
1681         https://bugs.webkit.org/show_bug.cgi?id=100150
1682
1683         Reviewed by Ryosuke Niwa.
1684
1685         RefPtr startDummySpanAncestor and endDummySpanAncestor since
1686         they can go away inside fixRangeAndApplyInlineStyle call.
1687
1688         Test: editing/style/apply-style-crash.html
1689
1690         * editing/ApplyStyleCommand.cpp:
1691         (WebCore::ApplyStyleCommand::applyInlineStyle):
1692
1693 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1694
1695         Unreviewed, rolling out r135172.
1696         http://trac.webkit.org/changeset/135172
1697         https://bugs.webkit.org/show_bug.cgi?id=102710
1698
1699         Broke some WebKit2 api tests :( (Requested by japhet on
1700         #webkit).
1701
1702         * loader/DocumentLoader.cpp:
1703         (WebCore::DocumentLoader::DocumentLoader):
1704         (WebCore::DocumentLoader::~DocumentLoader):
1705         (WebCore::DocumentLoader::finishedLoading):
1706         (WebCore::DocumentLoader::clearMainResourceLoader):
1707         (WebCore::DocumentLoader::isLoadingInAPISense):
1708         (WebCore::DocumentLoader::documentURL):
1709         (WebCore::DocumentLoader::isLoadingMainResource):
1710         (WebCore::DocumentLoader::startLoadingMainResource):
1711         * loader/DocumentLoader.h:
1712         (DocumentLoader):
1713         * loader/FrameLoader.cpp:
1714         (WebCore::FrameLoader::FrameLoader):
1715         (WebCore::FrameLoader::init):
1716         * loader/FrameLoaderStateMachine.cpp:
1717         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
1718         * loader/FrameLoaderStateMachine.h:
1719         * loader/MainResourceLoader.cpp:
1720         (WebCore::shouldLoadAsEmptyDocument):
1721         (WebCore):
1722         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1723         (WebCore::MainResourceLoader::didReceiveResponse):
1724         (WebCore::MainResourceLoader::didFinishLoading):
1725         (WebCore::MainResourceLoader::handleEmptyLoad):
1726         (WebCore::MainResourceLoader::loadNow):
1727         (WebCore::MainResourceLoader::load):
1728         * loader/MainResourceLoader.h:
1729         (MainResourceLoader):
1730
1731 2012-11-19  Tony Chang  <tony@chromium.org>
1732
1733         Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
1734         https://bugs.webkit.org/show_bug.cgi?id=102548
1735
1736         Reviewed by Adam Barth.
1737
1738         This allows us to use Settings.in to generate the code for this.
1739
1740         I didn't rename any of the WebKit API methods with similar names because that would
1741         probably break consumers.  It turns out that the getter is only called from
1742         Source/WebKit/efl (most of the time, WebPreferences just sets values on Settings).
1743
1744         No new tests, just a refactor.
1745
1746         * WebCore.exp.in: Remove symbols that are now inlined.
1747         * WebCore.order: Remove symbols that are now inlined.
1748         * dom/Document.cpp:
1749         (WebCore::Document::initSecurityContext): Rename.
1750         * page/Settings.cpp:
1751         (WebCore::Settings::Settings): Remove code since it will be generated.
1752         * page/Settings.h:
1753         (Settings): Remove code since it will be generated.
1754         * page/Settings.in: Add entries to be generated.
1755         * page/SpatialNavigation.cpp:
1756         (WebCore::isSpatialNavigationEnabled): Fix caller.
1757
1758 2012-11-19  Yael Aharon  <yael.aharon@intel.com>
1759
1760         [EFL][TexMap] Complie error when considering warnings as errors
1761         https://bugs.webkit.org/show_bug.cgi?id=102705
1762
1763         Reviewed by Kenneth Rohde Christiansen.
1764
1765         Change GaussianKernelHalfWidth to unsigned.
1766
1767         No new tests.
1768
1769         * platform/graphics/texmap/TextureMapperGL.cpp:
1770         (WebCore):
1771
1772 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1773
1774         Unreviewed, rolling out r134830.
1775         http://trac.webkit.org/changeset/134830
1776         https://bugs.webkit.org/show_bug.cgi?id=102701
1777
1778         ActiveDOMObject is not applicable to MutationObservers due to
1779         being tied to a Document (Requested by aklein on #webkit).
1780
1781         * bindings/js/JSMutationObserverCustom.cpp:
1782         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
1783         * bindings/v8/custom/V8MutationObserverCustom.cpp:
1784         (WebCore::V8MutationObserver::constructorCallback):
1785         * dom/MutationObserver.cpp:
1786         (WebCore::MutationObserver::create):
1787         (WebCore::MutationObserver::MutationObserver):
1788         (WebCore::MutationObserver::observationStarted):
1789         (WebCore::MutationObserver::observationEnded):
1790         * dom/MutationObserver.h:
1791         (WebCore):
1792         * dom/MutationObserver.idl:
1793
1794 2012-11-19  Brady Eidson  <beidson@apple.com>
1795
1796         NetworkProcess Authentication.
1797         https://bugs.webkit.org/show_bug.cgi?id=102592
1798
1799         Reviewed by Alexey Proskuryakov.
1800
1801         Change an ASSERT that assumes there should be a resource handle which is not true with the NetworkProcess.
1802
1803         Also export some more stuff.
1804
1805         No new tests (Platform support, no effect in tested configs).
1806
1807         * WebCore.exp.in:
1808
1809         * loader/ResourceLoader.cpp:
1810         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Only ASSERT that the handle has a challenge if
1811           there is a handle.
1812
1813 2012-11-19  Alec Flett  <alecflett@chromium.org>
1814
1815         IndexedDB: simplify RecordIdentifier
1816         https://bugs.webkit.org/show_bug.cgi?id=102018
1817
1818         Reviewed by Tony Chang.
1819
1820         Make IDBBackingStore's RecordIdentifier be a simple
1821         class, existing only as an inline or stack-based instance.
1822         This makes much of the copy semantics more explicit, and
1823         removes refcounting from an object that only ever had a refcount
1824         of 1 or 2.
1825
1826         No new tests, just a refactor.
1827
1828         * Modules/indexeddb/IDBBackingStore.cpp:
1829         (WebCore::IDBBackingStore::putRecord):
1830         (WebCore::IDBBackingStore::deleteRecord):
1831         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
1832         (WebCore::IDBBackingStore::keyExistsInObjectStore):
1833         (WebCore::IDBBackingStore::putIndexDataForRecord):
1834         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
1835         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
1836         (ObjectStoreCursorImpl):
1837         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
1838         (WebCore::IndexKeyCursorImpl::recordIdentifier):
1839         (WebCore::IndexCursorImpl::recordIdentifier):
1840         * Modules/indexeddb/IDBBackingStore.h:
1841         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
1842         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
1843         (WebCore::IDBBackingStore::RecordIdentifier::reset):
1844         (RecordIdentifier):
1845         (IDBBackingStore):
1846         (WebCore::IDBBackingStore::Cursor::recordIdentifier):
1847         (WebCore::IDBBackingStore::Cursor::Cursor):
1848         (Cursor):
1849         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1850         (WebCore):
1851         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
1852         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1853         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1854
1855 2012-11-19  Alexander Shalamov  <alexander.shalamov@intel.com>
1856
1857         Improve ContentTypeParser, so that it could be used to validate mime type according to RFC
1858         https://bugs.webkit.org/show_bug.cgi?id=100927
1859
1860         Reviewed by Alexey Proskuryakov.
1861
1862         This patch adds ParsedContentType class that represents contents of parsed
1863         content type string. isValidContentType function could be used to check if
1864         format of the content type string is acorrding to RFC 2616 section 4.2.
1865
1866         * CMakeLists.txt:
1867         * GNUmakefile.list.am:
1868         * Target.pri:
1869         * WebCore.gypi:
1870         * WebCore.xcodeproj/project.pbxproj:
1871         * platform/network/MIMEHeader.cpp:
1872         (WebCore::MIMEHeader::parseHeader):
1873         * platform/network/ParsedContentType.cpp: Renamed from Source/WebCore/platform/network/ContentTypeParser.cpp.
1874         (WebCore):
1875         (EmptyParsedContentType):
1876         (WebCore::EmptyParsedContentType::setContentType):
1877         (WebCore::EmptyParsedContentType::setContentTypeParameter):
1878         (WebCore::skipSpaces):
1879         (WebCore::isTokenCharacter):
1880         (WebCore::parseToken):
1881         (WebCore::parseQuotedString):
1882         (WebCore::substringForRange):
1883         (WebCore::parseContentType):
1884         (WebCore::isValidContentType):
1885         (WebCore::ParsedContentType::ParsedContentType):
1886         (WebCore::ParsedContentType::charset):
1887         (WebCore::ParsedContentType::parameterValueForName):
1888         (WebCore::ParsedContentType::parameterCount):
1889         (WebCore::ParsedContentType::setContentType):
1890         (WebCore::ParsedContentType::setContentTypeParameter):
1891         * platform/network/ParsedContentType.h: Renamed from Source/WebCore/platform/network/ContentTypeParser.h.
1892         (WebCore):
1893         (ParsedContentType):
1894         (WebCore::ParsedContentType::mimeType):
1895
1896 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1897
1898         Update DOMException name: InvalidNodeTypeError
1899         https://bugs.webkit.org/show_bug.cgi?id=102519
1900
1901         Reviewed by Kentaro Hara.
1902
1903         Patch 24 of 25 to update DOMException name to match the spec and Firefox.
1904
1905         No code uses DOMException InvalidNodeTypeError. We do use INVALID_NODE_TYPE_ERR for RangeException. See bug 102515.
1906
1907         * dom/DOMCoreException.cpp:
1908
1909 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1910
1911         Changing id, className, or attribute should invalidate distribution
1912         https://bugs.webkit.org/show_bug.cgi?id=100738
1913
1914         Reviewed by Dimitri Glazkov.
1915
1916         When id, className, or attribute is changed, we might have to invalidate distribution.
1917         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow
1918         to invalidate distribution only if necessary.
1919
1920         For the code that className is changed, we can share a lot of code between invalidating distribution and
1921         invalidating style. So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
1922
1923         Since attributeChanged() is a hot method, we don't want to make it slow. So we made one function to determine
1924         whether we have to invalidate distribution, and make it called only if necessary. Also, we've optimized
1925         shadowOfParentForDistribution() by making isInsertionPoint() de-virtualed. We consuded NodeFlags (IsInsertionPointFlag)
1926         for this purpose.
1927
1928         We've measured how this patch makes changing attribute slow. I've measured each code 3 times.
1929         DOM/ModifyAttribute.html is a micro benchmark which changes attribute a lot of times. The result of this benchmark
1930         will be the most affected by this patch. However, it's only 2% performance regression.
1931
1932         DOM/ModifyAttribute.html
1933         Before this patch:
1934                 median  stdev    min    max    [ms]
1935           1st    494.0   3.36  490.0  502.0
1936           2nd    503.5   3.44  497.0  512.0
1937           3rd    494.0   3.48  488.0  499.0
1938
1939         After this patch:
1940                 median  stdev  min      max    [ms]
1941           1st    504.0   2.00  501.0  509.0
1942           2nd    505.5   3.08  500.0  513.0
1943           3rd    507.0   2.32  502.0  510.0
1944
1945         Tests: fast/dom/shadow/distribution-attribute-modified.html
1946                fast/dom/shadow/distribution-className-modified.html
1947                fast/dom/shadow/distribution-id-modified.html
1948                fast/dom/shadow/reprojection-attribute-modified.html
1949                fast/dom/shadow/reprojection-className-modified.html
1950                fast/dom/shadow/reprojection-id-modified.html
1951
1952         * dom/Element.cpp:
1953         (WebCore::Element::attributeChanged):
1954         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
1955         (HasSelectorForClassStyleFunctor):
1956         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
1957         (WebCore):
1958         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
1959         (HasSelectorForClassDistributionFunctor):
1960         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectForClass returns true.
1961         (WebCore::checkFunctorForClassChange):
1962         (WebCore::checkNeedsStyleInvalidationForClassChange):
1963         (WebCore::checkNeedsDistributionInvalidationForClassChange): Extracted the implementation to checkFunctorForClassChange.
1964         (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
1965         * dom/Element.h:
1966         (Element):
1967         * dom/Node.h:
1968         (WebCore::Node::isInsertionPoint):
1969         * html/HTMLElement.h:
1970         (HTMLElement):
1971         * html/shadow/InsertionPoint.cpp:
1972         (WebCore::InsertionPoint::InsertionPoint):
1973         * html/shadow/InsertionPoint.h:
1974         (InsertionPoint):
1975         (WebCore::isInsertionPoint):
1976         (WebCore::shadowOfParentForDistribution):
1977         (WebCore::resolveReprojection):
1978
1979 2012-11-19  Nate Chapin  <japhet@chromium.org>
1980
1981         Move empty loading to DocumentLoader, simplify FrameLoader::init()
1982         https://bugs.webkit.org/show_bug.cgi?id=101512
1983
1984         Reviewed by Adam Barth.
1985
1986         No new tests, though several outputs changed because we no longer send resource
1987             load callbacks for empty loads.
1988
1989         * loader/DocumentLoader.cpp:
1990         (WebCore::DocumentLoader::DocumentLoader):
1991         (WebCore::DocumentLoader::~DocumentLoader):
1992         (WebCore::DocumentLoader::finishedLoading):
1993         (WebCore::DocumentLoader::clearMainResourceLoader):
1994         (WebCore::DocumentLoader::isLoadingInAPISense):
1995         (WebCore::DocumentLoader::isLoadingMainResource):
1996         (WebCore::DocumentLoader::maybeLoadEmpty):
1997         (WebCore):
1998         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
1999              loads directly here.
2000         * loader/DocumentLoader.h:
2001         (DocumentLoader):
2002         * loader/FrameLoader.cpp:
2003         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
2004             were previously being reset in init(). Given that the FrameLoader is in
2005             an inconsistent state before init() is called anyway, there doesn't seem
2006             to be a disadvantage to just initializing them to their post-init() values.
2007         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
2008             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
2009         * loader/FrameLoaderStateMachine.cpp:
2010         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
2011         * loader/FrameLoaderStateMachine.h:
2012         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
2013         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
2014             load got deferred, which won't happen now. Return void and always treat
2015             as returning false.
2016         * loader/MainResourceLoader.h:
2017         (MainResourceLoader):
2018
2019 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2020
2021         Update DOMException name: TimeoutError
2022         https://bugs.webkit.org/show_bug.cgi?id=102513
2023
2024         Reviewed by Kentaro Hara.
2025
2026         Patch 23 of 25 to update DOMException name to match the spec and Firefox.
2027
2028         No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.
2029
2030         * dom/DOMCoreException.cpp:
2031
2032 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2033
2034         Update DOMException name: DataCloneError
2035         https://bugs.webkit.org/show_bug.cgi?id=102521
2036
2037         Reviewed by Kentaro Hara.
2038
2039         Patch 25 of 25 to update DOMException name to match the spec and Firefox.
2040
2041         Updated existing tests.
2042
2043         * dom/DOMCoreException.cpp:
2044
2045 2012-11-19  Tom Hudson  <tomhudson@chromium.org>
2046
2047         Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
2048         https://bugs.webkit.org/show_bug.cgi?id=98660
2049
2050         Reviewed by Simon Fraser.
2051
2052         Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
2053         and paintTranslucentBorderSides() so that we don't do unnecessary work.
2054
2055         If we can avoid setting up and tearing down an unnecessary transparent layer we save
2056         30ms on some mobile platforms.
2057
2058         * rendering/RenderBoxModelObject.h:
2059         * rendering/RenderBoxModelObject.cpp:
2060         (WebCore::RenderBoxModelObject::paintBorder):
2061         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
2062
2063 2012-11-19  Hans Muller  <hmuller@adobe.com>
2064
2065         [CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
2066         https://bugs.webkit.org/show_bug.cgi?id=100765
2067
2068         Reviewed by Dirk Schulze.
2069
2070         ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
2071         isn't null, since the caller is expected to ensure as much.  No new tests were
2072         needed since this is a near-trivial cleanup.
2073
2074         * rendering/ExclusionShape.cpp:
2075         (WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.
2076
2077 2012-11-19  Sami Kyostila  <skyostil@chromium.org>
2078
2079         Use device scale factor instead of physical screen DPI for screen DPI
2080         https://bugs.webkit.org/show_bug.cgi?id=101769
2081
2082         Reviewed by Adam Barth.
2083
2084         Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
2085         the dots per CSS inch[1] value for the "screen" media type. On Chromium these
2086         functions currently return the physical screen DPI, which is wrong. To fix
2087         this, we remove both of these functions entirely and make media queries use
2088         the device scale factor multiplied by 96 on all ports.
2089
2090         [1] http://www.w3.org/TR/css3-mediaqueries/#resolution0
2091
2092         * page/Screen.cpp:
2093         (WebCore::Screen::horizontalDPI):
2094         (WebCore::Screen::verticalDPI):
2095         * platform/PlatformScreen.h:
2096         (WebCore):
2097         * platform/blackberry/PlatformScreenBlackBerry.cpp:
2098         * platform/chromium/PlatformScreenChromium.cpp:
2099         * platform/efl/PlatformScreenEfl.cpp:
2100         * platform/gtk/PlatformScreenGtk.cpp:
2101         * platform/mac/PlatformScreenMac.mm:
2102         * platform/qt/PlatformScreenQt.cpp:
2103         * platform/win/PlatformScreenWin.cpp:
2104         * platform/wx/ScreenWx.cpp:
2105
2106 2012-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
2107
2108         Computed grid items' positions shouldn't be using Length
2109         https://bugs.webkit.org/show_bug.cgi?id=102537
2110
2111         Reviewed by Tony Chang.
2112
2113         This change refactors how we store the grid items' position to use
2114         a new type GridPosition. Length was a temporary type as it supported
2115         'auto' | <integer> but it was starting to get more and more confusing
2116         as we were implementing the layout routines.
2117
2118         No change in behavior.
2119
2120         * GNUmakefile.list.am:
2121         * WebCore.gypi:
2122         * WebCore.vcproj/WebCore.vcproj:
2123         * WebCore.xcodeproj/project.pbxproj:
2124         Added the new file to the build systems.
2125
2126         * rendering/style/RenderStyle.h:
2127         Updated after the type change. Also made some getters
2128         return a const reference instead of forcing a copy.
2129
2130         * rendering/style/StyleGridItemData.h:
2131         (StyleGridItemData):
2132         Ditto, also removed a comment about adding a new type.
2133
2134         * css/CSSComputedStyleDeclaration.cpp:
2135         (WebCore::valueForGridPosition):
2136         * css/StyleResolver.cpp:
2137         (WebCore::createGridPosition):
2138         (WebCore::StyleResolver::applyProperty):
2139         * rendering/RenderGrid.cpp:
2140         (WebCore::RenderGrid::resolveGridPosition):
2141         Updated these sites after switching to GridPosition.
2142
2143         * rendering/RenderGrid.h:
2144         Changed resolveGridPosition signature: it now takes a GridPosition.
2145
2146         * rendering/style/GridPosition.h: Added.
2147         (WebCore::GridPosition::GridPosition):
2148         Default constructor, creates an 'auto' position.
2149
2150         (WebCore::GridPosition::isPositive):
2151         (WebCore::GridPosition::type):
2152         (WebCore::GridPosition::isAuto):
2153         (WebCore::GridPosition::setIntegerPosition):
2154         (WebCore::GridPosition::integerPosition):
2155         Helper functions.
2156
2157         (WebCore::GridPosition::operator==):
2158         Required comparison operator for StyleGridItemData.
2159
2160 2012-11-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>
2161
2162         Apply the resolved viewport rules
2163         https://bugs.webkit.org/show_bug.cgi?id=95964
2164
2165         Reviewed by Kenneth Rohde Christiansen.
2166
2167         This patch implements the CSS Device Adaptation specification. The
2168         WebKit implementation relies on the already implemented Viewport Meta
2169         infrastructure to notify the browser of viewport changes.
2170
2171         The implementation was tests with success on the Qt and EFL ports, but
2172         basically every port supporting Viewport Meta should be fine.
2173
2174         The usage of @-webkit-viewport inside media queries (more tests coming
2175         to map all the corner cases) is currently limited when the media query
2176         depends on the viewport dimensions itself. Defining the width and height
2177         based on screen size will fail on ports reporting the screen
2178         size as the size of the browser window instead of the device screen.
2179
2180         Tests: css3/device-adapt/opera/cascading-001.xhtml
2181                css3/device-adapt/opera/cascading-002.xhtml
2182                css3/device-adapt/opera/cascading-003.xhtml
2183                css3/device-adapt/opera/cascading-004.xhtml
2184                css3/device-adapt/opera/constrain-001.xhtml
2185                css3/device-adapt/opera/constrain-002.xhtml
2186                css3/device-adapt/opera/constrain-003.xhtml
2187                css3/device-adapt/opera/constrain-004.xhtml
2188                css3/device-adapt/opera/constrain-005.xhtml
2189                css3/device-adapt/opera/constrain-006.xhtml
2190                css3/device-adapt/opera/constrain-007.xhtml
2191                css3/device-adapt/opera/constrain-008.xhtml
2192                css3/device-adapt/opera/constrain-009.xhtml
2193                css3/device-adapt/opera/constrain-010.xhtml
2194                css3/device-adapt/opera/constrain-011.xhtml
2195                css3/device-adapt/opera/constrain-012.xhtml
2196                css3/device-adapt/opera/constrain-013.xhtml
2197                css3/device-adapt/opera/constrain-014.xhtml
2198                css3/device-adapt/opera/constrain-015.xhtml
2199                css3/device-adapt/opera/constrain-016.xhtml
2200                css3/device-adapt/opera/constrain-017.xhtml
2201                css3/device-adapt/opera/constrain-020.xhtml
2202                css3/device-adapt/opera/syntax-001.xhtml
2203                css3/device-adapt/opera/syntax-002.xhtml
2204                css3/device-adapt/opera/syntax-003.xhtml
2205
2206         * CMakeLists.txt:
2207         * GNUmakefile.list.am:
2208         * Target.pri:
2209         * WebCore.gypi:
2210         * WebCore.vcproj/WebCore.vcproj:
2211         * WebCore.xcodeproj/project.pbxproj:
2212         * css/CSSAllInOne.cpp:
2213         * css/RuleSet.cpp:
2214         (WebCore::RuleSet::addRulesFromSheet):
2215         * css/StyleResolver.cpp:
2216         (WebCore::StyleResolver::StyleResolver):
2217         (WebCore::StyleResolver::appendAuthorStyleSheets):
2218         (WebCore::StyleResolver::~StyleResolver):
2219         * css/StyleResolver.h:
2220         (StyleResolver):
2221         (WebCore::StyleResolver::viewportStyleResolver):
2222         * css/ViewportStyleResolver.cpp: Added.
2223         (WebCore):
2224         (WebCore::ViewportStyleResolver::ViewportStyleResolver):
2225         (WebCore::ViewportStyleResolver::addViewportRule):
2226         (WebCore::ViewportStyleResolver::clearDocument):
2227         (WebCore::ViewportStyleResolver::resolve):
2228         (WebCore::ViewportStyleResolver::getViewportArgumentValue):
2229         * css/ViewportStyleResolver.h: Added.
2230         (WebCore):
2231         (ViewportStyleResolver):
2232         (WebCore::ViewportStyleResolver::create):
2233         * dom/Document.h:
2234         (WebCore::Document::setViewportArguments):
2235         * dom/ViewportArguments.cpp:
2236         (WebCore::compareIgnoringAuto):
2237         (WebCore):
2238         (WebCore::ViewportArguments::resolve):
2239         * dom/ViewportArguments.h:
2240         (ViewportAttributes):
2241         (WebCore::ViewportArguments::ViewportArguments):
2242         (ViewportArguments):
2243         (WebCore::ViewportArguments::operator==):
2244
2245 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2246
2247         Update DOMException name: SecurityError
2248         https://bugs.webkit.org/show_bug.cgi?id=102437
2249
2250         Reviewed by Kentaro Hara.
2251
2252         Patch 18 of 25 to update DOMException name to match the spec and Firefox.
2253
2254         Updated existing tests.
2255
2256         * dom/DOMCoreException.cpp:
2257
2258 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2259
2260         Update DOMException name: URLMismatchError
2261         https://bugs.webkit.org/show_bug.cgi?id=102511
2262
2263         Reviewed by Kentaro Hara.
2264
2265         Patch 21 of 25 to update DOMException name to match the spec and Firefox.
2266
2267         Updated existing tests.
2268
2269         * dom/DOMCoreException.cpp:
2270         (WebCore):
2271
2272 2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>
2273
2274         Add PROXIMITY_EVENTS feature
2275         https://bugs.webkit.org/show_bug.cgi?id=102658
2276
2277         Reviewed by Kentaro Hara.
2278
2279         Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.
2280
2281         No new tests. Just add a new feature.
2282
2283         * Configurations/FeatureDefines.xcconfig:
2284         * GNUmakefile.features.am:
2285
2286 2012-11-19  Alexei Filippov  <alph@chromium.org>
2287
2288         Web Inspector: Dim a component's subitems' color in NMI snapshot
2289         https://bugs.webkit.org/show_bug.cgi?id=102224
2290
2291         Reviewed by Yury Semikhatsky.
2292
2293         * inspector/front-end/NativeMemorySnapshotView.js:
2294         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
2295         * inspector/front-end/nativeMemoryProfiler.css:
2296         (.native-snapshot-view .data-grid .dimmed div.size-bar):
2297
2298 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2299
2300         Update DOMException name: NetworkError
2301         https://bugs.webkit.org/show_bug.cgi?id=102503
2302
2303         Reviewed by Kentaro Hara.
2304
2305         Patch 19 of 25 to update DOMException name to match the spec and Firefox.
2306
2307         No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.
2308
2309         * dom/DOMCoreException.cpp:
2310
2311 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2312
2313         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2314         https://bugs.webkit.org/show_bug.cgi?id=102649
2315
2316         Reviewed by Adam Barth.
2317
2318         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2319         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2320         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2321
2322         No new tests as there is no new functionality.
2323
2324         * Modules/webaudio/AudioBufferSourceNode.cpp:
2325         (WebCore::AudioBufferSourceNode::looping):
2326         (WebCore::AudioBufferSourceNode::setLooping):
2327         * Modules/webaudio/AudioContext.cpp:
2328         (WebCore::AudioContext::AudioContext):
2329         (WebCore::AudioContext::stop):
2330         (WebCore::AudioContext::scriptExecutionContext):
2331         (WebCore::AudioContext::fireCompletionEvent):
2332         (WebCore::AudioContext::reportMemoryUsage):
2333         * Modules/webaudio/AudioContext.h:
2334         (AudioContext):
2335         * Modules/webaudio/ScriptProcessorNode.cpp:
2336         (WebCore::ScriptProcessorNode::fireProcessEvent):
2337         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2338
2339 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2340
2341         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2342         https://bugs.webkit.org/show_bug.cgi?id=102356
2343
2344         Reviewed by Adam Barth.
2345
2346         A clean-up code was moved from uninitialize to clear method.
2347         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2348         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2349         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2350         adoptRef was added in createOfflineContext method.
2351         A guard was added into deleteMarkedNodes.
2352
2353         Test: inspector-protocol/nmi-webaudio-leak-test.html
2354
2355         * Modules/webaudio/AudioContext.cpp:
2356         (WebCore::AudioContext::createOfflineContext):
2357         (WebCore::AudioContext::AudioContext):
2358         (WebCore::AudioContext::constructCommon):
2359         (WebCore::AudioContext::~AudioContext):
2360         (WebCore::AudioContext::clear):
2361         (WebCore::AudioContext::uninitialize):
2362         (WebCore::AudioContext::stopDispatch):
2363         (WebCore::AudioContext::stop):
2364         (WebCore::AudioContext::markForDeletion):
2365         (WebCore::AudioContext::scheduleNodeDeletion):
2366         (WebCore::AudioContext::deleteMarkedNodes):
2367         * Modules/webaudio/AudioContext.h:
2368         (AudioContext):
2369         * bindings/v8/custom/V8AudioContextCustom.cpp:
2370         (WebCore::V8AudioContext::constructorCallback):
2371         * inspector/InspectorMemoryAgent.cpp:
2372         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2373         * platform/PlatformMemoryInstrumentation.cpp:
2374         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2375         (WebCore):
2376         * platform/PlatformMemoryInstrumentation.h:
2377         (PlatformMemoryInstrumentation):
2378         (WebCore):
2379
2380 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2381
2382         Update DOMException name: QuotaExceededError
2383         https://bugs.webkit.org/show_bug.cgi?id=102512
2384
2385         Reviewed by Kentaro Hara.
2386
2387         Patch 22 of 25 to update DOMException name to match the spec and Firefox.
2388
2389         Updated existing tests.
2390
2391         * dom/DOMCoreException.cpp:
2392
2393 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2394
2395         Update DOMException name: AbortError
2396         https://bugs.webkit.org/show_bug.cgi?id=102508
2397
2398         Reviewed by Kentaro Hara.
2399
2400         Patch 20 of 25 to update DOMException name to match the spec and Firefox.
2401
2402         No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.
2403
2404         * dom/DOMCoreException.cpp:
2405
2406 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2407
2408         Unreviewed, rolling out r135111.
2409         http://trac.webkit.org/changeset/135111
2410         https://bugs.webkit.org/show_bug.cgi?id=102356
2411
2412         The patch caused crashes in several layout tests
2413
2414         * Modules/webaudio/AudioContext.cpp:
2415         (WebCore::AudioContext::createOfflineContext):
2416         (WebCore::AudioContext::AudioContext):
2417         (WebCore::AudioContext::constructCommon):
2418         (WebCore::AudioContext::~AudioContext):
2419         (WebCore::AudioContext::uninitialize):
2420         (WebCore::AudioContext::uninitializeDispatch):
2421         (WebCore::AudioContext::stop):
2422         (WebCore::AudioContext::markForDeletion):
2423         (WebCore::AudioContext::scheduleNodeDeletion):
2424         (WebCore::AudioContext::deleteMarkedNodes):
2425         * Modules/webaudio/AudioContext.h:
2426         (AudioContext):
2427         * bindings/v8/custom/V8AudioContextCustom.cpp:
2428         (WebCore::V8AudioContext::constructorCallback):
2429         * inspector/InspectorMemoryAgent.cpp:
2430         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2431         * platform/PlatformMemoryInstrumentation.cpp:
2432         (WebCore):
2433         * platform/PlatformMemoryInstrumentation.h:
2434
2435 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2436
2437         Unreviewed, rolling out r135116.
2438         http://trac.webkit.org/changeset/135116
2439         https://bugs.webkit.org/show_bug.cgi?id=102649
2440
2441         Revert this patch to revert r135111, which caused crashes in
2442         several layout tests
2443
2444         * Modules/webaudio/AudioBufferSourceNode.cpp:
2445         (WebCore::AudioBufferSourceNode::looping):
2446         (WebCore::AudioBufferSourceNode::setLooping):
2447         * Modules/webaudio/AudioContext.cpp:
2448         (WebCore::AudioContext::AudioContext):
2449         (WebCore::AudioContext::stop):
2450         (WebCore::AudioContext::document):
2451         (WebCore):
2452         (WebCore::AudioContext::hasDocument):
2453         (WebCore::AudioContext::scriptExecutionContext):
2454         (WebCore::AudioContext::fireCompletionEvent):
2455         (WebCore::AudioContext::reportMemoryUsage):
2456         * Modules/webaudio/AudioContext.h:
2457         (AudioContext):
2458         * Modules/webaudio/ScriptProcessorNode.cpp:
2459         (WebCore::ScriptProcessorNode::fireProcessEvent):
2460         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2461
2462 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2463
2464         Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
2465         https://bugs.webkit.org/show_bug.cgi?id=102673
2466
2467         Reviewed by Vsevolod Vlasov.
2468
2469         DebuggerScriptMapping calls public method "addScript" not defined
2470         in SourceMapping interface.
2471
2472         To make things clear I've added ScriptSourceMapping interface that
2473         extends SourceMapping interface by adding "addScript" method.
2474
2475         * inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
2476         * inspector/front-end/CompilerScriptMapping.js:
2477         Updated "@implements" to ScriptSourceMapping.
2478         * inspector/front-end/ResourceScriptMapping.js: Ditto.
2479         * inspector/front-end/ScriptSnippetModel.js: Ditto.
2480         * inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
2481         Removed useless code.
2482
2483 2012-11-19  Tim Horton  <timothy_horton@apple.com>
2484
2485         Unreviewed, untested build fix.
2486
2487         * bindings/scripts/IDLParser.pm:
2488         (parseModule):
2489
2490 2012-11-19  Dongwoo Joshua Im  <dw.im@samsung.com>
2491
2492         [CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
2493         https://bugs.webkit.org/show_bug.cgi?id=102303
2494
2495         Reviewed by Alexis Menard.
2496
2497         Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
2498         into the isValidKeywordPropertyAndValue function, like the same kind of properties.
2499         This will help speed wise in JS.
2500
2501         No new functionality, no new tests.
2502
2503         * css/CSSParser.cpp:
2504         (WebCore::isValidKeywordPropertyAndValue):
2505         (WebCore::isKeywordPropertyID):
2506         (WebCore::CSSParser::parseValue):
2507
2508 2012-11-19  Keishi Hattori  <keishi@webkit.org>
2509
2510         REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
2511         https://bugs.webkit.org/show_bug.cgi?id=102660
2512
2513         Reviewed by Kent Tamura.
2514
2515         The calendar picker used to animate when you press 't'.
2516
2517         No new tests.
2518
2519         * Resources/pagepopups/calendarPicker.js:
2520         (DaysTable.prototype.selectRange):
2521
2522 2012-11-19  Kent Tamura  <tkent@chromium.org>
2523
2524         input.value="" should clear date/time input elements with partial values
2525         https://bugs.webkit.org/show_bug.cgi?id=102645
2526
2527         Reviewed by Kentaro Hara.
2528
2529         Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
2530                fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
2531                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
2532                fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
2533                fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
2534                fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html
2535
2536         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2537         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
2538         If the new value is an empty string and sub-fields has values, we should
2539         update the UI value to the empty state.
2540         * html/DateTimeFieldsState.h:
2541         (WebCore::DateTimeFieldsState::hasAnyValue):
2542         Added. It returns true if one or more sub-fields are not empty.
2543
2544 2012-11-19  Andrey Adaikin  <aandrey@chromium.org>
2545
2546         Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
2547         https://bugs.webkit.org/show_bug.cgi?id=102522
2548
2549         Reviewed by Yury Semikhatsky.
2550
2551         When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
2552         Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
2553         Drive-by: add more typification for the JS compiler.
2554         Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.
2555
2556         * inspector/InjectedScriptCanvasModuleSource.js:
2557         (.):
2558
2559 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2560
2561         Remove IDLStructure.pm
2562         https://bugs.webkit.org/show_bug.cgi?id=102642
2563
2564         Reviewed by Adam Barth.
2565
2566         Previously IDLStructure.pm was full of regular expressions to
2567         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2568         just contains several data structures for the IDL parser. We can
2569         move them to IDLParser.pm and thus remove IDLStructure.pm.
2570
2571         No tests. No change in generated code.
2572
2573         * CMakeLists.txt:
2574         * DerivedSources.make:
2575         * DerivedSources.pri:
2576         * GNUmakefile.am:
2577         * WebCore.gyp/WebCore.gyp:
2578         * WebCore.vcproj/MigrateScripts:
2579         * WebCore.vcproj/WebCore.vcproj:
2580         * WebCore.xcodeproj/project.pbxproj:
2581         * bindings/scripts/IDLParser.pm:
2582         (Parse):
2583         (parseInterface):
2584         (parseException):
2585         (parseConst):
2586         (parseAttributeRest):
2587         (parseOperationRest):
2588         (parseOptionalOrRequiredArgument):
2589         (parseExceptionField):
2590         (parseInterfaceOld):
2591         (parseExceptionOld):
2592         (parseAttributeRestOld):
2593         (applyExtendedAttributeList):
2594         * bindings/scripts/IDLStructure.pm: Removed.
2595
2596 2012-11-19  Alexei Filippov  <alph@chromium.org>
2597
2598         Web Inspector: refine time and bytes output formatting
2599         https://bugs.webkit.org/show_bug.cgi?id=102265
2600
2601         Reviewed by Yury Semikhatsky.
2602
2603         Add a space between number and unit, otherwise it's hard to read things like 88B.
2604         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2605
2606         * English.lproj/localizedStrings.js:
2607         * inspector/front-end/CookiesTable.js:
2608         (WebInspector.CookiesTable.prototype._createGridNode):
2609         * inspector/front-end/UIUtils.js:
2610         (Number.secondsToString):
2611         (Number.bytesToString):
2612
2613 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2614
2615         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2616         https://bugs.webkit.org/show_bug.cgi?id=102383
2617
2618         Reviewed by Yury Semikhatsky.
2619
2620         Fixed string presentation of event.
2621
2622         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2623
2624 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2625
2626         Remove IDLStructure.pm
2627         https://bugs.webkit.org/show_bug.cgi?id=102642
2628
2629         Reviewed by Adam Barth.
2630
2631         Previously IDLStructure.pm was full of regular expressions to
2632         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2633         just contains several data structures for the IDL parser. We can
2634         move them to IDLParser.pm and thus remove IDLStructure.pm.
2635
2636         No tests. No change in generated code.
2637
2638         * CMakeLists.txt:
2639         * DerivedSources.make:
2640         * DerivedSources.pri:
2641         * GNUmakefile.am:
2642         * WebCore.gyp/WebCore.gyp:
2643         * WebCore.vcproj/MigrateScripts:
2644         * WebCore.vcproj/WebCore.vcproj:
2645         * WebCore.xcodeproj/project.pbxproj:
2646         * bindings/scripts/IDLParser.pm:
2647         (Parse):
2648         (parseInterface):
2649         (parseException):
2650         (parseConst):
2651         (parseAttributeRest):
2652         (parseOperationRest):
2653         (parseOptionalOrRequiredArgument):
2654         (parseExceptionField):
2655         (parseInterfaceOld):
2656         (parseExceptionOld):
2657         (parseAttributeRestOld):
2658         (applyExtendedAttributeList):
2659         * bindings/scripts/IDLStructure.pm: Removed.
2660
2661 2012-11-19  Alexei Filippov  <alph@chromium.org>
2662
2663         Web Inspector: refine time and bytes output formatting
2664         https://bugs.webkit.org/show_bug.cgi?id=102265
2665
2666         Reviewed by Yury Semikhatsky.
2667
2668         Add a space between number and unit, otherwise it's hard to read things like 88B.
2669         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2670
2671         * English.lproj/localizedStrings.js:
2672         * inspector/front-end/CookiesTable.js:
2673         (WebInspector.CookiesTable.prototype._createGridNode):
2674         * inspector/front-end/UIUtils.js:
2675         (Number.secondsToString):
2676         (Number.bytesToString):
2677
2678 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2679
2680         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2681         https://bugs.webkit.org/show_bug.cgi?id=102383
2682
2683         Reviewed by Yury Semikhatsky.
2684
2685         Fixed string presentation of event.
2686
2687         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2688
2689 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2690
2691         Unreviewed, rolling out r135114.
2692         http://trac.webkit.org/changeset/135114
2693         https://bugs.webkit.org/show_bug.cgi?id=102642
2694
2695         it broke Qt build
2696
2697         * CMakeLists.txt:
2698         * DerivedSources.make:
2699         * DerivedSources.pri:
2700         * GNUmakefile.am:
2701         * WebCore.gyp/WebCore.gyp:
2702         * WebCore.vcproj/MigrateScripts:
2703         * WebCore.vcproj/WebCore.vcproj:
2704         * WebCore.xcodeproj/project.pbxproj:
2705         * bindings/scripts/IDLParser.pm:
2706         (Parse):
2707         (parseInterface):
2708         (parseException):
2709         (parseConst):
2710         (parseAttributeRest):
2711         (parseOperationRest):
2712         (parseOptionalOrRequiredArgument):
2713         (parseExceptionField):
2714         (parseInterfaceOld):
2715         (parseExceptionOld):
2716         (parseAttributeRestOld):
2717         (applyExtendedAttributeList):
2718         * bindings/scripts/IDLStructure.pm: Added.
2719
2720 2012-11-19  Vsevolod Vlasov  <vsevik@chromium.org>
2721
2722         Unreviewed inspector closure compilation fix.
2723
2724         * inspector/front-end/ObjectPropertiesSection.js:
2725         * inspector/front-end/externs.js:
2726
2727 2012-11-18  Ilya Tikhonovsky  <loislo@chromium.org>
2728
2729         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2730         https://bugs.webkit.org/show_bug.cgi?id=102649
2731
2732         Reviewed by Adam Barth.
2733
2734         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2735         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2736         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2737
2738         No new tests as there is no new functionality.
2739
2740         * Modules/webaudio/AudioBufferSourceNode.cpp:
2741         (WebCore::AudioBufferSourceNode::looping):
2742         (WebCore::AudioBufferSourceNode::setLooping):
2743         * Modules/webaudio/AudioContext.cpp:
2744         (WebCore::AudioContext::AudioContext):
2745         (WebCore::AudioContext::stop):
2746         (WebCore::AudioContext::fireCompletionEvent):
2747         (WebCore::AudioContext::reportMemoryUsage):
2748         * Modules/webaudio/AudioContext.h:
2749         (WebCore::AudioContext::scriptExecutionContext):
2750         (AudioContext):
2751         * Modules/webaudio/ScriptProcessorNode.cpp:
2752         (WebCore::ScriptProcessorNode::fireProcessEvent):
2753         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2754
2755 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2756
2757         [V8] Remove unused variables from CodeGeneratorV8.pm
2758         https://bugs.webkit.org/show_bug.cgi?id=102648
2759
2760         Reviewed by Adam Barth.
2761
2762         No tests. No change in generated code.
2763
2764         * bindings/scripts/CodeGeneratorV8.pm:
2765         (GenerateInterface):
2766         (GenerateHeader):
2767         (GetInternalFields):
2768         (GenerateNormalAttrGetter):
2769         (GenerateSingleBatchedAttribute):
2770         (GenerateImplementationCustomCall):
2771         (GenerateFunctionCallString):
2772         (CreateCustomSignature):
2773         (GetContextEnableFunction):
2774
2775 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2776
2777         Remove IDLStructure.pm
2778         https://bugs.webkit.org/show_bug.cgi?id=102642
2779
2780         Reviewed by Adam Barth.
2781
2782         Previously IDLStructure.pm was full of regular expressions to
2783         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2784         just contains several data structures for the IDL parser. We can
2785         move them to IDLParser.pm and thus remove IDLStructure.pm.
2786
2787         No tests. No change in generated code.
2788
2789         * CMakeLists.txt:
2790         * DerivedSources.make:
2791         * DerivedSources.pri:
2792         * GNUmakefile.am:
2793         * WebCore.gyp/WebCore.gyp:
2794         * WebCore.vcproj/MigrateScripts:
2795         * WebCore.vcproj/WebCore.vcproj:
2796         * WebCore.xcodeproj/project.pbxproj:
2797         * bindings/scripts/IDLParser.pm:
2798         (Parse):
2799         (parseInterface):
2800         (parseException):
2801         (parseConst):
2802         (parseAttributeRest):
2803         (parseOperationRest):
2804         (parseOptionalOrRequiredArgument):
2805         (parseExceptionField):
2806         (parseInterfaceOld):
2807         (parseExceptionOld):
2808         (parseAttributeRestOld):
2809         (applyExtendedAttributeList):
2810         * bindings/scripts/IDLStructure.pm: Removed.
2811
2812 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2813
2814         [V8] Make more use of $v8Interface in CodeGeneratorV8.pm
2815         https://bugs.webkit.org/show_bug.cgi?id=102639
2816
2817         Reviewed by Adam Barth.
2818
2819         We can replace hard-coded "V8${interfaceName}" with $v8Interface.
2820
2821         No tests. No change in generated code.
2822
2823         * bindings/scripts/CodeGeneratorV8.pm:
2824         (GenerateNormalAttrGetter):
2825         (GenerateNormalAttrSetter):
2826         (GenerateFunctionCallback):
2827         (GenerateNamedConstructorCallback):
2828         (GenerateImplementationIndexer):
2829         (GenerateImplementationNamedPropertyGetter):
2830         (GenerateImplementation):
2831
2832 2012-11-16  Ilya Tikhonovsky  <loislo@chromium.org>
2833
2834         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2835         https://bugs.webkit.org/show_bug.cgi?id=102356
2836
2837         Reviewed by Adam Barth.
2838
2839         A clean-up code was moved from uninitialize to clear method.
2840         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2841         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2842         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2843         adoptRef was added in createOfflineContext method.
2844
2845         Test: inspector-protocol/nmi-webaudio-leak-test.html
2846
2847         * Modules/webaudio/AudioContext.cpp:
2848         (WebCore::AudioContext::createOfflineContext):
2849         (WebCore::AudioContext::AudioContext):
2850         (WebCore::AudioContext::constructCommon):
2851         (WebCore::AudioContext::~AudioContext):
2852         (WebCore::AudioContext::clear):
2853         (WebCore::AudioContext::uninitialize):
2854         (WebCore::AudioContext::stopDispatch):
2855         (WebCore::AudioContext::stop):
2856         (WebCore::AudioContext::markForDeletion):
2857         (WebCore::AudioContext::scheduleNodeDeletion):
2858         (WebCore::AudioContext::deleteMarkedNodes):
2859         * Modules/webaudio/AudioContext.h:
2860         (AudioContext):
2861         * bindings/v8/custom/V8AudioContextCustom.cpp:
2862         (WebCore::V8AudioContext::constructorCallback):
2863         * inspector/InspectorMemoryAgent.cpp:
2864         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2865         * platform/PlatformMemoryInstrumentation.cpp:
2866         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2867         (WebCore):
2868         * platform/PlatformMemoryInstrumentation.h:
2869         (PlatformMemoryInstrumentation):
2870         (WebCore):
2871
2872 2012-11-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2873
2874         min/max/step support for calendar picker on datetime/datetime-local
2875         https://bugs.webkit.org/show_bug.cgi?id=102628
2876
2877         Reviewed by Kent Tamura.
2878
2879         Gray out dates with no allowed values on calendar picker for datetime/datetime-local
2880         when values are limited by min/max/step attributes.
2881
2882         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html
2883
2884         * Resources/pagepopups/calendarPicker.js:
2885         (CalendarPicker.prototype._stepMismatch):
2886         Returns true iff there are any allowed values in the given day.
2887
2888 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2889
2890         Remove non-existent directories from the make system
2891         https://bugs.webkit.org/show_bug.cgi?id=102632
2892
2893         Reviewed by Adam Barth.
2894
2895         Remove (non-existent) symbian references from the exclude list in gyp project files.
2896
2897         No new tests as there is no new functionality.
2898
2899         * WebCore.gyp/WebCore.gyp:
2900
2901 2012-11-18  Patrick Gansterer  <paroga@webkit.org>
2902
2903         [WIN] Add a IMLangFontLinkType typedef
2904         https://bugs.webkit.org/show_bug.cgi?id=102584
2905
2906         Reviewed by Brent Fulgham.
2907
2908         Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.
2909
2910         * platform/graphics/FontCache.h:
2911         (WebCore):
2912         * platform/graphics/win/FontCacheWin.cpp:
2913         (WebCore::FontCache::getFontLinkInterface):
2914         (WebCore::getCJKCodePageMasks):
2915         (WebCore::createMLangFont):
2916         (WebCore::FontCache::getFontDataForCharacters):
2917         * platform/graphics/win/SimpleFontDataWin.cpp:
2918         (WebCore::SimpleFontData::containsCharacters):
2919         * platform/graphics/wince/FontCacheWinCE.cpp:
2920         (WebCore):
2921         (WebCore::FontCache::getFontLinkInterface):
2922         (WebCore::getCJKCodePageMasks):
2923         (WebCore::FontCache::getFontDataForCharacters):
2924         * platform/graphics/wince/FontPlatformData.cpp:
2925         (WebCore::FontFamilyCodePageInfo::codePages):
2926         (WebCore::FixedSizeFontData::create):
2927         * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
2928         (WebCore::GlyphPage::fill):
2929
2930 2012-11-18  Mike West  <mkwst@chromium.org>
2931
2932         Web Inspector: Remove unused ConsoleMessage constructor.
2933         https://bugs.webkit.org/show_bug.cgi?id=102590
2934
2935         Reviewed by Brent Fulgham.
2936
2937         We currently have a ConsoleMessage constructor that's unused. Let's
2938         kill it.
2939
2940         * inspector/ConsoleMessage.cpp:
2941         * inspector/ConsoleMessage.h:
2942         (ConsoleMessage):
2943             Removing an unused constructor variant.
2944
2945 2012-11-18  Andreas Kling  <akling@apple.com>
2946
2947         StyledElement: Make handling the "style" attribute a litte faster.
2948         <http://webkit.org/b/102623>
2949
2950         Reviewed by Ojan Vafai.
2951
2952         We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
2953         by hoisting the parseAttribute() logic up into attributeChanged().
2954         Did the same thing with Element::parseAttribute() for consistency.
2955
2956         Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.
2957
2958         * dom/Element.cpp:
2959         (WebCore::Element::attributeChanged):
2960         * dom/Element.h:
2961         (WebCore::Element::parseAttribute):
2962         * dom/StyledElement.cpp:
2963         (WebCore::StyledElement::attributeChanged):
2964         * dom/StyledElement.h:
2965         (StyledElement):
2966
2967 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2968
2969         [CMake] Consolidate common input files
2970         https://bugs.webkit.org/show_bug.cgi?id=101632
2971
2972         Reviewed by Rob Buis.
2973
2974         Consolidate and sort the list of files, move common source files
2975         into CMakeLists.txt from the port specific files.
2976
2977         No new tests as there is no new functionality.
2978
2979         * CMakeLists.txt:
2980         * PlatformBlackBerry.cmake:
2981         * PlatformEfl.cmake:
2982         * PlatformWinCE.cmake:
2983
2984 2012-11-18  Andreas Kling  <akling@apple.com>
2985
2986         Tighten small SharedBuffers by reserving the exact amount of space needed.
2987         <http://webkit.org/b/102625>
2988
2989         Reviewed by Anders Carlsson.
2990
2991         When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
2992         amount of space needed instead of leaving it to Vector<char>::append().
2993
2994         1.86MB progression on Membuster3.
2995
2996         * platform/SharedBuffer.cpp:
2997         (WebCore::SharedBuffer::append):
2998
2999 2012-11-18  Ryosuke Niwa  <rniwa@webkit.org>
3000
3001         Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
3002         https://bugs.webkit.org/show_bug.cgi?id=101311
3003
3004         Reviewed by Darin Adler.
3005
3006         Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
3007         and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
3008         there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
3009         getter and namedItem return exactly one node or null as specified in HTML5:
3010         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0
3011
3012         Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
3013         a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.
3014
3015         Also got rid of Document::objects since it's not exposed in IDL or called anywhere.
3016
3017         Test: fast/dom/html-collections-namedItem.html
3018
3019         * CMakeLists.txt:
3020         * DerivedSources.cpp:
3021         * DerivedSources.make:
3022         * DerivedSources.pri:
3023         * GNUmakefile.list.am:
3024         * Target.pri:
3025         * UseJSC.cmake:
3026         * UseV8.cmake:
3027         * WebCore.gypi:
3028         * WebCore.vcproj/WebCore.vcproj:
3029         * WebCore.xcodeproj/project.pbxproj:
3030         * bindings/js/JSBindingsAllInOne.cpp:
3031         * bindings/js/JSHTMLAllCollectionCustom.cpp:
3032         (WebCore::getNamedItems):
3033         * bindings/js/JSHTMLCollectionCustom.cpp:
3034         (WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
3035         (WebCore::toJS):
3036         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
3037         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
3038         (WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
3039         (WebCore::JSHTMLFormControlsCollection::nameGetter):
3040         (WebCore::JSHTMLFormControlsCollection::namedItem):
3041         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
3042         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
3043         This is a bug. It should be a live NodeList instead.
3044         (WebCore::JSHTMLOptionsCollection::canGetItemsForName):
3045         (WebCore::JSHTMLOptionsCollection::nameGetter):
3046         (WebCore::JSHTMLOptionsCollection::namedItem):
3047         * bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
3048         * bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
3049         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
3050         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
3051         (WebCore::getNamedItems): Added a comment about how we should be returning
3052         a HTMLCollection when there are multiple matches.
3053         (WebCore::getItem):
3054         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
3055         (WebCore::V8HTMLAllCollection::namedItemCallback):
3056         * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
3057         (WebCore::V8HTMLCollection::namedPropertyGetter):
3058         (WebCore::toV8):
3059         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
3060         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
3061         (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
3062         (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
3063         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3064         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
3065         This is a bug. It should be a live NodeList instead.
3066         (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
3067         (WebCore::V8HTMLOptionsCollection::namedItemCallback):
3068         * dom/Document.cpp: Removed Document::objects since it was not used anywhere.
3069         * dom/Document.h:
3070         (Document):
3071         * dom/Element.cpp:
3072         (WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
3073         a HTMLFormControlsCollection instead of a HTMLCollection.
3074         * html/CollectionType.h:
3075         * html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
3076         * html/HTMLFieldSetElement.cpp:
3077         * html/HTMLFieldSetElement.h:
3078         * html/HTMLFormCollection.cpp: Removed.
3079         * html/HTMLFormCollection.h: Removed.
3080         * html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
3081         (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
3082         (WebCore::HTMLFormControlsCollection::create):
3083         (WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
3084         (WebCore::HTMLFormControlsCollection::formControlElements):
3085         (WebCore::HTMLFormControlsCollection::formImageElements):
3086         (WebCore::HTMLFormControlsCollection::virtualItemAfter):
3087         (WebCore::HTMLFormControlsCollection::namedItem):
3088         (WebCore::HTMLFormControlsCollection::updateNameCache):
3089         * html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
3090         (HTMLFormControlsCollection):
3091         * html/HTMLFormControlsCollection.idl: Added.
3092         * html/HTMLFormElement.cpp:
3093         * html/HTMLFormElement.h:
3094         * html/HTMLOptionsCollection.idl:
3095
3096 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3097
3098         [V8] Rename $className to $v8InterfaceName
3099         https://bugs.webkit.org/show_bug.cgi?id=102487
3100
3101         Reviewed by Adam Barth.
3102
3103         In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
3104         We should rename $className to $v8InterfaceName. Also we can
3105         remove GetCallbackClassName().
3106
3107         No tests. No change in behavior.
3108
3109         * bindings/scripts/CodeGeneratorV8.pm:
3110         (GenerateHeader):
3111         (GetHeaderClassInclude):
3112         (GenerateDomainSafeFunctionGetter):
3113         (GenerateDomainSafeFunctionSetter):
3114         (GenerateParametersCheck):
3115         (GenerateImplementation):
3116         (GenerateHeaderContentHeader):
3117         (GenerateImplementationContentHeader):
3118         (GenerateCallbackHeader):
3119         (GenerateCallbackImplementation):
3120         (GenerateToV8Converters):
3121         (GetPassRefPtrType):
3122
3123 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3124
3125         [V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
3126         https://bugs.webkit.org/show_bug.cgi?id=102499
3127
3128         Reviewed by Adam Barth.
3129
3130         No tests. No change in behavior.
3131
3132         * bindings/scripts/CodeGeneratorV8.pm:
3133         (GenerateNormalAttrGetter):
3134         (GenerateNormalAttrSetter):
3135         (GenerateParametersCheckExpression):
3136         (GenerateParametersCheck):
3137         (GenerateFunctionCallString):
3138         (GetNativeTypeFromSignature):
3139         (TranslateParameter):
3140         (TypeCanFailConversion):
3141         (JSValueToNative):
3142         (NativeToJSValue):
3143
3144 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3145
3146         Remove GenerateModule() from all code generators
3147         https://bugs.webkit.org/show_bug.cgi?id=102490
3148
3149         Reviewed by Adam Barth.
3150
3151         WebKit IDL files no longer support modules. The Web IDL spec
3152         no longer supports modules. We can remove it from code generators.
3153
3154         No tests. No change in behavior.
3155
3156         * bindings/scripts/CodeGenerator.pm:
3157         (ProcessDocument):
3158         * bindings/scripts/CodeGeneratorCPP.pm:
3159         * bindings/scripts/CodeGeneratorGObject.pm:
3160         * bindings/scripts/CodeGeneratorJS.pm:
3161         * bindings/scripts/CodeGeneratorObjC.pm:
3162         * bindings/scripts/CodeGeneratorV8.pm:
3163
3164 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3165
3166         [V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
3167         https://bugs.webkit.org/show_bug.cgi?id=102497
3168
3169         Reviewed by Adam Barth.
3170
3171         No tests. No change in behavior.
3172
3173         * bindings/scripts/CodeGeneratorV8.pm:
3174         (GenerateDomainSafeFunctionGetter):
3175         (GenerateNormalAttrGetter):
3176         (GenerateFunctionCallString):
3177
3178 2012-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3179
3180         Unreviewed, rolling out r135074.
3181         http://trac.webkit.org/changeset/135074
3182         https://bugs.webkit.org/show_bug.cgi?id=102619
3183
3184         Made most layout tests crash. (Requested by rakuco on
3185         #webkit).
3186
3187         * PlatformEfl.cmake:
3188         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3189         (WebCore::GraphicsContext3D::create):
3190         (WebCore::GraphicsContext3D::GraphicsContext3D):
3191         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3192         (WebCore::GraphicsContext3D::makeContextCurrent):
3193         (WebCore::GraphicsContext3D::setContextLostCallback):
3194         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3195         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3196         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3197         (WebCore::GraphicsContext3DPrivate::createSurface):
3198         (WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
3199         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
3200         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
3201         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
3202         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
3203         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
3204         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3205         (GraphicsContext3DPrivate):
3206         * platform/graphics/opengl/GLDefs.h: Removed.
3207         * platform/graphics/opengl/GLPlatformContext.cpp: Removed.
3208         * platform/graphics/opengl/GLPlatformContext.h: Removed.
3209         * platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
3210         * platform/graphics/opengl/GLPlatformSurface.h: Removed.
3211         * platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
3212         * platform/graphics/surfaces/glx/GLXContext.h: Removed.
3213         * platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
3214         * platform/graphics/surfaces/glx/GLXSurface.h: Removed.
3215
3216 2012-11-18  Antti Koivisto  <antti@apple.com>
3217
3218         REGRESSION(r129644): User StyleSheet not applying
3219         https://bugs.webkit.org/show_bug.cgi?id=102110
3220
3221         Reviewed by Andreas Kling.
3222
3223         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
3224         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
3225         
3226         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
3227         It also generally cleans up the code around injected and user stylesheets.
3228
3229         Tests: userscripts/user-script-and-stylesheet.html
3230                userscripts/user-stylesheet-invalidate.html
3231
3232         * css/StyleResolver.cpp:
3233         (WebCore::StyleResolver::StyleResolver):
3234         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
3235         (WebCore::collectCSSOMWrappers):
3236         * css/StyleResolver.h:
3237         (StyleResolver):
3238         * dom/Document.cpp:
3239         (WebCore::Document::setCompatibilityMode):
3240         * dom/DocumentStyleSheetCollection.cpp:
3241         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
3242         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
3243         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
3244         (WebCore):
3245         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
3246         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
3247         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
3248         (WebCore::DocumentStyleSheetCollection::addUserSheet):
3249         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
3250         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
3251         * dom/DocumentStyleSheetCollection.h:
3252         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
3253         (DocumentStyleSheetCollection):
3254         * page/PageGroup.cpp:
3255         (WebCore::PageGroup::addUserStyleSheetToWorld):
3256         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
3257         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
3258         (WebCore::PageGroup::removeAllUserContent):
3259         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
3260         * page/PageGroup.h:
3261         (PageGroup):
3262
3263 2012-11-18  Adam Barth  <abarth@webkit.org>
3264
3265         Unreviewed.
3266
3267         Update run-bindings-tests baselines after
3268         http://trac.webkit.org/changeset/135063
3269
3270         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
3271         (JSTestActiveDOMObjectOwner):
3272         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
3273         (JSTestCustomNamedGetterOwner):
3274         * bindings/scripts/test/JS/JSTestEventConstructor.h:
3275         (JSTestEventConstructorOwner):
3276         * bindings/scripts/test/JS/JSTestEventTarget.h:
3277         (JSTestEventTargetOwner):
3278         * bindings/scripts/test/JS/JSTestException.h:
3279         (JSTestExceptionOwner):
3280         * bindings/scripts/test/JS/JSTestInterface.h:
3281         (JSTestInterfaceOwner):
3282         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
3283         (JSTestMediaQueryListListenerOwner):
3284         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
3285         (JSTestNamedConstructorOwner):
3286         * bindings/scripts/test/JS/JSTestObj.h:
3287         (JSTestObjOwner):
3288         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
3289         (JSTestOverloadedConstructorsOwner):
3290         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3291         (JSTestSerializedScriptValueInterfaceOwner):
3292
3293 2012-11-18  Simon Fraser  <simon.fraser@apple.com>
3294
3295         Make convertToLayerCoords iterative, rather than recursive
3296         https://bugs.webkit.org/show_bug.cgi?id=102618
3297
3298         Reviewed by Antti Koivisto.
3299
3300         RenderLayer::convertToLayerCoords() is a hot function on profiles.
3301         Change it to be iterative, rather than recursive, so that the
3302         bulk of the function can be inlined.
3303         
3304         Was tested with assertions against the old code during development.
3305
3306         * rendering/RenderLayer.cpp:
3307         (WebCore::accumulateOffsetTowardsAncestor):
3308         (WebCore::RenderLayer::convertToLayerCoords):
3309
3310 2012-11-18  Andreas Kling  <akling@apple.com>
3311
3312         Inline the StyledElement constructor.
3313         <http://webkit.org/b/102615>
3314
3315         Reviewed by Antti Koivisto.
3316
3317         StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline. 
3318         Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.
3319
3320         * dom/StyledElement.cpp:
3321         * dom/StyledElement.h:
3322         (WebCore::StyledElement::StyledElement):
3323
3324 2012-11-18  Andreas Kling  <akling@apple.com>
3325
3326         HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
3327         <http://webkit.org/b/102614>
3328
3329         Reviewed by Anders Carlsson.
3330
3331         When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
3332         to know if it's present. If it's not present, 'value' argument will be null.
3333
3334         * html/HTMLMediaElement.cpp:
3335         (WebCore::HTMLMediaElement::parseAttribute):
3336
3337 2012-11-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
3338
3339         [EFL] Refactor GraphicsContext3DEFL.
3340         https://bugs.webkit.org/show_bug.cgi?id=101291.
3341
3342         Reviewed by Kenneth Rohde Christiansen.
3343
3344         GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
3345         GraphicsContext3DPrivate needs to handle the following cases:
3346         1) To provide an off-screen buffer for accelerated composition.
3347         2) Render to a current context.
3348         3) To render directly to host window. (currently not supported.)
3349
3350         Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
3351         the other supported case. Evas acts as a glue layer to provide us with appropriate
3352         GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
3353         However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
3354
3355         It would be for our advantage to be able to take in to use any optimisations/extensions
3356         provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
3357         This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
3358         and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
3359         Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
3360         GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
3361
3362         GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
3363         It uses GL extension ARB_robustness (when available) to detect driver resets.
3364         It defines a simple interface for things that need to be handled by the context. Support
3365         for multi-threaded usage and shared context-group would be added later.
3366
3367         GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
3368         It defines a simple interface for things that need to be handled by the surface.
3369         It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
3370         can be used to render into this off-screen area.
3371
3372         This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
3373
3374         * PlatformEfl.cmake:
3375         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3376         (WebCore::GraphicsContext3D::create):
3377         (WebCore::GraphicsContext3D::GraphicsContext3D):
3378         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3379         (WebCore::GraphicsContext3D::makeContextCurrent):
3380         (WebCore::GraphicsContext3D::setContextLostCallback):
3381         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3382         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3383         (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3384         (GraphicsContext3DPrivate::releaseResources):
3385         (GraphicsContext3DPrivate::setContextLostCallback):
3386         (GraphicsContext3DPrivate::platformGraphicsContext3D):
3387         (GraphicsContext3DPrivate::makeContextCurrent):
3388         (GraphicsContext3DPrivate::createGraphicsSurfaces):
3389         (GraphicsContext3DPrivate::copyToGraphicsSurface):
3390         (GraphicsContext3DPrivate::graphicsSurfaceToken):
3391         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3392         (GraphicsContext3DPrivate):
3393         * platform/graphics/opengl/GLDefs.h: Added.
3394         (WebCore):
3395         * platform/graphics/opengl/GLPlatformContext.cpp: Added.
3396         (WebCore):
3397         (WebCore::GLPlatformContext::createContext):
3398         (WebCore::GLPlatformContext::createOffScreenContext):
3399         (WebCore::GLPlatformContext::createCurrentContextWrapper):
3400         (WebCore::GLPlatformContext::GLPlatformContext):
3401         (WebCore::GLPlatformContext::~GLPlatformContext):
3402         (WebCore::GLPlatformContext::makeCurrent):
3403         (WebCore::GLPlatformContext::isValid):
3404         (WebCore::GLPlatformContext::releaseCurrent):
3405         (WebCore::GLPlatformContext::handle):
3406         (WebCore::GLPlatformContext::isCurrentContext):
3407         (WebCore::GLPlatformContext::initialize):
3408         (WebCore::GLPlatformContext::getCurrent):
3409         (WebCore::GLPlatformContext::platformMakeCurrent):
3410         (WebCore::GLPlatformContext::platformReleaseCurrent):
3411         (WebCore::GLPlatformContext::destroy):
3412         * platform/graphics/opengl/GLPlatformContext.h: Added.
3413         (WebCore):
3414         (GLPlatformContext):
3415         * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
3416         (WebCore):
3417         (WebCore::GLPlatformSurface::createOffscreenSurface):
3418         (WebCore::GLPlatformSurface::createTransportSurface):
3419         (WebCore::GLPlatformSurface::GLPlatformSurface):
3420         (WebCore::GLPlatformSurface::~GLPlatformSurface):
3421         (WebCore::GLPlatformSurface::handle):
3422         (WebCore::GLPlatformSurface::geometry):
3423         (WebCore::GLPlatformSurface::sharedDisplay):
3424         (WebCore::GLPlatformSurface::configuration):
3425         (WebCore::GLPlatformSurface::swapBuffers):
3426         (WebCore::GLPlatformSurface::copyTexture):
3427         (WebCore::GLPlatformSurface::updateContents):
3428         (WebCore::GLPlatformSurface::setGeometry):
3429         (WebCore::GLPlatformSurface::destroy):
3430         * platform/graphics/opengl/GLPlatformSurface.h: Added.
3431         (WebCore):
3432         (GLPlatformSurface):
3433             GLXOffScreenContext creates an off-screen context. This is used when
3434             renderstyle is RenderOffscreen.
3435             It uses GL extension GLX_ARB_create_context (when available)
3436             to create a context else falls back to use glXCreateNewContext.
3437         * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
3438         (WebCore):
3439         (WebCore::initializeARBExtensions):
3440         (WebCore::GLXOffScreenContext::GLXOffScreenContext):
3441         (WebCore::GLXOffScreenContext::initialize):
3442         (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
3443         (WebCore::GLXOffScreenContext::isCurrentContext):
3444         (WebCore::GLXOffScreenContext::platformMakeCurrent):
3445         (WebCore::GLXOffScreenContext::platformReleaseCurrent):
3446         (WebCore::GLXOffScreenContext::freeResources):
3447         (WebCore::GLXOffScreenContext::destroy):
3448             GLXCurrentContextWrapper acts as a wrapper for current context.
3449             This is used when renderstyle is RenderToCurrentGLContext.
3450         * platform/graphics/surfaces/glx/GLXContext.h: Added.
3451         (WebCore):
3452         (GLXCurrentContextWrapper):
3453         (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
3454         (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
3455         (GLXOffScreenContext):
3456         * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
3457         (WebCore):
3458         (WebCore::GLXSurface::GLXSurface):
3459         (WebCore::GLXSurface::~GLXSurface):
3460         (WebCore::GLXSurface::visualInfo):
3461         (WebCore::GLXSurface::xWindow):
3462         (WebCore::GLXSurface::pBufferConfiguration):
3463         (WebCore::GLXSurface::transportSurfaceConfiguration):
3464         (WebCore::GLXSurface::isXRenderExtensionSupported):
3465             GLXTransportSurface creates Window and uses it as an off-screen surface.
3466             Any GLContext that was created with respect to configuration can be used
3467             to render into this.
3468             This is used when contents of the buffer are to be provided to UI Process
3469             for display.
3470         (WebCore::GLXTransportSurface::GLXTransportSurface):
3471         (WebCore::GLXTransportSurface::~GLXTransportSurface):
3472         (WebCore::GLXTransportSurface::configuration):
3473         (WebCore::GLXTransportSurface::swapBuffers):
3474         (WebCore::GLXTransportSurface::setGeometry):
3475         (WebCore::GLXTransportSurface::initialize):
3476         (WebCore::GLXTransportSurface::destroy):
3477         (WebCore::GLXTransportSurface::freeResources):
3478            GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
3479            Any GLContext that was created with respect to configuration can be used
3480            to render into this.
3481         (WebCore::GLXPBuffer::GLXPBuffer):
3482         (WebCore::GLXPBuffer::~GLXPBuffer):
3483         (WebCore::GLXPBuffer::initialize):
3484         (WebCore::GLXPBuffer::configuration):
3485         (WebCore::GLXPBuffer::destroy):
3486         (WebCore::GLXPBuffer::freeResources):
3487         * platform/graphics/surfaces/glx/GLXSurface.h: Added.
3488         (WebCore):
3489             Creates X resources which are shared between surface and context.
3490         (SharedX11Resources):
3491         (WebCore::SharedX11Resources::create):
3492         (WebCore::SharedX11Resources::deref):
3493         (WebCore::SharedX11Resources::getXWindow):
3494         (WebCore::SharedX11Resources::display):
3495         (WebCore::SharedX11Resources::visualInfo):
3496         (WebCore::SharedX11Resources::createConfig):
3497         (WebCore::SharedX11Resources::pBufferContextConfig):
3498         (WebCore::SharedX11Resources::surfaceContextConfig):
3499         (WebCore::SharedX11Resources::isXRenderExtensionSupported):
3500         (WebCore::SharedX11Resources::SharedX11Resources):
3501         (WebCore::SharedX11Resources::~SharedX11Resources):
3502         (GLXSurface):
3503         (GLXTransportSurface):
3504         (GLXPBuffer):
3505
3506 2012-11-18  Andreas Kling  <akling@apple.com>
3507
3508         Element::parseAttribute() should take name & value as separate arguments.
3509         <http://webkit.org/b/102608>
3510
3511         Reviewed by Antti Koivisto.
3512
3513         Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
3514         of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
3515         creating a temporary Attribute is no longer necessary.
3516
3517         This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.
3518
3519         * bindings/js/ScriptEventListener.cpp:
3520         (WebCore::createAttributeEventListener):
3521         * bindings/js/ScriptEventListener.h:
3522         (WebCore):
3523         * bindings/v8/ScriptEventListener.cpp:
3524         (WebCore::createAttributeEventListener):
3525         * bindings/v8/ScriptEventListener.h:
3526         (WebCore):
3527         * dom/Element.cpp:
3528         (WebCore::Element::attributeChanged):
3529         (WebCore::Element::parseAttribute):
3530         * dom/Element.h:
3531         (Element):
3532         * dom/StyledElement.cpp:
3533         (WebCore::StyledElement::parseAttribute):
3534         * dom/StyledElement.h:
3535         (StyledElement):
3536         * html/HTMLAnchorElement.cpp:
3537         (WebCore::HTMLAnchorElement::parseAttribute):
3538         * html/HTMLAnchorElement.h:
3539         (HTMLAnchorElement):
3540         * html/HTMLAppletElement.cpp:
3541         (WebCore::HTMLAppletElement::parseAttribute):
3542         * html/HTMLAppletElement.h:
3543         (HTMLAppletElement):
3544         * html/HTMLAreaElement.cpp:
3545         (WebCore::HTMLAreaElement::parseAttribute):
3546         * html/HTMLAreaElement.h:
3547         (HTMLAreaElement):
3548         * html/HTMLBaseElement.cpp:
3549         (WebCore::HTMLBaseElement::parseAttribute):
3550         * html/HTMLBaseElement.h:
3551         (HTMLBaseElement):
3552         * html/HTMLBodyElement.cpp:
3553         (WebCore::HTMLBodyElement::parseAttribute):
3554         * html/HTMLBodyElement.h:
3555         (HTMLBodyElement):
3556         * html/HTMLButtonElement.cpp:
3557         (WebCore::HTMLButtonElement::parseAttribute):
3558         * html/HTMLButtonElement.h:
3559         * html/HTMLCanvasElement.cpp:
3560         (WebCore::HTMLCanvasElement::parseAttribute):
3561         * html/HTMLCanvasElement.h:
3562         (HTMLCanvasElement):
3563         * html/HTMLDetailsElement.cpp:
3564         (WebCore::HTMLDetailsElement::parseAttribute):
3565         * html/HTMLDetailsElement.h:
3566         (HTMLDetailsElement):
3567         * html/HTMLElement.cpp:
3568         (WebCore::HTMLElement::parseAttribute):
3569         (WebCore::HTMLElement::dirAttributeChanged):
3570         * html/HTMLElement.h:
3571         (HTMLElement):
3572         * html/HTMLEmbedElement.cpp:
3573         (WebCore::HTMLEmbedElement::parseAttribute):
3574         * html/HTMLEmbedElement.h:
3575         (HTMLEmbedElement):
3576         * html/HTMLFormControlElement.cpp:
3577         (WebCore::HTMLFormControlElement::parseAttribute):
3578         * html/HTMLFormControlElement.h:
3579         (HTMLFormControlElement):
3580         * html/HTMLFormElement.cpp:
3581         (WebCore::HTMLFormElement::parseAttribute):
3582         * html/HTMLFormElement.h:
3583         (HTMLFormElement):
3584         * html/HTMLFrameElement.cpp:
3585         (WebCore::HTMLFrameElement::parseAttribute):
3586         * html/HTMLFrameElement.h:
3587         (HTMLFrameElement):
3588         * html/HTMLFrameElementBase.cpp:
3589         (WebCore::HTMLFrameElementBase::parseAttribute):
3590         * html/HTMLFrameElementBase.h:
3591         (HTMLFrameElementBase):
3592         * html/HTMLFrameSetElement.cpp:
3593         (WebCore::HTMLFrameSetElement::parseAttribute):
3594         * html/HTMLFrameSetElement.h:
3595         (HTMLFrameSetElement):
3596         * html/HTMLIFrameElement.cpp:
3597         (WebCore::HTMLIFrameElement::parseAttribute):
3598         * html/HTMLIFrameElement.h:
3599         (HTMLIFrameElement):
3600         * html/HTMLImageElement.cpp:
3601         (WebCore::HTMLImageElement::parseAttribute):
3602         * html/HTMLImageElement.h:
3603         (HTMLImageElement):
3604         * html/HTMLInputElement.cpp:
3605         (WebCore::HTMLInputElement::parseAttribute):
3606         (WebCore::HTMLInputElement::parseMaxLengthAttribute):
3607         * html/HTMLInputElement.h:
3608         (HTMLInputElement):
3609         * html/HTMLKeygenElement.cpp:
3610         (WebCore::HTMLKeygenElement::parseAttribute):
3611         * html/HTMLKeygenElement.h:
3612         (HTMLKeygenElement):
3613         * html/HTMLLIElement.cpp:
3614         (WebCore::HTMLLIElement::parseAttribute):
3615         * html/HTMLLIElement.h:
3616         (HTMLLIElement):
3617         * html/HTMLLinkElement.cpp:
3618         (WebCore::HTMLLinkElement::parseAttribute):
3619         * html/HTMLLinkElement.h:
3620         (HTMLLinkElement):
3621         * html/HTMLMapElement.cpp:
3622         (WebCore::HTMLMapElement::parseAttribute):
3623         * html/HTMLMapElement.h:
3624         (HTMLMapElement):
3625         * html/HTMLMediaElement.cpp:
3626         (WebCore::HTMLMediaElement::parseAttribute):
3627         * html/HTMLMediaElement.h:
3628         * html/HTMLMetaElement.cpp:
3629         (WebCore::HTMLMetaElement::parseAttribute):
3630         * html/HTMLMetaElement.h:
3631         (HTMLMetaElement):
3632         * html/HTMLMeterElement.cpp:
3633         (WebCore::HTMLMeterElement::parseAttribute):
3634         * html/HTMLMeterElement.h:
3635         (HTMLMeterElement):
3636         * html/HTMLOListElement.cpp:
3637         (WebCore::HTMLOListElement::parseAttribute):
3638         * html/HTMLOListElement.h:
3639         (HTMLOListElement):
3640         * html/HTMLObjectElement.cpp:
3641         (WebCore::HTMLObjectElement::parseAttribute):
3642         * html/HTMLObjectElement.h:
3643         (HTMLObjectElement):
3644         * html/HTMLOptGroupElement.cpp:
3645         (WebCore::HTMLOptGroupElement::parseAttribute):
3646         * html/HTMLOptGroupElement.h:
3647         * html/HTMLOptionElement.cpp:
3648         (WebCore::HTMLOptionElement::parseAttribute):
3649         * html/HTMLOptionElement.h:
3650         (HTMLOptionElement):
3651         * html/HTMLOutputElement.cpp:
3652         (WebCore::HTMLOutputElement::parseAttribute):
3653         * html/HTMLOutputElement.h:
3654         (HTMLOutputElement):
3655         * html/HTMLProgressElement.cpp:
3656         (WebCore::HTMLProgressElement::parseAttribute):
3657         * html/HTMLProgressElement.h:
3658         * html/HTMLScriptElement.cpp:
3659         (WebCore::HTMLScriptElement::parseAttribute):
3660         * html/HTMLScriptElement.h:
3661         (HTMLScriptElement):
3662         * html/HTMLSelectElement.cpp:
3663         (WebCore::HTMLSelectElement::parseAttribute):
3664         (WebCore::HTMLSelectElement::parseMultipleAttribute):
3665         * html/HTMLSelectElement.h:
3666         * html/HTMLStyleElement.cpp:
3667         (WebCore::HTMLStyleElement::parseAttribute):
3668         * html/HTMLStyleElement.h:
3669         (HTMLStyleElement):
3670         * html/HTMLTableCellElement.cpp:
3671         (WebCore::HTMLTableCellElement::parseAttribute):
3672         * html/HTMLTableCellElement.h:
3673         (HTMLTableCellElement):
3674         * html/HTMLTableColElement.cpp:
3675         (WebCore::HTMLTableColElement::parseAttribute):
3676         * html/HTMLTableColElement.h:
3677         (HTMLTableColElement):
3678         * html/HTMLTableElement.cpp:
3679         (WebCore::HTMLTableElement::parseAttribute):
3680         * html/HTMLTableElement.h:
3681         (HTMLTableElement):
3682         * html/HTMLTextAreaElement.cpp:
3683         (WebCore::HTMLTextAreaElement::parseAttribute):
3684         * html/HTMLTextAreaElement.h:
3685         (HTMLTextAreaElement):
3686         * html/HTMLTextFormControlElement.cpp:
3687         (WebCore::HTMLTextFormControlElement::parseAttribute):
3688         * html/HTMLTextFormControlElement.h:
3689         (HTMLTextFormControlElement):
3690         * html/HTMLTrackElement.cpp:
3691         (WebCore::HTMLTrackElement::parseAttribute):
3692         * html/HTMLTrackElement.h:
3693         (HTMLTrackElement):
3694         * html/HTMLVideoElement.cpp:
3695         (WebCore::HTMLVideoElement::parseAttribute):
3696         * html/HTMLVideoElement.h:
3697         (HTMLVideoElement):
3698         * html/shadow/HTMLContentElement.cpp:
3699         (WebCore::HTMLContentElement::parseAttribute):
3700         * html/shadow/HTMLContentElement.h:
3701         (HTMLContentElement):
3702         * mathml/MathMLElement.cpp:
3703         (WebCore::MathMLElement::parseAttribute):
3704         * mathml/MathMLElement.h:
3705         (MathMLElement):
3706         * svg/SVGAElement.cpp:
3707         (WebCore::SVGAElement::parseAttribute):
3708         * svg/SVGAElement.h:
3709         (SVGAElement):
3710         * svg/SVGAnimateMotionElement.cpp:
3711         (WebCore::SVGAnimateMotionElement::parseAttribute):
3712         * svg/SVGAnimateMotionElement.h:
3713         (SVGAnimateMotionElement):
3714         * svg/SVGAnimateTransformElement.cpp:
3715         (WebCore::SVGAnimateTransformElement::parseAttribute):
3716         * svg/SVGAnimateTransformElement.h:
3717         (SVGAnimateTransformElement):
3718         * svg/SVGAnimationElement.cpp:
3719         (WebCore::SVGAnimationElement::parseAttribute):
3720         * svg/SVGAnimationElement.h:
3721         (SVGAnimationElement):
3722         * svg/SVGCircleElement.cpp:
3723         (WebCore::SVGCircleElement::parseAttribute):
3724         * svg/SVGCircleElement.h:
3725         (SVGCircleElement):
3726         * svg/SVGClipPathElement.cpp:
3727         (WebCore::SVGClipPathElement::parseAttribute):
3728         * svg/SVGClipPathElement.h:
3729         (SVGClipPathElement):
3730         * svg/SVGComponentTransferFunctionElement.cpp:
3731         (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
3732         * svg/SVGComponentTransferFunctionElement.h:
3733         (SVGComponentTransferFunctionElement):
3734         * svg/SVGCursorElement.cpp:
3735         (WebCore::SVGCursorElement::parseAttribute):
3736         * svg/SVGCursorElement.h:
3737         (SVGCursorElement):
3738         * svg/SVGElement.cpp:
3739         (WebCore::SVGElement::reportAttributeParsingError):
3740         (WebCore::SVGElement::parseAttribute):
3741         * svg/SVGElement.h:
3742         (SVGElement):
3743         * svg/SVGEllipseElement.cpp:
3744         (WebCore::SVGEllipseElement::parseAttribute):
3745         * svg/SVGEllipseElement.h:
3746         (SVGEllipseElement):
3747         * svg/SVGExternalResourcesRequired.cpp:
3748         (WebCore::SVGExternalResourcesRequired::parseAttribute):
3749         * svg/SVGExternalResourcesRequired.h:
3750         (SVGExternalResourcesRequired):
3751         * svg/SVGFEBlendElement.cpp:
3752         (WebCore::SVGFEBlendElement::parseAttribute):
3753         * svg/SVGFEBlendElement.h:
3754         (SVGFEBlendElement):
3755         * svg/SVGFEColorMatrixElement.cpp:
3756         (WebCore::SVGFEColorMatrixElement::parseAttribute):
3757         * svg/SVGFEColorMatrixElement.h:
3758         (SVGFEColorMatrixElement):
3759         * svg/SVGFEComponentTransferElement.cpp:
3760         (WebCore::SVGFEComponentTransferElement::parseAttribute):
3761         * svg/SVGFEComponentTransferElement.h:
3762         (SVGFEComponentTransferElement):
3763         * svg/SVGFECompositeElement.cpp:
3764         (WebCore::SVGFECompositeElement::parseAttribute):
3765         * svg/SVGFECompositeElement.h:
3766         (SVGFECompositeElement):
3767         * svg/SVGFEConvolveMatrixElement.cpp:
3768         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
3769         * svg/SVGFEConvolveMatrixElement.h:
3770         (SVGFEConvolveMatrixElement):
3771         * svg/SVGFEDiffuseLightingElement.cpp:
3772         (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
3773         * svg/SVGFEDiffuseLightingElement.h:
3774         (SVGFEDiffuseLightingElement):
3775         * svg/SVGFEDisplacementMapElement.cpp:
3776         (WebCore::SVGFEDisplacementMapElement::parseAttribute):
3777         * svg/SVGFEDisplacementMapElement.h:
3778         (SVGFEDisplacementMapElement):
3779         * svg/SVGFEDropShadowElement.cpp:
3780         (WebCore::SVGFEDropShadowElement::parseAttribute):
3781         * svg/SVGFEDropShadowElement.h:
3782         (SVGFEDropShadowElement):
3783         * svg/SVGFEGaussianBlurElement.cpp:
3784         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
3785         * svg/SVGFEGaussianBlurElement.h:
3786         (SVGFEGaussianBlurElement):
3787         * svg/SVGFEImageElement.cpp:
3788         (WebCore::SVGFEImageElement::parseAttribute):
3789         * svg/SVGFEImageElement.h:
3790         (SVGFEImageElement):
3791         * svg/SVGFELightElement.cpp:
3792         (WebCore::SVGFELightElement::parseAttribute):
3793         * svg/SVGFELightElement.h:
3794         (SVGFELightElement):
3795         * svg/SVGFEMergeNodeElement.cpp:
3796         (WebCore::SVGFEMergeNodeElement::parseAttribute):
3797         * svg/SVGFEMergeNodeElement.h:
3798         (SVGFEMergeNodeElement):
3799         * svg/SVGFEMorphologyElement.cpp:
3800         (WebCore::SVGFEMorphologyElement::parseAttribute):
3801         * svg/SVGFEMorphologyElement.h:
3802         (SVGFEMorphologyElement):
3803         * svg/SVGFEOffsetElement.cpp:
3804         (WebCore::SVGFEOffsetElement::parseAttribute):
3805         * svg/SVGFEOffsetElement.h:
3806         (SVGFEOffsetElement):
3807         * svg/SVGFESpecularLightingElement.cpp:
3808         (WebCore::SVGFESpecularLightingElement::parseAttribute):
3809         * svg/SVGFESpecularLightingElement.h:
3810         (SVGFESpecularLightingElement):
3811         * svg/SVGFETileElement.cpp:
3812         (WebCore::SVGFETileElement::parseAttribute):
3813         * svg/SVGFETileElement.h:
3814         (SVGFETileElement):
3815         * svg/SVGFETurbulenceElement.cpp:
3816         (WebCore::SVGFETurbulenceElement::parseAttribute):
3817         * svg/SVGFETurbulenceElement.h:
3818         (SVGFETurbulenceElement):
3819         * svg/SVGFilterElement.cpp:
3820         (WebCore::SVGFilterElement::parseAttribute):
3821         * svg/SVGFilterElement.h:
3822         (SVGFilterElement):
3823         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3824         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
3825         * svg/SVGFilterPrimitiveStandardAttributes.h:
3826         (SVGFilterPrimitiveStandardAttributes):
3827         * svg/SVGFitToViewBox.h:
3828         (WebCore::SVGFitToViewBox::parseAttribute):
3829         * svg/SVGFontFaceElement.cpp:
3830         (WebCore::SVGFontFaceElement::parseAttribute):
3831         * svg/SVGFontFaceElement.h:
3832         (SVGFontFaceElement):
3833         * svg/SVGFontFaceUriElement.cpp:
3834         (WebCore::SVGFontFaceUriElement::parseAttribute):
3835         * svg/SVGFontFaceUriElement.h:
3836         (SVGFontFaceUriElement):
3837         * svg/SVGForeignObjectElement.cpp:
3838         (WebCore::SVGForeignObjectElement::parseAttribute):
3839         * svg/SVGForeignObjectElement.h:
3840         (SVGForeignObjectElement):
3841         * svg/SVGGElement.cpp:
3842         (WebCore::SVGGElement::parseAttribute):
3843         * svg/SVGGElement.h:
3844         (SVGGElement):
3845         * svg/SVGGlyphElement.cpp:
3846         (WebCore::SVGGlyphElement::parseAttribute):
3847         * svg/SVGGlyphElement.h:
3848         (SVGGlyphElement):
3849         * svg/SVGGlyphRefElement.cpp:
3850         (WebCore::SVGGlyphRefElement::parseAttribute):
3851         * svg/SVGGlyphRefElement.h:
3852         * svg/SVGGradientElement.cpp:
3853         (WebCore::SVGGradientElement::parseAttribute):
3854         * svg/SVGGradientElement.h:
3855         * svg/SVGImageElement.cpp:
3856         (WebCore::SVGImageElement::parseAttribute):
3857         * svg/SVGImageElement.h:
3858         (SVGImageElement):
3859         * svg/SVGLangSpace.cpp:
3860         (WebCore::SVGLangSpace::parseAttribute):
3861         * svg/SVGLangSpace.h:
3862         (SVGLangSpace):
3863         * svg/SVGLineElement.cpp:
3864         (WebCore::SVGLineElement::parseAttribute):
3865         * svg/SVGLineElement.h:
3866         (SVGLineElement):
3867         * svg/SVGLinearGradientElement.cpp:
3868         (WebCore::SVGLinearGradientElement::parseAttribute):
3869         * svg/SVGLinearGradientElement.h:
3870         (SVGLinearGradientElement):
3871         * svg/SVGMPathElement.cpp:
3872         (WebCore::SVGMPathElement::parseAttribute):
3873         * svg/SVGMPathElement.h:
3874         (SVGMPathElement):
3875         * svg/SVGMarkerElement.cpp:
3876         (WebCore::SVGMarkerElement::parseAttribute):
3877         * svg/SVGMarkerElement.h:
3878         (SVGMarkerElement):
3879         * svg/SVGMaskElement.cpp:
3880         (WebCore::SVGMaskElement::parseAttribute):
3881         * svg/SVGMaskElement.h:
3882         (SVGMaskElement):
3883         * svg/SVGPathElement.cpp:
3884         (WebCore::SVGPathElement::parseAttribute):
3885         * svg/SVGPathElement.h:
3886         (SVGPathElement):
3887         * svg/SVGPatternElement.cpp:
3888         (WebCore::SVGPatternElement::parseAttribute):
3889         * svg/SVGPatternElement.h:
3890         (SVGPatternElement):
3891         * svg/SVGPolyElement.cpp:
3892         (WebCore::SVGPolyElement::parseAttribute):
3893         * svg/SVGPolyElement.h:
3894         (SVGPolyElement):
3895         * svg/SVGRadialGradientElement.cpp:
3896         (WebCore::SVGRadialGradientElement::parseAttribute):
3897         * svg/SVGRadialGradientElement.h:
3898         (SVGRadialGradientElement):
3899         * svg/SVGRectElement.cpp:
3900         (WebCore::SVGRectElement::parseAttribute):
3901         * svg/SVGRectElement.h:
3902         (SVGRectElement):
3903         * svg/SVGSVGElement.cpp:
3904         (WebCore::SVGSVGElement::parseAttribute):
3905         * svg/SVGSVGElement.h:
3906         (SVGSVGElement):
3907         * svg/SVGScriptElement.cpp:
3908         (WebCore::SVGScriptElement::parseAttribute):
3909         * svg/SVGScriptElement.h:
3910         (SVGScriptElement):
3911         * svg/SVGStopElement.cpp:
3912         (WebCore::SVGStopElement::parseAttribute):
3913         * svg/SVGStopElement.h:
3914         (SVGStopElement):
3915         * svg/SVGStyleElement.cpp:
3916         (WebCore::SVGStyleElement::parseAttribute):
3917         * svg/SVGStyleElement.h:
3918         (SVGStyleElement):
3919         * svg/SVGStyledElement.cpp:
3920         (WebCore::SVGStyledElement::parseAttribute):
3921         * svg/SVGStyledElement.h:
3922         (SVGStyledElement):
3923         * svg/SVGStyledTransformableElement.cpp:
3924         (WebCore::SVGStyledTransformableElement::parseAttribute):
3925         * svg/SVGStyledTransformableElement.h:
3926         (SVGStyledTransformableElement):
3927         * svg/SVGSymbolElement.cpp:
3928         (WebCore::SVGSymbolElement::parseAttribute):
3929         * svg/SVGSymbolElement.h:
3930         (SVGSymbolElement):
3931         * svg/SVGTRefElement.cpp:
3932         (WebCore::SVGTRefElement::parseAttribute):
3933         * svg/SVGTRefElement.h:
3934         (SVGTRefElement):
3935         * svg/SVGTests.cpp:
3936         (WebCore::SVGTests::parseAttribute):
3937         * svg/SVGTests.h:
3938         (SVGTests):
3939         * svg/SVGTextContentElement.cpp:
3940         (WebCore::SVGTextContentElement::parseAttribute):
3941         * svg/SVGTextContentElement.h:
3942         (SVGTextContentElement):
3943         * svg/SVGTextElement.cpp:
3944         (WebCore::SVGTextElement::parseAttribute):
3945         * svg/SVGTextElement.h:
3946         (SVGTextElement):
3947         * svg/SVGTextPathElement.cpp:
3948         (WebCore::SVGTextPathElement::parseAttribute):
3949         * svg/SVGTextPathElement.h:
3950         * svg/SVGTextPositioningElement.cpp:
3951         (WebCore::SVGTextPositioningElement::parseAttribute):
3952         * svg/SVGTextPositioningElement.h:
3953         (SVGTextPositioningElement):
3954         * svg/SVGURIReference.cpp:
3955         (WebCore::SVGURIReference::parseAttribute):
3956         * svg/SVGURIReference.h:
3957         (SVGURIReference):
3958         * svg/SVGUseElement.cpp:
3959         (WebCore::SVGUseElement::parseAttribute):
3960         * svg/SVGUseElement.h:
3961         (SVGUseElement):
3962         * svg/SVGViewElement.cpp:
3963         (WebCore::SVGViewElement::parseAttribute):
3964         * svg/SVGViewElement.h:
3965         (SVGViewElement):
3966         * svg/SVGZoomAndPan.h:
3967         (WebCore::SVGZoomAndPan::parseAttribute):
3968         * svg/animation/SVGSMILElement.cpp:
3969         (WebCore::SVGSMILElement::parseAttribute):
3970         * svg/animation/SVGSMILElement.h:
3971         (SVGSMILElement):
3972
3973 2012-11-18  Andreas Kling  <akling@apple.com>
3974
3975         StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
3976         <http://webkit.org/b/102596>
3977
3978         Reviewed by Antti Koivisto.
3979
3980         Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
3981         later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.
3982
3983         * css/StyleResolver.cpp:
3984         (WebCore::haveIdenticalStyleAffectingAttributes):
3985
3986 2012-11-17  Jon Lee  <jonlee@apple.com>
3987
3988         Simulated mouse events should return an accurate offset
3989         https://bugs.webkit.org/show_bug.cgi?id=102606
3990         <rdar://problem/12725627>
3991
3992         Reviewed by Brady Eidson.
3993
3994         A check to see if the event is simulated prior to calculating the offset has existed for a
3995         long time (since at least r14916). Back then the check was needed because the offset was
3996         incrementally adjusted when the target was assigned (through
3997         MouseRelatedEvent::receivedTarget()).
3998
3999         Since r82225, we started calculating the offset only when needed, and calculating the offset
4000         from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
4001         the isSimulated check is irrelevant, and we should remove it.
4002
4003         Tests are not possible because all uses of simulated mouse events provide no underlying
4004         event, so the offset is never recalculated.
4005
4006         * dom/MouseRelatedEvent.cpp:
4007         (WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.
4008
4009 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4010
4011         Don't say there are dirty overlay scrollbars when they are clipped out
4012         https://bugs.webkit.org/show_bug.cgi?id=102609
4013
4014         Reviewed by Brady Eidson.
4015
4016         Painting overlay scrollbars involves a second painting pass over the entire
4017         RenderLayer subtree for a compositing layer, which can be very expensive.
4018         
4019         Avoid this when possible by detecting when overflow controls are not in
4020         the damage rect.
4021
4022         * rendering/RenderLayer.cpp:
4023         (WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
4024         for the horizontal scrollbar.
4025         (WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
4026         for the vertical scrollbar.
4027         (WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
4028         and rectForVerticalScrollbar().
4029         (WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
4030         of the present overflow controls intersect the given local rect.
4031         (WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
4032         doesn't intersect any of the overflow controls.
4033         * rendering/RenderLayer.h:
4034         (RenderLayer):
4035
4036 2012-11-17  Adam Barth  <abarth@webkit.org>
4037
4038         REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
4039         https://bugs.webkit.org/show_bug.cgi?id=101428
4040
4041         Reviewed by Geoffrey Garen.
4042
4043         JSNodeOwner has some smarts that wrappers of subclasses of Node need to
4044         call during garbage collection. This patch teaches subclasses of Node
4045         to have their JSMumbleOwner objects inherit from JSNodeOwner.
4046
4047         The immediate benefit of this patch is that we correctly avoid
4048         collecting wrappers for HTMLAudioElements when they are reachable from
4049         the DOM.
4050
4051         * bindings/scripts/CodeGeneratorJS.pm:
4052         (GenerateHeader):
4053         (GenerateImplementation):
4054
4055 2012-11-17  Elliott Sprehn  <esprehn@chromium.org>
4056
4057         Expose JSObject::removeDirect and PrivateName to WebCore
4058         https://bugs.webkit.org/show_bug.cgi?id=102546
4059
4060         Reviewed by Geoffrey Garen.
4061
4062         Add forwarding header for PrivateName, so JSDependentRetained works.
4063
4064         No new tests, just adding headers.
4065
4066         * ForwardingHeaders/runtime/PrivateName.h: Added.
4067
4068 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4069
4070         Reduce the crazy number of parameters to RenderLayer clip-rect functions
4071         https://bugs.webkit.org/show_bug.cgi?id=102604
4072
4073         Reviewed by Dan Bernstein.
4074
4075         Many of the RenderLayer member functions related to clip rect computation
4076         took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
4077         that we pass to these functions
4078         
4079         No functional changes.
4080
4081         * rendering/RenderLayer.cpp:
4082         (WebCore::RenderLayer::paintLayer):
4083         (WebCore::RenderLayer::paintLayerContents):
4084         (WebCore::RenderLayer::hitTestLayer):
4085         (WebCore::RenderLayer::updateClipRects):
4086         (WebCore::RenderLayer::calculateClipRects):
4087         (WebCore::RenderLayer::parentClipRects):
4088         (WebCore::RenderLayer::backgroundClipRect):
4089         (WebCore::RenderLayer::calculateRects):
4090         (WebCore::RenderLayer::childrenClipRect):
4091         (WebCore::RenderLayer::selfClipRect):
4092         (WebCore::RenderLayer::localClipRect):
4093         * rendering/RenderLayer.h:
4094         (WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
4095         (ClipRectsContext):
4096         (RenderLayer):
4097         (WebCore::RenderLayer::clipRects):
4098         * rendering/RenderLayerBacking.cpp:
4099         (WebCore::RenderLayerBacking::updateCompositedBounds):
4100         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4101         * rendering/RenderLayerCompositor.cpp:
4102         (WebCore::RenderLayerCompositor::addToOverlapMap):
4103         (WebCore::RenderLayerCompositor::clippedByAncestor):
4104         * rendering/RenderTreeAsText.cpp:
4105         (WebCore::writeLayers):
4106
4107 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4108
4109         Simplify bounds computation for the RenderView's layer
4110         https://bugs.webkit.org/show_bug.cgi?id=102597
4111
4112         Reviewed by Anders Carlsson.
4113
4114         Computing the bounds of the main layer (that of the RenderView) used to do
4115         a full RenderLayer walk, taking the union of the bounds of all the sublayers,
4116         which is very expensive on large pages.
4117         
4118         For the RenderView we can avoid that entirely and just use the RenderView's
4119         document rect. Since page scaling happens as a transform on this layer,
4120         we want the unscaled document rect.
4121
4122         * rendering/RenderLayer.cpp:
4123         (WebCore::RenderLayer::calculateLayerBounds):
4124
4125 2012-11-17  Eric Seidel  <eric@webkit.org>
4126
4127         Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
4128         https://bugs.webkit.org/show_bug.cgi?id=102601
4129
4130         Reviewed by Adam Barth.
4131
4132         From my investigations all of these classes exist only to be exposed
4133         to the web (via JavaScript) and are not used internally by WebCore.
4134         I beleive all of them always have wrappers.
4135         These were found using this code:
4136         https://bugs.webkit.org/show_bug.cgi?id=102539#c2
4137
4138         Geolocation -- navigator.geolocation
4139         WebKitCSSMatrix -- represent matrixes in JS through various APIs
4140         DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
4141         Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
4142         ValidityState -- formControl.validity
4143         CanvasRenderingContext -- canvas.getContext()
4144         DOMApplicationCache -- window.appcache
4145         Screen -- window.screen
4146         DOMMimeTypeArray -- navigator.mimetypes
4147         DOMPlugin -- navigator.plugins[0]
4148         DOMPluginArray -- navigator.plugins
4149
4150         * Modules/geolocation/Geolocation.h:
4151         * css/WebKitCSSMatrix.h:
4152         * dom/DOMStringMap.h:
4153         * dom/NamedNodeMap.h:
4154         * dom/NodeIterator.h:
4155         * dom/TreeWalker.h:
4156         * fileapi/Blob.h:
4157         * fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
4158         (FileList):
4159         (WebCore::FileList::create):
4160         (WebCore::FileList::length):
4161         (WebCore::FileList::isEmpty):
4162         (WebCore::FileList::clear):
4163         (WebCore::FileList::append):
4164         * html/ValidityState.h:
4165         * html/canvas/CanvasRenderingContext.h:
4166         * loader/appcache/DOMApplicationCache.h:
4167         * page/Screen.h:
4168         * platform/graphics/wince/MediaPlayerProxy.cpp:
4169         (WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
4170         * plugins/DOMMimeTypeArray.h:
4171         * plugins/DOMPlugin.h:
4172         * plugins/DOMPluginArray.h:
4173
4174 2012-11-17  Alexandru Chiculita  <achicu@adobe.com>
4175
4176         [Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
4177         https://bugs.webkit.org/show_bug.cgi?id=101801
4178
4179         Reviewed by Noam Rosenthal.
4180
4181         Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
4182         Also added a new API on TextureMapper that receives a notification when the shader
4183         is no longer needed.
4184
4185         No new tests, the code is tested by existing tests.
4186
4187         * platform/graphics/filters/CustomFilterOperation.h:
4188         (WebCore::CustomFilterOperation::setProgram):
4189         (CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
4190         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
4191         (WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
4192         (WebCore):
4193         * platform/graphics/filters/CustomFilterValidatedProgram.h:
4194         (CustomFilterValidatedProgram):
4195         * platform/graphics/texmap/TextureMapper.h:
4196         (WebCore):
4197         (TextureMapper):
4198         (WebCore::TextureMapper::removeCachedCustomFilterProgram):
4199         Function to be called by the platform code, when the shader is no longer
4200         needed. This implementation is empty and overridden in TextureMapperGL.
4201         * platform/graphics/texmap/TextureMapperGL.cpp:
4202         (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
4203         Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
4204         is no longer needed.
4205         (WebCore):
4206         (WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
4207         shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
4208         * platform/graphics/texmap/TextureMapperGL.h:
4209         (WebCore):
4210         (TextureMapperGL):
4211
4212 2012-11-17  Brady Eidson  <beidson@apple.com>
4213
4214         Add an integer identifier field to AuthenticationChallengeBase.
4215         https://bugs.webkit.org/show_bug.cgi?id=102593
4216
4217         Reviewed by Darin Adler.
4218
4219         This is to support linking two different challenges that might not compare as equal but that 
4220         represent the same logical authentication challenge.
4221
4222         One example is in an IPC environment where the platform challenge can only exist in one process.
4223
4224         No new tests (Platform support, no effect in tested configs).
4225
4226         * WebCore.exp.in:
4227
4228         * platform/network/AuthenticationChallengeBase.cpp:
4229         (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
4230         * platform/network/AuthenticationChallengeBase.h:
4231         (WebCore::AuthenticationChallengeBase::identifier):
4232
4233         * platform/network/cf/AuthenticationChallenge.h:
4234         * platform/network/mac/AuthenticationMac.mm:
4235         (WebCore::generateUniqueIdentifier):
4236         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4237           constructing a challenge from an NSURLAuthenticationChallenge.
4238
4239         * platform/network/cf/AuthenticationCF.cpp:
4240         (WebCore::generateUniqueIdentifier):
4241         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4242           constructing a challenge from a CFURLAuthChallengeRef.
4243
4244         Implement the new constructor form for ports relevant to WebKit2:
4245         * platform/network/qt/AuthenticationChallenge.h:
4246         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4247         * platform/network/soup/AuthenticationChallenge.h:
4248         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4249         * platform/network/win/AuthenticationChallenge.h:
4250         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4251
4252 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4253
4254         Dump the tile cache extent in layout tests
4255         https://bugs.webkit.org/show_bug.cgi?id=102600
4256
4257         Reviewed by Anders Carlsson.
4258
4259         When dumping tiled layer stats in layout tests, also dump the extent
4260         of the tile grid. This will allow us to detect issues related
4261         to zooming, which is not possible with the existing tile coverage rect,
4262         which is dumped in layer (not tile) coordinates.
4263
4264         * platform/graphics/TiledBacking.h: Added tileGridExtent().
4265         * platform/graphics/ca/GraphicsLayerCA.cpp:
4266         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
4267         * platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
4268         * platform/graphics/ca/mac/TileCache.mm:
4269         (WebCore::TileCache::getTileIndexRangeForRect):
4270         (WebCore::TileCache::tileGridExtent): Return a rect with the size of
4271         the grid as top,left width,height.
4272
4273 2012-11-17  Andreas Kling  <akling@apple.com>
4274
4275         Avoid full style recalc when 'style' attribute changes.
4276         <http://webkit.org/b/78718>
4277
4278         Reviewed by Anders Carlsson.
4279
4280         Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
4281         to reduce the amount of work done in recalcStyle().
4282
4283         * dom/StyledElement.cpp:
4284         (WebCore::StyledElement::styleAttributeChanged):
4285
4286 2012-11-17  Li Yin  <li.yin@intel.com>
4287
4288         Remove coneGain and distanceGain attributes from PannerNode.idl
4289         https://bugs.webkit.org/show_bug.cgi?id=102343
4290
4291         Reviewed by Chris Rogers.
4292
4293         Removing .coneGain and .distanceGain as publicly accessible values,
4294         since normally they only need to be calculated internally.
4295
4296         No changes to tests, since these attributes were not tested and are being removed.
4297
4298         * Modules/webaudio/PannerNode.idl:
4299
4300 2012-11-17  Balazs Kelemen  <kbalazs@webkit.org>
4301
4302         [Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
4303         https://bugs.webkit.org/show_bug.cgi?id=102530
4304
4305         Reviewed by Noam Rosenthal.
4306
4307         GraphicsLayer::addAnimation is called no only when a new animation is created
4308         but also when resuming a paused animation. If this is a resumed animation we
4309         should remove the obsolate GraphicsLayerAnimation object.
4310
4311         Tested by animations tests.
4312
4313         * platform/graphics/GraphicsLayerAnimation.cpp:
4314         (WebCore::GraphicsLayerAnimations::add):
4315
4316 2012-11-17  Martin Robinson  <mrobinson@igalia.com>
4317
4318         [Soup] CredentialStorage should only be used for HTTP-family requests
4319         https://bugs.webkit.org/show_bug.cgi?id=102582
4320
4321         Reviewed by Gustavo Noronha Silva.
4322
4323         Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
4324         only expects to handle requests in the HTTP family.
4325
4326         No new tests. This is covered by existing tests.
4327
4328         * platform/network/ResourceHandle.h:
4329         (ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
4330         helper returns false when firstRequest() is a non-HTTP family request.
4331         * platform/network/soup/ResourceHandleSoup.cpp:
4332         (WebCore::applyAuthenticationToRequest): Use the new helper.
4333         (WebCore::createSoupRequestAndMessageForHandle): Ditto.
4334         (WebCore::ResourceHandle::start): Ditto.
4335         (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
4336         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
4337         (WebCore::ResourceHandle::receivedCredential): Ditto.
4338
4339 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4340
4341         Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
4342
4343         * rendering/RenderLayer.cpp:
4344         (WebCore::RenderLayer::paintOverflowControls):
4345
4346 2012-11-16  Benjamin Poulain  <bpoulain@apple.com>
4347
4348         Improve the performance of rect transform
4349         https://bugs.webkit.org/show_bug.cgi?id=101828
4350
4351         Reviewed by Simon Fraser.
4352
4353         Mapping a rect and a quad by a transform is a common operation because
4354         we use it to recompute the repaint rect, overflow rect, etc.
4355
4356         The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
4357         Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
4358         and perform many comparison.
4359         Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
4360         too many.
4361
4362         This patch just cut the intermediary calls.
4363
4364         On ARM, putting the operation together also has the advantage of loading the matrix
4365         only once in registers and reusing it for every point.
4366
4367         * platform/graphics/transforms/TransformationMatrix.cpp:
4368         (WebCore::TransformationMatrix::mapPoint):
4369         (WebCore::TransformationMatrix::mapRect):
4370         * platform/graphics/transforms/TransformationMatrix.h:
4371         (WebCore):
4372         (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
4373         point project without doing isIdentityOrTranslation().
4374
4375 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4376
4377         Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
4378         https://bugs.webkit.org/show_bug.cgi?id=102581
4379
4380         Reviewed by Dan Bernstein.
4381
4382         isBlockFlow() is a virtual function call, and shows up in profiles of
4383         Facebook pages as called from RenderBox::computeRectForRepaint().
4384         
4385         It's faster to do the hasColumns() bit-check first. Also replace
4386         a call to layer() with the hasLayer() bit-check.        
4387
4388         * rendering/RenderBox.cpp:
4389         (WebCore::RenderBox::computeRectForRepaint):
4390
4391 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
4392
4393         Unreviewed, rolling out r134817.
4394         http://trac.webkit.org/changeset/134817
4395         https://bugs.webkit.org/show_bug.cgi?id=102576
4396
4397         Broke iframes and causing tons of crashes on ClusterFuzz
4398         (Requested by inferno-sec on #webkit).
4399
4400         * dom/ContainerNode.cpp:
4401         (WebCore::willRemoveChildren):
4402         * dom/ContainerNodeAlgorithms.cpp:
4403         (WebCore::ChildFrameDisconnector::collectDescendant):
4404         * dom/ContainerNodeAlgorithms.h:
4405         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
4406         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
4407         (ChildFrameDisconnector):
4408         (WebCore::ChildFrameDisconnector::collectDescendant):
4409         (WebCore::ChildFrameDisconnector::disconnect):
4410         * dom/Node.cpp:
4411         * dom/Node.h:
4412         (Node):
4413         * dom/NodeRareData.h:
4414         (WebCore::NodeRareData::NodeRareData):
4415         (NodeRareData):
4416         * html/HTMLFrameOwnerElement.cpp:
4417         (WebCore::HTMLFrameOwnerElement::setContentFrame):
4418         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
4419
4420 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4421
4422         Fix overlay scrollbar painting in compositing layers
4423         https://bugs.webkit.org/show_bug.cgi?id=102442
4424
4425         Reviewed by Beth Dakin.
4426
4427         There were two issues with overlay scrollbar painting in
4428         compositing layers.
4429         
4430         First, we'd only ever call setContainsDirtyOverlayScrollbars()
4431         on the RenderView's layer, even when encountering an overlay scrollbar
4432         in some descendant compositing layer. This meant that we'd never
4433         run the paintOverlayScrollbars() code for those child compositing
4434         layers, so sometimes scrollbars were missing there.
4435         
4436         Even after fixing that, we would fail to render scrollbars that
4437         were not in the composited RenderLayer itself. This happened because
4438         we called into RenderLayer::paintOverlayScrollbars(), which called
4439         paintLayer() with flags that only said to paint the overlay scrollbars
4440         but not any descendants, so this paint path would not walk child
4441         RenderLayers.
4442         
4443         Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
4444         ScrollView which is no longer used.
4445
4446         * platform/ScrollView.cpp:
4447         (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
4448         (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
4449         * platform/ScrollView.h:
4450         * rendering/RenderLayer.cpp:
4451         (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
4452         on the compositing ancestor or the root.
4453         Remove call to setContainsScrollableAreaWithOverlayScrollbars().
4454         (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
4455         scrollbars, no need to say we have transparency, and no need to use 
4456         temporary clip rects.
4457         (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
4458         check here was only needed because the compositing entrypoint to painting
4459         overlay scrollbars went via paintLayer(), which isn't normally used as
4460         a composited painting entry point. Now that we no longer call that, we
4461         don't need this special check.
4462         * rendering/RenderLayerBacking.cpp:
4463         (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
4464         painting via paintLayerContents(), not paintOverlayScrollbars(), since
4465         the latter does not traverse sublayers.
4466
4467 2012-11-16  Joshua Bell  <jsbell@chromium.org>
4468
4469         IndexedDB: Assert hit when getting non-existent object store in version change transaction
4470         https://bugs.webkit.org/show_bug.cgi?id=102547
4471
4472         Reviewed by Tony Chang.
4473
4474         Code did not account for the not-found case in "versionchange" transactions, where all
4475         object stores are implicitly in scope.
4476
4477         Test: storage/indexeddb/object-lookups-in-versionchange.html
4478
4479         * Modules/indexeddb/IDBTransaction.cpp:
4480         (WebCore::IDBTransaction::objectStore):
4481
4482 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
4483
4484         Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
4485         https://bugs.webkit.org/show_bug.cgi?id=101874
4486
4487         Reviewed by Dave Hyatt.
4488
4489         RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
4490         lot of time in computeRepaintRects(), which does two ancestor tree walks, once
4491         for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
4492
4493         Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
4494         a RenderGeometryMap as we traverse the layer tree, and then using it to map
4495         the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
4496         now that the RenderGeometryMap can do a better job.
4497         
4498         The clipped overflow rect cannot be mapped simply, so cannot yet make use of
4499         the geometry map.
4500         
4501         Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
4502         Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
4503         
4504         Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
4505         
4506         * page/FrameView.cpp:
4507         (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
4508         to updateLayerPositions(). For partial layouts, we have to push layers
4509         between the root and the enclosing layer of the layout subtree.
4510         The geometry map used for repainting does not use SnapOffsetForTransforms,
4511         so initialize it explicitly with just the UseTransforms flag.
4512         (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
4513         to pass along to updateLayerPositionsAfterScroll().
4514         * rendering/RenderBox.cpp:
4515         (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
4516         parameter with an optional RenderGeometryMap, and it use to map the compute rect to
4517         repaintContainer coordinates.
4518         * rendering/RenderBox.h:
4519         * rendering/RenderGeometryMap.cpp:
4520         (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
4521         flags to use, so that its behavior can match that of mapLocalToContainer(). The
4522         pertinent flag is the confusingly named SnapOffsetForTransforms.
4523         (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
4524         a null container.
4525         (WebCore::RenderGeometryMap::absoluteRect): Ditto.
4526         (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
4527         asserting that we found it. Add point- and rect-based mapping methods
4528         akin to the old absoluteRect/absolutePoint.
4529         (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
4530         (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
4531         layers, ensure that the RenderView is pushed as the first step.
4532         * rendering/RenderGeometryMap.h:
4533         (RenderGeometryMap):
4534         * rendering/RenderLayer.cpp:
4535         (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
4536         that makes the geometry map.
4537         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
4538         that makes the geometry map.
4539         (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
4540         Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
4541         the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
4542         it to computeRepaintRects().
4543         (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
4544         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
4545         geometry map, and pass it to computeRepaintRects().
4546         (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
4547         computation; this could use a geometry map in future if it is shown to be a bottleneck.
4548         * rendering/RenderLayer.h:
4549         (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
4550         was there because the older cached offsetFromRoot logic was sensitive to compositing,
4551         but convertToLayerCoords() is not affected by compositing so this check is not needed,
4552         and actually harmful.
4553         * rendering/RenderLayerCompositor.cpp:
4554         (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
4555         used for overlap testing should not use SnapOffsetForTransforms, so initialize
4556         it explicitly with just the UseTransforms flag.
4557         * rendering/RenderObject.h:
4558         (WebCore::RenderObject::outlineBoundsForRepaint):
4559         * rendering/svg/RenderSVGModelObject.cpp:
4560         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
4561         * rendering/svg/RenderSVGModelObject.h:
4562         (RenderSVGModelObject):
4563
4564 2012-11-16  Alec Flett  <alecflett@chromium.org>
4565
4566         Add tests for explicit serialization values
4567         https://bugs.webkit.org/show_bug.cgi?id=96818
4568
4569         Reviewed by Adam Barth.
4570
4571         Expose direct access to the serialization/deserialization mechanisms
4572         of SerializedScriptValue to DumpRenderTree.
4573
4574         * testing/Internals.cpp:
4575         (WebCore::Internals::serializeObject):
4576         (WebCore):
4577         (WebCore::Internals::deserializeBuffer):
4578         * testing/Internals.h:
4579         (WebCore):
4580         * testing/Internals.idl:
4581
4582 2012-11-16  Andreas Kling  <akling@apple.com>
4583
4584         Exploit shared attribute data to avoid parsing identical "style" attributes.
4585         <http://webkit.org/b/101163>
4586
4587         Reviewed by Antti Koivisto.
4588
4589         Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
4590         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
4591         since the state is no longer per-Element.
4592
4593         * css/StyleResolver.cpp:
4594         (WebCore::isCacheableInMatchedPropertiesCache):
4595
4596             Disable the matched properties cache for styles with non-standard writing-mode.
4597             This is necessary because some CSS properties have different meaning depending on context -
4598             properties handled by CSSProperty::resolveDirectionAwareProperty().
4599
4600             Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
4601             avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
4602             writing-modes in the matched properties cache.
4603
4604         * dom/Node.h:
4605         * dom/ElementAttributeData.cpp:
4606         (WebCore::ElementAttributeData::ElementAttributeData):
4607         * dom/ElementAttributeData.h:
4608         (WebCore::ElementAttributeData::ElementAttributeData):
4609         (ElementAttributeData):
4610         * dom/Element.h:
4611         (WebCore::Element::updateInvalidAttributes):
4612         * dom/Element.cpp:
4613         (WebCore::Element::getAttribute):
4614         (WebCore::Element::removeAttribute):
4615         * dom/StyledElement.h:
4616         (WebCore::StyledElement::invalidateStyleAttribute):
4617         * dom/StyledElement.cpp:
4618         (WebCore::StyledElement::updateStyleAttribute):
4619
4620             Move "style attribute dirty" flag to ElementAttributeData.
4621
4622         (WebCore::Element::cloneAttributesFromElement):
4623
4624             Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
4625             automagically since cloning nodes just refs the original attribute data.
4626
4627         * dom/StyledElement.cpp:
4628         (WebCore::StyledElement::updateStyleAttribute):
4629         (WebCore::StyledElement::setInlineStyleFromString):
4630         (WebCore::StyledElement::styleAttributeChanged):
4631         (WebCore::StyledElement::inlineStyleChanged):
4632
4633             Avoid reparsing the inline style if the element's attribute data is immutable and already has
4634             a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
4635             to make the code more understandable.
4636
4637 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4638
4639         Don't update layer positions on scrolling if we're in the middle of layout
4640         https://bugs.webkit.org/show_bug.cgi?id=102556
4641
4642         Reviewed by Dan Bernstein.
4643
4644         RenderLayer::scrollTo() can be called in the middle of layout. When
4645         that happens we should not waste time updating layer positions,
4646         compositing layers, or widget positions, because we'll do those at the
4647         end of layout anyway.
4648         
4649         This prevents us from having inconsistent RenderLayer state, which
4650         hinders future optimizations in this area.
4651
4652         * rendering/RenderLayer.cpp:
4653         (WebCore::RenderLayer::scrollTo):
4654
4655 2012-11-16  Tony Chang  <tony@chromium.org>
4656
4657         Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
4658         https://bugs.webkit.org/show_bug.cgi?id=102554
4659
4660         Reviewed by Andreas Kling.
4661
4662         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
4663         we're going to revist this feature once additional vendor support is
4664         achieved.
4665
4666         No new tests, just removing an unused define.
4667
4668         * Configurations/FeatureDefines.xcconfig:
4669         * GNUmakefile.features.am:
4670
4671 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
4672
4673         [Chromium] Remove cookie-related functions from PlatformSupport
4674         https://bugs.webkit.org/show_bug.cgi?id=99340
4675
4676         Reviewed by Adam Barth.
4677
4678         Move cookie-related functions out of PlatformSupport and implement
4679         new PlatformCookieJar interface via NetworkContext.
4680
4681         * WebCore.gyp/WebCore.gyp:
4682         * WebCore.gypi:
4683         * loader/CookieJar.cpp:
4684         * loader/chromium/CookieJarChromium.cpp: Removed.
4685         * platform/chromium/PlatformSupport.h:
4686         (WebCore):
4687         (PlatformSupport):
4688         * platform/network/NetworkingContext.h:
4689         (WebKit):
4690         (NetworkingContext):
4691         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
4692         (WebCore::setCookiesFromDOM):
4693         (WebCore::cookiesForDOM):
4694         (WebCore::cookieRequestHeaderFieldValue):
4695         (WebCore::cookiesEnabled):
4696         (WebCore::getRawCookies):
4697         (WebCore::deleteCookie):
4698         (WebCore::getHostnamesWithCookies):
4699         (WebCore::deleteCookiesForHostname):
4700         (WebCore::deleteAllCookies):
4701
4702 2012-11-16  Pablo Flouret  <pablof@motorola.com>
4703
4704         [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
4705         https://bugs.webkit.org/show_bug.cgi?id=70574
4706
4707         Reviewed by Geoffrey Garen.
4708
4709         For scripts that use CORS (via the crossorigin attribute in this case),
4710         don't sanitize the information passed to the window's onerror handler (i.e.
4711         message, url, and line number). Useful for scripts hosted on CDNs.
4712
4713         Tests: http/tests/security/script-crossorigin-onerror-information.html
4714                http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
4715
4716         * WebCore.exp.in:
4717         * WebCore.order:
4718
4719         * bindings/js/JSDOMBinding.cpp:
4720         (WebCore::reportException):
4721         * bindings/js/JSDOMBinding.h:
4722         (WebCore):
4723         * bindings/js/ScriptController.cpp:
4724         (WebCore::ScriptController::evaluateInWorld):
4725         * bindings/js/ScriptSourceCode.h:
4726         (WebCore::ScriptSourceCode::ScriptSourceCode):
4727         (WebCore::ScriptSourceCode::cachedScript):
4728         (ScriptSourceCode):
4729         * bindings/js/WorkerScriptController.cpp:
4730         (WebCore::WorkerScriptController::evaluate):
4731             Keep a reference to the cached script in the ScriptSourceCode, so
4732             that it can be passed around and be available when reporting the
4733             exception.
4734
4735         * dom/ScriptExecutionContext.cpp:
4736         (WebCore::ScriptExecutionContext::sanitizeScriptError):
4737         (WebCore::ScriptExecutionContext::reportException):
4738         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
4739         * dom/ScriptExecutionContext.h:
4740         (WebCore):
4741         (ScriptExecutionContext):
4742             Check if the script passes the access control checks, and if so,
4743             don't sanitize the error information.
4744
4745         * html/parser/HTMLPreloadScanner.cpp:
4746         (WebCore::PreloadTask::processAttributes):
4747         (WebCore::PreloadTask::preload):
4748         (PreloadTask):
4749         (WebCore::PreloadTask::crossOriginModeAllowsCookies):
4750             When preloading script elements, check for the crossorigin attribute
4751             and adjust the request's allowCookies value accordingly. Otherwise
4752             when the script is loaded from the cache later on, the cross origin mode
4753             (anonymous/use-credentials) will be effectively ignored.
4754
4755 2012-11-16  Jon Lee  <jonlee@apple.com>
4756
4757         Change visual look of placeholder
4758         https://bugs.webkit.org/show_bug.cgi?id=102149
4759         <rdar://problem/12695566>
4760
4761         Reviewed by Darin Adler.
4762
4763         Move the button to the lower-right corner. Move the theming into
4764         RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
4765         shadow DOM instead, and the metrics of the button are needed for click passthrough.
4766
4767         * Resources/startButton.png: Added.
4768         * Resources/startButton@2x.png: Added.
4769         * Resources/startButtonPressed.png: Added.
4770         * Resources/startButtonPressed@2x.png: Added.
4771         * WebCore.xcodeproj/project.pbxproj: Add button images.
4772
4773         Maintain variables to track whether the mouse is over the button, and the rect
4774         for the button. If the user clicks in the rect, we render a pressed button.
4775         * rendering/RenderSnapshottedPlugIn.cpp:
4776         (WebCore): Add named constant for bottom and right padding of the button.
4777         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
4778         (WebCore::RenderSnapshottedPlugIn::paintReplaced):
4779         (WebCore::startButtonImage): Returns button image.
4780         (WebCore::startButtonPressedImage): Returns pressed button image.
4781         (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
4782         lower right hand corner, but only if we are active or hovered.
4783         (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
4784         (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
4785         hovering over the plugin rect. With a mouse down event, calculate whether the
4786         mouse position is within the button rect.
4787         (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
4788         contents.
4789         * rendering/RenderSnapshottedPlugIn.h:
4790
4791         Remove theming function for now.
4792         * rendering/RenderTheme.h:
4793         (RenderTheme):
4794         * rendering/RenderThemeMacShared.h:
4795         * rendering/RenderThemeMacShared.mm:
4796
4797 2012-11-16  Eric Seidel  <eric@webkit.org>
4798
4799         Deploy ScriptWrappable to more always-wrapped objects
4800         https://bugs.webkit.org/show_bug.cgi?id=102539
4801
4802         Reviewed by Adam Barth.
4803
4804         Add the ScriptWrappable baseclass to:
4805         CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
4806         ClientRect (element.getBoundingClientRects)
4807         Event (Not all events end up wrapped, but any which live past dispatch do)
4808         NodeList (this covers Static and Dynamic node list types, like document.all)
4809         HTMLCollection (separate from NodeList, for things like table.rows)
4810         Storage (for window.storage, always wrapped)
4811         XMLHttpRequest (always wrapped, created from JS)
4812
4813         This should be a small memory savings as the inline pointer is only 4-8 bytes
4814         instead of the hashmap entry which would be 8-16.  This may also show up
4815         on benchmarks which repeatedly access these objects (like window.storage).
4816
4817         These were found by adding a couple lines of logging-code to
4818         WebCore::createWrapper when we were in the main world, but took the
4819         HashMap (instead of inline) storage path. I used sort and uniq -c
4820         to find the most-frequently wrapped objects (while surfing
4821         a few common sites) and came up with this list.  There are still a few
4822         more complicated objects (like CSSStyleDeclaration) which may benifit
4823         from inline-wrapper-access and will be covered in a later patch.
4824
4825         * css/CSSStyleDeclaration.h:
4826         * dom/ClientRect.h:
4827         * dom/Event.h:
4828         * dom/NodeList.h:
4829         * html/HTMLCollection.h:
4830         * storage/Storage.h:
4831         * xml/XMLHttpRequest.h:
4832
4833 2012-11-16  Jon Lee  <jonlee@apple.com>
4834
4835         Simulated events instances do not all have the same underlying event
4836         https://bugs.webkit.org/show_bug.cgi?id=102468
4837         <rdar://problem/12716331>
4838
4839         Reviewed by Alexey Proskuryakov.
4840
4841         The PassRefPtr with the underlying event is included as an argument for the mouse
4842         down, up, and click events. But the PassRefPtr loses its underlying pointer after
4843         the first simulated mouse down event because it gets assigned to that event's
4844         private m_underlyingEvent variable. We therefore send NULL to the other events.
4845
4846         The fix is for this and related functions to pass the raw pointer.
4847
4848         A layout test is not possible to put together because the call sites that use simulated
4849         events with an underlying event do not send mouse events, and those that send mouse
4850         events have a NULL underlying event.
4851
4852         * dom/EventDispatcher.cpp:
4853         (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
4854         * dom/EventDispatcher.h:
4855         * dom/Node.cpp:
4856         (WebCore::Node::dispatchSimulatedClick): Ditto.
4857         * dom/Node.h:
4858
4859 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4860
4861         Build fix for WinCE after r134936.
4862
4863         * platform/network/win/CookieJarWin.cpp:
4864         (WebCore::cookieRequestHeaderFieldValue):
4865
4866 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
4867
4868         Unreviewed, rolling out r134986.
4869         http://trac.webkit.org/changeset/134986
4870         https://bugs.webkit.org/show_bug.cgi?id=102110
4871
4872         Triggered ASSERT in fast/frames/seamless/seamless-inherited-
4873         origin.html.
4874
4875         * css/StyleResolver.cpp:
4876         (WebCore::StyleResolver::StyleResolver):
4877         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
4878         (WebCore::collectCSSOMWrappers):
4879         * css/StyleResolver.h:
4880         (StyleResolver):
4881         * dom/Document.cpp:
4882         (WebCore::Document::setCompatibilityMode):
4883         * dom/DocumentStyleSheetCollection.cpp:
4884         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
4885         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
4886         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
4887         (WebCore):
4888         (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
4889         (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
4890         (WebCore::DocumentStyleSheetCollection::addUserSheet):
4891         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
4892         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
4893         * dom/DocumentStyleSheetCollection.h:
4894         (DocumentStyleSheetCollection):
4895         (WebCore::DocumentStyleSheetCollection::documentUserSheets):
4896         * page/PageGroup.cpp:
4897         (WebCore::PageGroup::addUserStyleSheetToWorld):
4898         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
4899         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
4900         (WebCore::PageGroup::removeAllUserContent):
4901         (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
4902         * page/PageGroup.h:
4903         (PageGroup):
4904
4905 2012-11-16  Michael Pruett  <michael@68k.org>
4906
4907         IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
4908         https://bugs.webkit.org/show_bug.cgi?id=102430
4909
4910         Reviewed by Adam Barth.
4911
4912         DOMRequestState is currently propagated to some but not all of
4913         the IndexedDB binding utility functions. In order to implement
4914         these functions for JSC, this state must be propagated to all
4915         of the utility functions.
4916
4917         Tests: storage/indexeddb/*
4918
4919         * Modules/indexeddb/IDBCursor.cpp:
4920         (WebCore::IDBCursor::update):
4921         (WebCore::IDBCursor::setValueReady):
4922         * Modules/indexeddb/IDBObjectStore.cpp:
4923         (WebCore::generateIndexKeysForValue):
4924         (WebCore::IDBObjectStore::put):
4925         (WebCore):
4926         * Modules/indexeddb/IDBRequest.cpp:
4927         (WebCore::IDBRequest::onSuccess):
4928         (WebCore::IDBRequest::dispatchEvent):
4929         * Modules/indexeddb/IDBRequest.h:
4930         (WebCore::IDBRequest::requestState):
4931         (IDBRequest):
4932         * bindings/v8/IDBBindingUtilities.cpp:
4933         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
4934         (WebCore::serializeIDBValue):
4935         (WebCore::injectIDBKeyIntoScriptValue):
4936         * bindings/v8/IDBBindingUtilities.h:
4937         (WebCore):
4938
4939 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
4940
4941         Rebaselined run-bindings-tests.
4942         https://bugs.webkit.org/show_bug.cgi?id=102523
4943
4944         Reviewed by Dimitri Glazkov.
4945
4946         Expected results need to be updated after r134931
4947
4948         * bindings/scripts/test/JS/JSTestObj.cpp:
4949         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
4950         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
4951         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
4952         * bindings/scripts/test/V8/V8TestObj.cpp:
4953         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
4954         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
4955         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
4956
4957 2012-11-16  Pratik Solanki  <psolanki@apple.com>
4958
4959         For single element arrays use the pointer into the CFDataRef instead of copying data
4960         https://bugs.webkit.org/show_bug.cgi?id=102306
4961         <rdar://problem/12267471>
4962
4963         Reviewed by Alexey Proskuryakov.
4964
4965         We generally copy the data received from CFNetwork into our own buffers. But if the
4966         CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
4967         and access its memory directly and avoid making a copy.
4968
4969         This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
4970         SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
4971         SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
4972         the memory in the data array.
4973
4974         No new tests because no change in functionality.
4975
4976         * loader/ResourceBuffer.cpp:
4977         (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
4978         * loader/ResourceBuffer.h:
4979         * loader/cache/CachedResource.cpp:
4980         (WebCore::CachedResource::makePurgeable):
4981         * platform/SharedBuffer.cpp:
4982         (WebCore::SharedBuffer::createPurgeableBuffer): Added.
4983         (WebCore::SharedBuffer::data):
4984         * platform/SharedBuffer.h:
4985         * platform/cf/SharedBufferCF.cpp:
4986         (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
4987         (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
4988         (WebCore::SharedBuffer::singleDataArrayBuffer): Added.
4989
4990 2012-11-16  Antti Koivisto  <antti@apple.com>
4991
4992         REGRESSION(r129644): User StyleSheet not applying
4993         https://bugs.webkit.org/show_bug.cgi?id=102110
4994
4995         Reviewed by Andreas Kling.
4996
4997         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
4998         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
4999         
5000         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
5001         It also generally cleans up the code around injected and user stylesheets.
5002
5003         Tests: userscripts/user-script-and-stylesheet.html
5004                userscripts/user-stylesheet-invalidate.html
5005
5006         * css/StyleResolver.cpp:
5007         (WebCore::StyleResolver::StyleResolver):
5008         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
5009         (WebCore::collectCSSOMWrappers):
5010         * css/StyleResolver.h:
5011         (StyleResolver):
5012         * dom/Document.cpp:
5013         (WebCore::Document::setCompatibilityMode):
5014         * dom/DocumentStyleSheetCollection.cpp:
5015         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
5016         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
5017         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
5018         (WebCore):
5019         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
5020         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
5021         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
5022         (WebCore::DocumentStyleSheetCollection::addUserSheet):
5023         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
5024         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
5025         * dom/DocumentStyleSheetCollection.h:
5026         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
5027         (DocumentStyleSheetCollection):
5028         * page/PageGroup.cpp:
5029         (WebCore::PageGroup::addUserStyleSheetToWorld):
5030         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
5031         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
5032         (WebCore::PageGroup::removeAllUserContent):
5033         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
5034         * page/PageGroup.h:
5035         (PageGroup):
5036
5037 2012-11-16  Andreas Kling  <akling@apple.com>
5038
5039         StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
5040         <http://webkit.org/b/102536>
5041
5042         Reviewed by Antti Koivisto.
5043
5044         Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
5045         relevant for sharing style between <input> elements.
5046
5047         Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
5048
5049         * css/StyleResolver.cpp:
5050         (WebCore::StyleResolver::canShareStyleWithControl):
5051         (WebCore::haveIdenticalStyleAffectingAttributes):
5052
5053 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5054
5055         Unreviewed, rolling out r134867.
5056         http://trac.webkit.org/changeset/134867
5057         https://bugs.webkit.org/show_bug.cgi?id=102544
5058
5059         Broke security fuzzier test (heap-buffer-overflow) (Requested
5060         by bfulgham on #webkit).
5061
5062         * platform/audio/Biquad.cpp:
5063         (WebCore::Biquad::process):
5064
5065 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5066
5067         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
5068         https://bugs.webkit.org/show_bug.cgi?id=102382
5069
5070         Reviewed by Adam Barth.
5071
5072         Updating readyState & iceState, and adding iceGatheringState.
5073         Also safeguarding the event timer callback.
5074
5075         Patch covered by existing tests.
5076
5077         * Modules/mediastream/RTCPeerConnection.cpp:
5078         (WebCore::RTCPeerConnection::RTCPeerConnection):
5079         (WebCore::RTCPeerConnection::createOffer):
5080         (WebCore::RTCPeerConnection::createAnswer):
5081         (WebCore::RTCPeerConnection::setLocalDescription):
5082         (WebCore::RTCPeerConnection::localDescription):
5083         (WebCore::RTCPeerConnection::setRemoteDescription):
5084         (WebCore::RTCPeerConnection::remoteDescription):
5085         (WebCore::RTCPeerConnection::updateIce):
5086         (WebCore::RTCPeerConnection::addIceCandidate):
5087         (WebCore::RTCPeerConnection::readyState):
5088         (WebCore::RTCPeerConnection::iceGatheringState):
5089         (WebCore):
5090         (WebCore::RTCPeerConnection::iceState):
5091         (WebCore::RTCPeerConnection::addStream):
5092         (WebCore::RTCPeerConnection::close):
5093         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
5094         (WebCore::RTCPeerConnection::stop):
5095         (WebCore::RTCPeerConnection::changeReadyState):
5096         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
5097         * Modules/mediastream/RTCPeerConnection.h:
5098         (RTCPeerConnection):
5099         * Modules/mediastream/RTCPeerConnection.idl:
5100         * dom/EventNames.h:
5101         (WebCore):
5102         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
5103         (RTCPeerConnectionHandlerClient):
5104         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5105         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
5106         (WebCore):
5107         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5108         (RTCPeerConnectionHandlerChromium):
5109
5110 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5111
5112         Unreviewed, rolling out r134973.
5113         http://trac.webkit.org/changeset/134973
5114         https://bugs.webkit.org/show_bug.cgi?id=99340
5115
5116         Broke compile on at least Mac and Linux.
5117
5118         * WebCore.gyp/WebCore.gyp:
5119         * WebCore.gypi:
5120         * loader/CookieJar.cpp:
5121         * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
5122         (WebCore):
5123         (WebCore::setCookies):
5124         (WebCore::cookies):
5125         (WebCore::cookieRequestHeaderFieldValue):
5126         (WebCore::cookiesEnabled):
5127         (WebCore::getRawCookies):
5128         (WebCore::deleteCookie):
5129         (WebCore::getHostnamesWithCookies):
5130         (WebCore::deleteCookiesForHostname):
5131         (WebCore::deleteAllCookies):
5132         * platform/chromium/PlatformSupport.h:
5133         (WebCore):
5134         (PlatformSupport):
5135         * platform/network/NetworkingContext.h:
5136         * platform/network/chromium/CookieJarChromium.cpp: Removed.
5137
5138 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5139
5140         [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
5141         https://bugs.webkit.org/show_bug.cgi?id=101843
5142
5143         Reviewed by Gustavo Noronha Silva.
5144
5145         Make GtkAuthenticationDialog more general, so that it can be subclassed in 
5146         WebKit2. We cannot use the WebCore authentication-related classes directly there.
5147
5148         No new tests. This patch does not change behavior.
5149
5150         * platform/gtk/GtkAuthenticationDialog.cpp:
5151         (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
5152         some field initializers.
5153         (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
5154         makes it simpler to subclass.
5155         (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
5156         and password here, so that it can be shared with subclasses.
5157         * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
5158         subclasses.
5159
5160 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5161
5162         [Chromium] Remove cookie-related functions from PlatformSupport
5163         https://bugs.webkit.org/show_bug.cgi?id=99340
5164
5165         Reviewed by Adam Barth.
5166
5167         Move cookie-related functions out of PlatformSupport and implement
5168         new PlatformCookieJar interface via NetworkContext.
5169
5170         * WebCore.gyp/WebCore.gyp:
5171         * WebCore.gypi:
5172         * loader/CookieJar.cpp:
5173         * loader/chromium/CookieJarChromium.cpp: Removed.
5174         * platform/chromium/PlatformSupport.h:
5175         (WebCore):
5176         (PlatformSupport):
5177         * platform/network/NetworkingContext.h:
5178         (WebKit):
5179         (NetworkingContext):
5180         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
5181         (WebCore::setCookiesFromDOM):
5182         (WebCore::cookiesForDOM):
5183         (WebCore::cookieRequestHeaderFieldValue):
5184         (WebCore::cookiesEnabled):
5185         (WebCore::getRawCookies):
5186         (WebCore::deleteCookie):
5187         (WebCore::getHostnamesWithCookies):
5188         (WebCore::deleteCookiesForHostname):
5189         (WebCore::deleteAllCookies):
5190
5191 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5192
5193         Fix assertion bug of build fix r134961
5194         https://bugs.webkit.org/show_bug.cgi?id=102533
5195
5196         Reviewed by Martin Robinson.
5197
5198         Assertion condition should be '!d->m_currentWebChallenge.isNull()'
5199
5200         * platform/network/soup/ResourceHandleSoup.cpp:
5201         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5202
5203 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5204
5205         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
5206         https://bugs.webkit.org/show_bug.cgi?id=102386
5207
5208         Reviewed by Adam Barth.
5209
5210         Existing tests expanded to cover patch.
5211
5212         * platform/mediastream/RTCDataChannelDescriptor.cpp:
5213         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
5214         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
5215         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5216         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
5217         (WebCore):
5218         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5219         (WebKit):
5220         (RTCPeerConnectionHandlerChromium):
5221
5222 2012-11-16  Scott Violet  <sky@chromium.org>
5223
5224         [chromium] Copy linux theme related files to default
5225         https://bugs.webkit.org/show_bug.cgi?id=102403
5226
5227         Reviewed by Tony Chang
5228
5229         Transitional patch that copies linux WebThemeEngine to default directory.
5230
5231         No new tests, refactoring only.
5232
5233         * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
5234         * WebCore.gypi: Adds new files.
5235         * platform/chromium/PlatformSupport.h:
5236         * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
5237         * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
5238         * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
5239         * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
5240         * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
5241         * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
5242
5243 2012-11-16  Alec Flett  <alecflett@chromium.org>
5244
5245         IndexedDB: add missing 'explicit' and fix backing store release
5246         https://bugs.webkit.org/show_bug.cgi?id=102450
5247
5248         Reviewed by Tony Chang.
5249
5250         A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
5251         which resulted in objects sticking around a bit longer than
5252         expected. This makes sure the LevelDBTransaction is released
5253         at the moment of commit/rollback rather than when IDBTransactionBackendImpl
5254         is destroyed.
5255
5256         No new tests, this is just internal state that will affect
5257         some future refactoring.
5258
5259         * Modules/indexeddb/IDBBackingStore.h:
5260         (Cursor):
5261         (Transaction):
5262         (WebCore::IDBBackingStore::Transaction::reset):
5263         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
5264         (WebCore::IDBTransactionBackendImpl::abort):
5265         (WebCore::IDBTransactionBackendImpl::commit):
5266
5267 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5268
5269         [Chromium] One last tweak to WebCore.gypi to make Win build not sad.
5270
5271         * WebCore.gypi: Removed one last mention of accessibility/gtk file.
5272
5273 2012-11-16  Robert Flack  <flackr@chromium.org>
5274
5275         Handle gesture events on scrollbars.
5276         https://bugs.webkit.org/show_bug.cgi?id=101516
5277
5278         Reviewed by Antonio Gomes.
5279
5280         Adds a gesture event handler to scrollbars and sends gestures beginning
5281         over a scrollbar to this handler to allow touch scrolling scrollbars.
5282
5283         Test: fast/events/touch/gesture/gesture-scrollbar.html
5284
5285         * page/EventHandler.cpp:
5286         (WebCore::EventHandler::clear):
5287         (WebCore::EventHandler::handleGestureEvent):
5288         (WebCore::EventHandler::isScrollbarHandlingGestures):
5289         (WebCore):
5290         * page/EventHandler.h:
5291         (EventHandler):
5292         * platform/Scrollbar.cpp:
5293         (WebCore::Scrollbar::Scrollbar):
5294         (WebCore):
5295         (WebCore::Scrollbar::gestureEvent):
5296         (WebCore::Scrollbar::mouseMoved):
5297         (WebCore::Scrollbar::mouseUp):
5298         (WebCore::Scrollbar::mouseDown):
5299         * platform/Scrollbar.h:
5300         (WebCore):
5301         (Scrollbar):
5302         * platform/ScrollbarTheme.h:
5303         (WebCore::ScrollbarTheme::hitTest):
5304         * platform/ScrollbarThemeComposite.cpp:
5305         (WebCore::ScrollbarThemeComposite::hitTest):
5306         * platform/ScrollbarThemeComposite.h:
5307         (ScrollbarThemeComposite):
5308         * platform/qt/ScrollbarThemeQStyle.cpp:
5309         (WebCore::ScrollbarThemeQStyle::hitTest):
5310         * platform/qt/ScrollbarThemeQStyle.h:
5311         (ScrollbarThemeQStyle):
5312
5313 2012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>
5314
5315         [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
5316         https://bugs.webkit.org/show_bug.cgi?id=102444
5317
5318         Reviewed by Adam Barth.
5319
5320         No new tests. Have been covered by many existing layout tests.
5321
5322         * html/shadow/MediaControlsChromiumAndroid.cpp:
5323         (WebCore::MediaControls::create): Calls createControls instead of itself.
5324
5325 2012-11-16  Andreas Kling  <akling@apple.com>
5326
5327         StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
5328         <http://webkit.org/b/102507>
5329
5330         Reviewed by Antti Koivisto.
5331
5332         When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
5333         comparing the various attributes that would prevent sharing.
5334
5335         If the two elements both share the same ElementAttributeData, we can skip all those checks
5336         since they are guaranteed to have equal attributes.
5337
5338         Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
5339
5340         * css/StyleResolver.cpp:
5341         (WebCore::haveIdenticalStyleAffectingAttributes):
5342         (WebCore::StyleResolver::canShareStyleWithElement):
5343
5344 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5345
5346         [EFL][GTK] Build fix after r134955
5347         https://bugs.webkit.org/show_bug.cgi?id=102527
5348
5349         Reviewed by Martin Robinson.
5350
5351         Fix the EFL,GTK debug bulid fails after r134955.
5352
5353         * platform/network/soup/ResourceHandleSoup.cpp:
5354         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5355
5356 2012-11-15  Alexey Proskuryakov  <ap@apple.com>
5357
5358         Private Browsing is a per-page setting that sets a global value
5359         https://bugs.webkit.org/show_bug.cgi?id=67870
5360
5361         Reviewed by Sam Weinig.
5362
5363         Make ResourceHandle{Mac,CFNet} use context to access storage session.
5364
5365         * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
5366         exports.
5367
5368         * loader/FrameNetworkingContext.h: Added an OVERRIDE.
5369
5370         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
5371         no longer keeps track of a globally enabled private CFNetwork storage session.
5372
5373         * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
5374         don't have a NetworkingContext pointer, and have to use whatever a client expects
5375         them to do. Perhaps we should move those methods away from WebCore eventually.
5376
5377         * platform/network/NetworkingContext.h: Added storageSession().
5378
5379         * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
5380         sessions.
5381
5382         * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
5383         remember it post-creation to do things in willSendRequest. Alternatively, we could
5384         keep a reference to NetworkingContext itself.
5385
5386         * platform/network/cf/CookieJarCFNet.cpp:
5387         (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
5388         there is no globally current one any more. Also, we don't really expect cookie
5389         stirage to be 0 when not using NSURLConnection.
5390         (WebCore::cookiesForDOM): Ditto.
5391         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5392         (WebCore::cookiesEnabled): Ditto.
5393         (WebCore::getRawCookies): Ditto.
5394         (WebCore::deleteCookie): Ditto.
5395         (WebCore::getHostnamesWithCookies): Ditto.
5396         (WebCore::deleteCookiesForHostname): Ditto.
5397         (WebCore::deleteAllCookies): Ditto.
5398         * platform/network/cf/CookieStorageCFNet.cpp:
5399         (WebCore::currentCFHTTPCookieStorage): Use a context.
5400         (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
5401         this is implemented in a strategy.
5402         (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
5403
5404         * platform/network/cf/CookieStorageCFNet.h: Ditto.
5405
5406         * platform/network/cf/ResourceHandleCFNet.cpp:
5407         (WebCore::willSendRequest): Use storage session from the context, not global one.
5408         (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
5409         function didn't really make any sense on its own.
5410         (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
5411         to match Mac.
5412         (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
5413         in, removed some seemingly nonsensical code that was getting and immediately re-applying
5414         cookie storage accept policy.
5415         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5416         (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
5417         (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
5418         access "d".
5419         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
5420         (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
5421         It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
5422
5423         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
5424         This function used to apply current storage session to every request for no apparent
5425         reason.
5426
5427         * platform/network/mac/CookieJarMac.mm:
5428         (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
5429         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5430         (WebCore::setCookiesFromDOM): Ditto.
5431         (WebCore::cookiesEnabled): Ditto.
5432         (WebCore::getRawCookies): Ditto.
5433         (WebCore::deleteCookie): Ditto.
5434         (WebCore::getHostnamesWithCookies): Ditto.
5435         (WebCore::deleteCookiesForHostname): Ditto.
5436         (WebCore::deleteAllCookies): Ditto.
5437         * platform/network/mac/ResourceHandleMac.mm:
5438         (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
5439         null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
5440         argument, so that the function can access current session.
5441         (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
5442         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5443         (WebCore::ResourceHandle::willLoadFromCache): Style fix.
5444         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
5445         for use in willSendRequest. 
5446         (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
5447
5448 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5449
5450         [Chromium] Land a proper fix for r134939.
5451
5452         * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
5453         * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
5454
5455 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5456
5457         [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
5458
5459 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5460
5461         [Chromium] Updated WebCore.gypi after r134939.
5462
5463         * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
5464
5465 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5466
5467         [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
5468         https://bugs.webkit.org/show_bug.cgi?id=101840
5469
5470         Reviewed by Gustavo Noronha Silva.
5471
5472         Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
5473         Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
5474         be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
5475         in the manner that the CFNet backend does.
5476
5477         No new tests. There are tests for this behavior, but they cannot be activated until we finish
5478         plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
5479
5480         * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
5481         storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
5482         from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
5483         * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
5484         credentials to the persistent credential store.
5485         * platform/network/ResourceHandle.h:
5486         (ResourceHandle): Add a method which is used to continue asynchronously after looking for
5487         proposed credentials in the persistent credential store.
5488         * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
5489         an authentication succeeded.
5490         * platform/network/gtk/CredentialBackingStore.cpp:
5491         (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
5492         of stored credentials.
5493         (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
5494         (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
5495         * platform/network/gtk/CredentialBackingStore.h:
5496         (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
5497         * platform/network/soup/AuthenticationChallenge.h:
5498         (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
5499         can set proposed credentials from the persistent credential store.
5500         * platform/network/soup/ResourceHandleSoup.cpp:
5501         (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
5502         if the authentication succeeded.
5503         (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
5504         in the request URI. This is the method that Soup uses to override any soup-stored session credential.
5505         (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
5506         authenticating requests from the session store.
5507         (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
5508         (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
5509         Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
5510         (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
5511         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
5512         into this asynchronous bit.
5513         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
5514         first looking in the persistent credential store.
5515         (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
5516         at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
5517         for storage later (see gotHeadersCallback).
5518
5519 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5520
5521         Update DOMException name: TypeMismatchError
5522         https://bugs.webkit.org/show_bug.cgi?id=102418
5523
5524         Reviewed by Kentaro Hara.
5525
5526         Patch 17 of 25 to update DOMException name to match the spec and Firefox.
5527
5528         Updated existing tests.
5529
5530         * dom/DOMCoreException.cpp:
5531         (WebCore):
5532         * dom/ExceptionCode.h:
5533
5534 2012-11-16  Balazs Kelemen  <kbalazs@webkit.org>
5535
5536         Coordinated Graphics: support the "freeze animations" API
5537         https://bugs.webkit.org/show_bug.cgi?id=100703
5538
5539         Reviewed by Noam Rosenthal.
5540
5541         Typo fix after previous patch.
5542
5543         No new tests, it's just a typo that only takes effect in the browser.
5544
5545         * platform/graphics/GraphicsLayerAnimation.cpp:
5546         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
5547         Initialize members.
5548
5549 2012-11-16  Dan Carney  <dcarney@google.com>
5550
5551         add 7 bit strings capabilities to the v8 binding layer
5552         https://bugs.webkit.org/show_bug.cgi?id=91850
5553
5554         Reviewed by Adam Barth.
5555
5556         This change enables the v8 binding layer to make use of webkit's
5557         8 bit string capabilities. Using 8 bit strings leads to certain
5558         benchmark performance improvemnts as can be seen in
5559         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
5560
5561         No new tests.  Test coverage already extensive.
5562
5563         * bindings/v8/V8PerIsolateData.cpp:
5564         (WebCore::V8PerIsolateData::visitExternalStrings):
5565         * bindings/v8/V8StringResource.cpp:
5566         (StringTraits):
5567         (WebCore::false):
5568         (WebCore):
5569         (WebCore::true):
5570         (WebCore::v8StringToWebCoreString):
5571         * bindings/v8/V8ValueCache.cpp:
5572         (WebCore::makeExternalString):
5573         (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
5574         (WebCore):
5575         (WebCore::WebCoreStringResourceBase::visitStrings):
5576         * bindings/v8/V8ValueCache.h:
5577         (WebCoreStringResourceBase):
5578         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
5579         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
5580         (WebCore::WebCoreStringResourceBase::atomicString):
5581         (WebCore::WebCoreStringResourceBase::memoryConsumption):
5582         (WebCoreStringResource16):
5583         (WebCore::WebCoreStringResource16::WebCoreStringResource16):
5584         (WebCore):
5585         (WebCoreStringResource8):
5586         (WebCore::WebCoreStringResource8::WebCoreStringResource8):
5587
5588 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5589
5590         Update DOMException name: InvalidAccessError
5591         https://bugs.webkit.org/show_bug.cgi?id=102400
5592
5593         Reviewed by Kentaro Hara.
5594
5595         Patch 15 of 25 to update DOMException name to match the spec and Firefox.
5596
5597         Updated existing tests.
5598
5599         * dom/DOMCoreException.cpp:
5600
5601 2012-11-16  Alexandru Chiculita  <achicu@adobe.com>
5602
5603         [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
5604         https://bugs.webkit.org/show_bug.cgi?id=102414
5605
5606         Reviewed by Noam Rosenthal.
5607
5608         Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
5609         platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
5610         client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
5611         used to render any layer on the page. 
5612
5613         Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
5614         are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
5615         extended and reused in the platform compositor.
5616         
5617         No new tests, existing tests for CSS Custom Filters already cover this path.
5618
5619         * CMakeLists.txt:
5620         * GNUmakefile.am:
5621         * GNUmakefile.list.am:
5622         * Target.pri:
5623         * WebCore.pri:
5624         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
5625         (WebCore):
5626         * platform/graphics/filters/CustomFilterValidatedProgram.h:
5627         (WebCore):
5628         (CustomFilterValidatedProgram):
5629         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
5630         (WebCore):
5631         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
5632         (WebCore::CustomFilterValidatedProgram::platformInit):
5633         (WebCore::CustomFilterValidatedProgram::platformDestroy):
5634         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
5635         (WebCore):
5636         (TextureMapperPlatformCompiledProgramClient):
5637         (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
5638         (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
5639         (TextureMapperPlatformCompiledProgram):
5640         Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
5641         the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
5642         (WebCore::TextureMapperPlatformCompiledProgram::create):
5643         (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
5644         (WebCore::TextureMapperPlatformCompiledProgram::client):
5645         (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
5646
5647 2012-11-16  Andreas Kling  <akling@apple.com>
5648
5649         Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
5650         <http://webkit.org/b/102498>
5651
5652         Reviewed by Antti Koivisto.
5653
5654         Add a fast path to hasEquivalentAttributes() that checks if both elements are using
5655         the same ElementAttributeData.
5656
5657         * dom/Element.cpp:
5658         (WebCore::Element::hasEquivalentAttributes):
5659
5660 2012-11-16  Zeno Albisser  <zeno@webkit.org>
5661
5662         [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
5663         https://bugs.webkit.org/show_bug.cgi?id=102360
5664
5665         QOpenGLContext::currentContext() will return null, in case there is
5666         no current context. Therefore currentContext must be null-checked
5667         before it can be reused.
5668         Making a context current on a null-surface on the other hand is
5669         perfectly possible.
5670
5671         Reviewed by Kenneth Rohde Christiansen.
5672
5673         * platform/graphics/qt/GraphicsContext3DQt.cpp:
5674         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
5675
5676 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
5677
5678         Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
5679         https://bugs.webkit.org/show_bug.cgi?id=102488
5680
5681         Reviewed by Vsevolod Vlasov.
5682
5683         Panels are lazily loaded / instantiated.
5684         Panel constructors register keyboard shortcuts.
5685
5686         When user open shortcuts screen all panel should be loaded.
5687         Otherwise some shortcuts will be missing.
5688
5689         * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
5690         * inspector/front-end/inspector.js:
5691         Provided callback that loads all panels.
5692
5693 2012-11-16  Kentaro Hara  <haraken@chromium.org>
5694
5695         [V8] Remove IsSubType() from CodeGeneratorV8.pm
5696         https://bugs.webkit.org/show_bug.cgi?id=102348
5697
5698         Reviewed by Adam Barth.
5699
5700         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
5701
5702         No tests. No change in behavior.
5703
5704         * bindings/scripts/CodeGenerator.pm:
5705         (IsSubType):
5706         * bindings/scripts/CodeGeneratorJS.pm:
5707         (GenerateImplementation):
5708         * bindings/scripts/CodeGeneratorV8.pm:
5709         (GenerateHeader):
5710         (GetInternalFields):
5711         (GenerateNormalAttrGetter):
5712         (GenerateNormalAttrSetter):
5713         (GenerateFunctionCallback):
5714         (GenerateImplementationIndexer):
5715         (GenerateToV8Converters):
5716
5717 2012-11-16  Mario Sanchez Prada  <mario@webkit.org>
5718
5719         [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
5720         https://bugs.webkit.org/show_bug.cgi?id=99578
5721
5722         Reviewed by Martin Robinson.
5723
5724         Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
5725
5726         * GNUmakefile.am:
5727         * GNUmakefile.list.am:
5728         * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
5729         Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
5730         * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
5731         Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
5732         * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
5733         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
5734         * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
5735         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
5736         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
5737         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
5738         * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
5739         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
5740         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
5741         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
5742         * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
5743         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
5744         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
5745         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
5746         * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
5747         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
5748         * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
5749         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
5750         * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
5751         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
5752         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
5753         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
5754         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
5755         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
5756         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
5757         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
5758         * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
5759         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
5760         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
5761         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
5762         * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
5763         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
5764         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
5765         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
5766         * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
5767         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
5768         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
5769         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
5770         * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
5771         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
5772         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
5773         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
5774         * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
5775         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
5776         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
5777         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
5778         * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
5779         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
5780         * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
5781         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
5782         * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
5783         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
5784         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
5785         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
5786         * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
5787         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
5788
5789 2012-11-16  Shinya Kawanaka  <shinyak@chromium.org>
5790
5791         Changing pseudoClass (:indeterminate) should cause distribution
5792         https://bugs.webkit.org/show_bug.cgi?id=101903
5793
5794         Reviewed by Dimitri Glazkov.
5795
5796         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
5797         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
5798
5799         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
5800         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
5801
5802         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
5803                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
5804
5805         * html/HTMLInputElement.cpp:
5806         (WebCore::HTMLInputElement::updateType):
5807         (WebCore::HTMLInputElement::setIndeterminate):
5808         * html/HTMLProgressElement.cpp:
5809         (WebCore::HTMLProgressElement::didElementStateChange):
5810
5811 2012-11-16  Alexis Menard  <alexis@webkit.org>
5812
5813         Factorize the creation of primitive values with a pair into a function.
5814         https://bugs.webkit.org/show_bug.cgi?id=102485
5815
5816         Reviewed by Antti Koivisto.
5817
5818         The pattern is already existing in various call sites inside CSSParser
5819         and more will be added in the future (see bug 102104).
5820
5821         No new tests : It's a refactoring only, the tests should cover it.
5822
5823         * css/CSSParser.cpp:
5824         (WebCore):
5825         (WebCore::createPrimitiveValuePair):
5826         (WebCore::CSSParser::parseValue):
5827         (WebCore::CSSParser::parseFillSize):
5828         (WebCore::CSSParser::parseBorderImageRepeat):
5829         (WebCore::CSSParser::parseBorderRadius):
5830         (WebCore::CSSParser::parseCounter):
5831
5832 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5833
5834         Expand PlatformCookieJar interface to allow for other ports
5835         https://bugs.webkit.org/show_bug.cgi?id=102456
5836
5837         Reviewed by Adam Barth.
5838
5839         Add firstParty and cookieURL arguments to several functions to
5840         prepare for integrating Chromium port into new PlatformCookieJar
5841         interface.
5842
5843         * loader/CookieJar.cpp:
5844         (WebCore::cookiesEnabled):
5845         (WebCore::cookieRequestHeaderFieldValue):
5846         (WebCore::getRawCookies):
5847         * platform/network/PlatformCookieJar.h:
5848         (WebCore):
5849         * platform/network/cf/CookieJarCFNet.cpp:
5850         (WebCore::cookieRequestHeaderFieldValue):
5851         (WebCore::cookiesEnabled):
5852         (WebCore::getRawCookies):
5853         * platform/network/curl/CookieJarCurl.cpp:
5854         (WebCore::cookieRequestHeaderFieldValue):
5855         (WebCore::cookiesEnabled):
5856         (WebCore::getRawCookies):
5857         * platform/network/mac/CookieJarMac.mm:
5858         (WebCore::cookieRequestHeaderFieldValue):
5859         (WebCore::cookiesEnabled):
5860         (WebCore::getRawCookies):
5861         * platform/network/qt/CookieJarQt.cpp:
5862         (WebCore::cookieRequestHeaderFieldValue):
5863         (WebCore::cookiesEnabled):
5864         (WebCore::getRawCookies):
5865         * platform/network/soup/CookieJarSoup.cpp:
5866         (WebCore::cookieRequestHeaderFieldValue):
5867         (WebCore::cookiesEnabled):
5868         (WebCore::getRawCookies):
5869         * platform/network/win/CookieJarWin.cpp:
5870         (WebCore::cookieRequestHeaderFieldValue):
5871         (WebCore::cookiesEnabled):
5872         (WebCore::getRawCookies):
5873
5874 2012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>
5875
5876         RenderGrid should have a function to resolve grid position
5877         https://bugs.webkit.org/show_bug.cgi?id=102441
5878
5879         Reviewed by Ojan Vafai.
5880
5881         The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
5882         Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
5883         on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
5884         support render areas and add a proper grid model to RenderGrid.
5885
5886         No expected change in behavior.
5887
5888         * rendering/RenderGrid.h:
5889         * rendering/RenderGrid.cpp:
5890         (WebCore::RenderGrid::resolveGridPosition):
5891         Added this new function to handle the conversion. We re-use Length but should never see
5892         a lot of the <length> values so I added some ASSERTs to enforce and catch that.
5893
5894         (WebCore::RenderGrid::findChildLogicalPosition):
5895         Simplified the function now that it just use resolveGridPosition.
5896
5897 2012-11-16  Ulan Degenbaev  <ulan@chromium.org>
5898
5899         [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
5900         https://bugs.webkit.org/show_bug.cgi?id=94463
5901
5902         Reviewed by Kentaro Hara.
5903
5904         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
5905
5906         Test: ManualTests/typed-array-memory.html
5907
5908         * bindings/v8/SerializedScriptValue.cpp:
5909
5910 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5911
5912         Unreviewed, rolling out r134694.
5913         http://trac.webkit.org/changeset/134694
5914         https://bugs.webkit.org/show_bug.cgi?id=102481
5915
5916         it made API test crash on EFL port (Requested by gyuyoung on
5917         #webkit).
5918
5919         * platform/efl/RenderThemeEfl.cpp:
5920         (WebCore::fillColorsFromEdjeClass):
5921         (WebCore::RenderThemeEfl::setColorFromThemeClass):
5922         (WebCore::RenderThemeEfl::loadTheme):
5923         (WebCore::RenderThemeEfl::RenderThemeEfl):
5924         * platform/efl/RenderThemeEfl.h:
5925         (RenderThemeEfl):
5926
5927 2012-11-16  Mike West  <mkwst@chromium.org>
5928
5929         Web Inspector: Move call stack generation out of bindings.
5930         https://bugs.webkit.org/show_bug.cgi?id=101331
5931
5932         Reviewed by Yury Semikhatsky.
5933
5934         Currently, we generate stack traces for console messages at each call
5935         site. Bug 100650 has the end goal of moving all stack trace generation
5936         inside of the Inspector in order to ensure that we never send a console
5937         message without a stack trace if it's possible to generate one. This
5938         also ensures that we never generate unused call stacks.
5939
5940         This patch is the first step in that direction, moving stack trace
5941         generation out of the Console bindings, and into either Console or
5942         InspectorConsoleAgent.
5943
5944         No visible change in behavior should result; this refactoring should
5945         continue to pass all existing inspector tests.
5946
5947         * bindings/js/JSConsoleCustom.cpp:
5948         (WebCore::JSConsole::profile):
5949         (WebCore::JSConsole::profileEnd):
5950             Adjust custom JSC Console bindings to drop call stack generation.
5951         * bindings/scripts/CodeGeneratorJS.pm:
5952         (GenerateCallWith):
5953         * bindings/scripts/CodeGeneratorV8.pm:
5954         (GenerateCallWith):
5955             Drop call stack generation from JSC and V8 bindings.
5956         * bindings/scripts/CodeGeneratorGObject.pm:
5957             Skip timeEnd explicitly in these bindings; it used to include
5958             ScriptArguments, which autoskipped it. Now it doesn't, so it needs
5959             to be called out on its own.
5960         * bindings/v8/ScriptCallStackFactory.cpp:
5961         (WebCore::createScriptCallStackForConsole):
5962         (WebCore::createScriptCallStack):
5963         (WebCore):
5964         * bindings/v8/ScriptCallStackFactory.h:
5965         (WebCore):
5966             Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
5967             ScriptCallStackFactory in order to match JCS' implementation.
5968             It simply delegates to 'createScriptCallStackForConsole', which
5969             now also accepts a 'maxStackSize' parameter.
5970         * bindings/v8/custom/V8ConsoleCustom.cpp:
5971         (WebCore::V8Console::traceCallback):
5972         (WebCore::V8Console::assertCallback):
5973         (WebCore::V8Console::profileCallback):
5974         (WebCore::V8Console::profileEndCallback):
5975             Adjust custom V8 bindings to drop call stack generation.
5976         * inspector/InspectorConsoleAgent.cpp:
5977         (WebCore::InspectorConsoleAgent::addMessageToConsole):
5978             With the eventual goal of getting rid of the call stack parameter
5979             entirely, this patch drops it from one version of
5980             'addMessageToConsole' (replacing it with ScriptState*), and creates
5981             a new version that only accepts a call stack. We should be able to
5982             migrate most (all?) external call sites over to the arguments
5983             version in future patches.
5984         (WebCore):
5985         (WebCore::InspectorConsoleAgent::count):
5986             Count takes 'ScriptState*' instead of a call stack, and generates
5987             the stack as needed.
5988         * inspector/InspectorConsoleAgent.h:
5989         (InspectorConsoleAgent):
5990         * inspector/InspectorConsoleInstrumentation.h:
5991         (WebCore::InspectorInstrumentation::addMessageToConsole):
5992         (WebCore):
5993         (WebCore::InspectorInstrumentation::consoleCount):
5994         * inspector/InspectorInstrumentation.cpp:
5995         (WebCore):
5996         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
5997         (WebCore::InspectorInstrumentation::consoleCountImpl):
5998         * inspector/InspectorInstrumentation.h:
5999         (InspectorInstrumentation):
6000             Changes the InspectorInstrumentation pipeline to match the
6001             InspectorConsoleAgent changes.
6002         * page/Console.cpp:
6003         (WebCore::Console::addMessage):
6004             We now (always) generate one frame of a stack trace in order to
6005             populate line numbers and caller URLs. If we need to print the whole
6006             trace here, we generate a full stack.
6007         (WebCore::Console::debug):
6008         (WebCore::Console::error):
6009         (WebCore::Console::info):
6010         (WebCore::Console::log):
6011         (WebCore::Console::warn):
6012         (WebCore::Console::dir):
6013         (WebCore::Console::dirxml):
6014         (WebCore::Console::clear):
6015         (WebCore::Console::trace):
6016         (WebCore::Console::assertCondition):
6017         (WebCore::Console::count):
6018         (WebCore::Console::markTimeline):
6019         (WebCore::Console::timeEnd):
6020         (WebCore::Console::timeStamp):
6021         (WebCore::Console::group):
6022         (WebCore::Console::groupCollapsed):
6023         (WebCore::Console::profile):
6024         (WebCore::Console::profileEnd):
6025             s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
6026             has been moved out of 'trace' and into 'addMessage'.
6027         * page/Console.h:
6028         (Console):
6029         * page/Console.idl:
6030             Drop the call stack, add the script state.
6031         * workers/WorkerContext.cpp:
6032         (WebCore::WorkerContext::addMessageToWorkerConsole):
6033             Use the new, explicitly call stacked addMessageToConsole. We'll kill
6034             this in a future patch.
6035
6036 2012-11-16  Marja Hölttä  <marja@chromium.org>
6037
6038         Add initiator to CachedResourceRequest.
6039         https://bugs.webkit.org/show_bug.cgi?id=101935
6040
6041         Reviewed by Adam Barth.
6042
6043         Motivation: Chromium needs to know which elements request a
6044         resource (such as an image or a script) (bug 92761). In addition,
6045         for exposing resource timing information (bug 84883) we need to
6046         store the initiator, and this is the first step towards it.
6047
6048         No new tests: No visible change in behavior.
6049
6050         * CMakeLists.txt:
6051         * GNUmakefile.list.am:
6052         * Target.pri:
6053         * WebCore.gypi:
6054         * WebCore.vcproj/WebCore.vcproj:
6055         * WebCore.xcodeproj/project.pbxproj:
6056         * css/CSSCursorImageValue.cpp:
6057         (WebCore::CSSCursorImageValue::cachedImage):
6058         * css/CSSFontFaceSrcValue.cpp:
6059         (WebCore::CSSFontFaceSrcValue::cachedFont):
6060         * css/CSSImageSetValue.cpp:
6061         (WebCore::CSSImageSetValue::cachedImageSet):
6062         * css/CSSImageValue.cpp:
6063         (WebCore::CSSImageValue::cachedImage):
6064         * css/CSSImageValue.h:
6065         (WebCore):
6066         (CSSImageValue):
6067         * css/StyleResolver.cpp:
6068         (WebCore::StyleResolver::loadPendingImage):
6069         * css/StyleRuleImport.cpp:
6070         (WebCore::StyleRuleImport::requestStyleSheet):
6071         * css/WebKitCSSSVGDocumentValue.cpp:
6072         (WebCore::WebKitCSSSVGDocumentValue::load):
6073         * css/WebKitCSSShaderValue.cpp:
6074         (WebCore::WebKitCSSShaderValue::cachedShader):
6075         * dom/ScriptElement.cpp:
6076         (WebCore::ScriptElement::requestScript):
6077         * html/HTMLLinkElement.cpp:
6078         (WebCore::HTMLLinkElement::process):
6079         * html/parser/CSSPreloadScanner.cpp:
6080         (WebCore::CSSPreloadScanner::emitRule):
6081         * html/parser/CSSPreloadScanner.h:
6082         (CSSPreloadScanner):
6083         * html/parser/HTMLPreloadScanner.cpp:
6084         (WebCore::PreloadTask::preload):
6085         * loader/ImageLoader.cpp:
6086         (WebCore::ImageLoader::updateFromElement):
6087         * loader/cache/CachedResourceLoader.cpp:
6088         (WebCore::CachedResourceLoader::requestImage):
6089         (WebCore::CachedResourceLoader::requestResource):
6090         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
6091         (WebCore):
6092         (WebCore::CachedResourceLoader::preload):
6093         * loader/cache/CachedResourceLoader.h:
6094         (WebCore):
6095         (CachedResourceLoader):
6096         * loader/cache/CachedResourceRequest.cpp:
6097         (WebCore::CachedResourceRequest::CachedResourceRequest):
6098         (WebCore):
6099         (WebCore::CachedResourceRequest::~CachedResourceRequest):
6100         (WebCore::CachedResourceRequest::setInitiator):
6101         (WebCore::CachedResourceRequest::initiatorName):
6102         (WebCore::CachedResourceRequest::initiatorDocument):
6103         (WebCore::CachedResourceRequest::initiatorElement):
6104         * loader/cache/CachedResourceRequest.h:
6105         (WebCore):
6106         (WebCore::CachedResourceRequest::setOptions):
6107         (WebCore::CachedResourceRequest::defer):
6108         (WebCore::CachedResourceRequest::setDefer):
6109         (CachedResourceRequest):
6110         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6111         (WebCore):
6112         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
6113         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6114         (WebCore):
6115         (CachedResourceRequestInitiators):
6116         (WebCore::cachedResourceRequestInitiators):
6117         * loader/icon/IconLoader.cpp:
6118         (WebCore::IconLoader::startLoading):
6119         * platform/ThreadGlobalData.cpp:
6120         (WebCore::ThreadGlobalData::ThreadGlobalData):
6121         * platform/ThreadGlobalData.h:
6122         (WebCore):
6123         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
6124         (ThreadGlobalData):
6125         * svg/SVGFEImageElement.cpp:
6126         (WebCore::SVGFEImageElement::requestImageResource):
6127         * svg/SVGFontFaceUriElement.cpp:
6128         (WebCore::SVGFontFaceUriElement::loadFont):
6129         * svg/SVGUseElement.cpp:
6130         (WebCore::SVGUseElement::svgAttributeChanged):
6131
6132 2012-11-16  Yury Semikhatsky  <yurys@chromium.org>
6133
6134         Web Inspector: don't show an Error when evaluating a watch expression results in an exception
6135         https://bugs.webkit.org/show_bug.cgi?id=102470
6136
6137         Reviewed by Vsevolod Vlasov.
6138
6139         Dim watch expression and show "<not available>" as its value in cases when it evaluates
6140         into an exception.
6141
6142         * English.lproj/localizedStrings.js:
6143         * inspector/front-end/WatchExpressionsSidebarPane.js:
6144         (WebInspector.WatchExpressionTreeElement.prototype.update):
6145         * inspector/front-end/inspector.css:
6146
6147 2012-11-16  Vsevolod Vlasov  <vsevik@chromium.org>
6148
6149         Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
6150         https://bugs.webkit.org/show_bug.cgi?id=102476
6151
6152         Unreviewed rolling out.
6153
6154         * English.lproj/localizedStrings.js:
6155         * WebCore.gypi:
6156         * WebCore.vcproj/WebCore.vcproj:
6157         * inspector/compile-front-end.py:
6158         * inspector/front-end/AdvancedSearchController.js:
6159         * inspector/front-end/CallStackSidebarPane.js:
6160         (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
6161         * inspector/front-end/ConsoleView.js:
6162         (WebInspector.ConsoleView.prototype._registerShortcuts):
6163         * inspector/front-end/ElementsPanel.js:
6164         (WebInspector.ElementsPanel):
6165         (WebInspector.ElementsPanel.prototype._registerShortcuts):
6166         * inspector/front-end/ElementsPanelDescriptor.js:
6167         * inspector/front-end/GoToLineDialog.js:
6168         (WebInspector.GoToLineDialog.install):
6169         * inspector/front-end/KeyboardShortcut.js:
6170         (WebInspector.KeyboardShortcut._keyName):
6171         * inspector/front-end/Panel.js:
6172         (WebInspector.Panel.prototype.registerShortcut):
6173         (WebInspector.Panel.prototype.unregisterShortcut):
6174         (WebInspector.PanelDescriptor.prototype.panel):
6175         * inspector/front-end/ScriptsPanel.js:
6176         (WebInspector.ScriptsPanel):
6177         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
6178         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
6179         * inspector/front-end/ScriptsPanelDescriptor.js:
6180         * inspector/front-end/ShortcutsScreen.js:
6181         (WebInspector.ShortcutsScreen):
6182         (WebInspector.ShortcutsSection):
6183         (WebInspector.ShortcutsSection.prototype._renderKey):
6184         * inspector/front-end/StylesSidebarPane.js:
6185         (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
6186         * inspector/front-end/TimelinePanel.js:
6187         (WebInspector.TimelinePanel.prototype._registerShortcuts):
6188         * inspector/front-end/TimelinePanelDescriptor.js: Removed.
6189         * inspector/front-end/WebKit.qrc:
6190         * inspector/front-end/inspector.html:
6191         * inspector/front-end/inspector.js:
6192         (WebInspector._panelDescriptors):
6193         (WebInspector._registerShortcuts):
6194
6195 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
6196
6197         Web Inspector: Memory Timeline Crash
6198         https://bugs.webkit.org/show_bug.cgi?id=102390
6199
6200         Reviewed by Vsevolod Vlasov.
6201
6202         Crash seems to be caused by IPC overflow.
6203         Messages "ParsedScriptSource" are routed to
6204         ResourceScriptMapping.prototype.addScript that process them in time
6205         linear to number of already registered non-anonymous non-inline scripts.
6206
6207         Fixed this with replacing repreated filtering with "on-line" bucketing.
6208
6209         * inspector/front-end/ResourceScriptMapping.js:
6210         (WebInspector.ResourceScriptMapping):
6211         Removed duplicating initialization code.
6212         (WebInspector.ResourceScriptMapping.prototype.addScript):
6213         Added script bucketing by sourceURL/isInline parameters.
6214         (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
6215         Avoid filterfig.
6216         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
6217         Added outgoing muatable array safeguard.
6218         (WebInspector.ResourceScriptMapping.prototype._reset):
6219         Added type information and added two new maps.
6220
6221 2012-11-16  Helder Correia  <helder.correia@nokia.com>
6222
6223         [CoordGfx] Follow coding style on explicit constructors
6224         https://bugs.webkit.org/show_bug.cgi?id=102451
6225
6226         Reviewed by Noam Rosenthal.
6227
6228         Use the explicit keyword on single argument constructors.
6229
6230         No new tests needed.
6231
6232         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
6233         (GraphicsLayerTextureMapper):
6234         * platform/graphics/texmap/TextureMapper.h:
6235         (TextureMapper):
6236         * platform/graphics/texmap/TextureMapperBackingStore.h:
6237         (WebCore::TextureMapperTile::TextureMapperTile):
6238         * platform/graphics/texmap/TextureMapperGL.cpp:
6239         (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
6240         (WebCore::TextureMapperGLData::TextureMapperGLData):
6241         * platform/graphics/texmap/TextureMapperGL.h:
6242         (BitmapTextureGL):
6243         * platform/graphics/texmap/TextureMapperShaderManager.h:
6244         (TextureMapperShaderManager):
6245
6246 2012-11-16  Kihong Kwon  <kihong.kwon@samsung.com>
6247
6248         Add DeviceController base-class to remove duplication of DeviceXXXControler
6249         https://bugs.webkit.org/show_bug.cgi?id=96894
6250
6251         Reviewed by Hajime Morita.
6252
6253         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
6254         And soon-to-be-added DeviceMotionController and ProximityController.
6255
6256         Covered by existing tests.
6257
6258         * CMakeLists.txt:
6259         * GNUmakefile.list.am:
6260         * Target.pri:
6261         * WebCore.gypi:
6262         * WebCore.vcproj/WebCore.vcproj:
6263         * WebCore.xcodeproj/project.pbxproj:
6264         * dom/DeviceOrientationClient.h:
6265         * dom/DeviceOrientationController.cpp:
6266         Remove member functions to move to DeviceController.
6267         - addListener(), removeListener(), removeAllListeners(), isActive()
6268         (WebCore::DeviceOrientationController::DeviceOrientationController):
6269         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
6270         (WebCore::DeviceOrientationController::client):
6271         (WebCore::DeviceOrientationController::hasLastData):
6272         (WebCore::DeviceOrientationController::getLastEvent):
6273         (WebCore::DeviceOrientationController::from):
6274         (WebCore):
6275         * dom/DeviceOrientationController.h:
6276         (WebCore):
6277         (WebCore::DeviceOrientationController::~DeviceOrientationController):
6278         (DeviceOrientationController):
6279         * dom/Document.cpp:
6280         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
6281         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
6282         (WebCore::Document::suspendActiveDOMObjects):
6283         (WebCore::Document::resumeActiveDOMObjects):
6284         * loader/EmptyClients.h:
6285         (EmptyDeviceClient):
6286         (WebCore::EmptyDeviceClient::startUpdating):
6287         (WebCore::EmptyDeviceClient::stopUpdating):
6288         (WebCore):
6289         * page/DOMWindow.cpp:
6290         (WebCore::DOMWindow::addEventListener):
6291         (WebCore::DOMWindow::removeEventListener):
6292         (WebCore::DOMWindow::removeAllEventListeners):
6293         * page/DeviceClient.h: Added.
6294         (WebCore):
6295         (DeviceClient):
6296         (WebCore::DeviceClient::~DeviceClient):
6297         * page/DeviceController.cpp: Added.
6298         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
6299         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
6300         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
6301         (WebCore):
6302         (WebCore::DeviceController::DeviceController):
6303         (WebCore::DeviceController::addDeviceEventListener):
6304         (WebCore::DeviceController::removeDeviceEventListener):
6305         (WebCore::DeviceController::removeAllDeviceEventListeners):
6306         (WebCore::DeviceController::dispatchDeviceEvent):
6307         (WebCore::DeviceController::fireDeviceEvent):
6308         * page/DeviceController.h: Added.
6309         (WebCore):
6310         (DeviceController):
6311         (WebCore::DeviceController::~DeviceController):
6312         (WebCore::DeviceController::isActive):
6313         (WebCore::DeviceController::client):
6314         (WebCore::DeviceController::hasLastData):
6315         (WebCore::DeviceController::getLastEvent):
6316
6317 2012-11-16  Alexander Pavlov  <apavlov@chromium.org>
6318
6319         Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
6320         https://bugs.webkit.org/show_bug.cgi?id=102467
6321
6322         Reviewed by Pavel Feldman.
6323
6324         Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
6325         Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
6326         so that they will get restored only upon page navigation, not upon any agent enablement.
6327
6328         * inspector/InspectorPageAgent.cpp:
6329         (WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
6330         (WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.
6331
6332 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6333
6334         Unreviewed, rolling out r134908.
6335         http://trac.webkit.org/changeset/134908
6336         https://bugs.webkit.org/show_bug.cgi?id=102473
6337
6338         Broke the Apple Windows Debug build. (Requested by dydx on
6339         #webkit).
6340
6341         * WebCore.exp.in:
6342         * dom/ViewportArguments.cpp:
6343         (WebCore::computeViewportAttributes):
6344         * dom/ViewportArguments.h:
6345         (WebCore):
6346
6347 2012-11-16  Peter Rybin  <prybin@chromium.org>
6348
6349         Web Inspector: show internal properties in inspector frontend
6350         https://bugs.webkit.org/show_bug.cgi?id=100021
6351
6352         Reviewed by Yury Semikhatsky.
6353
6354         New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.
6355
6356         Test: inspector/debugger/properties-special.html
6357
6358         * inspector/front-end/ObjectPropertiesSection.js:
6359         (WebInspector.ObjectPropertiesSection.prototype.update.callback):
6360         (WebInspector.ObjectPropertiesSection.prototype.update):
6361         (.callback):
6362         (WebInspector.ObjectPropertyTreeElement.populate):
6363         (.processProperties):
6364         (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
6365         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
6366         * inspector/front-end/RemoteObject.js:
6367         (WebInspector.RemoteObject.prototype.set else):
6368
6369 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
6370
6371         Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
6372         https://bugs.webkit.org/show_bug.cgi?id=93691
6373
6374         Reviewed by Vsevolod Vlasov.
6375
6376         - The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
6377         both receiving a new, more light-weight design.
6378         - The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.
6379
6380         * WebCore.gypi:
6381         * WebCore.vcproj/WebCore.vcproj:
6382         * inspector/compile-front-end.py:
6383         * inspector/front-end/ContextMenu.js:
6384         (WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
6385         * inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
6386         (WebInspector.OverridesView.appendBlockTo):
6387         (WebInspector.OverridesView):
6388         (WebInspector.OverridesView.showInDrawer):
6389         (WebInspector.OverridesView.prototype.get listener):
6390         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
6391         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
6392         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
6393         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
6394         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
6395         (WebInspector.OverridesView.prototype._createInput):
6396         (WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
6397         (WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
6398         (WebInspector.OverridesView.prototype.):
6399         (WebInspector.OverridesView.prototype.set if):
6400         (WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
6401         (WebInspector.OverridesView.prototype._createDeviceMetricsElement):
6402         (WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
6403         (WebInspector.OverridesView.prototype._applyGeolocationUserInput):
6404         (WebInspector.OverridesView.prototype._setGeolocationPosition):
6405         (WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
6406         (WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
6407         (WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
6408         (WebInspector.OverridesView.prototype._setDeviceOrientation):
6409         (WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
6410         * inspector/front-end/ScriptsPanel.js:
6411         (WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
6412         * inspector/front-end/SettingsScreen.js:
6413         (WebInspector.SettingsTab):
6414         (WebInspector.SettingsTab.prototype._appendSection):
6415         (WebInspector.GenericSettingsTab):
6416         (WebInspector.ExperimentsSettingsTab):
6417         (WebInspector.SettingsController): Implement the popup menu upon the button click.
6418         (WebInspector.SettingsController.prototype.showOverrides):
6419         (WebInspector.SettingsController.prototype.showSettings):
6420         (WebInspector.SettingsController.prototype.appendApplicableItems):
6421         (WebInspector.SettingsController.prototype._buttonPressed):
6422         (WebInspector.SettingsController.prototype._onHideSettingsScreen):
6423         (WebInspector.SettingsController.prototype.showSettingsScreen):
6424         * inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
6425         (WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
6426         * inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
6427         (WebInspector.SoftContextMenu.prototype.show):
6428         * inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
6429         (WebInspector.TabbedPane.prototype.set verticalTabLayout):
6430         (WebInspector.TabbedPane.prototype._updateWidths):
6431         (WebInspector.TabbedPaneTab.prototype.setWidth):
6432         (WebInspector.TabbedPaneTab.prototype._createTabElement):
6433         * inspector/front-end/WebKit.qrc:
6434         * inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
6435         * inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
6436         (.soft-context-menu-item):
6437         (.drawer-header):
6438         * inspector/front-end/inspector.html:
6439
6440 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6441
6442         Unreviewed, rolling out r134865.
6443         http://trac.webkit.org/changeset/134865
6444         https://bugs.webkit.org/show_bug.cgi?id=102466
6445
6446         Broke the Apple Windows Debug build. (Requested by dydx on
6447         #webkit).
6448
6449         * WebCore.exp.in:
6450         * bindings/js/SerializedScriptValue.h:
6451         * testing/Internals.cpp:
6452         * testing/Internals.h:
6453         (WebCore):
6454         * testing/Internals.idl:
6455
6456 2012-11-16  Takashi Sakamoto  <tasak@google.com>
6457
6458         ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
6459         https://bugs.webkit.org/show_bug.cgi?id=102116
6460
6461         Reviewed by Alexander Pavlov.
6462
6463         Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
6464         rules. Since there is no CSSOM wrapper for @host @-rules and
6465         ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
6466         this crash occurs.
6467
6468         Tests: fast/css/at-host-cssom-crash.html
6469                inspector/styles/styles-include-host-rules-crash.html
6470
6471         * css/StyleRule.cpp:
6472         (WebCore::StyleRuleBase::createCSSOMWrapper):
6473         Return a CSSUnknownRule instance for StyleRuleHost rules instead of
6474         calling ASSERT_NOT_REACHED().
6475
6476 2012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
6477
6478         Avoid copying of ViewportArguments in computeViewportAttributes function
6479         https://bugs.webkit.org/show_bug.cgi?id=102354
6480
6481         Reviewed by Kenneth Rohde Christiansen.
6482
6483         Since r134749 we do not need copying of ViewportArguments parameter in
6484         computeViewportAttributes() as it is not modified any more.
6485
6486         Tested by existing tests fast/viewport.
6487
6488         * WebCore.exp.in: Updated exported symbols for MAC.
6489         * dom/ViewportArguments.cpp:
6490         (WebCore::computeViewportAttributes):
6491         * dom/ViewportArguments.h:
6492         (WebCore):
6493
6494 2012-11-15  Yury Semikhatsky  <yurys@chromium.org>
6495
6496         Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
6497         https://bugs.webkit.org/show_bug.cgi?id=102384
6498
6499         Reviewed by Pavel Feldman.
6500
6501         * inspector/InspectorMemoryAgent.cpp:
6502         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
6503         if the check fails.
6504         * inspector/MemoryInstrumentationImpl.h:
6505         (MemoryInstrumentationClientImpl):
6506
6507 2012-11-15  Jer Noble  <jer.noble@apple.com>
6508
6509         Crash at WebCore::PluginData::pluginFileForMimeType const + 38
6510         https://bugs.webkit.org/show_bug.cgi?id=102454
6511
6512         Reviewed by Dan Bernstein.
6513
6514         NULL-check the return value of Page::pluginData().
6515
6516         * loader/SubframeLoader.cpp:
6517         (WebCore::logPluginRequest):
6518
6519 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6520
6521         [Chromium] Unreviewed build fix attempt on win
6522
6523         Include OpenTypeVerticalData.h
6524
6525         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6526         (WebCore):
6527
6528 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6529
6530         Unreviewed, rolling out r134881.
6531         http://trac.webkit.org/changeset/134881
6532         https://bugs.webkit.org/show_bug.cgi?id=102348
6533
6534         http/tests/appcache tests on JSC platforms are broken
6535
6536         * bindings/scripts/CodeGenerator.pm:
6537         (IsStrictSubtype):
6538         * bindings/scripts/CodeGeneratorJS.pm:
6539         (GenerateImplementation):
6540         * bindings/scripts/CodeGeneratorV8.pm:
6541         (GenerateHeader):
6542         (GetInternalFields):
6543         (IsSubType):
6544         (IsNodeSubType):
6545         (GenerateNormalAttrGetter):
6546         (GenerateNormalAttrSetter):
6547         (GenerateFunctionCallback):
6548         (GenerateImplementationIndexer):
6549         (GenerateToV8Converters):
6550
6551 2012-11-15  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
6552
6553         [TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
6554         https://bugs.webkit.org/show_bug.cgi?id=102420
6555
6556         Reviewed by Gyuyoung Kim.
6557
6558         Moved out texture upload without swizzle to the separate method and changed
6559         drawRepaintCounter to use no-swizzle method. This also fixes blue background
6560         of repaint counters in Qt Minibrowser.
6561         Added condition for sub-image buffer creation to not create it if full image is
6562         uploaded. This should give noticeable improvement for platforms that do not
6563         support sub-image upload to texture.
6564
6565         Covered by existing tests.
6566
6567         * platform/graphics/texmap/TextureMapperGL.cpp:
6568         (WebCore::TextureMapperGL::drawRepaintCounter):
6569         (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
6570         (WebCore):
6571         (WebCore::BitmapTextureGL::updateContents):
6572         * platform/graphics/texmap/TextureMapperGL.h:
6573         (BitmapTextureGL):
6574
6575 2012-11-15  Kent Tamura  <tkent@chromium.org>
6576
6577         A Spin button should release mouse event capturing when a modal dialog opens
6578         https://bugs.webkit.org/show_bug.cgi?id=98007
6579
6580         Reviewed by Hajime Morita.
6581
6582         Description of bug:
6583         If the mouse left button is pressed on a spin button in
6584         input[type=number] and a 'change' event handler opens a modal dialog
6585         such as alert(), a repeating timer doesn't stop and mouse event
6586         capturing isn't released even though the mouse pointer isn't on the spin
6587         button.
6588         A user will see repeating alert dialogs for a document like <input
6589         type=number value=1 onchange="if (this.value==1) {alert(...);
6590         this.value=1;}"> by clicking the up button.
6591
6592         How to solve:
6593         We should notify modal dialog or popup open to a spin button.
6594         This patch introduce PopupOpeningObserver. Chrome notifies it when
6595         any dialogs / popups is opening. SpinButtonElement implements
6596         PopupOpeningObserver and registers/unregisters itself to/from
6597         Chrome.
6598
6599         No new tests. This is a behavior change, but it's very hard to make an
6600         automated test for timer-related behavior.
6601
6602         * page/PopupOpeningObserver.h: Added.
6603         * GNUmakefile.list.am: Add PopupOpeningObserver.h
6604         * Target.pri: Ditto.
6605         * WebCore.gypi: Ditto.
6606         * WebCore.vcproj/WebCore.vcproj: Ditto.
6607         * WebCore.xcodeproj/project.pbxproj: Ditto.
6608
6609         * page/Chrome.cpp:
6610         (WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
6611         (WebCore::Chrome::runJavaScriptConfirm): Ditto.
6612         (WebCore::Chrome::runJavaScriptPrompt): Ditto.
6613         (WebCore::Chrome::createColorChooser): Ditto.
6614         (WebCore::Chrome::openDateTimeChooser):
6615         Added. Calls notifyPopupOpeningObservers before calling
6616         ChromeClient::openDateTimeChooser.
6617         (WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
6618         (WebCore::Chrome::createPopupMenu): Ditto.
6619         (WebCore::Chrome::createSearchPopupMenu): Ditto.
6620         (WebCore::Chrome::registerPopupOpeningObserver): Added.
6621         (WebCore::Chrome::unregisterPopupOpeningObserver): Added.
6622         (WebCore::Chrome::notifyPopupOpeningObservers): Added.
6623         * page/Chrome.h: Added new members and required class/struct declarations.
6624
6625         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
6626         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
6627         Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
6628         * html/shadow/PickerIndicatorElement.cpp:
6629         (WebCore::PickerIndicatorElement::openPopup): Ditto.
6630
6631         * html/shadow/SpinButtonElement.h:
6632         (SpinButtonElement): Declare willOpenPopup.
6633         * html/shadow/SpinButtonElement.cpp:
6634         (WebCore::SpinButtonElement::defaultEventHandler):
6635         Change the order of timer start and changing the value so that we
6636         can cancel the timer correctly.
6637         Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
6638         (WebCore::SpinButtonElement::willOpenPopup):
6639         Release mouse event capturing before opening a modal dialog.
6640         (WebCore::SpinButtonElement::releaseCapture):
6641         Calls Chrome::unregisterPopupOpeningObserver.
6642
6643
6644 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
6645
6646         Chaging pseudoClass (:enabled) should cause distribution
6647         https://bugs.webkit.org/show_bug.cgi?id=101900
6648
6649         Reviewed by Dimitri Glazkov.
6650
6651         When element's 'enabled' state is changed, we have to invalidate distribution.
6652
6653         According to the spec, :enabled matches anchor/area/link element having href attribute,
6654         and several form control elements which is not disabled. However, currently :enalbed does not match
6655         anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
6656
6657         Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
6658                fast/dom/shadow/pseudoclass-update-enabled-area.html
6659                fast/dom/shadow/pseudoclass-update-enabled-button.html
6660                fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
6661                fast/dom/shadow/pseudoclass-update-enabled-input.html
6662                fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
6663                fast/dom/shadow/pseudoclass-update-enabled-option.html
6664                fast/dom/shadow/pseudoclass-update-enabled-select.html
6665                fast/dom/shadow/pseudoclass-update-enabled-textarea.html
6666
6667         * html/HTMLAnchorElement.cpp:
6668         (WebCore::HTMLAnchorElement::parseAttribute):
6669         * html/HTMLFormControlElement.cpp:
6670         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
6671         * html/HTMLOptGroupElement.cpp:
6672         (WebCore::HTMLOptGroupElement::parseAttribute):
6673         * html/HTMLOptionElement.cpp:
6674         (WebCore::HTMLOptionElement::parseAttribute):
6675
6676 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6677
6678         Update DOMException name: ValidationError
6679         https://bugs.webkit.org/show_bug.cgi?id=102416
6680
6681         Reviewed by Kentaro Hara.
6682
6683         Patch 16 of 25 to update DOMException name to match the spec and Firefox.
6684
6685         VALIDATION_ERR is historical and not used in any spec or our code.
6686
6687         * dom/DOMCoreException.cpp:
6688         * dom/ExceptionCode.h:
6689
6690 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6691
6692         [V8] Remove IsSubType() from CodeGeneratorV8.pm
6693         https://bugs.webkit.org/show_bug.cgi?id=102348
6694
6695         Reviewed by Adam Barth.
6696
6697         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
6698
6699         No tests. No change in behavior.
6700
6701         * bindings/scripts/CodeGenerator.pm:
6702         (IsSubType):
6703         * bindings/scripts/CodeGeneratorJS.pm:
6704         (GenerateImplementation):
6705         * bindings/scripts/CodeGeneratorV8.pm:
6706         (GenerateHeader):
6707         (GetInternalFields):
6708         (GenerateNormalAttrGetter):
6709         (GenerateNormalAttrSetter):
6710         (GenerateFunctionCallback):
6711         (GenerateImplementationIndexer):
6712         (GenerateToV8Converters):
6713
6714 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6715
6716         Update DOMException name: NamespaceError
6717         https://bugs.webkit.org/show_bug.cgi?id=102395
6718
6719         Reviewed by Kentaro Hara.
6720
6721         Patch 14 of 25 to update DOMException name to match the spec and Firefox.
6722
6723         Updated existing tests.
6724
6725         * dom/DOMCoreException.cpp:
6726
6727 2012-11-15  Tien-Ren Chen  <trchen@chromium.org>
6728
6729         Add Settings to disable custom scrollbars on main frame
6730         https://bugs.webkit.org/show_bug.cgi?id=102323
6731
6732         Reviewed by Adam Barth.
6733
6734         Custom scrollbars on main frame don't really work well on touch devices.
6735         Add a setting to inhibit their creation.
6736
6737         No new tests. No change in default layout behavior.
6738
6739         * page/FrameView.cpp:
6740         (WebCore::FrameView::createScrollbar):
6741         * page/Settings.in:
6742
6743 2012-11-15  Rick Byers  <rbyers@chromium.org>
6744
6745         custom CSS cursors ignore hotspot values embedded in CUR files
6746         https://bugs.webkit.org/show_bug.cgi?id=100059
6747
6748         Reviewed by Kenneth Russell.
6749
6750         Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
6751         and plumb it through so that the existing calls to ImageSource::getHotSpot
6752         actually return the hot spot value when there is one.
6753
6754         Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
6755
6756         * platform/graphics/ImageSource.cpp:
6757         (WebCore::ImageSource::getHotSpot):
6758         * platform/graphics/chromium/DeferredImageDecoder.cpp:
6759         (WebCore::DeferredImageDecoder::hotSpot):
6760         (WebCore::DeferredImageDecoder::hotSpotAtIndex):
6761         * platform/graphics/chromium/DeferredImageDecoder.h:
6762         (DeferredImageDecoder):
6763         * platform/image-decoders/ImageDecoder.h:
6764         (WebCore::ImageDecoder::hotSpot):
6765         (WebCore::ImageDecoder::hotSpotAtIndex):
6766         (ImageDecoder):
6767         * platform/image-decoders/ico/ICOImageDecoder.cpp:
6768         (WebCore::ICOImageDecoder::hotSpot):
6769         (WebCore::ICOImageDecoder::hotSpotAtIndex):
6770         (WebCore::ICOImageDecoder::processDirectory):
6771         (WebCore::ICOImageDecoder::readDirectoryEntry):
6772         * platform/image-decoders/ico/ICOImageDecoder.h:
6773         (ICOImageDecoder):
6774         (IconDirectoryEntry):
6775
6776 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6777
6778         Make OpenTypeVerticalData be ref-counted
6779         https://bugs.webkit.org/show_bug.cgi?id=101971
6780
6781         Reviewed by Tony Chang.
6782
6783         FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
6784         OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
6785         via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
6786         SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
6787         delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
6788         it be ref-counted.
6789
6790         No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
6791
6792         * platform/graphics/FontCache.cpp:
6793         (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
6794         (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
6795         (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
6796         * platform/graphics/FontCache.h:
6797         * platform/graphics/SimpleFontData.cpp:
6798         (WebCore::SimpleFontData::SimpleFontData):
6799         * platform/graphics/SimpleFontData.h:
6800         Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
6801         (WebCore::SimpleFontData::verticalData):
6802         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
6803         (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
6804         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6805         (FontPlatformData):
6806         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
6807         (WebCore::FontPlatformData::verticalData): Ditto.
6808         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
6809         (WebCore):
6810         (FontPlatformData):
6811         * platform/graphics/opentype/OpenTypeVerticalData.h:
6812         (WebCore::OpenTypeVerticalData::create): Added.
6813         (OpenTypeVerticalData):
6814
6815 2012-11-15  Xingnan Wang  <xingnan.wang@intel.com>
6816
6817         Optimize the multiply-add in Biquad.cpp::process
6818         https://bugs.webkit.org/show_bug.cgi?id=75528
6819
6820         Reviewed by Brent Fulgham.
6821
6822         Pipeline the multiply-add with SSE2 intrinsics.
6823         Get ~45% performance improvement for the function.
6824
6825         * platform/audio/Biquad.cpp:
6826         (WebCore::Biquad::process):
6827
6828 2012-11-15  Alec Flett  <alecflett@chromium.org>
6829
6830         Add tests for explicit serialization values
6831         https://bugs.webkit.org/show_bug.cgi?id=96818
6832
6833         Reviewed by Adam Barth.
6834
6835         Expose direct access to the serialization/deserialization mechanisms
6836         of SerializedScriptValue to DumpRenderTree.
6837
6838         * testing/Internals.cpp:
6839         (WebCore::Internals::serializeObject):
6840         (WebCore):
6841         (WebCore::Internals::deserializeBuffer):
6842         * testing/Internals.h:
6843         (WebCore):
6844         * testing/Internals.idl:
6845
6846 2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
6847
6848         [GTK] Split WebCore/platform into a separate library
6849         https://bugs.webkit.org/show_bug.cgi?id=94435
6850
6851         Reviewed by Martin Robinson.
6852
6853         More people have been reporting problems when linking WebCore because
6854         the command line limit is being exceeded. Splitting WebCore a bit more
6855         is in order.
6856
6857         * GNUmakefile.am: add new libWebCorePlatform convenience library.
6858         * GNUmakefile.list.am: move list of platform/* files to its own variable.
6859
6860 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
6861
6862         Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
6863         https://bugs.webkit.org/show_bug.cgi?id=102036
6864
6865         Reviewed by Darin Adler.
6866
6867         Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
6868
6869         No tests added because code is unused, and compile is enough to verify that conculsively.
6870
6871         * css/StyleResolver.cpp:
6872
6873 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6874
6875         Update DOMException name: SyntaxError
6876         https://bugs.webkit.org/show_bug.cgi?id=102279
6877
6878         Reviewed by Kentaro Hara.
6879
6880         Patch 12 of 25 to update DOMException name to match the spec and Firefox.
6881
6882         Updated existing tests.
6883
6884         * dom/DOMCoreException.cpp:
6885
6886 2012-11-15  Takashi Sakamoto  <tasak@google.com>
6887
6888         [Win] key event's location does not work on Windows platform.
6889         https://bugs.webkit.org/show_bug.cgi?id=89742
6890
6891         Reviewed by Brent Fulgham.
6892
6893         As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
6894         directly provide a virtual keycode which distinguish between left-hand
6895         and right-hand keys. To obtain a virtual keycode, we have to look at
6896         lparam, i.e. scancode and extended key bit. So if the given virtual
6897         keycode is control, shift, or menu, use MapVirtualKey with scancode and
6898         extended key bit and recreate a virtual keycode which distinguishes
6899         between left-hand and right-hand.
6900
6901         No new tests, because left-hand keys, right-hand keys layout tests
6902         have been already added.
6903
6904         * platform/win/KeyEventWin.cpp:
6905         (WebCore::windowsKeycodeWithLocation):
6906         Use wparam and lparam to recreate a virtual keycode which distinguishes
6907         between left-hand and right-hand if the given wparam (=virtual keycode)
6908         is control, shift, or menu.
6909         (WebCore):
6910         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
6911         Use the newly added function to obtain windows virtual keycode.
6912
6913 2012-11-15  Joe Mason  <jmason@rim.com>
6914
6915         [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
6916         https://bugs.webkit.org/show_bug.cgi?id=102436
6917
6918         Reviewed by Rob Buis.
6919
6920         The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
6921         taking auth of its own. First we get a 407 from the proxy, and then when get past the
6922         proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
6923         type Proxy instead of HTTP.
6924
6925         The correct thing to do when that happens is skip the "update the auth type in the
6926         credentials" step, since these are actually new credentials and not just credentials being
6927         reused for a different auth type on the same server.
6928
6929         PR 241637
6930
6931         * platform/network/blackberry/NetworkJob.cpp:
6932         (WebCore::NetworkJob::notifyAuthReceived):
6933
6934 2012-11-15  Stephen Chenney  <schenney@chromium.org>
6935
6936         mpath elements do not clear resource lists before destruction
6937         https://bugs.webkit.org/show_bug.cgi?id=101505
6938
6939         Reviewed by Abhishek Arya.
6940
6941         The destructor for SVGMPathElement should clear its resources before
6942         deletion, so as not to leave hanging pointers in resource lists.
6943
6944         Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
6945
6946         * svg/SVGMPathElement.cpp:
6947         (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
6948         (WebCore):
6949         * svg/SVGMPathElement.h:
6950         (SVGMPathElement): Add destructor.
6951
6952 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6953
6954         Remove CodeGenerator::StripModule
6955         https://bugs.webkit.org/show_bug.cgi?id=102338
6956
6957         Reviewed by Adam Barth.
6958
6959         Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
6960         We can remove CodeGenerator::StripModule.
6961         This might break some internal builds if the internal builds are still
6962         using modules. Ping haraken@ you observe it.
6963
6964         No tests. No change in behavior.
6965
6966         * bindings/scripts/CodeGenerator.pm:
6967         (ForAllParents):
6968         (AttributeNameForGetterAndSetter):
6969         (IsStrictSubtype):
6970         * bindings/scripts/CodeGeneratorCPP.pm:
6971         (GetClassName):
6972         (GetImplClassName):
6973         (GetParentImplClassName):
6974         (GetParent):
6975         (ConversionNeeded):
6976         (GetCPPTypeGetter):
6977         (AddForwardDeclarationsForType):
6978         (AddIncludesForType):
6979         (GenerateImplementation):
6980         * bindings/scripts/CodeGeneratorGObject.pm:
6981         (GetParentClassName):
6982         (GetParentGObjType):
6983         (GetClassName):
6984         * bindings/scripts/CodeGeneratorJS.pm:
6985         (GetParentClassName):
6986         (AddIncludesForTypeInImpl):
6987         (AddIncludesForTypeInHeader):
6988         (GenerateParametersCheckExpression):
6989         (GenerateImplementation):
6990         (GenerateParametersCheck):
6991         (GetNativeTypeFromSignature):
6992         (JSValueToNative):
6993         (NativeToJSValue):
6994         * bindings/scripts/CodeGeneratorObjC.pm:
6995         (GetClassName):
6996         (GetImplClassName):
6997         (GetParentImplClassName):
6998         (GetParentAndProtocols):
6999         (GetPropertyAttributes):
7000         (ConversionNeeded):
7001         (GetObjCTypeGetter):
7002         (AddForwardDeclarationsForType):
7003         (AddIncludesForType):
7004         (GenerateImplementation):
7005         * bindings/scripts/CodeGeneratorV8.pm:
7006         (AddIncludesForType):
7007         (GenerateHeader):
7008         (IsSubType):
7009         (GenerateSingleBatchedAttribute):
7010         (GenerateImplementation):
7011         (BaseInterfaceName):
7012         (GetTypeFromSignature):
7013         (IsWrapperType):
7014
7015 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
7016
7017         Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
7018         https://bugs.webkit.org/show_bug.cgi?id=101696
7019
7020         Reviewed by Tony Chang.
7021
7022         Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
7023         This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
7024
7025         No new tests / covered by all existing CSS tests.
7026
7027         * css/StyleResolver.cpp:
7028         (WebCore::StyleResolver::applyProperty):
7029
7030 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7031
7032         [V8] Remove redundant $interfaceName from function parameters
7033         https://bugs.webkit.org/show_bug.cgi?id=102334
7034
7035         Reviewed by Adam Barth.
7036
7037         'sub func { my $dataNode = shift; my $interfaceName = shift; }'
7038         is redundant. We can get $interfaceName by $dataNode->name.
7039
7040         No tests. No change in behavior.
7041
7042         * bindings/scripts/CodeGeneratorV8.pm:
7043         (GenerateOpaqueRootForGC):
7044         (GenerateHeader):
7045         (GenerateConstructorGetter):
7046         (GenerateNormalAttrGetter):
7047         (GenerateReplaceableAttrSetter):
7048         (GenerateNormalAttrSetter):
7049         (GenerateOverloadedFunctionCallback):
7050         (GenerateFunctionCallback):
7051         (GenerateOverloadedConstructorCallback):
7052         (GenerateSingleConstructorCallback):
7053         (GenerateConstructorCallback):
7054         (GenerateEventConstructorCallback):
7055         (GenerateTypedArrayConstructorCallback):
7056         (GenerateNamedConstructorCallback):
7057         (GenerateBatchedAttributeData):
7058         (GenerateImplementation):
7059         (GenerateToV8Converters):
7060         (GetNativeTypeForConversions):
7061
7062 2012-11-15  Simon Fraser  <simon.fraser@apple.com>
7063
7064         Ensure that scrollbar layers show debug borders
7065         https://bugs.webkit.org/show_bug.cgi?id=102429
7066
7067         Reviewed by Anders Carlsson.
7068
7069         After r133517, scrollbar layers no longer showed debug borders, which
7070         was very confusing. Fix this by explicitly calling setShowDebugBorder()
7071         on the scrollbar-related layers owned by RenderLayerCompositor
7072         and RenderLayerBacking.
7073         
7074         * rendering/RenderLayerBacking.cpp:
7075         (WebCore::RenderLayerBacking::updateDebugIndicators):
7076         * rendering/RenderLayerCompositor.cpp:
7077         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
7078         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
7079
7080 2012-11-15  Andreas Kling  <akling@apple.com>
7081
7082         ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
7083         <http://webkit.org/b/102423>
7084
7085         Reviewed by Anders Carlsson.
7086
7087         Use Element::getAttributeItem() to find out if the element has a given attribute
7088         instead of fastHasAttribute() since that causes assertions for the "style" attribute.
7089
7090         * html/parser/HTMLConstructionSite.cpp:
7091         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7092
7093 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7094
7095         Update DOMException name: DOMStringSizeError
7096         https://bugs.webkit.org/show_bug.cgi?id=102089
7097
7098         Reviewed by Ojan Vafai.
7099
7100         Patch 2 of 25 to update DOMException name to match the spec and Firefox.
7101
7102         DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
7103
7104         * dom/DOMCoreException.cpp:
7105         * dom/ExceptionCode.h:
7106
7107 2012-11-15  Joshua Bell  <jsbell@chromium.org>
7108
7109         IndexedDB: Indexing tests are flaky-crashing
7110         https://bugs.webkit.org/show_bug.cgi?id=102283
7111
7112         Reviewed by Tony Chang.
7113
7114         Processing the final task can cause IDBTransactionBackendImpl references to be released
7115         by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
7116         swapping queues) control would fall off the end of the function. The loop termination
7117         check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
7118         the method completes.
7119
7120         Test: storage/indexeddb/transaction-crash-in-tasks.html
7121
7122         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
7123         (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
7124         (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
7125         (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
7126
7127 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7128
7129         MutationObserver wrapper should not be collected while still observing
7130         https://bugs.webkit.org/show_bug.cgi?id=102328
7131
7132         Reviewed by Adam Barth.
7133
7134         Make MutationObserver an ActiveDOMObject so that the wrapper is not
7135         collected while it is still observing the DOM. This is needed because
7136         the wrapper is passed into the callback and expandos on the wrapper
7137         should be preserved.
7138
7139         Test: fast/mutation/observer-wrapper-dropoff.html
7140
7141         * bindings/js/JSMutationObserverCustom.cpp:
7142         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
7143         * bindings/v8/custom/V8MutationObserverCustom.cpp:
7144         (WebCore::V8MutationObserver::constructorCallback):
7145         * dom/MutationObserver.cpp:
7146         (WebCore::MutationObserver::create):
7147         (WebCore::MutationObserver::MutationObserver):
7148         (WebCore::MutationObserver::observationStarted):
7149         (WebCore::MutationObserver::observationEnded):
7150         * dom/MutationObserver.h:
7151         (WebCore):
7152         * dom/MutationObserver.idl:
7153
7154 2012-11-15  Tony Chang  <tony@chromium.org>
7155
7156         Generate Settings from a .in file
7157         https://bugs.webkit.org/show_bug.cgi?id=100393
7158
7159         Reviewed by Adam Barth.
7160
7161         Generate most settings from an .in file to reduce human mistakes and
7162         to make it easier to add/remove new settings.
7163
7164         I only moved settings that are easy to move at this point.  There are many more that
7165         have some minor naming inconsistencies that we can also move to Settings.in, but I'll
7166         do that in a follow up patch.
7167
7168         This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
7169
7170         No new tests, this is a refactor.
7171
7172         * CMakeLists.txt:
7173         * DerivedSources.make: Run make_settings.pl.
7174         * DerivedSources.pri: Run make_settings.pl.
7175         * GNUmakefile.am: Run make_settings.pl.
7176         * GNUmakefile.list.am:
7177         * WebCore.exp.in: Remove functions that are now inline in the header.
7178         * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
7179         * WebCore.gyp/scripts/action_makenames.py:
7180         (main): Allow make_settings.pl.
7181         * WebCore.order: Remove functions that are now inline in the header.
7182         * html/ValidationMessage.cpp:
7183         (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
7184         * page/Settings.cpp:
7185         (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
7186         * page/Settings.h:
7187         (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
7188         * page/Settings.in: Added.
7189         * page/make_settings.pl: Added.
7190         (defaultItemFactory):
7191         (generateCode):
7192         (generateHeader): Use a similar model as make_names.pl.
7193         (printConditionalMacros):
7194         (printGettersAndSetters):
7195         (printMemberVariables):
7196         (printGetterAndSetter):
7197         (printInitializerList):
7198         (printInitializer):
7199
7200 2012-11-15  Alpha Lam  <hclam@chromium.org>
7201
7202         [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
7203         https://bugs.webkit.org/show_bug.cgi?id=102019
7204
7205         Reviewed by Stephen White.
7206
7207         Goal of this change is to keep ImageDecodingStore clean and only do
7208         image caching. Logic of creating lazily decoded SkBitmaps is moved into
7209         DeferredImageDecoder.
7210
7211         In particular these two methods are moved:
7212         - ImageDecodingStore::createLazyDecodedSkBitmap
7213         - ImageDecodingStore::resizeLazyDecodedSkBitmap
7214
7215         No new tests. There is no new code (really). It is just moved from
7216         ImageDecodingStore to DeferredImageDecoder.
7217
7218         No change in behavior. Code is tested with:
7219         Unit tests: webkit_unit_tests
7220         Layout test: platform/chromium/virtual/deferred
7221
7222         * platform/graphics/chromium/DeferredImageDecoder.cpp:
7223         (WebCore::DeferredImageDecoder::isLazyDecoded):
7224         (WebCore):
7225         (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
7226         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
7227         (WebCore::DeferredImageDecoder::setData):
7228         (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
7229         * platform/graphics/chromium/DeferredImageDecoder.h:
7230         (WebCore):
7231         (DeferredImageDecoder):
7232         * platform/graphics/chromium/ImageDecodingStore.cpp:
7233         * platform/graphics/chromium/ImageDecodingStore.h:
7234         (ImageDecodingStore):
7235         * platform/graphics/chromium/ImageFrameGenerator.cpp:
7236         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
7237         * platform/graphics/chromium/ImageFrameGenerator.h:
7238         (WebCore::ImageFrameGenerator::create):
7239         (ImageFrameGenerator):
7240         * platform/graphics/skia/NativeImageSkia.cpp:
7241         (WebCore::NativeImageSkia::resizedBitmap):
7242
7243 2012-11-15  Roger Fong  <roger_fong@apple.com>
7244
7245         Unreviewed. Build fix for Windows after r134767.
7246
7247         Update vsprops and vcproj files to reflect changes to file locations in r134767.
7248
7249         * WebCore.vcproj/WebCore.vcproj:
7250         * WebCore.vcproj/WebCoreCommon.vsprops:
7251
7252 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7253
7254         Track subframe count to avoid traversing the tree when there's no subframes
7255         https://bugs.webkit.org/show_bug.cgi?id=101821
7256
7257         Reviewed by Ojan Vafai.
7258
7259         Bug 101619 showed a 9-14% improvement from not walking the children during
7260         removeChild looking for frames when there's known to be no frames. The fix
7261         in that bug only avoids this walk when the whole document has no frames, this
7262         patch extends it to skip traversing subtrees that have no iframes by hooking
7263         the frame assignment to walk up the tree and keep track of the count of frames
7264         in the subtree on contentFrame assignment and then decrement it on disconnect.
7265
7266         No new tests, this is just a perf refactor.
7267
7268         * dom/ContainerNode.cpp:
7269         (WebCore::willRemoveChildren):
7270         * dom/ContainerNodeAlgorithms.cpp:
7271         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7272         * dom/ContainerNodeAlgorithms.h:
7273         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
7274         (ChildFrameDisconnector):
7275         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7276           Renamed from collectDescendant() to better reflect what it really does.
7277         (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
7278           Renamed from disconnect() to better reflect what it really does.
7279         (WebCore::ChildFrameDisconnector::disconnect):
7280           New method that does the collection of frame owners on either the root
7281           or only it's descendants.
7282         * dom/Node.cpp:
7283         (WebCore::Node::connectedSubframeCount):
7284         (WebCore::Node::incrementConnectedSubframeCount):
7285         (WebCore::Node::decrementConnectedSubframeCount):
7286         * dom/Node.h:
7287         * dom/NodeRareData.h:
7288         (WebCore::NodeRareData::NodeRareData):
7289         (WebCore::NodeRareData::connectedSubframeCount):
7290         (WebCore::NodeRareData::incrementConnectedSubframeCount):
7291         (WebCore::NodeRareData::decrementConnectedSubframeCount):
7292         * html/HTMLFrameOwnerElement.cpp:
7293         (WebCore::HTMLFrameOwnerElement::setContentFrame):
7294         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
7295
7296 2012-11-15  Alpha Lam  <hclam@chromium.org>
7297
7298         [chromium] WebGL texImage2D fails with deferred image decoding
7299         https://bugs.webkit.org/show_bug.cgi?id=102310
7300
7301         Reviewed by Kenneth Russell.
7302
7303         Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
7304         to decode an image. When deferred image decoding is enabled this class
7305         generates an ImageFrame marked as incomplete, which WebGL rejects. This results
7306         in failing of texImage2D.
7307
7308         This change uses ImageDecoder directly instead of ImageSource. This skips
7309         the code path of deferred image decoding. This behavior is correct because
7310         GraphicsContext3D wants to decode the image differently with alpha not
7311         premultiplied and color profile applied optionally.
7312
7313         Added a test to prove this change fixed the bug.
7314
7315         Test: fast/images/webgl-teximage2d.html
7316
7317         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
7318         (WebCore::GraphicsContext3D::getImageData):
7319
7320 2012-11-15  Jer Noble  <jer.noble@apple.com>
7321
7322         Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
7323
7324         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7325         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7326
7327 2012-11-15  Jer Noble  <jer.noble@apple.com>
7328
7329         Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
7330
7331         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7332         (WebCore::WebCoreAVFResourceLoader::responseReceived):
7333         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7334
7335 2012-11-15  Adam Barth  <abarth@webkit.org>
7336
7337         [V8] We shouldn't call deprecated V8 APIs
7338         https://bugs.webkit.org/show_bug.cgi?id=102407
7339
7340         Reviewed by Eric Seidel.
7341
7342         This patch was written by Sven Panne on the V8 team. He would prefer
7343         that we not call deprecated V8 APIs. This patch updates these call
7344         sites to more modern idioms.
7345
7346         * bindings/scripts/CodeGeneratorV8.pm:
7347         (GenerateConstructorGetter):
7348         (GenerateImplementation):
7349         * bindings/scripts/test/V8/V8TestObj.cpp:
7350         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
7351         * bindings/v8/PageScriptDebugServer.cpp:
7352         (WebCore::PageScriptDebugServer::addListener):
7353         * bindings/v8/ScriptController.cpp:
7354         (WebCore::ScriptController::setContextDebugId):
7355         (WebCore::ScriptController::contextDebugId):
7356         * bindings/v8/ScriptProfiler.cpp:
7357         (WebCore::ScriptProfiler::objectByHeapObjectId):
7358             - This code doesn't seem to do anything anymore.
7359         * bindings/v8/V8DOMConfiguration.h:
7360         (WebCore::V8DOMConfiguration::configureAttribute):
7361         * bindings/v8/V8DOMWindowShell.cpp:
7362         (WebCore::setInjectedScriptContextDebugId):
7363         * bindings/v8/V8DOMWrapper.cpp:
7364         (WebCore::V8DOMWrapper::maybeDOMWrapper):
7365         (WebCore::V8DOMWrapper::isWrapperOfType):
7366         * bindings/v8/V8EventListenerList.h:
7367         (WebCore::V8EventListenerList::doFindWrapper):
7368         (WebCore::V8EventListenerList::findOrCreateWrapper):
7369         * bindings/v8/WorkerContextExecutionProxy.cpp:
7370         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
7371         * bindings/v8/WrapperTypeInfo.h:
7372         (WebCore::WrapperTypeInfo::unwrap):
7373
7374 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7375
7376         Unreviewed, rolling out r134800 and r134805.
7377         http://trac.webkit.org/changeset/134800
7378         http://trac.webkit.org/changeset/134805
7379         https://bugs.webkit.org/show_bug.cgi?id=102417
7380
7381         This patch broke chromium port (Requested by jianli on
7382         #webkit).
7383
7384         * Modules/mediastream/RTCPeerConnection.cpp:
7385         (WebCore::RTCPeerConnection::RTCPeerConnection):
7386         (WebCore::RTCPeerConnection::createOffer):
7387         (WebCore::RTCPeerConnection::createAnswer):
7388         (WebCore::RTCPeerConnection::setLocalDescription):
7389         (WebCore::RTCPeerConnection::localDescription):
7390         (WebCore::RTCPeerConnection::setRemoteDescription):
7391         (WebCore::RTCPeerConnection::remoteDescription):
7392         (WebCore::RTCPeerConnection::updateIce):
7393         (WebCore::RTCPeerConnection::addIceCandidate):
7394         (WebCore::RTCPeerConnection::readyState):
7395         (WebCore::RTCPeerConnection::iceState):
7396         (WebCore::RTCPeerConnection::addStream):
7397         (WebCore::RTCPeerConnection::close):
7398         (WebCore::RTCPeerConnection::stop):
7399         (WebCore::RTCPeerConnection::changeReadyState):
7400         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7401         * Modules/mediastream/RTCPeerConnection.h:
7402         (RTCPeerConnection):
7403         * Modules/mediastream/RTCPeerConnection.idl:
7404         * dom/EventNames.h:
7405         (WebCore):
7406         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7407         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7408         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7409         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7410         (RTCPeerConnectionHandlerClient):
7411         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7412         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7413         (RTCPeerConnectionHandlerChromium):
7414
7415 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7416
7417         Remove Node::aboutToUnload and be more explicit about what it was for
7418         https://bugs.webkit.org/show_bug.cgi?id=102357
7419
7420         Reviewed by Ryosuke Niwa.
7421
7422         Node::aboutToUnload was confusingly named because it was only called on
7423         the focused node, and it really only existed to support notifying the
7424         embedder that inputs should stop being editable on unload. Instead add
7425         a new method to HTMLInputElement that ends editing and call that
7426         explicitly in the FrameLoader so it's clear what this is about.
7427
7428         No new tests, this is just a refactoring.
7429
7430         * dom/Node.h:
7431         * html/HTMLInputElement.cpp:
7432         (WebCore::HTMLInputElement::endEditing):
7433             New method that handles finishing editing.
7434         * html/HTMLInputElement.h:
7435         (HTMLInputElement):
7436         * html/TextFieldInputType.cpp:
7437         (WebCore::TextFieldInputType::handleBlurEvent):
7438             Use the new method to reduce code duplication.
7439         * loader/FrameLoader.cpp:
7440         (WebCore::FrameLoader::stopLoading):
7441             Be explicit about what this check was for.
7442
7443 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7444
7445         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
7446         https://bugs.webkit.org/show_bug.cgi?id=102386
7447
7448         Reviewed by Adam Barth.
7449
7450         Existing tests expanded to cover patch.
7451
7452         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7453         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7454         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7455         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7456         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
7457         (WebCore):
7458         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7459         (WebKit):
7460         (RTCPeerConnectionHandlerChromium):
7461
7462 2012-11-15  Rick Byers  <rbyers@chromium.org>
7463
7464         No tests for changing mouse cursors
7465         https://bugs.webkit.org/show_bug.cgi?id=100550
7466
7467         Reviewed by Brent Fulgham.
7468
7469         Add infrastructure to keep track of the last set mouse cursor,
7470         and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
7471         we can reliably detect when an uninitialized Cursor object is used (such as
7472         the one that can be returned from OptionalCursor in the NoCursorChange scenario).
7473
7474         Test: fast/events/mouse-cursor.html
7475
7476         * WebCore.exp.in: Add Cursor copy ctor export
7477         * page/EventHandler.cpp:
7478         (WebCore::OptionalCursor::cursor):
7479         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
7480         * page/EventHandler.h:
7481         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
7482         * platform/Cursor.h:
7483         (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
7484         (WebCore::Cursor::type): Assert cursor type is valid.
7485         * testing/Internals.cpp:
7486         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
7487         (WebCore):
7488         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
7489         * testing/Internals.h: Declare getCurrentCursorInfo
7490         * testing/Internals.idl: Declare getCurrentCursorInfo
7491
7492 2012-11-13  Jer Noble  <jer.noble@apple.com>
7493
7494         Support loading of blob URLs in AVFoundation.
7495         https://bugs.webkit.org/show_bug.cgi?id=102182
7496
7497         Reviewed by Eric Carlson.
7498
7499         Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
7500
7501         Test: media/video-src-blob.html
7502
7503         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
7504         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7505         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
7506             media path if the key scheme is skp://.
7507         (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
7508             the media engine requests it.
7509         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
7510         
7511         Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
7512         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7513         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
7514         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
7515         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
7516
7517         Add a new helper class to manage loading the CachedRawResource and feed the incoming
7518         data to the AVAssetResourceLoader.
7519         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
7520         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
7521         (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
7522         (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
7523         (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
7524         (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
7525         (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
7526         (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
7527             AVAssetResourceLoadingRequest.
7528         (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
7529         (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
7530             has completed.
7531         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
7532             field of the AVAssetResourceLoadingRequest.
7533
7534         Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
7535         document's cachedResourceLoader.
7536         * html/HTMLMediaElement.cpp:
7537         (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
7538         * html/HTMLMediaElement.h:
7539         * platform/graphics/MediaPlayer.cpp:
7540         (WebCore::MediaPlayer::cachedResourceLoader):
7541         * platform/graphics/MediaPlayer.h:
7542         (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
7543
7544         Add a convenience method to convert from MIME type -> UTI.
7545         * platform/network/mac/UTIUtilities.h:
7546         * platform/network/mac/UTIUtilities.mm:
7547         (WebCore::UTIFromMIMEType):
7548
7549         Add new files to project.
7550         * WebCore.xcodeproj/project.pbxproj:
7551
7552 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7553
7554         Remove initiallyFitToViewport attribute
7555         https://bugs.webkit.org/show_bug.cgi?id=102392
7556
7557         Reviewed by Noam Rosenthal.
7558
7559         Remove the initiallyFitToViewport which shouldn't have been
7560         added in the first place. We now reset userScalable to auto (-1)
7561         in case it was not explicitly set by the web author.
7562
7563         Same behavior, covered by existing tests.
7564
7565         * dom/ViewportArguments.cpp:
7566         (WebCore::ViewportArguments::resolve):
7567         * dom/ViewportArguments.h:
7568         (ViewportAttributes):
7569
7570 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7571
7572         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
7573         https://bugs.webkit.org/show_bug.cgi?id=102382
7574
7575         Reviewed by Adam Barth.
7576
7577         Updating readyState & iceState, and adding iceGatheringState.
7578         Also safeguarding the event timer callback.
7579
7580         Patch covered by existing tests.
7581
7582         * Modules/mediastream/RTCPeerConnection.cpp:
7583         (WebCore::RTCPeerConnection::RTCPeerConnection):
7584         (WebCore::RTCPeerConnection::createOffer):
7585         (WebCore::RTCPeerConnection::createAnswer):
7586         (WebCore::RTCPeerConnection::setLocalDescription):
7587         (WebCore::RTCPeerConnection::localDescription):
7588         (WebCore::RTCPeerConnection::setRemoteDescription):
7589         (WebCore::RTCPeerConnection::remoteDescription):
7590         (WebCore::RTCPeerConnection::updateIce):
7591         (WebCore::RTCPeerConnection::addIceCandidate):
7592         (WebCore::RTCPeerConnection::readyState):
7593         (WebCore::RTCPeerConnection::iceGatheringState):
7594         (WebCore):
7595         (WebCore::RTCPeerConnection::iceState):
7596         (WebCore::RTCPeerConnection::addStream):
7597         (WebCore::RTCPeerConnection::close):
7598         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
7599         (WebCore::RTCPeerConnection::stop):
7600         (WebCore::RTCPeerConnection::changeReadyState):
7601         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7602         * Modules/mediastream/RTCPeerConnection.h:
7603         (RTCPeerConnection):
7604         * Modules/mediastream/RTCPeerConnection.idl:
7605         * dom/EventNames.h:
7606         (WebCore):
7607         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7608         (RTCPeerConnectionHandlerClient):
7609         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7610         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
7611         (WebCore):
7612         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7613         (RTCPeerConnectionHandlerChromium):
7614
7615 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7616
7617         Unreviewed, rolling out r134649 and r134665.
7618         http://trac.webkit.org/changeset/134649
7619         http://trac.webkit.org/changeset/134665
7620         https://bugs.webkit.org/show_bug.cgi?id=102413
7621
7622         Broke a ton of downstream chromium tests (Requested by japhet
7623         on #webkit).
7624
7625         * loader/DocumentLoader.cpp:
7626         (WebCore::DocumentLoader::DocumentLoader):
7627         (WebCore::DocumentLoader::~DocumentLoader):
7628         (WebCore::DocumentLoader::finishedLoading):
7629         (WebCore::DocumentLoader::clearMainResourceLoader):
7630         (WebCore::DocumentLoader::isLoadingInAPISense):
7631         (WebCore::DocumentLoader::documentURL):
7632         (WebCore::DocumentLoader::isLoadingMainResource):
7633         (WebCore::DocumentLoader::startLoadingMainResource):
7634         * loader/DocumentLoader.h:
7635         (DocumentLoader):
7636         * loader/FrameLoader.cpp:
7637         (WebCore::FrameLoader::FrameLoader):
7638         (WebCore::FrameLoader::init):
7639         * loader/FrameLoaderStateMachine.cpp:
7640         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
7641         * loader/FrameLoaderStateMachine.h:
7642         * loader/MainResourceLoader.cpp:
7643         (WebCore::shouldLoadAsEmptyDocument):
7644         (WebCore):
7645         (WebCore::MainResourceLoader::continueAfterContentPolicy):
7646         (WebCore::MainResourceLoader::didReceiveResponse):
7647         (WebCore::MainResourceLoader::didFinishLoading):
7648         (WebCore::MainResourceLoader::handleEmptyLoad):
7649         (WebCore::MainResourceLoader::loadNow):
7650         (WebCore::MainResourceLoader::load):
7651         * loader/MainResourceLoader.h:
7652         (MainResourceLoader):
7653
7654 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7655
7656         Correct syntax of old-style IDL files
7657         https://bugs.webkit.org/show_bug.cgi?id=102335
7658
7659         Reviewed by Adam Barth.
7660
7661         Recently tasak@ corrected an IDL syntax of almost all IDL files.
7662         We should correct the rest of them.
7663
7664         No tests. No change in behavior.
7665
7666         * html/canvas/OESElementIndexUint.idl:
7667         * page/PerformanceMark.idl:
7668         * page/PerformanceMeasure.idl:
7669
7670 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7671
7672         Remove isHTMLInputElement since it's unused and toInputElement exists 
7673         https://bugs.webkit.org/show_bug.cgi?id=102358
7674
7675         Reviewed by Ojan Vafai.
7676
7677         Remove isHTMLInputElement as no one uses it. Everyone just uses
7678         Node::toInputElement and checks for a 0 return value instead.
7679
7680         toInputElement is also more reliable as there's no requirement that
7681         subclasses of HTMLInputElement have the tag name of inputTag so using
7682         this method in a check could potentially miss future subclasses with
7683         different tag names, though none exist right now.
7684
7685         No new tests, this just deletes dead code.
7686
7687         * html/HTMLInputElement.h:
7688
7689 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7690
7691         Update DOMException name: NotSupportedError
7692         https://bugs.webkit.org/show_bug.cgi?id=102139
7693
7694         Reviewed by Ojan Vafai.
7695
7696         Patch 9 of 25 to update DOMException name to match the spec and Firefox.
7697
7698         Updated existing tests.
7699
7700         * dom/DOMCoreException.cpp:
7701
7702 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7703
7704         Remove isHTMLInputElement since it's unused and toInputElement exists 
7705         https://bugs.webkit.org/show_bug.cgi?id=102358
7706
7707         Reviewed by Ojan Vafai.
7708
7709         Remove isHTMLInputElement as no one uses it. Everyone just uses
7710         Node::toInputElement and checks for a 0 return value instead.
7711
7712         toInputElement is also more reliable as there's no requirement that
7713         subclasses of HTMLInputElement have the tag name of inputTag so using
7714         this method in a check could potentially miss future subclasses with
7715         different tag names, though none exist right now.
7716
7717         No new tests, this just deletes dead code.
7718
7719         * html/HTMLInputElement.h:
7720
7721 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7722
7723         Update DOMException name: NoModificationAllowedError
7724         https://bugs.webkit.org/show_bug.cgi?id=102134
7725
7726         Reviewed by Ojan Vafai.
7727
7728         Patch 7 of 25 to update DOMException name to match the spec and Firefox.
7729
7730         Updated existing tests.
7731
7732         * dom/DOMCoreException.cpp:
7733
7734 2012-11-15  Miguel Garcia  <miguelg@chromium.org>
7735
7736         Remove unnecesary dependencies INPUT_TYPE_COLOR
7737         https://bugs.webkit.org/show_bug.cgi?id=102379
7738
7739         Reviewed by Darin Adler.
7740
7741         Platforms should be able to enable INPUT_TYPE_COLOR without enabling
7742         CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
7743         compile errors in such configuration.
7744
7745         No new tests since this is not adding any extra functionality.
7746
7747         * WebCore.gyp/WebCore.gyp:
7748         * html/ColorInputType.cpp:
7749         (WebCore::ColorInputType::shouldShowSuggestions):
7750         * make-file-arrays.py:
7751         (main):
7752
7753 2012-11-15  Eric Carlson  <eric.carlson@apple.com>
7754
7755         Update computed line position algorithm
7756         https://bugs.webkit.org/show_bug.cgi?id=93779
7757
7758         Reviewed by Philippe Normand.
7759
7760         Compute the position of a text track relative to rendered tracks. This is needed to position
7761         cues correctly when there is more than one text track.
7762
7763         Test: media/track/track-cue-container-rendering-position.html
7764
7765         * html/track/TextTrack.cpp:
7766         (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
7767         (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
7768             to other rendered tracks.
7769         * html/track/TextTrack.h:
7770
7771         * html/track/TextTrackCue.cpp:
7772         (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
7773             instead of trackIndex() so cues are positioned correctly.
7774
7775         * html/track/TextTrackList.cpp:
7776         (TextTrackList::getTrackIndex): Change return type from unsigned to int.
7777         (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
7778         * html/track/TextTrackList.h:
7779
7780 2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
7781
7782         [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
7783         https://bugs.webkit.org/show_bug.cgi?id=101323
7784
7785         Reviewed by Martin Robinson.
7786
7787         Removing ifdef since we bumped Harfbuzz dependency. This is the
7788         real fix replacing the previous workaround of having a Chromium
7789         specific ifdef here, since Chromium uses a newer HarfBuzz version
7790         already.
7791
7792         No new tests, covered by css3/flexbox/inline-flex-crash.html
7793         which will not crash anymore even with the ifdef removed.
7794
7795         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
7796         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
7797
7798 2012-11-15  Andreas Kling  <kling@webkit.org>
7799
7800         REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
7801         <http://webkit.org/b/102304>
7802
7803         Reviewed by Anders Carlsson.
7804
7805         Test: fast/dom/cloneNode-below-body-attribute-merging.html
7806
7807         * html/parser/HTMLConstructionSite.cpp:
7808         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7809
7810             Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
7811             we're merging attributes into.
7812
7813         * dom/ElementAttributeData.h:
7814         (ElementAttributeData):
7815
7816             Remove a now-unnecessary friend declaration.
7817
7818 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7819
7820         Prevent creation of detached frames in ShadowRoot
7821         https://bugs.webkit.org/show_bug.cgi?id=102333
7822
7823         Reviewed by Dimitri Glazkov.
7824
7825         Similar to Bug 94717 you can create a loaded iframe in a detached
7826         subtree using ShadowRoot. To fix this we just need to make
7827         SubframeLoadingDisabler traverse through shadow boundaries.
7828
7829         Test: fast/frames/detached-shadow-frame.html
7830
7831         * html/HTMLFrameOwnerElement.h:
7832         (WebCore::SubframeLoadingDisabler::canLoadFrame):
7833
7834 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
7835
7836         Changing pseudoClass (:visited) should cause distribution.
7837         https://bugs.webkit.org/show_bug.cgi?id=101700
7838
7839         Reviewed by Dimitri Glazkov.
7840
7841         When href attribute of an anchor or area element is changed, we have to invalidate distribution.
7842
7843         Since we would like to check a few pseudoClasses at once, we make the argument of
7844         SelectRuleFeatureSet::hasSelectorFor int.
7845
7846         Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
7847                fast/dom/shadow/pseudoclass-update-visited-area.html
7848
7849         * dom/ElementShadow.cpp:
7850         (WebCore::invalidateParentDistributionIfNecessary):
7851         * dom/ElementShadow.h:
7852         (WebCore):
7853         * html/HTMLAnchorElement.cpp:
7854         (WebCore::HTMLAnchorElement::parseAttribute):
7855         * html/shadow/SelectRuleFeatureSet.h:
7856         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
7857
7858 2012-11-15  Balazs Kelemen  <kbalazs@webkit.org>
7859
7860         Coordinated Graphics: support the "freeze animations" API
7861         https://bugs.webkit.org/show_bug.cgi?id=100703
7862
7863         Reviewed by Noam Rosenthal.
7864
7865         Make animations resumable in Coordinated Graphics.
7866         Pausing was already implemented.
7867
7868         Tested with animations and transitions tests. No tests to be
7869         unskipped because these tests has been working without this API
7870         as well (although this is the preferred way).
7871
7872         * platform/graphics/GraphicsLayerAnimation.cpp:
7873         (WebCore::GraphicsLayerAnimation::apply):
7874         (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
7875         Do not consider the time while we was suspended as part of
7876         the total running time.
7877         (WebCore):
7878         (WebCore::GraphicsLayerAnimation::resume):
7879         (WebCore::GraphicsLayerAnimations::suspend):
7880         (WebCore::GraphicsLayerAnimations::resume):
7881         * platform/graphics/GraphicsLayerAnimation.h:
7882         (GraphicsLayerAnimation):
7883         (GraphicsLayerAnimations):
7884
7885 2012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>
7886
7887         Relocate the ARM NEON SVG filter optimizations
7888         https://bugs.webkit.org/show_bug.cgi?id=102214
7889
7890         Reviewed by Zoltan Herczeg.
7891
7892         Relocate the ARM filter optimizations into platform/graphics/cpu/arm
7893         to keep them together with the others.
7894         From now all graphics optimization for ARM NEON should go here.
7895
7896         * CMakeLists.txt:
7897         * GNUmakefile.am:
7898         * GNUmakefile.list.am:
7899         * Target.pri:
7900         * WebCore.gyp/WebCore.gyp:
7901         * WebCore.gypi:
7902         * WebCore.pri:
7903         * WebCore.xcodeproj/project.pbxproj:
7904         * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
7905         (WebCore):
7906         (FEBlendUtilitiesNEON):
7907         (WebCore::FEBlendUtilitiesNEON::div255):
7908         (WebCore::FEBlendUtilitiesNEON::normal):
7909         (WebCore::FEBlendUtilitiesNEON::multiply):
7910         (WebCore::FEBlendUtilitiesNEON::screen):
7911         (WebCore::FEBlendUtilitiesNEON::darken):
7912         (WebCore::FEBlendUtilitiesNEON::lighten):
7913         (WebCore::FEBlend::platformApplyNEON):
7914         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
7915         (WebCore):
7916         (WebCore::FEComposite::computeArithmeticPixelsNeon):
7917         (WebCore::FEComposite::platformArithmeticNeon):
7918         * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
7919         (WebCore):
7920         (WebCore::boxBlurNEON):
7921         * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
7922         (WebCore):
7923         (WebCore::feLightingConstantsForNeon):
7924         (WebCore::FELighting::platformApplyNeonWorker):
7925         (WebCore::FELighting::getPowerCoefficients):
7926         * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
7927         (WebCore):
7928         (FELightingFloatArgumentsForNeon):
7929         (FELightingPaintingDataForNeon):
7930         (WebCore::FELighting::platformApplyNeon):
7931         * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
7932         (WebCore):
7933         (WebCore::loadRGBA8AsFloat):
7934         (WebCore::storeFloatAsRGBA8):
7935
7936 2012-11-15  Mike West  <mkwst@chromium.org>
7937
7938         We should trigger a console warning when we encounter invalid sandbox flags.
7939         https://bugs.webkit.org/show_bug.cgi?id=101956
7940
7941         Reviewed by Adam Barth.
7942
7943         A developer who writes '<iframe sandbox="allowScripts">' probably has
7944         something in mind other than what the browser interprets. In these
7945         situations, we should log a console warning that notes 'allowScripts'
7946         is an invalid sandbox flag ('allow-scripts' is probably what she
7947         meant).
7948
7949         This patch does the simplest thing possible: it throws a warning that
7950         lists the invalid flags encountered for sandbox attributes on iframes,
7951         and for sandbox Content Security Policy directives.
7952
7953         Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
7954                http/tests/security/sandboxed-iframe-invalid.html
7955
7956         * dom/SecurityContext.cpp:
7957         (WebCore::SecurityContext::parseSandboxPolicy):
7958         * dom/SecurityContext.h:
7959         (SecurityContext):
7960             Accept a new out parameter, invalidTokensErrorMessage. If invalid
7961             tokens are encountered, build an error message string, and pass it
7962             back to the caller through this parameter.
7963         * html/HTMLIFrameElement.cpp:
7964         (WebCore::HTMLIFrameElement::parseAttribute):
7965         * page/ContentSecurityPolicy.cpp:
7966         (WebCore::CSPDirectiveList::applySandboxPolicy):
7967             When applying a sandbox policy, pass a string into
7968             SecurityContext::parseSandboxPolicy to grab any errors that might
7969             be encountered, and log a warning in that event.
7970         (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
7971         (WebCore):
7972         * page/ContentSecurityPolicy.h:
7973             Adding a new method to report invalid sandbox flags.
7974
7975 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7976
7977         Rename member vars in ViewportArgument to match css-device-adapt
7978         https://bugs.webkit.org/show_bug.cgi?id=102355
7979
7980         Reviewed by Gyuyoung Kim.
7981
7982         No behavior change, thus no new tests.
7983
7984         * dom/ViewportArguments.cpp:
7985         (WebCore::ViewportArguments::resolve):
7986         (WebCore::setViewportFeature):
7987         * dom/ViewportArguments.h:
7988         (WebCore::ViewportArguments::ViewportArguments):
7989         (ViewportArguments):
7990         (WebCore::ViewportArguments::operator==):
7991
7992 2012-11-15  Andrey Adaikin  <aandrey@chromium.org>
7993
7994         Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
7995         https://bugs.webkit.org/show_bug.cgi?id=102366
7996
7997         Reviewed by Vsevolod Vlasov.
7998
7999         * inspector/InjectedScriptCanvasModuleSource.js:
8000         (.):
8001
8002 2012-11-15  Mark Rowe  <mrowe@apple.com>
8003
8004         Build fix.
8005
8006         Disable deprecation warnings in a few places that need it.
8007
8008         * platform/graphics/ca/mac/TileCache.mm:
8009         (WebCore::TileCache::drawRepaintCounter):
8010         * platform/graphics/mac/FontMac.mm:
8011         (WebCore::showGlyphsWithAdvances):
8012         * platform/graphics/mac/WebLayer.mm:
8013         (drawLayerContents):
8014
8015 2012-11-15  Kent Tamura  <tkent@chromium.org>
8016
8017         Support stand-alone month names in calendar picker
8018         https://bugs.webkit.org/show_bug.cgi?id=102196
8019
8020         Reviewed by Kentaro Hara.
8021
8022         We have showed non stand-alone month names in any locales. However
8023         we should show stand-alone month names in some locales such as
8024         Russian.
8025
8026         This patch introduce PagePopupController::formatMonth. It is
8027         exposed to page-popups, and format year-month pairs in the same
8028         way as input[type=month].
8029
8030         No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
8031
8032         * Resources/pagepopups/calendarPicker.js:
8033         (Month.prototype.toLocaleString):
8034         Calls pagePopupController.formatMonth except Japanese locale.
8035         (handleArgumentsTimeout):
8036         Remove unnecessary default monthLabels.
8037         * page/PagePopupController.cpp:
8038         (WebCore::PagePopupController::formatMonth): Added.
8039         * page/PagePopupController.h:
8040         (PagePopupController): Declare formatMonth.
8041         * page/PagePopupController.idl: Add formatMonth.
8042
8043 2012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
8044
8045         Web Inspector: Fix new JS compiler warnings.
8046         https://bugs.webkit.org/show_bug.cgi?id=102341
8047
8048         Reviewed by Yury Semikhatsky.
8049
8050         New version of compiler finds new inconsistencies.
8051
8052         * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
8053         * inspector/front-end/DOMBreakpointsSidebarPane.js:
8054         Declared instance property on WebInspector.
8055         * inspector/front-end/Script.js: Normalized parameter notation.
8056
8057 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8058
8059         Unreviewed build fix.
8060
8061         * dom/ViewportArguments.cpp:
8062         (WebCore::convertToUserSpace): Add static
8063
8064 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8065
8066         Refactor ViewportArguments to only use CSS units
8067         https://bugs.webkit.org/show_bug.cgi?id=102287
8068
8069         Reviewed by Noam Rosenthal.
8070
8071         Refactor the ViewportArgument code to use a member method for
8072         resolving the viewport. This new method only uses arguments in
8073         CSS units.
8074
8075         This is preparation for adding the CSS Device Adaptation support.
8076
8077         Tested by existing tests fast/viewport.
8078
8079         * dom/ViewportArguments.cpp:
8080         (WebCore::clampLengthValue):
8081         (WebCore::clampScaleValue): New utility functions.
8082         (WebCore::ViewportArguments::resolve):
8083         (WebCore::convertToUserSpace): Added until everyone provides arguments
8084         only in CSS units and not device ones.
8085         (WebCore::computeViewportAttributes):
8086         (WebCore::computeMinimumScaleFactorForContentContained):
8087         (WebCore):
8088         (WebCore::restrictMinimumScaleFactorToViewportSize):
8089         * dom/ViewportArguments.h:
8090         (ViewportArguments):
8091
8092 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
8093
8094         Changing pseudoClass (:disabled) should cause distribution.
8095         https://bugs.webkit.org/show_bug.cgi?id=101901
8096
8097         Reviewed by Hajime Morita.
8098
8099         We have to invalidate distribution when pseudo-class (:disabled) is changed.
8100
8101         According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
8102         option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
8103         have 'disabled' state, but we need a command element to make it 'disabled' state.
8104
8105         Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
8106                fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
8107                fast/dom/shadow/pseudoclass-update-disabled-input.html
8108                fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
8109                fast/dom/shadow/pseudoclass-update-disabled-option.html
8110                fast/dom/shadow/pseudoclass-update-disabled-select.html
8111                fast/dom/shadow/pseudoclass-update-disabled-textarea.html
8112
8113         * html/HTMLFormControlElement.cpp:
8114         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
8115         * html/HTMLOptGroupElement.cpp:
8116         (WebCore::HTMLOptGroupElement::parseAttribute):
8117         * html/HTMLOptionElement.cpp:
8118         (WebCore::HTMLOptionElement::parseAttribute):
8119
8120 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
8121
8122         Unreviewed, rolling out r134691, r134703, r134715, r134716,
8123         and r134733.
8124         http://trac.webkit.org/changeset/134691
8125         http://trac.webkit.org/changeset/134703
8126         http://trac.webkit.org/changeset/134715
8127         http://trac.webkit.org/changeset/134716
8128         http://trac.webkit.org/changeset/134733
8129         https://bugs.webkit.org/show_bug.cgi?id=102342
8130
8131         "Broke the Apple Windows Debug and GTK builds." (Requested by
8132         dydx on #webkit).
8133
8134         * WebCore.exp.in:
8135         * bindings/js/SerializedScriptValue.h:
8136         * testing/Internals.cpp:
8137         * testing/Internals.h:
8138         (WebCore):
8139         * testing/Internals.idl:
8140
8141 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
8142
8143         Not reviewed: fixing inspector tests under Qt.
8144
8145         * inspector/front-end/TestController.js:
8146         * inspector/front-end/utilities.js:
8147         (.):
8148
8149 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8150
8151         Unreviewed. Rebaselined run-bindings-tests.
8152
8153         * bindings/scripts/test/V8/V8TestNode.h:
8154         (WebCore::toV8Fast):
8155
8156 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
8157
8158         Don't use temporary clip rects when hit testing
8159         https://bugs.webkit.org/show_bug.cgi?id=102329
8160
8161         Reviewed by Beth Dakin.
8162
8163         We now cache clip rects separately for painting, hit testing etc. Hit testing
8164         clip rects are always shrunk to exclude scrollbars (so that hit testing on
8165         the scrollbars works), so we no longer every need to use temporary clip rects
8166         during hit testing.
8167
8168         Added an assertion that the scrollbar relevancy when we computed the clip rects
8169         is the same as that when using them.
8170         
8171         * rendering/RenderLayer.cpp:
8172         (WebCore::RenderLayer::hitTestLayer):
8173         (WebCore::RenderLayer::updateClipRects):
8174         * rendering/RenderLayer.h:
8175         (WebCore::ClipRectsCache::ClipRectsCache):
8176         (ClipRectsCache):
8177
8178 2012-11-14  Dirk Schulze  <krit@webkit.org>
8179
8180         Support animation of basic shape 'polygon'
8181         https://bugs.webkit.org/show_bug.cgi?id=102080
8182
8183         Reviewed by Daniel Bates.
8184
8185         The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
8186         patch http://trac.webkit.org/changeset/134352.
8187         This is a follow-up patch to make 'polygon' animatable as well, as long as the number
8188         of vertices between start and end polygon is the same.
8189
8190         Added polygon animation test to existing test:
8191             fast/exclusions/shape-inside/shape-inside-animation.html
8192             css3/masking/clip-path-animation.html
8193
8194         * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
8195         * rendering/style/BasicShapes.cpp:
8196         (WebCore::BasicShape::canBlend): Polygons are allowed now.
8197         (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
8198
8199 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8200
8201         Unreviewed. Fix code generator warnings.
8202
8203         * bindings/scripts/CodeGeneratorV8.pm:
8204         (GenerateFunctionCallback):
8205         (GenerateImplementation):
8206
8207 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8208
8209         Changing pseudoClass (:checked) should cause distribution.
8210         https://bugs.webkit.org/show_bug.cgi?id=101902
8211
8212         Reviewed by Dimitri Glazkov.
8213
8214         When the 'checked' state is changed, we have to invalidate distribution.
8215
8216         According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
8217         a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
8218
8219         Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
8220                fast/dom/shadow/pseudoclass-update-checked-option.html
8221
8222         * html/HTMLInputElement.cpp:
8223         (WebCore::HTMLInputElement::setChecked):
8224         * html/HTMLOptionElement.cpp:
8225         (WebCore::HTMLOptionElement::setSelectedState):
8226
8227 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8228
8229         [V8] Kill $implClassName from CodeGeneratorV8.pm
8230         https://bugs.webkit.org/show_bug.cgi?id=102312
8231
8232         Reviewed by Adam Barth.
8233
8234         $implClassName and $interfaceName are the same.
8235         Sometimes we are passing both $implClassName and $interfaceName to
8236         subroutines. We can kill $implClassName.
8237
8238         No tests. No change in behavior.
8239
8240         * bindings/scripts/CodeGeneratorV8.pm:
8241         (GenerateOpaqueRootForGC):
8242         (GenerateHeader):
8243         (GenerateDomainSafeFunctionGetter):
8244         (GenerateDomainSafeFunctionSetter):
8245         (GenerateConstructorGetter):
8246         (GenerateNormalAttrGetter):
8247         (GenerateReplaceableAttrSetter):
8248         (GenerateNormalAttrSetter):
8249         (GenerateEventListenerCallback):
8250         (GenerateOverloadedFunctionCallback):
8251         (GenerateFunctionCallback):
8252         (GenerateParametersCheck):
8253         (GenerateOverloadedConstructorCallback):
8254         (GenerateSingleConstructorCallback):
8255         (GenerateConstructorCallback):
8256         (GenerateEventConstructorCallback):
8257         (GenerateTypedArrayConstructorCallback):
8258         (GenerateNamedConstructorCallback):
8259         (GenerateImplementation):
8260         (GenerateFunctionCallString):
8261
8262 2012-11-14  Adam Barth  <abarth@webkit.org>
8263
8264         [V8] We can shave one instruction off toV8Fast
8265         https://bugs.webkit.org/show_bug.cgi?id=102297
8266
8267         Reviewed by Kentaro Hara.
8268
8269         There's no reason to store info.Holder in a local variable. Calling
8270         Holder() is essentially free because it's inlined to an offset read.
8271
8272         I doubt this patch moves the performance needle in any measurable way,
8273         but it makes the code slightly prettier.
8274
8275         * bindings/scripts/CodeGeneratorV8.pm:
8276         (GenerateHeader):
8277         * bindings/scripts/test/V8/V8TestNode.h:
8278         (WebCore::toV8Fast):
8279
8280 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8281
8282         [V8] Get rid of a redundant branch in JSValueToNative()
8283         https://bugs.webkit.org/show_bug.cgi?id=102311
8284
8285         Reviewed by Adam Barth.
8286
8287         No tests. No change in behavior.
8288
8289         * bindings/scripts/CodeGeneratorV8.pm:
8290         (JSValueToNative):
8291         (NativeToJSValue):
8292
8293 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8294
8295         Changing pseudoClass (:link) should cause distribution
8296         https://bugs.webkit.org/show_bug.cgi?id=101698
8297
8298         Reviewed by Hajime Morita.
8299
8300         CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
8301         we have to invalidate distribution.
8302
8303         According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
8304
8305         Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
8306                fast/dom/shadow/pseudoclass-update-link-area.html
8307
8308         * html/HTMLAnchorElement.cpp:
8309         (WebCore::HTMLAnchorElement::parseAttribute):
8310
8311 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8312
8313         Remove unused functions from CodeGenerator.pm
8314         https://bugs.webkit.org/show_bug.cgi?id=102316
8315
8316         Reviewed by Adam Barth.
8317
8318         No tests. No change in behavior.
8319
8320         * bindings/scripts/CodeGenerator.pm:
8321         (GenerateCompileTimeCheckForEnumsIfNeeded):
8322
8323 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
8324
8325         [BlackBerry] Update BB10 form theme.
8326         https://bugs.webkit.org/show_bug.cgi?id=100760
8327
8328         Reviewed by Rob Buis.
8329
8330         RIM PR 225755
8331         Internally Reviewed by Eli Fidler.
8332         Update checkbox, radio and menulist button style. Adjust border width
8333         and line height.
8334
8335         * platform/blackberry/RenderThemeBlackBerry.cpp:
8336         (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
8337         * platform/blackberry/RenderThemeBlackBerry.h:
8338         (RenderThemeBlackBerry):
8339
8340 2012-11-14  Erik Arvidsson  <arv@chromium.org>
8341
8342         Update DOMException name: InvalidModificationError
8343         https://bugs.webkit.org/show_bug.cgi?id=102281
8344
8345         Reviewed by Kentaro Hara.
8346
8347         Patch 13 of 25 to update DOMException name to match the spec and Firefox.
8348
8349         DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
8350
8351         * dom/DOMCoreException.cpp:
8352
8353 2012-11-14  Adam Barth  <abarth@webkit.org>
8354
8355         document variable in Document::axObjectCache is actually the topDocument
8356         https://bugs.webkit.org/show_bug.cgi?id=101966
8357
8358         Reviewed by Chris Fleizach.
8359
8360         Name change requested by Darin Adler.
8361
8362         * dom/Document.cpp:
8363         (WebCore::Document::axObjectCache):
8364
8365 2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
8366
8367         [CF]: XMLHttpRequest "timeout" events firing as "error" events
8368         https://bugs.webkit.org/show_bug.cgi?id=102271
8369
8370         Reviewed by David Kilzer.
8371
8372         Initialize the tiemout flag if the error results from a timeout
8373         in the USE(CFNETWORK) cases.
8374
8375         No new tests. This is covered by http/tests/xmlhttprequest/timeout
8376         tests on ports that USE(CFNETWORK).
8377
8378         * platform/network/cf/ResourceErrorCF.cpp:
8379         (WebCore::ResourceError::ResourceError):
8380         * platform/network/mac/ResourceErrorMac.mm:
8381         (WebCore::ResourceError::ResourceError):
8382
8383 2012-11-14  Nico Weber  <thakis@chromium.org>
8384
8385         [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
8386         https://bugs.webkit.org/show_bug.cgi?id=102282
8387
8388         Reviewed by James Robinson.
8389
8390         Chromium uses skia, and skia state is synced with CG context state at
8391         LocalCurrentGraphicsContext construction time. So delay that
8392         construction after context transforms have happened.
8393         (This regressed in http://trac.webkit.org/changeset/125830)
8394
8395         Covered by the new pixel test fast/forms/zoomed-controls.html. I
8396         couldn't find an existing test for this.
8397
8398         * platform/mac/ThemeMac.mm:
8399         (WebCore::paintCheckbox):
8400         (WebCore::paintRadio):
8401         (WebCore::paintButton):
8402
8403 2012-11-14  Mark Lam  <mark.lam@apple.com>
8404
8405         Change JSEventListener::m_jsFunction to be a weak ref.
8406         https://bugs.webkit.org/show_bug.cgi?id=101989.
8407
8408         Reviewed by Geoffrey Garen.
8409
8410         No new tests.
8411
8412         * ForwardingHeaders/heap/SlotVisitor.h: Added.
8413         * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
8414         * bindings/js/JSEventListener.cpp:
8415         (WebCore::JSEventListener::JSEventListener):
8416         (WebCore::JSEventListener::visitJSFunction):
8417         (WebCore::JSEventListener::operator==):
8418          - Removed the m_wrapper checks in operator==() because they are not
8419            needed. There is no longer any threat of m_jsFunction pointing to
8420            recycled memory. The use of weak refs will ensure that m_jsFunction
8421            is either still holding on to its old memory exclusively, or is 0'ed
8422            out when the GC collects it.
8423         * bindings/js/JSEventListener.h:
8424         (JSEventListener):
8425         (WebCore::JSEventListener::jsFunction):
8426
8427 2012-11-14  Dan Carney  <dcarney@google.com>
8428
8429         [V8] Rename dispatchWrap
8430         https://bugs.webkit.org/show_bug.cgi?id=102240
8431
8432         Reviewed by Adam Barth.
8433
8434         Mostly a rename:
8435         dispatchWrap->wrap
8436         wrapSlow->createWrapper
8437         dispatchWrapCustom->wrap
8438
8439         No new tests. No change in functionality.
8440
8441         * bindings/scripts/CodeGeneratorV8.pm:
8442         (GenerateHeader):
8443         (GenerateNormalAttrGetter):
8444         (GenerateImplementation):
8445         (GenerateToV8Converters):
8446         * bindings/scripts/IDLAttributes.txt:
8447         * bindings/scripts/test/V8/V8Float64Array.cpp:
8448         (WebCore::wrap):
8449         (WebCore::V8Float64Array::createWrapper):
8450         * bindings/scripts/test/V8/V8Float64Array.h:
8451         (V8Float64Array):
8452         (WebCore):
8453         (WebCore::toV8Object):
8454         (WebCore::toV8):
8455         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
8456         (WebCore::V8TestActiveDOMObject::createWrapper):
8457         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
8458         (V8TestActiveDOMObject):
8459         (WebCore::wrap):
8460         (WebCore::toV8Object):
8461         (WebCore::toV8):
8462         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
8463         (WebCore::V8TestCustomNamedGetter::createWrapper):
8464         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
8465         (V8TestCustomNamedGetter):
8466         (WebCore::wrap):
8467         (WebCore::toV8Object):
8468         (WebCore::toV8):
8469         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
8470         (WebCore::V8TestEventConstructor::createWrapper):
8471         * bindings/scripts/test/V8/V8TestEventConstructor.h:
8472         (V8TestEventConstructor):
8473         (WebCore::wrap):
8474         (WebCore::toV8Object):
8475         (WebCore::toV8):
8476         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
8477         (WebCore::V8TestEventTarget::createWrapper):
8478         * bindings/scripts/test/V8/V8TestEventTarget.h:
8479         (V8TestEventTarget):
8480         (WebCore::wrap):
8481         (WebCore::toV8Object):
8482         (WebCore::toV8):
8483         * bindings/scripts/test/V8/V8TestException.cpp:
8484         (WebCore::V8TestException::createWrapper):
8485         * bindings/scripts/test/V8/V8TestException.h:
8486         (V8TestException):
8487         (WebCore::wrap):
8488         (WebCore::toV8Object):
8489         (WebCore::toV8):
8490         * bindings/scripts/test/V8/V8TestInterface.cpp:
8491         (WebCore::V8TestInterface::createWrapper):
8492         * bindings/scripts/test/V8/V8TestInterface.h:
8493         (V8TestInterface):
8494         (WebCore::wrap):
8495         (WebCore::toV8Object):
8496         (WebCore::toV8):
8497         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
8498         (WebCore::V8TestMediaQueryListListener::createWrapper):
8499         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
8500         (V8TestMediaQueryListListener):
8501         (WebCore::wrap):
8502         (WebCore::toV8Object):
8503         (WebCore::toV8):
8504         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
8505         (WebCore::V8TestNamedConstructor::createWrapper):
8506         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
8507         (V8TestNamedConstructor):
8508         (WebCore::wrap):
8509         (WebCore::toV8Object):
8510         (WebCore::toV8):
8511         * bindings/scripts/test/V8/V8TestNode.cpp:
8512         (WebCore::V8TestNode::createWrapper):
8513         * bindings/scripts/test/V8/V8TestNode.h:
8514         (V8TestNode):
8515         (WebCore::wrap):
8516         (WebCore::toV8Object):
8517         (WebCore::toV8):
8518         (WebCore::toV8Fast):
8519         * bindings/scripts/test/V8/V8TestObj.cpp:
8520         (WebCore::V8TestObj::createWrapper):
8521         * bindings/scripts/test/V8/V8TestObj.h:
8522         (V8TestObj):
8523         (WebCore::wrap):
8524         (WebCore::toV8Object):
8525         (WebCore::toV8):
8526         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
8527         (WebCore::V8TestOverloadedConstructors::createWrapper):
8528         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
8529         (V8TestOverloadedConstructors):
8530         (WebCore::wrap):
8531         (WebCore::toV8Object):
8532         (WebCore::toV8):
8533         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
8534         (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
8535         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
8536         (V8TestSerializedScriptValueInterface):
8537         (WebCore::wrap):
8538         (WebCore::toV8Object):
8539         (WebCore::toV8):
8540         * bindings/v8/custom/V8BlobCustom.cpp:
8541         (WebCore::wrap):
8542         * bindings/v8/custom/V8CSSRuleCustom.cpp:
8543         (WebCore::wrap):
8544         * bindings/v8/custom/V8CSSValueCustom.cpp:
8545         (WebCore::wrap):
8546         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
8547         (WebCore::wrap):
8548         * bindings/v8/custom/V8DataViewCustom.cpp:
8549         (WebCore::wrap):
8550         * bindings/v8/custom/V8DocumentCustom.cpp:
8551         (WebCore::wrap):
8552         * bindings/v8/custom/V8ElementCustom.cpp:
8553         (WebCore):
8554         (WebCore::wrap):
8555         * bindings/v8/custom/V8EntryCustom.cpp:
8556         (WebCore::wrap):
8557         * bindings/v8/custom/V8EntrySyncCustom.cpp:
8558         (WebCore::wrap):
8559         * bindings/v8/custom/V8EventCustom.cpp:
8560         (WebCore):
8561         (WebCore::wrap):
8562         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
8563         (WebCore::wrap):
8564         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
8565         (WebCore::wrap):
8566         * bindings/v8/custom/V8HTMLElementCustom.cpp:
8567         (WebCore::wrap):
8568         * bindings/v8/custom/V8ImageDataCustom.cpp:
8569         (WebCore::wrap):
8570         * bindings/v8/custom/V8NodeCustom.cpp:
8571         (WebCore::wrap):
8572         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
8573         (WebCore::wrap):
8574         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
8575         (WebCore::wrap):
8576         * bindings/v8/custom/V8SVGElementCustom.cpp:
8577         (WebCore::wrap):
8578         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
8579         (WebCore::wrap):
8580         * bindings/v8/custom/V8StyleSheetCustom.cpp:
8581         (WebCore::wrap):
8582         * dom/make_names.pl:
8583         (printWrapperFunctions):
8584         (printWrapperFactoryCppFile):
8585
8586 2012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>
8587
8588         [EFL] Refactor theme to choose whether to support foreground color of selection
8589         https://bugs.webkit.org/show_bug.cgi?id=102037
8590
8591         Reviewed by Gyuyoung Kim.
8592
8593         RenderThemeEfl can change foreground color of selection using theme file.
8594         But it can not disable supports of foreground color to keep the text color
8595         which is selected.
8596
8597         This patch refactors color classes of theme file from active/inactive classes
8598         to foreground/background classes so that RenderThemeEfl checks whether
8599         theme file supports foreground color class.
8600
8601         * platform/efl/RenderThemeEfl.cpp:
8602         (WebCore::fillColorsFromEdjeClass):
8603         (WebCore::RenderThemeEfl::setColorFromThemeClass):
8604         (WebCore::RenderThemeEfl::loadTheme):
8605         (WebCore::RenderThemeEfl::RenderThemeEfl):
8606         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
8607         (WebCore):
8608         * platform/efl/RenderThemeEfl.h:
8609         (RenderThemeEfl):
8610
8611 2012-11-14  Tony Chang  <tony@chromium.org>
8612
8613         Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
8614         https://bugs.webkit.org/show_bug.cgi?id=102295
8615
8616         Reviewed by Andreas Kling.
8617
8618         Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
8619
8620         No new tests because there should be no change in behavior.
8621
8622         * css/CSSGrammar.y.in:
8623         * css/CSSParser.cpp:
8624         (WebCore::CSSParser::CSSParser):
8625         (WebCore::CSSParser::parseValue):
8626         (WebCore::CSSParser::parseColor):
8627         (WebCore::CSSParser::parseDeclaration):
8628         (WebCore):
8629         (WebCore::filterProperties):
8630         (WebCore::CSSParser::createStylePropertySet):
8631         (WebCore::CSSParser::addProperty):
8632         (WebCore::CSSParser::rollbackLastProperties):
8633         (WebCore::CSSParser::clearProperties):
8634         (WebCore::CSSParser::parse4Values):
8635         (WebCore::CSSParser::parseFlowThread):
8636         (WebCore::CSSParser::addTextDecorationProperty):
8637         (WebCore::CSSParser::createFloatingSelectorVector):
8638         (WebCore::CSSParser::sinkFloatingSelectorVector):
8639         (WebCore::CSSParser::createStyleRule):
8640         (WebCore::CSSParser::createFontFaceRule):
8641         (WebCore::CSSParser::createPageRule):
8642         (WebCore::CSSParser::setReusableRegionSelectorVector):
8643         (WebCore::CSSParser::startDeclarationsForMarginBox):
8644         (WebCore::CSSParser::endDeclarationsForMarginBox):
8645         (WebCore::CSSParser::deleteFontFaceOnlyValues):
8646         * css/CSSParser.h:
8647         (WebCore::CSSParser::hasProperties):
8648         (WebCore::CSSParser::reusableSelectorVector):
8649         (CSSParser):
8650         (WebCore::CSSParser::reusableRegionSelectorVector):
8651         * css/CSSParserValues.cpp:
8652         (WebCore::CSSParserSelector::adoptSelectorVector):
8653         * css/CSSParserValues.h:
8654         (CSSParserSelector):
8655         * css/CSSSelectorList.cpp:
8656         (WebCore::CSSSelectorList::adoptSelectorVector):
8657         * css/CSSSelectorList.h:
8658         (CSSSelectorList):
8659         * css/SVGCSSParser.cpp:
8660         (WebCore::CSSParser::parseSVGValue):
8661         * css/StyleRule.cpp:
8662         (WebCore::StyleRuleRegion::StyleRuleRegion):
8663         * css/StyleRule.h:
8664         (WebCore::StyleRule::parserAdoptSelectorVector):
8665         (WebCore::StyleRulePage::parserAdoptSelectorVector):
8666         (WebCore::StyleRuleRegion::create):
8667         (StyleRuleRegion):
8668
8669 2012-11-14  Alec Flett  <alecflett@chromium.org>
8670
8671         Add tests for explicit serialization values
8672         https://bugs.webkit.org/show_bug.cgi?id=96818
8673
8674         Reviewed by Adam Barth.
8675
8676         Expose direct access to the serialization/deserialization mechanisms
8677         of SerializedScriptValue to DumpRenderTree.
8678
8679         * testing/Internals.cpp:
8680         (WebCore::Internals::serializeObject):
8681         (WebCore):
8682         (WebCore::Internals::deserializeBuffer):
8683         * testing/Internals.h:
8684         (WebCore):
8685         * testing/Internals.idl:
8686
8687 2012-11-14  Michael Pruett  <michael@68k.org>
8688
8689         IndexedDB: Add clear() method to JSC ScriptValue
8690         https://bugs.webkit.org/show_bug.cgi?id=102288
8691
8692         Reviewed by Kentaro Hara.
8693
8694         IndexedDB uses the ScriptValue::clear() method, which existed
8695         previously only in the V8 implementation of ScriptValue. This
8696         change is necessary to implement IndexedDB for JSC.
8697
8698         Tests: storage/indexeddb/*
8699
8700         * bindings/js/ScriptValue.h:
8701         (WebCore::ScriptValue::clear):
8702         (ScriptValue):
8703
8704 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8705
8706         IndexedDB: Indexing tests are flaky-crashing
8707         https://bugs.webkit.org/show_bug.cgi?id=102283
8708
8709         Reviewed by Tony Chang.
8710
8711         Don't commit the transaction if there are outstanding pre-emptive events
8712         from indexing operations.
8713
8714         Speculative fix for the flakiness.
8715
8716         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
8717         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
8718
8719 2012-11-14  Tony Chang  <tony@chromium.org>
8720
8721         Crash in flexbox when removing absolutely positioned children
8722         https://bugs.webkit.org/show_bug.cgi?id=100465
8723
8724         Reviewed by Ojan Vafai.
8725
8726         We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
8727         This value gets set during flexbox layout. When we remove an absolutely
8728         positioned child, we don't relayout and this value would get stale.
8729
8730         Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
8731         so the value doesn't get stale when we remove absolutely positioned children.
8732         Also change the loop in firstLineBoxBaseline to bail if we run off the end of
8733         the iterator.
8734
8735         Test: css3/flexbox/crash-removing-out-of-flow-child.html
8736
8737         * rendering/RenderFlexibleBox.cpp:
8738         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
8739         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
8740         (WebCore::RenderFlexibleBox::layoutBlock):
8741         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
8742         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
8743         * rendering/RenderFlexibleBox.h:
8744
8745 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8746
8747         IndexedDB: Remove magic numbers in record comparator, handle missing case
8748         https://bugs.webkit.org/show_bug.cgi?id=102255
8749
8750         Reviewed by Tony Chang.
8751
8752         For some ranges of metadata entries, a simple type byte comparison is sufficient
8753         for the backing store comparator. In two places those ranges used magic numbers,
8754         one of which was incorrect - which could lead to failed reads/writes.
8755
8756         Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
8757
8758         * Modules/indexeddb/IDBLevelDBCoding.cpp:
8759         (IDBLevelDBCoding):
8760         (WebCore::IDBLevelDBCoding::compare):
8761         * Modules/indexeddb/IDBLevelDBCoding.h:
8762
8763 2012-11-14  Dirk Schulze  <krit@webkit.org>
8764
8765         Cleanup BasicShape blending check
8766         https://bugs.webkit.org/show_bug.cgi?id=102289
8767
8768         Reviewed by Daniel Bates.
8769
8770         CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
8771         twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
8772         is a preparation for follow-up patches.
8773
8774         Pure refactoring without behavior change, no new tests.
8775
8776         * page/animation/CSSPropertyAnimation.cpp:
8777         (WebCore::blendFunc): Call new canBlend method for blending verification.
8778         * rendering/style/BasicShapes.cpp:
8779         (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
8780         (WebCore):
8781         * rendering/style/BasicShapes.h:
8782
8783 2012-11-14  Dirk Schulze  <krit@webkit.org>
8784
8785         [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
8786         https://bugs.webkit.org/show_bug.cgi?id=102123
8787
8788         Reviewed by Antti Koivisto.
8789
8790         The '-webkit-shape-inside' propery takes a BasicShape as input like
8791         '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
8792         make '-webkit-shape-inside' animatable as well.
8793
8794         Test: fast/exclusions/shape-inside/shape-inside-animation.html
8795
8796         * page/animation/CSSPropertyAnimation.cpp:
8797         (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
8798             input then '-webkit-clip-path'.
8799         (WebCore):
8800         (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
8801             '-webkit-shape-ourside' as well.
8802         (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
8803         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
8804
8805 2012-11-14  Helder Correia  <helder.correia@nokia.com>
8806
8807         [TexMap][Cairo] Accelerated compositing debug visuals
8808         https://bugs.webkit.org/show_bug.cgi?id=101883
8809
8810         Reviewed by Kenneth Rohde Christiansen.
8811
8812         No new tests, just introducing a debug feature.
8813
8814         Add a Cairo implementation to complement the patch from bug 90116
8815         (http://trac.webkit.org/changeset/122275).
8816
8817         For this feature to be enabled, the environment variable
8818         WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
8819         both repaint counters and tile borders will be painted.
8820
8821         A Cairo-specific drawRepaintCounter() implementation was added to
8822         TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
8823         the counters. It is then uploaded to a BitmapTexture acquired
8824         from the pool and finally draw by TextureMapper. The actual compositing
8825         happens inside LayerBackingStore::paintToTextureMapper(). Each
8826         LayerBackingStoreTile has a repaint counter which gets incremented in
8827         LayerBackingStore::updateTile().
8828
8829         * platform/graphics/texmap/TextureMapperGL.cpp:
8830         (WebCore::TextureMapperGL::drawRepaintCounter):
8831
8832 2012-11-14  Michael Pruett  <michael@68k.org>
8833
8834         IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
8835         https://bugs.webkit.org/show_bug.cgi?id=102268
8836
8837         Reviewed by Geoffrey Garen.
8838
8839         Add JSNoStaticTables attribute to IndexedDB interface
8840         definitions. This attribute must be specified in interfaces
8841         which can be accessed from workers.
8842
8843         Tests: storage/indexeddb/*
8844
8845         * Modules/indexeddb/IDBAny.idl:
8846         * Modules/indexeddb/IDBCursor.idl:
8847         * Modules/indexeddb/IDBCursorWithValue.idl:
8848         * Modules/indexeddb/IDBDatabase.idl:
8849         * Modules/indexeddb/IDBDatabaseException.idl:
8850         * Modules/indexeddb/IDBFactory.idl:
8851         * Modules/indexeddb/IDBIndex.idl:
8852         * Modules/indexeddb/IDBKey.idl:
8853         * Modules/indexeddb/IDBKeyRange.idl:
8854         * Modules/indexeddb/IDBObjectStore.idl:
8855         * Modules/indexeddb/IDBOpenDBRequest.idl:
8856         * Modules/indexeddb/IDBRequest.idl:
8857         * Modules/indexeddb/IDBTransaction.idl:
8858         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
8859         * Modules/indexeddb/IDBVersionChangeEvent.idl:
8860         * Modules/indexeddb/IDBVersionChangeRequest.idl:
8861         * dom/DOMStringList.idl:
8862
8863 2012-11-14  Michael Pruett  <michael@68k.org>
8864
8865         IndexedDB: Replace int64 with int64_t
8866         https://bugs.webkit.org/show_bug.cgi?id=102270
8867
8868         Reviewed by Tony Chang.
8869
8870         Cleaning up coding inconsistencies, no change in behavior.
8871
8872         Tests: storage/indexeddb/*
8873
8874         * Modules/indexeddb/IDBDatabase.cpp:
8875         (WebCore::IDBDatabase::deleteObjectStore):
8876         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
8877         (WebCore::IDBObjectStoreBackendImpl::putInternal):
8878
8879 2012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
8880
8881         [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
8882         https://bugs.webkit.org/show_bug.cgi?id=102000
8883
8884         Reviewed by Noam Rosenthal.
8885
8886         Add helper functions to clear viewport before painting. Those functions
8887         used by EFL Webkit2 port to set view background to match page background
8888         in order to reduce visibility of flicker during scrolling/scaling/repainting
8889         where page tiles are not ready.
8890
8891         * platform/graphics/texmap/TextureMapper.h:
8892         * platform/graphics/texmap/TextureMapperGL.cpp:
8893         (WebCore::TextureMapperGL::drawSolidColor):
8894         (WebCore):
8895         * platform/graphics/texmap/TextureMapperGL.h:
8896         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
8897         (WebCore::TextureMapperImageBuffer::drawSolidColor):
8898         (WebCore):
8899         * platform/graphics/texmap/TextureMapperImageBuffer.h:
8900
8901 2012-11-14  Mark Lam  <mark.lam@apple.com>
8902
8903         Fixed regressions due to adding JSEventListener::m_wrapper null checks.
8904         https://bugs.webkit.org/show_bug.cgi?id=102183.
8905
8906         Reviewed by Geoffrey Garen.
8907
8908         Fixed JSEventListener::operator==() to work within the contract that
8909         when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
8910         some typos in comments.
8911
8912         No new tests.
8913
8914         * bindings/js/JSEventListener.cpp:
8915         (WebCore::JSEventListener::visitJSFunction):
8916         (WebCore::JSEventListener::operator==):
8917         * bindings/js/JSEventListener.h:
8918         (WebCore::JSEventListener::jsFunction):
8919
8920 2012-11-14  Nate Chapin  <japhet@chromium.org>
8921
8922         Fix chromium asserts from r134649.
8923
8924         Rubber-stamped by Adam Barth.
8925
8926         MainResourceLoader was calling releaseResources() twice when cancelled
8927         within MainResourceLoader::load(), so check reachedTerminalState() before
8928         calling releaseResources() there.
8929
8930         * loader/MainResourceLoader.cpp:
8931         (WebCore::MainResourceLoader::load):
8932
8933 2012-11-14  Andreas Kling  <kling@webkit.org>
8934
8935         Only resolve presentation attribute style once per shared ElementAttributeData.
8936         <http://webkit.org/b/100990>
8937
8938         Reviewed by Antti Koivisto.
8939
8940         Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
8941         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
8942         since the state is no longer per-Element.
8943
8944         I've left the presentation attribute cache in there for now, since it still covers the case where
8945         two elements have the same presentation attributes but different non-presentation attributes.
8946         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
8947
8948         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
8949         * dom/StyledElement.h:
8950         (WebCore::StyledElement::presentationAttributeStyle):
8951         (WebCore::ElementAttributeData::ElementAttributeData):
8952         * dom/ElementAttributeData.h:
8953         (WebCore::ElementAttributeData::ElementAttributeData):
8954         (ElementAttributeData):
8955         * dom/Node.h:
8956
8957             Move presentation attribute style dirty flag from Node to ElementAttributeData.
8958
8959         * dom/ElementAttributeData.cpp:
8960         (SameSizeAsElementAttributeData):
8961
8962             Add a compile-time object size assertion for ElementAttributeData.
8963
8964         * dom/StyledElement.cpp:
8965         (WebCore::StyledElement::attributeChanged):
8966
8967             Don't mark the presentation attribute style dirty if the element is using an immutable (implies
8968             shared) ElementAttributeData and another element has already generated the StylePropertySet.
8969             The element itself is still marked for style recalc like before, this just avoids the process
8970             of converting the attributes to CSS properties.
8971
8972 2012-11-14  Scott Violet  <sky@chromium.org>
8973
8974         [Chromium] Refactor theme font lookup into a factory
8975         https://bugs.webkit.org/show_bug.cgi?id=101949
8976
8977         Reviewed by Tony Chang.
8978
8979         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
8980
8981         No new tests. Refactoring only.
8982
8983         * WebCore.gyp/WebCore.gyp:
8984         * WebCore.gypi:
8985         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
8986         (WebCore):
8987         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
8988         * rendering/RenderThemeChromiumFontProvider.h: Added.
8989         (WTF):
8990         (WebCore):
8991         (RenderThemeChromiumFontProvider): This is the font related methods.
8992         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
8993         (WebCore):
8994         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
8995         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
8996         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
8997         (WebCore):
8998         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
8999         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
9000         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
9001         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
9002         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
9003         * rendering/RenderThemeChromiumSkia.cpp:
9004         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
9005         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
9006         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
9007         * rendering/RenderThemeChromiumSkia.h:
9008         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
9009         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
9010         (WebCore):
9011         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
9012         (RenderThemeChromiumWin):
9013
9014 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9015
9016         Update DOMException name: InUseAttributeError
9017         https://bugs.webkit.org/show_bug.cgi?id=102141
9018
9019         Reviewed by Ojan Vafai.
9020
9021         Patch 10 of 25 to update DOMException name to match the spec and Firefox.
9022
9023         The name for this is not in the spec but the case was selected to match
9024         Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
9025
9026         INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
9027
9028         * dom/DOMCoreException.cpp:
9029         * dom/ExceptionCode.h:
9030
9031 2012-11-14  Lynn Neir  <lynn.neir@skype.net>
9032
9033         [WinCairo] Incorrect line-height for styled menulist (select tag)
9034         in windows theme.
9035         https://bugs.webkit.org/show_bug.cgi?id=79435
9036
9037         Reviewed by Brent Fulgham
9038
9039         Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
9040         to Windows theme to fix issue.
9041
9042         Tests: fast/forms/menulist-restrict-line-height.html
9043                fast/forms/control-restrict-line-height.html
9044                fast/forms/basic-selects.html
9045
9046         * rendering/RenderThemeWin.cpp:
9047         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
9048         height to the correct initial height.
9049
9050 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9051
9052         Update DOMException name: WrongDocumentError
9053         https://bugs.webkit.org/show_bug.cgi?id=102096
9054
9055         Reviewed by Ojan Vafai.
9056
9057         Patch 4 of 25 to update DOMException name to match the spec and Firefox.
9058
9059         Updated existing tests.
9060
9061         * dom/DOMCoreException.cpp:
9062
9063 2012-11-14  Nate Chapin  <japhet@chromium.org>
9064
9065         Move empty loading to DocumentLoader, simplify FrameLoader::init()
9066         https://bugs.webkit.org/show_bug.cgi?id=101512
9067
9068         Reviewed by Adam Barth.
9069
9070         No new tests, though several outputs changed because we no longer send resource
9071             load callbacks for empty loads.
9072
9073         * loader/DocumentLoader.cpp:
9074         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
9075             loads directly here.
9076         * loader/DocumentLoader.h:
9077         * loader/FrameLoader.cpp:
9078         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
9079             were previously being reset in init(). Given that the FrameLoader is in
9080             an inconsistent state before init() is called anyway, there doesn't seem
9081             to be a disadvantage to just initializing them to their post-init() values.
9082         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
9083             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
9084         * loader/FrameLoaderStateMachine.cpp:
9085         * loader/FrameLoaderStateMachine.h:
9086         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
9087         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
9088             load got deferred, which won't happen now. Return void and always treat
9089             as returning false.
9090         * loader/MainResourceLoader.h:
9091
9092 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9093
9094         Update DOMException name: InvalidStateError
9095         https://bugs.webkit.org/show_bug.cgi?id=102241
9096
9097         Reviewed by Ojan Vafai.
9098
9099         Patch 11 of 25 to update DOMException name to match the spec and Firefox.
9100
9101         Updated existing tests.
9102
9103         * dom/DOMCoreException.cpp:
9104
9105 2012-11-14  Joshua Bell  <jsbell@chromium.org>
9106
9107         Rename NATIVE_TYPE_ERR to TypeError
9108         https://bugs.webkit.org/show_bug.cgi?id=102114
9109
9110         Reviewed by Kentaro Hara.
9111
9112         Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
9113         V8 binding code had colliding enum members, which required prefixing.
9114
9115         No new tests - just internal renames.
9116
9117         * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
9118         (WebCore::IDBCursor::advance):
9119         (WebCore::IDBCursor::stringToDirection):
9120         (WebCore::IDBCursor::directionToString):
9121         * Modules/indexeddb/IDBDatabase.cpp: Ditto.
9122         (WebCore::IDBDatabase::setVersion):
9123         * Modules/indexeddb/IDBFactory.cpp: Ditto.
9124         (WebCore::IDBFactory::open):
9125         (WebCore::IDBFactory::openInternal):
9126         (WebCore::IDBFactory::deleteDatabase):
9127         * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
9128         (WebCore::IDBObjectStore::createIndex):
9129         * Modules/indexeddb/IDBTransaction.cpp: Ditto.
9130         (WebCore::IDBTransaction::stringToMode):
9131         (WebCore::IDBTransaction::modeToString):
9132         * bindings/js/JSDOMBinding.cpp: Ditto.
9133         (WebCore::setDOMException):
9134         * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
9135         (WebCore::DateExtension::OnSleepDetected):
9136         * bindings/v8/NPV8Object.cpp: Ditto.
9137         (_NPN_SetException):
9138         * bindings/v8/V8Binding.cpp: Ditto.
9139         (WebCore::throwError):
9140         (WebCore::handleMaxRecursionDepthExceeded):
9141         * bindings/v8/V8Binding.h: Ditto.
9142         (WebCore):
9143         * bindings/v8/V8NPObject.cpp: Ditto.
9144         (WebCore::npObjectInvokeImpl):
9145         (WebCore::npObjectGetProperty):
9146         (WebCore::npObjectSetProperty):
9147         (WebCore::npObjectPropertyEnumerator):
9148         * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
9149         (WebCore::V8ThrowException::setDOMException):
9150         (WebCore::V8ThrowException::throwError):
9151         (WebCore::V8ThrowException::throwTypeError):
9152         (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
9153         * bindings/v8/V8ThrowException.h:
9154         (V8ThrowException):
9155         * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
9156         (WebCore::WorkerContextExecutionProxy::evaluate):
9157         * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
9158         (WebCore::V8ArrayBuffer::constructorCallback):
9159         * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
9160         (WebCore::constructWebGLArrayWithArrayBufferArgument):
9161         (WebCore::constructWebGLArray):
9162         (WebCore::setWebGLArrayHelper):
9163         * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
9164         (WebCore::V8AudioContext::constructorCallback):
9165         * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
9166         (WebCore::V8Blob::constructorCallback):
9167         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
9168         (WebCore::V8Clipboard::clearDataCallback):
9169         (WebCore::V8Clipboard::setDragImageCallback):
9170         * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
9171         (WebCore::V8DOMFormData::appendCallback):
9172         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
9173         (WebCore::V8SQLResultSetRowList::itemCallback):
9174         * dom/ExceptionCode.h: Add WebIDL exception types.
9175
9176 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
9177
9178         [BlackBerry] Style BB10 time input field font.
9179         https://bugs.webkit.org/show_bug.cgi?id=102260.
9180
9181         Reviewed by Rob Buis.
9182
9183         RIM PR 243355
9184         Adjust time input field font using BB10 system default font.
9185
9186         * css/themeBlackBerry.css:
9187         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
9188
9189 2012-11-14  Li Yin  <li.yin@intel.com>
9190
9191         createDelay should raise exception when the maxDelayTime parameter is incorrect.
9192         https://bugs.webkit.org/show_bug.cgi?id=102173
9193
9194         Reviewed by Chris Rogers.
9195
9196         Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
9197         The specified value must be greater than zero and less than three minutes or a
9198         NOT_SUPPORTED_ERR exception will be thrown.
9199
9200         Tests: webaudio/delaynode-maxdelaylimit.html
9201
9202         * Modules/webaudio/AudioContext.cpp:
9203         (WebCore::AudioContext::createDelay):
9204         * Modules/webaudio/AudioContext.h:
9205         (AudioContext):
9206         * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
9207         * Modules/webaudio/DelayNode.cpp:
9208         (WebCore):
9209         (WebCore::DelayNode::DelayNode):
9210         * Modules/webaudio/DelayNode.h:
9211         (WebCore::DelayNode::create):
9212         (DelayNode):
9213
9214 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
9215
9216         Don't pass a paintingRoot when painting from RenderLayerBacking
9217         https://bugs.webkit.org/show_bug.cgi?id=102256
9218
9219         Reviewed by David Hyatt.
9220
9221         The 'paintingRoot' parameter to the RenderLayer paint functions
9222         is used when painting just a subtree (e.g. when painting dragged
9223         selections). There is no need to pass it when a RenderLayerBacking
9224         paints its contents or overlay scrollbars.
9225         
9226         Passing it requires an expensive isDescendant() check, so passing
9227         null is more efficient.
9228         
9229         * rendering/RenderLayer.h:
9230         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
9231         * rendering/RenderLayerBacking.cpp:
9232         (WebCore::RenderLayerBacking::paintIntoLayer):
9233         (WebCore::RenderLayerBacking::paintContents):
9234         * rendering/RenderLayerBacking.h:
9235         (RenderLayerBacking):
9236
9237 2012-11-14  Alec Flett  <alecflett@chromium.org>
9238
9239         Add DOMRequestState to maintain world/ScriptExecutionContext state
9240         https://bugs.webkit.org/show_bug.cgi?id=102102
9241
9242         Reviewed by Adam Barth.
9243
9244         Introduce DOMRequestState, and convert IndexedDB over.
9245
9246         No new tests, this is an abstraction layer for existing code.
9247
9248         * Modules/indexeddb/IDBRequest.cpp:
9249         (WebCore::IDBRequest::IDBRequest):
9250         (WebCore::IDBRequest::onSuccess):
9251         (WebCore::IDBRequest::dispatchEvent):
9252         * Modules/indexeddb/IDBRequest.h:
9253         (IDBRequest):
9254         * WebCore.gypi:
9255         * bindings/v8/DOMRequestState.h: Added.
9256         (WebCore):
9257         (DOMRequestState):
9258         (WebCore::DOMRequestState::DOMRequestState):
9259         (Scope):
9260         (WebCore::DOMRequestState::Scope::Scope):
9261         (WebCore::DOMRequestState::scope):
9262
9263 2012-11-14  Justin Novosad  <junov@google.com>
9264
9265         Boxes with rounded corners and thin borders are too slow to draw
9266         https://bugs.webkit.org/show_bug.cgi?id=101974
9267
9268         Reviewed by Simon Fraser.
9269
9270         With the current implementation RenderBox::
9271         determineBackgroundBleedAvoidance() uses the slow path
9272         BackgroundBleedUseTransparencyLayer for some very common use cases,
9273         notably for drawing rectangles with rounded corners that have thin
9274         borders. This is because the BackgroundBleedShrinkBackground
9275         strategy requires a border at least two pixels wide on all sides. This
9276         patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
9277         This approach consists in drawing the border first, with an inset inner
9278         edge (for anti-aliased compositing to work well).  This approach only
9279         works with opaque solid edges and opaque single-layer backgrounds.
9280         By using this approach rather than BackgroundBleedUseTransparencyLayer,
9281         we save two clipPath, one save and one saveLayer on the
9282         GraphicsContext. This patch gets good coverage from existing layout
9283         tests. One additional test was added to exercise mitring, thick edges
9284         and anti-aliasing edge cases under the new painting algorithm.
9285
9286         Test: fast/borders/border-radius-wide-border-05.html
9287
9288         * rendering/RenderBox.cpp:
9289         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
9290         Added selection criteria for BackgroundOverBorder
9291         (WebCore::RenderBox::paintBoxDecorations):
9292         Added a preliminary paintBorder pass for BackgroundOverBorder
9293         (WebCore::RenderBox::paintBackground):
9294         Insetting the background to to innerBorder when bleedAvoidance is
9295         BackgroundOverBorder.  This why BackgroundOverBorder only works for
9296         Opaque solid edges.
9297         (WebCore):
9298         (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
9299         Utility method use by determineBackgroundBleedAvoidance to test the
9300         background's eligibility for BackgroundOverBorder bleed avoidance
9301         strategy.  The reason the background must be a single layer is to avoid
9302         color bleeding from layer compositing along anti-aliased edges
9303         * rendering/RenderBox.h:
9304         (RenderBox):
9305         * rendering/RenderBoxModelObject.cpp:
9306         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
9307         (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
9308         Added support for BackgroundOverBorder by applying a one pixel inset.
9309         (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
9310         Set the background rect to the inner border for BackgroundOverBorder
9311         (WebCore):
9312         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
9313         Added support for BackgroundOverBorder by using 
9314         backgroundRoundedRectAdjustedForBleedAvoidance
9315         (WebCore::RenderBoxModelObject::paintBorderSides):
9316         Added support for BackgroundOverBorder by applying per-side inset
9317         adjustments.
9318         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
9319         (WebCore::RenderBoxModelObject::paintBorder):
9320         Added support for BackgroundOverBorder by using an adjusted inner
9321         border, but not if sides are painted individually.
9322         * rendering/RenderBoxModelObject.h:
9323         (RenderBoxModelObject):
9324
9325 2012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>
9326
9327         [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
9328         https://bugs.webkit.org/show_bug.cgi?id=76219
9329
9330         Reviewed by Brent Fulgham.
9331
9332         This patch is to fix a memory leak problem which occurs
9333         in every rendering process on Wincairo port.
9334         By applying this patch, the memory allocated in cairo 
9335         library will be released by calling cairo_destroy.
9336
9337         * platform/graphics/win/GraphicsContextCairoWin.cpp:
9338         (WebCore::GraphicsContext::platformInit):
9339
9340 2012-11-14  Sami Kyostila  <skyostil@chromium.org>
9341
9342         Optimize painting of composited scrolling layers
9343         https://bugs.webkit.org/show_bug.cgi?id=96087
9344
9345         Reviewed by Simon Fraser.
9346
9347         Don't completely repaint accelerated scrolling layers when the scroll offset
9348         changes.
9349
9350         Test: compositing/overflow/scrolling-without-painting.html
9351
9352         * platform/graphics/GraphicsLayer.cpp:
9353         (WebCore::GraphicsLayer::setOffsetFromRenderer):
9354         * platform/graphics/GraphicsLayer.h:
9355         (GraphicsLayer):
9356         * rendering/RenderLayerBacking.cpp:
9357         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
9358
9359 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9360
9361         Web Inspector: keep track of mutation observers and disconnect them upon upload
9362         https://bugs.webkit.org/show_bug.cgi?id=102239
9363
9364         Reviewed by Vsevolod Vlasov.
9365
9366         Otherwise we hit memory leaks.
9367
9368         * inspector/front-end/DefaultTextEditor.js:
9369         (WebInspector.DefaultTextEditor.prototype.wasShown):
9370         (WebInspector.DefaultTextEditor.prototype.willHide):
9371         (WebInspector.TextEditorMainPanel.prototype._wasShown):
9372         (WebInspector.TextEditorMainPanel.prototype._willHide):
9373         (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
9374         (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
9375         * inspector/front-end/utilities.js:
9376
9377 2012-11-14  Sergio Villar Senin  <svillar@igalia.com>
9378
9379         [Qt] Use a node image if there is no drag image set for Drag&Drop
9380         https://bugs.webkit.org/show_bug.cgi?id=102124
9381
9382         Reviewed by Simon Hausmann.
9383
9384         Use the nodeImage provided by the frame if there is no dragImage in
9385         the clipboard for the current drag&drop operation.
9386
9387         * platform/qt/ClipboardQt.cpp:
9388         (WebCore::ClipboardQt::createDragImage):
9389
9390 2012-11-14  Max Vujovic  <mvujovic@adobe.com>
9391
9392         Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
9393         https://bugs.webkit.org/show_bug.cgi?id=101846
9394
9395         Reviewed by Simon Fraser.
9396
9397         If software-rendered CSS Filters have not been used in the document, avoid doing the second
9398         tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
9399         enclosing filter layer.
9400
9401         No new tests. We now avoid a filters related code path for a performance improvement when
9402         we're not using filters.
9403
9404         * page/FrameView.cpp:
9405         (WebCore::FrameView::FrameView):
9406         * page/FrameView.h:
9407         (FrameView):
9408         (WebCore::FrameView::setHasSoftwareFilters):
9409         (WebCore::FrameView::hasSoftwareFilters):
9410         * rendering/RenderLayer.cpp:
9411         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
9412         * rendering/RenderObject.cpp:
9413         (WebCore::RenderObject::containerForRepaint):
9414
9415 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9416
9417         Update DOMException name: NotFoundError
9418         https://bugs.webkit.org/show_bug.cgi?id=102137
9419
9420         Reviewed by Ojan Vafai.
9421
9422         Patch 8 of 25 to update DOMException name to match the spec and Firefox.
9423
9424         Updated existing tests.
9425
9426         * dom/DOMCoreException.cpp:
9427
9428 2012-11-14  Otto Derek Cheung  <otcheung@rim.com>
9429
9430         [BlackBerry] Updating BB Cookie database to use WAL
9431         https://bugs.webkit.org/show_bug.cgi?id=102237
9432
9433         Reviewed by Rob Buis.
9434
9435         The cookie database is accessed by one process only and should be updated to
9436         use the WAL journal mode for better I/O performance.
9437
9438         PR 236553
9439
9440         cookieCollection.db-wal is created after the conversion to WAL.
9441         Tested cookie persistence by logging on to random sites and restarting the browser and
9442         check if it automatically logs in.
9443         Also tested using Opera's cookie persistence test.
9444
9445         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
9446         (WebCore::CookieDatabaseBackingStore::invokeOpen):
9447
9448 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9449
9450         Update DOMException name: IndexSizeError
9451         https://bugs.webkit.org/show_bug.cgi?id=102087
9452
9453         Reviewed by Ojan Vafai.
9454
9455         This is the first in a series of updates to DOMException name to match
9456         the spec and Firefox.
9457
9458         Patch 1 of 25
9459
9460         Updated existing tests.
9461
9462         * dom/DOMCoreException.cpp:
9463         (WebCore):
9464
9465 2012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>
9466
9467         Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
9468         https://bugs.webkit.org/show_bug.cgi?id=102205
9469
9470         Reviewed by Csaba Osztrogonác.
9471
9472         Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
9473
9474         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
9475         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
9476         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
9477         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
9478
9479 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9480
9481         Update DOMException name: NoDataAllowedError
9482         https://bugs.webkit.org/show_bug.cgi?id=102132
9483
9484         Reviewed by Darin Adler.
9485
9486         Patch 6 of 25 to update DOMException name to match the spec and Firefox.
9487
9488         NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
9489
9490         * dom/DOMCoreException.cpp:
9491         (WebCore):
9492         * dom/ExceptionCode.h:
9493
9494 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9495
9496         Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
9497         https://bugs.webkit.org/show_bug.cgi?id=102219
9498
9499         Reviewed by Alexander Pavlov.
9500
9501         Force elements module load upon context menu invocation.
9502
9503         * inspector/front-end/ElementsTreeOutline.js:
9504         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
9505         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
9506
9507 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9508
9509         Unreviewed, rolling out r134523.
9510         http://trac.webkit.org/changeset/134523
9511         https://bugs.webkit.org/show_bug.cgi?id=102218
9512
9513         brake chrome windows build, as it references a non existing
9514         header js/DOMRequestState.h (Requested by jochen__ on
9515         #webkit).
9516
9517         * Modules/indexeddb/IDBCursor.cpp:
9518         (WebCore::IDBCursor::setValueReady):
9519         * Modules/indexeddb/IDBCursor.h:
9520         (IDBCursor):
9521         * Modules/indexeddb/IDBRequest.cpp:
9522         (WebCore::IDBRequest::IDBRequest):
9523         (WebCore::IDBRequest::onSuccess):
9524         (WebCore::IDBRequest::stop):
9525         (WebCore::IDBRequest::dispatchEvent):
9526         * Modules/indexeddb/IDBRequest.h:
9527         (IDBRequest):
9528         * WebCore.gypi:
9529         * bindings/v8/DOMRequestState.h: Removed.
9530         * bindings/v8/IDBBindingUtilities.cpp:
9531         (WebCore::deserializeIDBValue):
9532         (WebCore::idbKeyToScriptValue):
9533         * bindings/v8/IDBBindingUtilities.h:
9534         (WebCore):
9535
9536 2012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>
9537
9538         Add platform implementation of remote web inspector server for GTK port.
9539         https://bugs.webkit.org/show_bug.cgi?id=88094 
9540
9541         Reviewed by Gustavo Noronha Silva.
9542
9543         Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
9544         Needed to pass remote inspector server socket connection. The change is tested with 
9545         inspector server API tests.
9546
9547         * platform/network/soup/SocketStreamHandle.h:
9548         (WebCore::SocketStreamHandle::create):
9549         (SocketStreamHandle):
9550         * platform/network/soup/SocketStreamHandleSoup.cpp:
9551         (WebCore::SocketStreamHandle::SocketStreamHandle):
9552         (WebCore):
9553         (WebCore::SocketStreamHandle::connected):
9554         (WebCore::SocketStreamHandle::platformSend):
9555         (WebCore::SocketStreamHandle::platformClose):
9556
9557 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9558
9559         Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
9560         https://bugs.webkit.org/show_bug.cgi?id=102212
9561
9562         Reviewed by Vsevolod Vlasov.
9563
9564         * inspector/front-end/ObjectPropertiesSection.js:
9565         (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
9566
9567 2012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>
9568
9569         Web Inspector: NMI add instrumentation for WebAudo related stuff.
9570         They use about 16Mb for shared data on pages with webaudio.
9571         As example Angry Birds app.
9572         https://bugs.webkit.org/show_bug.cgi?id=101729
9573
9574         Reviewed by Yury Semikhatsky.
9575
9576         Plain vanilla instrumentation for audio and webaudio classes.
9577         AudioContext is a kind of ActiveDOMObject. I found that these objects
9578         are accessible through ScriptExecutuionContext and ScriptExecutionContext
9579         is an ancestor of Document. Document class was instrumented earler.
9580         I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
9581         and now AudioContext and other ActiveDOMObjects are reacheable from Document.
9582
9583         Test: inspector-protocol/nmi-webaudio.html
9584
9585         * Modules/webaudio/AudioContext.cpp:
9586         (WebCore::AudioContext::reportMemoryUsage):
9587         (WebCore):
9588         * Modules/webaudio/AudioContext.h:
9589         (AudioContext):
9590         * Modules/webaudio/AudioNode.cpp:
9591         (WebCore::AudioNode::reportMemoryUsage):
9592         (WebCore):
9593         * Modules/webaudio/AudioNode.h:
9594         (AudioNode):
9595         * dom/ActiveDOMObject.cpp:
9596         (WebCore::ActiveDOMObject::reportMemoryUsage):
9597         (WebCore):
9598         * dom/ActiveDOMObject.h:
9599         (ActiveDOMObject):
9600         * dom/Document.cpp:
9601         (WebCore::Document::reportMemoryUsage):
9602         * dom/ScriptExecutionContext.cpp:
9603         (WebCore::ScriptExecutionContext::reportMemoryUsage):
9604         (WebCore):
9605         * dom/ScriptExecutionContext.h:
9606         (ScriptExecutionContext):
9607         * dom/SecurityContext.cpp:
9608         (WebCore::SecurityContext::reportMemoryUsage):
9609         (WebCore):
9610         * dom/SecurityContext.h:
9611         (SecurityContext):
9612         * dom/WebCoreMemoryInstrumentation.cpp:
9613         (WebCore):
9614         * dom/WebCoreMemoryInstrumentation.h:
9615         (WebCoreMemoryTypes):
9616         * platform/audio/AudioArray.h:
9617         (AudioArray):
9618         (WebCore::AudioArray::reportMemoryUsage):
9619         * platform/audio/FFTFrame.cpp:
9620         (WebCore::FFTFrame::reportMemoryUsage):
9621         (WebCore):
9622         * platform/audio/FFTFrame.h:
9623         (FFTFrame):
9624         * platform/audio/HRTFDatabase.cpp:
9625         (WebCore::HRTFDatabase::reportMemoryUsage):
9626         (WebCore):
9627         * platform/audio/HRTFDatabase.h:
9628         (HRTFDatabase):
9629         * platform/audio/HRTFDatabaseLoader.cpp:
9630         (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
9631         (WebCore):
9632         * platform/audio/HRTFDatabaseLoader.h:
9633         (HRTFDatabaseLoader):
9634         * platform/audio/HRTFElevation.cpp:
9635         (WebCore::HRTFElevation::reportMemoryUsage):
9636         (WebCore):
9637         * platform/audio/HRTFElevation.h:
9638         (HRTFElevation):
9639         * platform/audio/HRTFKernel.cpp:
9640         (WebCore::HRTFKernel::reportMemoryUsage):
9641         (WebCore):
9642         * platform/audio/HRTFKernel.h:
9643         (HRTFKernel):
9644
9645 2012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
9646
9647         Web Inspector: Settings screen: close button overlays view title on mac.
9648         https://bugs.webkit.org/show_bug.cgi?id=102198
9649
9650         Reviewed by Pavel Feldman.
9651
9652         Added margin-left for mac. Adjusted title height and vertical positioning.
9653
9654         * inspector/front-end/helpScreen.css:
9655         (.help-window-caption): Adjusted title height.
9656         (.help-window-title): Adjusted title vertical positioning. 
9657         (body.platform-mac .help-window-main .help-window-title): Fixed margin.
9658
9659 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
9660
9661         Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
9662         https://bugs.webkit.org/show_bug.cgi?id=101905
9663
9664         Reviewed by Vsevolod Vlasov.
9665
9666         Currently we use heuristics for detecting damaged model range upon DOM mutation.
9667         This change adds signals from the last selection and keyboard events in order to
9668         further improve the heuristics quality.
9669
9670         * inspector/front-end/DefaultTextEditor.js:
9671         (WebInspector.DefaultTextEditor):
9672         (WebInspector.DefaultTextEditor.EditInfo):
9673         (WebInspector.DefaultTextEditor.prototype._handleTextInput):
9674         (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
9675         (WebInspector.DefaultTextEditor.prototype.lastSelection):
9676         (WebInspector.DefaultTextEditor.prototype.wasShown):
9677         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
9678         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
9679         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
9680         (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
9681         (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
9682         * inspector/front-end/TextEditorModel.js:
9683         (WebInspector.TextRange.prototype.compareTo):
9684         (WebInspector.TextRange.prototype.shift):
9685         (WebInspector.TextEditorModel.endsWithBracketRegex.):
9686
9687 2012-11-14  Dan Carney  <dcarney@google.com>
9688
9689         [V8] use toV8Fast in all relevant Node getters
9690         https://bugs.webkit.org/show_bug.cgi?id=100851
9691
9692         Reviewed by Kentaro Hara.
9693
9694         The toV8Fast function for Node objects is now called in all getters
9695         instead of toV8.
9696
9697         No new tests. Test coverage extensive.
9698
9699         * bindings/scripts/CodeGeneratorV8.pm:
9700         (GenerateHeader):
9701         (GenerateNormalAttrGetter):
9702         (IsDOMNodeType):
9703         * bindings/scripts/test/V8/V8TestNode.h:
9704         (WebCore::toV8Fast):
9705
9706 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
9707
9708         Clean up use of adjustWindowRect
9709         https://bugs.webkit.org/show_bug.cgi?id=102072
9710
9711         Reviewed by Gyuyoung Kim.
9712
9713         Tested by fast/dom/Window/open-window-min-size.html
9714
9715         * loader/FrameLoader.cpp:
9716         (WebCore::createWindow):
9717
9718             Validate the window size here so that it is not just done for
9719             .open, but also for .showModalDialog. This is compatible with
9720             other browsers such as IE and Firefox (though IE > 6, enforces
9721             a minimum width of 250 instead of 100 as Firefox and us.)
9722
9723         * page/DOMWindow.cpp:
9724         (WebCore):
9725         (WebCore::DOMWindow::adjustWindowRect):
9726
9727             Make it a static method which only takes page. It was never
9728             called from anywhere without a valid page, so the page check
9729             has been turned into an assert, and two of the arguments have
9730             been removed as they can be accessed via the page.
9731
9732         (WebCore::DOMWindow::moveBy):
9733         (WebCore::DOMWindow::moveTo):
9734         (WebCore::DOMWindow::resizeBy):
9735         (WebCore::DOMWindow::resizeTo):
9736
9737             Update use of adjustWindowRect.
9738
9739         (WebCore::DOMWindow::open):
9740
9741             Avoid modifying the WindowFeatures as the WebCore::createWindow
9742             validates and adjusts the arguments.
9743
9744         * page/DOMWindow.h:
9745         (DOMWindow):
9746
9747 2012-11-14  Takashi Sakamoto  <tasak@google.com>
9748
9749         Crash when replacing parts of text inputs with content: url(...)
9750         https://bugs.webkit.org/show_bug.cgi?id=101133
9751
9752         Reviewed by Kent Tamura.
9753
9754         Disable directly setting content of elements in an input element's
9755         shadow dom tree, because the setting breaks input element's behavior.
9756
9757         Tests: fast/forms/number/number-content-url-crash.html
9758                fast/forms/search/search-content-url-crash.html
9759
9760         * css/html.css:
9761         (input::-webkit-textfield-decoration-container):
9762         Use important to disable overriding an input element's content
9763         property.
9764         * html/TextFieldInputType.cpp:
9765         (WebCore::TextFieldInputType::attach):
9766         Added ASSERTION. No content should be applied to
9767         input::-webkit-textfield-decoration-container.
9768
9769 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9770
9771         Unreviewed. Rebaselined run-bindings-tests results.
9772
9773         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
9774         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
9775         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
9776         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
9777         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
9778         (WebCore::V8TestOverloadedConstructors::wrapSlow):
9779
9780 2012-11-14  Anton Muhin  <antonm@chromium.org>
9781
9782         Provide return types for custom WebGLRenderingContext methods
9783         https://bugs.webkit.org/show_bug.cgi?id=100777
9784
9785         Reviewed by Kenneth Russell.
9786
9787         No new tests as doesn't change generated code.
9788
9789         * html/canvas/WebGLRenderingContext.idl:
9790
9791 2012-11-14  Kent Tamura  <tkent@chromium.org>
9792
9793         Support for localization tests of calendar picker
9794         https://bugs.webkit.org/show_bug.cgi?id=102181
9795
9796         Reviewed by Kentaro Hara.
9797
9798         Introduce DateTimeChooserParameters::locale to inform locale to
9799         DateTimeChooser implementations. However we pass defaultLanguage
9800         unless tests calls internals.settings.
9801         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
9802
9803         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
9804
9805         * html/HTMLInputElement.cpp:
9806         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9807         Set DateTimeChooserParameters::locale up.
9808         * platform/DateTimeChooser.h:
9809         (DateTimeChooserParameters): Add 'locale' member.
9810
9811 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9812
9813         Web Inspector: highlight is not updating as one edits CSS properties
9814         https://bugs.webkit.org/show_bug.cgi?id=102191
9815
9816         Reviewed by Alexander Pavlov.
9817
9818         We should update highlight upon layout / style recalculation.
9819
9820         * inspector/InspectorInstrumentation.cpp:
9821         (WebCore):
9822         (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
9823         * inspector/InspectorPageAgent.cpp:
9824         (WebCore::InspectorPageAgent::InspectorPageAgent):
9825         (WebCore::InspectorPageAgent::enable):
9826         (WebCore::InspectorPageAgent::disable):
9827         (WebCore::InspectorPageAgent::domContentEventFired):
9828         (WebCore::InspectorPageAgent::didPaint):
9829         (WebCore::InspectorPageAgent::didLayout):
9830         (WebCore::InspectorPageAgent::didScroll):
9831         (WebCore):
9832         (WebCore::InspectorPageAgent::didRecalculateStyle):
9833         * inspector/InspectorPageAgent.h:
9834
9835 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9836
9837         Unreviewed, rolling out r134566.
9838         http://trac.webkit.org/changeset/134566
9839         https://bugs.webkit.org/show_bug.cgi?id=102197
9840
9841         "it broke Chromium Android Release build" (Requested by
9842         haraken on #webkit).
9843
9844         * html/HTMLInputElement.cpp:
9845         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9846         * platform/DateTimeChooser.h:
9847         (DateTimeChooserParameters):
9848
9849 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
9850
9851         Web Inspector: No content available for requests made from flash
9852         https://bugs.webkit.org/show_bug.cgi?id=101560
9853
9854         Reviewed by Pavel Feldman.
9855
9856         Network request data is now saved to inspector cache in following cases:
9857          - Error status code;
9858          - No cached resource available;
9859          - Cached resource has ShouldNotBufferData option set.
9860         Drive-by: refactored didReceiveResponse logic to be clearer.
9861
9862         * inspector/InspectorResourceAgent.cpp:
9863         (WebCore::InspectorResourceAgent::didReceiveResponse):
9864         (WebCore::InspectorResourceAgent::didReceiveData):
9865         * loader/cache/CachedResource.h:
9866         (WebCore::CachedResource::shouldBufferData):
9867
9868 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
9869
9870         Changing pseudoClass (:target) should cause distribution
9871         https://bugs.webkit.org/show_bug.cgi?id=101699
9872
9873         Reviewed by Hajime Morita.
9874
9875         When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
9876         by consulting with SelectRuleFeatureSet.
9877
9878         We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
9879
9880         Test: fast/dom/shadow/pseudoclass-update-target.html
9881
9882         * dom/Document.cpp:
9883         (WebCore::Document::setCSSTarget):
9884         * dom/ElementShadow.cpp:
9885         (WebCore::invalidateParentDistributionIfNecessary):
9886         (WebCore):
9887         * dom/ElementShadow.h:
9888         (WebCore):
9889         * html/shadow/SelectRuleFeatureSet.h:
9890         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
9891         (SelectRuleFeatureSet):
9892
9893 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9894
9895         [V8] DOM wrapper objects should be collected in minor GC cycles
9896         https://bugs.webkit.org/show_bug.cgi?id=98725
9897
9898         Reviewed by Adam Barth.
9899
9900         Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
9901         have to survive two minor GC cycles, be promoted to the old space
9902         and wait for a heavy major GC cycle.
9903
9904         This patch enables V8 to collect DOM Nodes in minor GC cycles.
9905         For real world applications, I confirmed that minor GC cycles
9906         reclaims a substantial amount of memory (24 MB for Facebook,
9907         235 MB for Google Calendar) with acceptable overhead (~10 ms
9908         per minor GC cycle). No performance regression in Dromaeo
9909         DOM tests.
9910
9911         A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
9912         Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
9913         A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
9914
9915         * bindings/v8/IntrusiveDOMWrapperMap.h:
9916         (WebCore::IntrusiveDOMWrapperMap::set):
9917         * bindings/v8/V8DOMWindowShell.cpp:
9918         (WebCore::initializeV8IfNeeded):
9919         * bindings/v8/V8GCController.cpp:
9920         (WebCore):
9921         (WebCore::gcTree):
9922         (WebCore::V8GCController::newWrapperBorn):
9923         (WebCore::V8GCController::gcPrologue):
9924         (WebCore::V8GCController::minorGCPrologue):
9925         (WebCore::V8GCController::majorGCPrologue):
9926         (WebCore::V8GCController::gcEpilogue):
9927         (WebCore::V8GCController::minorGCEpilogue):
9928         (WebCore::V8GCController::majorGCEpilogue):
9929         * bindings/v8/V8GCController.h:
9930         (WebCore):
9931         (V8GCController):
9932         * bindings/v8/WorkerContextExecutionProxy.cpp:
9933         (WebCore::WorkerContextExecutionProxy::initIsolate):
9934         * dom/Element.cpp:
9935         (WebCore::Element::focus):
9936         * dom/Node.h:
9937         (WebCore::Node::inEden):
9938         (WebCore::Node::setEden):
9939         (Node):
9940
9941 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9942
9943         [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
9944         https://bugs.webkit.org/show_bug.cgi?id=101917
9945
9946         Reviewed by Adam Barth.
9947
9948         setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
9949         We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
9950         createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
9951
9952         No tests. No change in behavior.
9953
9954         * bindings/scripts/CodeGeneratorV8.pm:
9955         (GenerateConstructorCallback):
9956         (GenerateEventConstructorCallback):
9957         (GenerateNamedConstructorCallback):
9958         (GenerateToV8Converters):
9959         * bindings/v8/V8DOMWindowShell.cpp:
9960         (WebCore::V8DOMWindowShell::installDOMWindow):
9961         * bindings/v8/V8DOMWrapper.cpp:
9962         (WebCore::V8DOMWrapper::instantiateV8Object):
9963         * bindings/v8/V8DOMWrapper.h:
9964         (V8DOMWrapper):
9965         (WebCore::V8DOMWrapper::createDOMWrapper):
9966         * bindings/v8/WorkerContextExecutionProxy.cpp:
9967         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
9968         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
9969         (WebCore::V8ArrayBuffer::constructorCallback):
9970         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
9971         (WebCore::wrapArrayBufferView):
9972         (WebCore::constructWebGLArray):
9973         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
9974         (WebCore::V8DOMFormData::constructorCallback):
9975         * bindings/v8/custom/V8DataViewCustom.cpp:
9976         (WebCore::V8DataView::constructorCallback):
9977         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
9978         (WebCore::v8HTMLImageElementConstructorCallback):
9979         * bindings/v8/custom/V8IntentConstructor.cpp:
9980         (WebCore::V8Intent::constructorCallback):
9981         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
9982         (WebCore::V8MessageChannel::constructorCallback):
9983         * bindings/v8/custom/V8MutationObserverCustom.cpp:
9984         (WebCore::V8MutationObserver::constructorCallback):
9985         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
9986         (WebCore::V8WebKitPoint::constructorCallback):
9987         * bindings/v8/custom/V8WebSocketCustom.cpp:
9988         (WebCore::V8WebSocket::constructorCallback):
9989         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
9990         (WebCore::V8XMLHttpRequest::constructorCallback):
9991
9992 2012-11-14  Kent Tamura  <tkent@chromium.org>
9993
9994         Support for localization tests of calendar picker
9995         https://bugs.webkit.org/show_bug.cgi?id=102181
9996
9997         Reviewed by Kentaro Hara.
9998
9999         Introduce DateTimeChooserParameters::locale to inform locale to
10000         DateTimeChooser implementations. However we pass defaultLanguage
10001         unless tests calls internals.settings.
10002         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
10003
10004         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
10005
10006         * html/HTMLInputElement.cpp:
10007         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
10008         Set DateTimeChooserParameters::locale up.
10009         * platform/DateTimeChooser.h:
10010         (DateTimeChooserParameters): Add 'locale' member.
10011
10012 2012-11-14  Alexei Filippov  <alph@chromium.org>
10013
10014         Web Inspector: Show total memory in the NMI snapshot header
10015         https://bugs.webkit.org/show_bug.cgi?id=101922
10016
10017         Reviewed by Pavel Feldman.
10018
10019         * inspector/front-end/NativeMemorySnapshotView.js:
10020         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
10021         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
10022
10023 2012-11-14  Jan Keromnes  <janx@linux.com>
10024
10025         Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
10026         https://bugs.webkit.org/show_bug.cgi?id=102142
10027
10028         Reviewed by Pavel Feldman.
10029
10030         Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
10031
10032         * inspector/front-end/CodeMirrorTextEditor.js:
10033         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
10034
10035 2012-11-13  Kent Tamura  <tkent@chromium.org>
10036
10037         Use menulist-button instead of menulist for date/time input types
10038         https://bugs.webkit.org/show_bug.cgi?id=101886
10039
10040         Reviewed by Hajime Morita.
10041
10042         Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
10043         not menulist. We had better apply common one by default.
10044
10045         No new tests. Covered by fast/forms/*/*-appearance-*.html.
10046
10047         * css/html.css:
10048         (input[type="date"]): Switch menulist-button from menulist.
10049         (input[type="datetime"]): Ditto.
10050         (input[type="datetime-local"]): Ditto.
10051         (input[type="month"]): Ditto.
10052         (input[type="time"]): Ditto.
10053         (input[type="week"]): Ditto.
10054         (input::-webkit-date-and-time-value):
10055         Add top, right, bottom margins. The right margin is important when
10056         dir=rtl is specified.
10057         whitespace:pre is needed to align baseline in a case of empty values.
10058         * css/themeChromiumAndroid.css:
10059         Remove redundant style declaration.
10060         * css/themeWin.css:
10061         Remove padding adjustment for date/time input types. It is for
10062         textfields.
10063
10064 2012-11-13  Vincent Scheib  <scheib@chromium.org>
10065
10066         Remove RuntimeEnabledFeatures::isPointerLockEnabled.
10067         https://bugs.webkit.org/show_bug.cgi?id=102107
10068
10069         Reviewed by Adam Barth.
10070
10071         The runtime flag is always true now that the feature is enabled by default in Chromium.
10072
10073         * bindings/generic/RuntimeEnabledFeatures.cpp:
10074         (WebCore):
10075         * bindings/generic/RuntimeEnabledFeatures.h:
10076         (RuntimeEnabledFeatures):
10077         * dom/Document.idl:
10078         * dom/Element.idl:
10079         * dom/MouseEvent.idl:
10080
10081 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10082
10083         Web Inspector: JsDoc-annotate KeyboardShortcuts
10084         https://bugs.webkit.org/show_bug.cgi?id=101301
10085
10086         Reviewed by Pavel Feldman.
10087
10088         JsDoc-annotate KeyboardShortcuts to improve readability.
10089
10090         * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
10091         * inspector/front-end/KeyboardShortcut.js: Add annotations.
10092         * inspector/front-end/Panel.js: Make event parameter typed.
10093         * inspector/front-end/inspector.js: Ditto.
10094
10095 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10096
10097         Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
10098         https://bugs.webkit.org/show_bug.cgi?id=101907
10099
10100         Reviewed by Pavel Feldman.
10101
10102         Status bar control element should have common interface for
10103         easier management.
10104         In this patch getter/setter for StatusBarButton "disabled" are replaced
10105         with regular functions "enabled"/"setEnabled"; added "setEnabled"
10106         to StatusBarCombo; added new base class StatusBarItem with
10107         method "setEnabled" and member "element".
10108
10109         * inspector/front-end/CPUProfileView.js: Adopted refactoring.
10110         * inspector/front-end/DockController.js: Ditto.
10111         * inspector/front-end/ScriptsPanel.js: Ditto.
10112         * inspector/front-end/TimelinePanel.js: Ditto.
10113         * inspector/front-end/inspector.js: Ditto.
10114         * inspector/front-end/StatusBarButton.js:
10115         (WebInspector.StatusBarItem): Added.
10116         (WebInspector.StatusBarButton): Replaced getter/setter with
10117         regular functions.
10118         (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
10119
10120 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10121
10122         Web Inspector: Console: update tab/shift-tab shortcut description.
10123         https://bugs.webkit.org/show_bug.cgi?id=102175
10124
10125         Reviewed by Pavel Feldman.
10126
10127         For "Tab / Shift-Tab" it said "Next/previous suggestion".
10128         Actually, shift-tab to do nothing, and tab auto-completes common prefix.
10129
10130         * English.lproj/localizedStrings.js: Replaced string.
10131         * inspector/front-end/ConsoleView.js: Updated shortcut registration.
10132
10133 2012-11-13  Dana Jansens  <danakj@chromium.org>
10134
10135         [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
10136         https://bugs.webkit.org/show_bug.cgi?id=102130
10137
10138         Reviewed by James Robinson.
10139
10140         The current method of setting debug borders on GraphicsLayers requires
10141         every GraphicsLayerClient to set the value on the layer(s) it
10142         represents. This skips the NonCompositedContentHost as well as any
10143         other clients other than RenderLayerBacking - including layers from the
10144         inspector.
10145
10146         Instead, pass the debug border setting directly to the
10147         WebLayerTreeSettings where the compositor can use the flag to enable
10148         borders on all layers globally.
10149
10150         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
10151         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
10152         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
10153         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
10154         (WebCore::GraphicsLayerChromium::setupContentsLayer):
10155         * platform/graphics/chromium/GraphicsLayerChromium.h:
10156         (GraphicsLayerChromium):
10157
10158 2012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
10159
10160         Enable calendar picker for input types datetime/datetime-local
10161         https://bugs.webkit.org/show_bug.cgi?id=101889
10162
10163         Reviewed by Kent Tamura.
10164
10165         This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
10166         When a user choose a date from calendar picker, year/month/day fields of the input
10167         element are updated and hour/minute/second fields are unchanged.
10168
10169         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
10170                platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html
10171
10172         * Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
10173         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
10174         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
10175         If the given value is not valid for the element, try to parse it as a date string.
10176         * html/DateTimeInputType.cpp:
10177         (WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
10178         * html/DateTimeLocalInputType.cpp:
10179         (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
10180         * html/shadow/DateTimeEditElement.cpp:
10181         (WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
10182         (WebCore):
10183         * html/shadow/DateTimeEditElement.h:
10184         (DateTimeEditElement):
10185         * rendering/RenderThemeChromiumCommon.cpp:
10186         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.
10187
10188 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10189
10190         Unreviewed, rolling out r134524.
10191         http://trac.webkit.org/changeset/134524
10192         https://bugs.webkit.org/show_bug.cgi?id=102177
10193
10194         "Chromiium build broken" (Requested by haraken on #webkit).
10195
10196         * WebCore.gyp/WebCore.gyp:
10197         * WebCore.gypi:
10198         * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
10199         * rendering/RenderThemeChromiumFontProvider.h: Removed.
10200         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
10201         * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
10202         * rendering/RenderThemeChromiumSkia.cpp:
10203         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
10204         (WebCore::RenderThemeChromiumSkia::systemFont):
10205         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
10206         * rendering/RenderThemeChromiumSkia.h:
10207         (RenderThemeChromiumSkia):
10208         * rendering/RenderThemeChromiumWin.cpp:
10209         (WebCore):
10210         (WebCore::getNonClientMetrics):
10211         (WebCore::systemFontSize):
10212         (WebCore::pointsToPixels):
10213         (WebCore::RenderThemeChromiumWin::systemFont):
10214         (WebCore::RenderThemeChromiumWin::setDefaultFontSize):
10215         * rendering/RenderThemeChromiumWin.h:
10216         (RenderThemeChromiumWin):
10217
10218 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10219
10220         Fix compile warning [-Wsign-compare]
10221         https://bugs.webkit.org/show_bug.cgi?id=101458
10222
10223         Reviewed by Alexey Proskuryakov.
10224
10225         Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
10226         However, it leads -Wsign-compare compile warning.
10227         Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.
10228
10229         * platform/posix/SharedBufferPOSIX.cpp:
10230         (WebCore::SharedBuffer::createWithContentsOfFile):
10231
10232 2012-11-13  Keishi Hattori  <keishi@webkit.org>
10233
10234         Enable datalist UI for input types week and month
10235         https://bugs.webkit.org/show_bug.cgi?id=102041
10236
10237         Reviewed by Kent Tamura.
10238
10239         Enabling datalist UI for input types week and month.
10240
10241         No new tests. Tests will be added later in Bug 102039 and Bug 102040.
10242
10243         * rendering/RenderThemeChromiumCommon.cpp:
10244         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.
10245
10246 2012-11-13  Eberhard Graether  <egraether@google.com>
10247
10248         checkbox to toggle FPS counter in the inspector's settings
10249         https://bugs.webkit.org/show_bug.cgi?id=99660
10250
10251         Reviewed by Pavel Feldman.
10252
10253         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
10254
10255         No new tests.
10256
10257         * English.lproj/localizedStrings.js:
10258         * inspector/Inspector.json:
10259         * inspector/InspectorClient.h:
10260         (WebCore::InspectorClient::canShowFPSCounter):
10261         (WebCore::InspectorClient::setShowFPSCounter):
10262         (InspectorClient):
10263         * inspector/InspectorPageAgent.cpp:
10264         (PageAgentState):
10265         (WebCore::InspectorPageAgent::enable):
10266         (WebCore::InspectorPageAgent::disable):
10267         (WebCore::InspectorPageAgent::canShowFPSCounter):
10268         (WebCore):
10269         (WebCore::InspectorPageAgent::setShowFPSCounter):
10270         * inspector/InspectorPageAgent.h:
10271         * inspector/front-end/Settings.js:
10272         * inspector/front-end/SettingsScreen.js:
10273         (WebInspector.GenericSettingsTab):
10274         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
10275         * inspector/front-end/inspector.js:
10276         (WebInspector.doLoadedDone):
10277
10278 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
10279
10280         Collect necessary features for SelectRuleFeatureSet
10281         https://bugs.webkit.org/show_bug.cgi?id=102160
10282
10283         Reviewed by Dimitri Glazkov.
10284
10285         When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
10286         distribution, we would like to collect RuleFeature from select attributes.
10287
10288         According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
10289         indeterminate, link, target, and visited. We collect them in this patch.
10290
10291         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
10292
10293         * html/shadow/SelectRuleFeatureSet.cpp:
10294         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
10295         (WebCore::SelectRuleFeatureSet::add):
10296         (WebCore::SelectRuleFeatureSet::clear):
10297         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
10298         * html/shadow/SelectRuleFeatureSet.h:
10299         (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
10300         (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
10301         (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
10302         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
10303         (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
10304         (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
10305         (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
10306         (SelectRuleFeatureSet):
10307         (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
10308         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
10309         * testing/Internals.cpp:
10310         (WebCore::Internals::hasSelectorForPseudoClassInShadow):
10311         (WebCore):
10312         * testing/Internals.h:
10313         (Internals):
10314         * testing/Internals.idl:
10315
10316 2012-11-13  Andreas Kling  <kling@webkit.org>
10317
10318         Move inline style logic from ElementAttributeData to StyledElement.
10319         <http://webkit.org/b/102120>
10320
10321         Reviewed by Antti Koivisto.
10322
10323         Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
10324         No difference in behavior, just making ElementAttributeData dumber.
10325
10326         * css/StylePropertySet.cpp:
10327         * css/StylePropertySet.h:
10328         (WebCore::StylePropertySet::hasCSSOMWrapper):
10329         (WebCore::StylePropertySet::cssStyleDeclaration):
10330
10331             Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
10332             to instantiate a CSSOM wrapper unnecessarily.
10333
10334         * dom/StyledElement.h:
10335         (WebCore::StyledElement::inlineStyle):
10336         * dom/ElementAttributeData.cpp:
10337         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
10338         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
10339         (WebCore::ElementAttributeData::reportMemoryUsage):
10340         * dom/ElementAttributeData.h:
10341         (WebCore::ElementAttributeData::inlineStyle):
10342         (ElementAttributeData):
10343
10344             Renamed m_inlineStyleDecl to m_inlineStyle. Finally.
10345
10346         * dom/StyledElement.cpp:
10347         (WebCore::StyledElement::~StyledElement):
10348
10349             Detach the CSSOM wrapper from the inline style if there is one.
10350
10351         (WebCore::StyledElement::ensureMutableInlineStyle):
10352         (WebCore::StyledElement::style):
10353
10354             Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
10355             actually does. Update call sites accordingly.
10356
10357         (WebCore::StyledElement::inlineStyleCSSOMWrapper):
10358
10359             Added helper to get the CSSOM wrapper for the element's inline style if there is one.
10360
10361         (WebCore::StyledElement::styleAttributeChanged):
10362
10363             Do the work to parse/update/replace the inline style attribute here instead of
10364             in an ElementAttributeData method.
10365
10366         (WebCore::StyledElement::setInlineStyleProperty):
10367         (WebCore::StyledElement::removeInlineStyleProperty):
10368         (WebCore::StyledElement::removeAllInlineStyleProperties):
10369         * editing/ApplyStyleCommand.cpp:
10370         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
10371         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
10372         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
10373         * editing/ReplaceSelectionCommand.cpp:
10374         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
10375         * html/canvas/CanvasStyle.cpp:
10376         (WebCore::currentColor):
10377
10378             s/ensureInlineStyle/ensureMutableInlineStyle/
10379
10380 2012-11-13  Li Yin  <li.yin@intel.com>
10381
10382         fast/forms/file/input-file-write-files.html should cover correct setting value
10383         https://bugs.webkit.org/show_bug.cgi?id=100085
10384
10385         Reviewed by Kentaro Hara.
10386
10387         Fix the GObject and Objective C bindings comparibility issue. Preserving existing
10388         behavior for those may be important in idl.
10389
10390         No new tests, because fast/forms/file/input-file-value.html has covered it.
10391
10392         * html/HTMLInputElement.idl:
10393
10394 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10395
10396         [EFL] Fix build warning in NetworkStateNotifierEfl.cpp
10397         https://bugs.webkit.org/show_bug.cgi?id=102061
10398
10399         Reviewed by Gyuyoung Kim.
10400
10401         The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.
10402
10403         * platform/network/efl/NetworkStateNotifierEfl.cpp:
10404         (WebCore::readSocketCallback):
10405
10406 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
10407
10408         Don't mark scrolling contents as dirty if RenderLayerBacking is going away
10409         https://bugs.webkit.org/show_bug.cgi?id=101947
10410
10411         Reviewed by Simon Fraser.
10412
10413         When a scrolling contents graphics layer is created or destroyed, the
10414         associated graphics layer is marked as needing display because some of
10415         the painted content may have migrated between the primary graphics layer
10416         and the scrolling layer.
10417
10418         This causes a problem when the RenderLayerBacking is being destroyed,
10419         because setNeedsDisplay() needs to check from the compositor whether to
10420         track repaints or not. If the RenderLayerBacking is being destroyed, the
10421         value returned by compositor() is garbage and this causes a crash.
10422
10423         This patch fixes the problem by making RenderLayer::compositor() return a null
10424         pointer when the renderer no longer has a view.
10425
10426         Covered by existing layout tests in compositing/overflow/.
10427
10428         * rendering/RenderLayer.cpp:
10429         (WebCore::RenderLayer::compositor):
10430
10431 2012-11-13  Erik Arvidsson  <arv@chromium.org>
10432
10433         Update DOMException name: InvalidCharacterError
10434         https://bugs.webkit.org/show_bug.cgi?id=102128
10435
10436         Reviewed by Darin Adler.
10437
10438         Patch 5 of 25 to update DOMException name to match the spec and Firefox.
10439
10440         Updated existing tests.
10441
10442         * dom/DOMCoreException.cpp:
10443
10444 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10445
10446         IndexedDB: Run multiple tasks per transaction tick
10447         https://bugs.webkit.org/show_bug.cgi?id=97738
10448
10449         Reviewed by Tony Chang.
10450
10451         Process multiple tasks from the pending queue(s) when the timer fires. The
10452         task may initiate new tasks that change which queue is active (e.g. indexing
10453         operations) so the loop must re-check each tick which queue to use.
10454
10455         In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
10456         in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
10457
10458         No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
10459
10460         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
10461         (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
10462         (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
10463
10464 2012-11-13  Elliott Sprehn  <esprehn@chromium.org>
10465
10466         Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
10467         https://bugs.webkit.org/show_bug.cgi?id=102012
10468
10469         Reviewed by Ojan Vafai.
10470
10471         Previously if you modified the subtree that was being removed from a
10472         removeChild from inside an unload handler on an <iframe> inside the
10473         subtree you'd get an exception which is wrong. Instead we just need to
10474         disable all frame loading there.
10475
10476         This works because either the subtree will be removed and the frame never
10477         loading doesn't matter, or some section of the subtree that contains the
10478         frame will be moved to another part of the document which will cause the
10479         frame to load when it's inserted there.
10480
10481         I also added a check for <object> elements. It doesn't seem this is actually
10482         reachable in the existing code, but I'm not entirely sure since the frame
10483         loading and object/plugin handling is very confusing.
10484
10485         A better fix could be to repeatedly walk the subtree until all frames
10486         were disconnected or some iteration limit was hit and then force all leftover
10487         subframes to disconnect without firing unload handlers but this is such an
10488         edge case I don't think the complexity is necessary.
10489
10490         Test: fast/frames/modifications-in-subtree-unload.html
10491
10492         * dom/ContainerNodeAlgorithms.h:
10493         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
10494         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
10495         (ChildFrameDisconnector):
10496         (WebCore::ChildFrameDisconnector::disconnect):
10497         * dom/Node.cpp:
10498         (WebCore::checkAcceptChild): Removed exception.
10499         * html/HTMLFrameElementBase.cpp:
10500         (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
10501         * html/HTMLFrameOwnerElement.h:
10502         (SubframeLoadingDisabler):
10503         (WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
10504         (WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
10505         (WebCore::SubframeLoadingDisabler::canLoadFrame):
10506           Returns true if frames can be loaded in the subtree.
10507         (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
10508         * html/HTMLObjectElement.cpp:
10509         (WebCore::HTMLObjectElement::updateWidget):
10510           Check canLoadFrame(). I think this case is impossible, but it's better
10511           to be safe than sorry later.
10512
10513 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10514
10515         [V8] Add missing ENABLE(SVG) test in header
10516         https://bugs.webkit.org/show_bug.cgi?id=102143
10517
10518         Reviewed by Kentaro Hara.
10519
10520         Need to wrap the #include of a header that's only conditionally generated.
10521
10522         Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"
10523
10524         * bindings/v8/custom/V8ElementCustom.cpp:
10525
10526 2012-11-13  Jon Lee  <jonlee@apple.com>
10527
10528         Automatically run small plugins
10529         https://bugs.webkit.org/show_bug.cgi?id=102148
10530         <rdar://problem/12695560>
10531
10532         Reviewed by Darin Adler.
10533
10534         * rendering/RenderEmbeddedObject.h: Promote layout() to protected.
10535         * rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
10536         (WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
10537         If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
10538         display state to Playing. Assuming we will always layout before first paint, changing the state here
10539         should be safe.
10540         * rendering/RenderSnapshottedPlugIn.h:
10541
10542 2012-11-13  Kenneth Russell  <kbr@google.com>
10543
10544         Notify embedder of lost contexts and allow overriding of WebGL support
10545         https://bugs.webkit.org/show_bug.cgi?id=101826
10546
10547         Reviewed by Adam Barth.
10548
10549         Add hooks notifying the embedder when OpenGL contexts are lost and
10550         allowing overriding of WebGL support on a per-frame basis.
10551
10552         No tests yet; don't know how to test this solely within WebKit.
10553         Currently developing tests in the Chromium port exercising the
10554         notifications end-to-end. Once those are in place, I'm prepared to
10555         investigate adding tests for all ports.
10556
10557         * html/canvas/WebGLRenderingContext.cpp:
10558         (WebCore):
10559         (WebCore::WebGLRenderingContext::create):
10560           Check whether embedder vetoes creation of new WebGL contexts.
10561         (WebCore::WebGLRenderingContext::loseContextImpl):
10562           Notify embedder that context was lost.
10563         (WebCore::WebGLRenderingContext::maybeRestoreContext):
10564           Check whether embedder vetoes restoration of existing WebGL contexts.
10565         * loader/FrameLoaderClient.h:
10566         (FrameLoaderClient):
10567         (WebCore::FrameLoaderClient::allowWebGL):
10568         (WebCore::FrameLoaderClient::didLoseWebGLContext):
10569           Hooks notifying embedder of lost contexts and asking permission to run WebGL.
10570
10571 2012-11-13  Scott Violet  <sky@chromium.org>
10572
10573         [Chromium] Refactor theme font lookup into a factory
10574         https://bugs.webkit.org/show_bug.cgi?id=101949
10575
10576         Reviewed by Tony Chang.
10577
10578         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
10579
10580         No new tests. Refactoring only.
10581
10582         * WebCore.gyp/WebCore.gyp:
10583         * WebCore.gypi:
10584         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
10585         (WebCore):
10586         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
10587         * rendering/RenderThemeChromiumFontProvider.h: Added.
10588         (WTF):
10589         (WebCore):
10590         (RenderThemeChromiumFontProvider): This is the font related methods.
10591         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
10592         (WebCore):
10593         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
10594         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
10595         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
10596         (WebCore):
10597         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
10598         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
10599         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
10600         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
10601         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
10602         * rendering/RenderThemeChromiumSkia.cpp:
10603         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
10604         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
10605         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
10606         * rendering/RenderThemeChromiumSkia.h:
10607         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
10608         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
10609         (WebCore):
10610         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
10611         (RenderThemeChromiumWin):
10612
10613 2012-11-13  Alec Flett  <alecflett@chromium.org>
10614
10615         Add DOMRequestState to maintain world/ScriptExecutionContext state
10616         https://bugs.webkit.org/show_bug.cgi?id=102102
10617
10618         Reviewed by Adam Barth.
10619
10620         Introduce DOMRequestState, and convert IndexedDB over.
10621
10622         No new tests, this is an abstraction layer for existing code.
10623
10624         * Modules/indexeddb/IDBRequest.cpp:
10625         (WebCore::IDBRequest::IDBRequest):
10626         (WebCore::IDBRequest::onSuccess):
10627         (WebCore::IDBRequest::dispatchEvent):
10628         * Modules/indexeddb/IDBRequest.h:
10629         (IDBRequest):
10630         * WebCore.gypi:
10631         * bindings/v8/DOMRequestState.h: Added.
10632         (WebCore):
10633         (DOMRequestState):
10634         (WebCore::DOMRequestState::DOMRequestState):
10635         (Scope):
10636         (WebCore::DOMRequestState::Scope::Scope):
10637         (WebCore::DOMRequestState::scope):
10638
10639 2012-11-13  Robert Sesek  <rsesek@chromium.org>
10640
10641         Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
10642         https://bugs.webkit.org/show_bug.cgi?id=101634
10643
10644         Reviewed by Adam Barth.
10645
10646         This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
10647         into RenderThemeMacShared.
10648
10649         No new tests, just refactoring.
10650
10651         * WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
10652         * WebCore.gypi: Add RenderThemeMacShared.{h,mm}
10653         * WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
10654         * rendering/RenderThemeChromiumMac.h:
10655         * rendering/RenderThemeChromiumMac.mm:
10656         (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
10657         (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
10658         (WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
10659         * rendering/RenderThemeMac.h:
10660         (RenderThemeMac):
10661         * rendering/RenderThemeMac.mm:
10662         (WebCore):
10663         (WebCore::RenderTheme::themeForPage):
10664         (WebCore::RenderThemeMac::create):
10665         (WebCore::RenderThemeMac::RenderThemeMac):
10666         (WebCore::RenderThemeMac::~RenderThemeMac):
10667         (WebCore::RenderThemeMac::documentViewFor):
10668         (WebCore::mediaControllerTheme):
10669         (WebCore::RenderThemeMac::paintMediaSliderTrack):
10670         (WebCore::RenderThemeMac::paintMediaRewindButton):
10671         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
10672         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
10673         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
10674         (WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
10675         (WebCore::RenderThemeMac::extraFullScreenStyleSheet):
10676         * rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
10677         (WebCore):
10678         (RenderThemeMacShared):
10679         (WebCore::RenderThemeMacShared::supportsControlTints):
10680         (WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
10681         (WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
10682         (WebCore::RenderThemeMacShared::supportsClosedCaptioning):
10683         (WebCore::RenderThemeMacShared::updateActiveState):
10684         * rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
10685         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
10686         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
10687         (-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
10688         (WebCore):
10689         (WebCore::RenderThemeMacShared::RenderThemeMacShared):
10690         (WebCore::RenderThemeMacShared::~RenderThemeMacShared):
10691         (WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
10692         (WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
10693         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
10694         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
10695         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
10696         (WebCore::RenderThemeMacShared::platformFocusRingColor):
10697         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
10698         (WebCore::toFontWeight):
10699         (WebCore::RenderThemeMacShared::systemFont):
10700         (WebCore::convertNSColorToColor):
10701         (WebCore::menuBackgroundColor):
10702         (WebCore::RenderThemeMacShared::platformColorsDidChange):
10703         (WebCore::RenderThemeMacShared::systemColor):
10704         (WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
10705         (WebCore::RenderThemeMacShared::isControlStyled):
10706         (WebCore::RenderThemeMacShared::adjustRepaintRect):
10707         (WebCore::RenderThemeMacShared::inflateRect):
10708         (WebCore::RenderThemeMacShared::convertToPaintingRect):
10709         (WebCore::RenderThemeMacShared::updateCheckedState):
10710         (WebCore::RenderThemeMacShared::updateEnabledState):
10711         (WebCore::RenderThemeMacShared::updateFocusedState):
10712         (WebCore::RenderThemeMacShared::updatePressedState):
10713         (WebCore::RenderThemeMacShared::controlSupportsTints):
10714         (WebCore::RenderThemeMacShared::controlSizeForFont):
10715         (WebCore::RenderThemeMacShared::setControlSize):
10716         (WebCore::RenderThemeMacShared::sizeForFont):
10717         (WebCore::RenderThemeMacShared::sizeForSystemFont):
10718         (WebCore::RenderThemeMacShared::setSizeFromFont):
10719         (WebCore::RenderThemeMacShared::setFontFromControlSize):
10720         (WebCore::RenderThemeMacShared::controlSizeForSystemFont):
10721         (WebCore::RenderThemeMacShared::paintTextField):
10722         (WebCore::RenderThemeMacShared::adjustTextFieldStyle):
10723         (WebCore::RenderThemeMacShared::paintCapsLockIndicator):
10724         (WebCore::RenderThemeMacShared::paintTextArea):
10725         (WebCore::RenderThemeMacShared::adjustTextAreaStyle):
10726         (WebCore::RenderThemeMacShared::popupButtonMargins):
10727         (WebCore::RenderThemeMacShared::popupButtonSizes):
10728         (WebCore::RenderThemeMacShared::popupButtonPadding):
10729         (WebCore::RenderThemeMacShared::paintMenuList):
10730         (WebCore::RenderThemeMacShared::meterSizeForBounds):
10731         (WebCore::RenderThemeMacShared::paintMeter):
10732         (WebCore::RenderThemeMacShared::supportsMeter):
10733         (WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
10734         (WebCore::RenderThemeMacShared::levelIndicatorFor):
10735         (WebCore::RenderThemeMacShared::progressBarSizes):
10736         (WebCore::RenderThemeMacShared::progressBarMargins):
10737         (WebCore::RenderThemeMacShared::minimumProgressBarHeight):
10738         (WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
10739         (WebCore::RenderThemeMacShared::animationDurationForProgressBar):
10740         (WebCore::RenderThemeMacShared::adjustProgressBarStyle):
10741         (WebCore::RenderThemeMacShared::paintProgressBar):
10742         (WebCore::TopGradientInterpolate):
10743         (WebCore::BottomGradientInterpolate):
10744         (WebCore::MainGradientInterpolate):
10745         (WebCore::TrackGradientInterpolate):
10746         (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
10747         (WebCore::RenderThemeMacShared::paintMenuListButton):
10748         (WebCore::menuListButtonSizes):
10749         (WebCore::RenderThemeMacShared::adjustMenuListStyle):
10750         (WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
10751         (WebCore::RenderThemeMacShared::popupInternalPaddingRight):
10752         (WebCore::RenderThemeMacShared::popupInternalPaddingTop):
10753         (WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
10754         (WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
10755         (WebCore::RenderThemeMacShared::setPopupButtonCellState):
10756         (WebCore::RenderThemeMacShared::menuListSizes):
10757         (WebCore::RenderThemeMacShared::minimumMenuListSize):
10758         (WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
10759         (WebCore::RenderThemeMacShared::paintSliderTrack):
10760         (WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
10761         (WebCore::RenderThemeMacShared::paintSliderThumb):
10762         (WebCore::RenderThemeMacShared::paintSearchField):
10763         (WebCore::RenderThemeMacShared::setSearchCellState):
10764         (WebCore::RenderThemeMacShared::searchFieldSizes):
10765         (WebCore::RenderThemeMacShared::setSearchFieldSize):
10766         (WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
10767         (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
10768         (WebCore::RenderThemeMacShared::cancelButtonSizes):
10769         (WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
10770         (WebCore::RenderThemeMacShared::resultsButtonSizes):
10771         (WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
10772         (WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
10773         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
10774         (WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
10775         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
10776         (WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
10777         (WebCore::RenderThemeMacShared::sliderTickSize):
10778         (WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
10779         (WebCore::RenderThemeMacShared::adjustSliderThumbSize):
10780         (WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
10781         (WebCore::RenderThemeMacShared::popupButton):
10782         (WebCore::RenderThemeMacShared::search):
10783         (WebCore::RenderThemeMacShared::searchMenuTemplate):
10784         (WebCore::RenderThemeMacShared::sliderThumbHorizontal):
10785         (WebCore::RenderThemeMacShared::sliderThumbVertical):
10786         (WebCore::RenderThemeMacShared::textField):
10787         (WebCore::RenderThemeMacShared::fileListNameForWidth):
10788         (WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):
10789
10790 2012-11-13  Tab Atkins  <jackalmage@gmail.com>
10791
10792         CSS @charset parsing is too loose, doesn't match other browsers
10793         https://bugs.webkit.org/show_bug.cgi?id=101527
10794
10795         Reviewed by Alexey Proskuryakov.
10796
10797         Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
10798         IE and FF have changed to be strict about @charset parsing,
10799         as the CSS 2.1 spec requires.
10800         Since @charset use is very uncommon anyway,
10801         we should match the new behavior and the spec for platform consistency.
10802
10803         Test: fast/encoding/css-charset-evil/css-charset-evil.html
10804
10805         * loader/TextResourceDecoder.cpp:
10806         (WebCore::bytesEqual):
10807         (WebCore::TextResourceDecoder::checkForCSSCharset):
10808
10809 2012-11-13  Kenichi Ishibashi  <bashi@chromium.org>
10810
10811         [WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
10812         https://bugs.webkit.org/show_bug.cgi?id=101569
10813
10814         Reviewed by Alexey Proskuryakov.
10815
10816         Replace unpaired surrogates with replacing character (U+FFFD) when
10817         encoding text messages and close reasons. This change is aimed at
10818         following the changes on the WebSocket API specification.
10819
10820         Test: http/tests/websocket/tests/hybi/close-reason-too-long.html
10821
10822         * Modules/websockets/WebSocket.cpp:
10823         (WebCore::WebSocket::close):
10824         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10825         text message. Remove invalid utf-8 check.
10826         * Modules/websockets/WebSocketChannel.cpp:
10827         (WebCore::WebSocketChannel::send):
10828         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10829         close reason. Remove invalid utf-8 check.
10830
10831 2012-11-13  Christophe Dumez  <christophe.dumez@intel.com>
10832
10833         Make HTMLLegendElement.form behave according to specification
10834         https://bugs.webkit.org/show_bug.cgi?id=101044
10835
10836         Reviewed by Kent Tamura.
10837
10838         According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
10839         The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
10840         not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
10841         same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.
10842
10843         This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
10844         not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
10845         return the same value as the parent fieldset's form attribute.
10846
10847         Test: fast/forms/legend/legend-form.html
10848
10849         * html/HTMLLegendElement.cpp:
10850         (WebCore):
10851         (WebCore::HTMLLegendElement::virtualForm):
10852         * html/HTMLLegendElement.h:
10853         (HTMLLegendElement):
10854
10855 2012-11-13  Mark Lam  <mark.lam@apple.com>
10856
10857         Make an assertion in JSEventListener::jsFunction() more useful.
10858         https://bugs.webkit.org/show_bug.cgi?id=101985.
10859
10860         Reviewed by Geoffrey Garen.
10861
10862         The assertion was weakened in r134495. This strengthens it again.
10863
10864         No new tests.
10865
10866         * bindings/js/JSEventListener.h:
10867         (WebCore::JSEventListener::jsFunction):
10868
10869 2012-11-13  Dean Jackson  <dino@apple.com>
10870
10871         Support list of tracks in caption media controls
10872         https://bugs.webkit.org/show_bug.cgi?id=101669
10873
10874         Reviewed by Eric Carlson.
10875
10876         Attempt four of commit. The first two times caused build failures on Chromium. The third time
10877         crashed the Windows test bot. It's also been rebased since r134488.
10878
10879         Add some new elements to the media control shadow DOM that display the list of available
10880         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
10881         where it is given a very basic design. At the moment only the list of available tracks
10882         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
10883
10884         No new tests - this doesn't expose any testable surface.
10885
10886         * css/mediaControls.css: Added default rules that hide the new elements.
10887         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
10888         * html/shadow/MediaControlElements.cpp:
10889         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
10890         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
10891         (WebCore::MediaControlClosedCaptionsContainerElement::create):
10892         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
10893         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
10894         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
10895         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
10896         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
10897         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
10898         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
10899         * html/shadow/MediaControlElements.h:
10900         (MediaControlElement):
10901         (MediaControlToggleClosedCaptionsButtonElement):
10902         (MediaControlClosedCaptionsContainerElement):
10903         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
10904         * html/shadow/MediaControlsApple.cpp:
10905         (WebCore::MediaControlsApple::MediaControlsApple):
10906         (WebCore::MediaControlsApple::create): New track container and list elements created.
10907         (WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
10908         (WebCore::MediaControlsApple::hide):
10909         (WebCore::MediaControlsApple::makeTransparent):
10910         (WebCore::MediaControlsApple::reset):
10911         (WebCore::MediaControlsApple::reportedError):
10912         (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
10913         (WebCore):
10914         * html/shadow/MediaControlsApple.h:
10915         (MediaControlsApple):
10916         * html/shadow/MediaControlsChromium.cpp:
10917         (WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
10918         * html/shadow/MediaControls.h:
10919         (MediaControls):
10920         * platform/Language.cpp:
10921         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
10922         * platform/Language.h:
10923         (WebCore):
10924         * rendering/RenderMediaControls.cpp:
10925         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
10926         * rendering/RenderMediaControlsChromium.cpp:
10927         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
10928
10929 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
10930
10931         Unreviewed, rolling out r134377.
10932         http://trac.webkit.org/changeset/134377
10933         https://bugs.webkit.org/show_bug.cgi?id=101133
10934
10935         Caused a mysterious Android Clang build failure, needs
10936         investigation before landing again.
10937
10938         * css/html.css:
10939         (input::-webkit-textfield-decoration-container):
10940         * html/TextFieldInputType.cpp:
10941         (WebCore::TextFieldInputType::attach):
10942
10943 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10944
10945         Unreviewed, rolling out r134482.
10946         http://trac.webkit.org/changeset/134482
10947         https://bugs.webkit.org/show_bug.cgi?id=102140
10948
10949         The patch causes fast/regions/moved-content-node-crash.html to
10950         crash in Debug mode due to ASSERTION. (Requested by abucur on
10951         #webkit).
10952
10953         * rendering/InlineFlowBox.cpp:
10954         (SameSizeAsInlineFlowBox):
10955         * rendering/InlineFlowBox.h:
10956         (WebCore::InlineFlowBox::InlineFlowBox):
10957         (InlineFlowBox):
10958         * rendering/RenderBlock.cpp:
10959         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
10960         * rendering/RenderBlockLineLayout.cpp:
10961         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
10962         (WebCore::RenderBlock::linkToEndLineIfNeeded):
10963         (WebCore::RenderBlock::determineStartPosition):
10964         * rendering/RootInlineBox.cpp:
10965         (WebCore::RootInlineBox::RootInlineBox):
10966         * rendering/RootInlineBox.h:
10967         (WebCore):
10968         (WebCore::RootInlineBox::paginationStrut):
10969         (WebCore::RootInlineBox::setPaginationStrut):
10970         (WebCore::RootInlineBox::isFirstAfterPageBreak):
10971         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
10972         (WebCore::RootInlineBox::paginatedLineWidth):
10973         (WebCore::RootInlineBox::setPaginatedLineWidth):
10974         (RootInlineBox):
10975
10976 2012-11-13  Xianzhu Wang  <wangxianzhu@chromium.org>
10977
10978         Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
10979         https://bugs.webkit.org/show_bug.cgi?id=102108
10980
10981         Reviewed by Adam Barth.
10982
10983         No new tests. Fix clang build break.
10984
10985         * html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"
10986
10987 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
10988
10989         AX: MathML types need to be semantically identified in AX tree
10990         https://bugs.webkit.org/show_bug.cgi?id=101263
10991
10992         Reviewed by Beth Dakin.
10993
10994         Semantically identify various MathML elements within the AX tree. This will allow
10995         screen readers to identify math types so that equations can be output more accurately.
10996
10997         Test: platform/mac/accessibility/mathml-elements.html
10998
10999         * accessibility/AccessibilityObject.h:
11000         (AccessibilityObject):
11001         (WebCore::AccessibilityObject::isMathElement):
11002         (WebCore::AccessibilityObject::isMathFraction):
11003         (WebCore::AccessibilityObject::isMathFenced):
11004         (WebCore::AccessibilityObject::isMathSubscriptSuperscript):
11005         (WebCore::AccessibilityObject::isMathRow):
11006         (WebCore::AccessibilityObject::isMathUnderOver):
11007         (WebCore::AccessibilityObject::isMathRoot):
11008         (WebCore::AccessibilityObject::isMathSquareRoot):
11009         (WebCore::AccessibilityObject::isMathText):
11010         (WebCore::AccessibilityObject::isMathNumber):
11011         (WebCore::AccessibilityObject::isMathOperator):
11012         (WebCore::AccessibilityObject::isMathFenceOperator):
11013         (WebCore::AccessibilityObject::isMathSeparatorOperator):
11014         (WebCore::AccessibilityObject::isMathIdentifier):
11015         (WebCore::AccessibilityObject::isMathTable):
11016         (WebCore::AccessibilityObject::isMathTableRow):
11017         (WebCore::AccessibilityObject::isMathTableCell):
11018         (WebCore::AccessibilityObject::mathRadicandObject):
11019         (WebCore::AccessibilityObject::mathRootIndexObject):
11020         (WebCore::AccessibilityObject::mathUnderObject):
11021         (WebCore::AccessibilityObject::mathOverObject):
11022         (WebCore::AccessibilityObject::mathNumeratorObject):
11023         (WebCore::AccessibilityObject::mathDenominatorObject):
11024         (WebCore::AccessibilityObject::mathBaseObject):
11025         (WebCore::AccessibilityObject::mathSubscriptObject):
11026         (WebCore::AccessibilityObject::mathSuperscriptObject):
11027         (WebCore::AccessibilityObject::mathFencedOpenString):
11028         (WebCore::AccessibilityObject::mathFencedCloseString):
11029         * accessibility/AccessibilityRenderObject.cpp:
11030         (WebCore::startOfContinuations):
11031             Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
11032         (WebCore::AccessibilityRenderObject::textUnderElement):
11033             Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
11034         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
11035             Handle ignored cases for math elements
11036         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
11037         (WebCore::AccessibilityRenderObject::isMathElement):
11038         (WebCore::AccessibilityRenderObject::isMathFraction):
11039         (WebCore::AccessibilityRenderObject::isMathFenced):
11040         (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
11041         (WebCore::AccessibilityRenderObject::isMathRow):
11042         (WebCore::AccessibilityRenderObject::isMathUnderOver):
11043         (WebCore::AccessibilityRenderObject::isMathSquareRoot):
11044         (WebCore::AccessibilityRenderObject::isMathRoot):
11045         (WebCore::AccessibilityRenderObject::isMathOperator):
11046         (WebCore::AccessibilityRenderObject::isMathFenceOperator):
11047         (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
11048         (WebCore::AccessibilityRenderObject::isMathText):
11049         (WebCore::AccessibilityRenderObject::isMathNumber):
11050         (WebCore::AccessibilityRenderObject::isMathIdentifier):
11051         (WebCore::AccessibilityRenderObject::isMathTable):
11052         (WebCore::AccessibilityRenderObject::isMathTableRow):
11053         (WebCore::AccessibilityRenderObject::isMathTableCell):
11054         (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
11055             Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
11056         (WebCore::AccessibilityRenderObject::mathRadicandObject):
11057         (WebCore::AccessibilityRenderObject::mathRootIndexObject):
11058         (WebCore::AccessibilityRenderObject::mathNumeratorObject):
11059         (WebCore::AccessibilityRenderObject::mathDenominatorObject):
11060         (WebCore::AccessibilityRenderObject::mathUnderObject):
11061         (WebCore::AccessibilityRenderObject::mathOverObject):
11062         (WebCore::AccessibilityRenderObject::mathBaseObject):
11063         (WebCore::AccessibilityRenderObject::mathSubscriptObject):
11064         (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
11065         (WebCore::AccessibilityRenderObject::mathFencedOpenString):
11066         (WebCore::AccessibilityRenderObject::mathFencedCloseString):
11067         * accessibility/AccessibilityRenderObject.h:
11068         (AccessibilityRenderObject):
11069         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11070         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
11071         (createAccessibilityRoleMap):
11072         (-[WebAccessibilityObjectWrapper subrole]):
11073         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
11074         * rendering/mathml/RenderMathMLBlock.cpp:
11075         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
11076         * rendering/mathml/RenderMathMLBlock.h:
11077         (WebCore::RenderMathMLBlock::isRenderMathMLFenced):
11078         (WebCore::RenderMathMLBlock::isRenderMathMLFraction):
11079         (WebCore::RenderMathMLBlock::isRenderMathMLRoot):
11080         (WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
11081         (WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
11082         (WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
11083         (WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
11084         (WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
11085             Add ability to identify anonymous render blocks as items that AX should ignore.
11086         (RenderMathMLBlock):
11087         * rendering/mathml/RenderMathMLFenced.cpp:
11088         (WebCore::RenderMathMLFenced::createMathMLOperator):
11089             Identify which kind of math operator is being created on the fly (Fence or Separator)
11090         (WebCore::RenderMathMLFenced::makeFences):
11091         (WebCore::RenderMathMLFenced::addChild):
11092         * rendering/mathml/RenderMathMLFenced.h:
11093         (WebCore::RenderMathMLFenced::isRenderMathMLFenced):
11094         (RenderMathMLFenced):
11095         * rendering/mathml/RenderMathMLFraction.h:
11096         (WebCore::RenderMathMLFraction::isRenderMathMLFraction):
11097         * rendering/mathml/RenderMathMLOperator.cpp:
11098         (WebCore::RenderMathMLOperator::RenderMathMLOperator):
11099         (WebCore::RenderMathMLOperator::updateFromElement):
11100         (WebCore::RenderMathMLOperator::createGlyph):
11101              Mark anonymous render blocks as AX ignored.
11102         * rendering/mathml/RenderMathMLOperator.h:
11103         (WebCore::RenderMathMLOperator::setOperatorType):
11104         (WebCore::RenderMathMLOperator::operatorType):
11105         (RenderMathMLOperator):
11106         * rendering/mathml/RenderMathMLRoot.h:
11107         (WebCore::RenderMathMLRoot::isRenderMathMLRoot):
11108         * rendering/mathml/RenderMathMLSquareRoot.h:
11109         (WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
11110         * rendering/mathml/RenderMathMLSubSup.h:
11111         (WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
11112         * rendering/mathml/RenderMathMLUnderOver.h:
11113         (WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
11114         
11115 2012-11-13  Mark Lam  <mark.lam@apple.com>
11116
11117         JSEventListener should not access m_jsFunction when its wrapper is gone.
11118         https://bugs.webkit.org/show_bug.cgi?id=101985.
11119
11120         Reviewed by Geoffrey Garen.
11121
11122         Added a few null checks for m_wrapper before we do anything with m_jsFunction.
11123
11124         No new tests.
11125
11126         * bindings/js/JSEventListener.cpp:
11127         (WebCore::JSEventListener::initializeJSFunction):
11128         - Removed a now invalid assertion. m_wrapper is expected to have a
11129           valid non-zero value when jsFunction is valid. However, in the case
11130           of JSLazyEventListener (which extends JSEventListener), m_wrapper is
11131           initially 0 when m_jsFunction has not been realized yet. When
11132           JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
11133           it will set m_wrapper to an appropriate wrapper object.
11134
11135           For this reason, JSEventListener::jsFunction() cannot do the null
11136           check on m_wrapper until after the call to initializeJSFunction.
11137
11138           This, in turns, means that in the case of the non-lazy
11139           JSEventListener, initializeJSFunction() will also be called, and
11140           if the GC has collected the m_wrapper but the JSEventListener has
11141           not been removed yet, it is possible to see a null m_wrapper while
11142           m_jsFunction contains a non-zero stale value.
11143
11144           Hence, this assertion of (m_wrapper || !m_jsFunction) in
11145           JSEventListener::initializeJSFunction() is not always true and
11146           should be removed.
11147
11148         (WebCore::JSEventListener::visitJSFunction):
11149         (WebCore::JSEventListener::operator==):
11150         * bindings/js/JSEventListener.h:
11151         (WebCore::JSEventListener::jsFunction):
11152
11153 2012-11-13  Adam Barth  <abarth@webkit.org>
11154
11155         [V8] instantiateV8Object should encapulate the tricky creationContext logic
11156         https://bugs.webkit.org/show_bug.cgi?id=102117
11157
11158         Reviewed by Eric Seidel.
11159
11160         The logic around creationContext is tricky. Rather than putting the
11161         logic in the code generator, we can centralize the logic in
11162         instantiateV8Object.
11163
11164         This patch shouldn't have any behavior change.
11165
11166         * bindings/scripts/CodeGeneratorV8.pm:
11167         (GenerateToV8Converters):
11168         * bindings/v8/V8DOMWrapper.cpp:
11169         (V8WrapperInstantiationScope):
11170         (WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
11171         (WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
11172         (WebCore::V8WrapperInstantiationScope::context):
11173         (WebCore):
11174         (WebCore::V8DOMWrapper::instantiateV8Object):
11175         * bindings/v8/V8DOMWrapper.h:
11176         (V8DOMWrapper):
11177
11178 2012-11-13  Silvia Pfeiffer  <silviapf@chromium.org>
11179
11180         Clean up the inheritance tree under the MediaControls Class.
11181         https://bugs.webkit.org/show_bug.cgi?id=88871
11182
11183         Reviewed by Eric Carlson.
11184
11185         This patch removes code duplication between the Chromium and Safari
11186         media controls shadow DOMs.
11187         This is achieved by pulling common functions that are identical (or
11188         almost identical) between the different platforms into the base class.
11189         The derived classes are renamed based on their platform:
11190         - MediaControlRootElement                to MediaControlsApple.
11191         - MediaControlRootElementChromium        to MediaControlsChromium.
11192         - MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
11193         MediaControls is now no longer an abstract base class, but its "create"
11194         function is only implemented in the port-specific header file, so it's
11195         on purpose incomplete in the MediaControls.cpp file.
11196
11197         No new tests because this is refactoring work only.
11198
11199         * CMakeLists.txt:
11200           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11201         * GNUmakefile.list.am:
11202           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11203         * Target.pri:
11204           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11205         * WebCore.gypi:
11206           Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
11207         * WebCore.order:
11208           Rename MediaControlRootElement symbols to MediaControlsApple symbols.
11209         * WebCore.vcproj/WebCore.vcproj:
11210           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11211         * WebCore.xcodeproj/project.pbxproj:
11212           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11213         * html/shadow/MediaControlElements.cpp:
11214         (WebCore::MediaControlTimelineElement::defaultEventHandler):
11215           Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
11216           Rename updateTimeDisplay() to updateCurrentTimeDisplay().
11217         * html/shadow/MediaControls.cpp:
11218         (WebCore::MediaControls::MediaControls):
11219           Added initialization for media elements that all platform controls share.
11220         (WebCore):
11221           Removed include files that are already included in header file.
11222         (WebCore::MediaControls::setMediaController):
11223           Added controller assignment for media elements that all platform controls share.
11224         (WebCore::MediaControls::reset):
11225           Added resets for media elements that all platform controls share.
11226         (WebCore::MediaControls::reportedError):
11227           Added error handling for media elements that all platform controls share.
11228         (WebCore::MediaControls::loadedMetadata):
11229           Added default action for loadedMetadata event.
11230         (WebCore::MediaControls::show):
11231         (WebCore::MediaControls::hide):
11232         (WebCore::MediaControls::makeOpaque):
11233         (WebCore::MediaControls::makeTransparent):
11234         (WebCore::MediaControls::shouldHideControls):
11235         (WebCore::MediaControls::bufferingProgressed):
11236         (WebCore::MediaControls::playbackStarted):
11237         (WebCore::MediaControls::playbackProgressed):
11238         (WebCore::MediaControls::playbackStopped):
11239         (WebCore::MediaControls::updateCurrentTimeDisplay):
11240         (WebCore::MediaControls::showVolumeSlider):
11241         (WebCore::MediaControls::changedMute):
11242         (WebCore::MediaControls::changedVolume):
11243         (WebCore::MediaControls::changedClosedCaptionsVisibility):
11244         (WebCore::MediaControls::enteredFullscreen):
11245         (WebCore::MediaControls::exitedFullscreen):
11246         (WebCore::MediaControls::defaultEventHandler):
11247         (WebCore::MediaControls::hideFullscreenControlsTimerFired):
11248         (WebCore::MediaControls::startHideFullscreenControlsTimer):
11249         (WebCore::MediaControls::stopHideFullscreenControlsTimer):
11250         (WebCore::MediaControls::shadowPseudoId):
11251         (WebCore::MediaControls::containsRelatedTarget):
11252         (WebCore::MediaControls::createTextTrackDisplay):
11253         (WebCore::MediaControls::showTextTrackDisplay):
11254         (WebCore::MediaControls::hideTextTrackDisplay):
11255         (WebCore::MediaControls::updateTextTrackDisplay):
11256           Added default actions for all these media controls member functions.
11257         * html/shadow/MediaControls.h:
11258         (WebCore):
11259           Added include files and forward class declarations that all media controls share.
11260         (MediaControls):
11261           Make all pure virtual functions that have default implementations just virtual.
11262         (WebCore::MediaControls::updateStatusDisplay):
11263           Add an empty virtual updateStatusDisplay function which is used by media elements.
11264         * html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
11265           Reduced Apple-specific media control functions by relying on default implementations in the base class.
11266         * html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
11267           Reduced Apple-specific media control elements by relying on some elements in the base class.
11268         * html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
11269           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11270         * html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
11271           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11272         * html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
11273           Renamed class name and base class name.
11274         * html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
11275           Renamed class name and base class name.
11276         * rendering/RenderTheme.h:
11277         (WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
11278           Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.
11279
11280 2012-11-13  Benjamin Poulain  <benjamin@webkit.org>
11281
11282         CSSParser::setStyleSheet() should be inline
11283         https://bugs.webkit.org/show_bug.cgi?id=101829
11284
11285         Reviewed by Andreas Kling.
11286
11287         * css/CSSParser.cpp:
11288         * css/CSSParser.h:
11289         (WebCore::CSSParser::setStyleSheet):
11290         CSSParser::setStyleSheet() just assign a pointer, it does not even
11291         change a ref-count. The function should probably be in the header.
11292
11293 2012-11-13  Andrei Bucur  <abucur@adobe.com>
11294
11295         [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
11296         https://bugs.webkit.org/show_bug.cgi?id=101332
11297
11298         Reviewed by David Hyatt.
11299
11300         Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
11301         the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
11302         including a new member, the containing Region for the line.
11303         The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
11304         styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
11305         A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate
11306         the task of updating the containing Region to the block.
11307
11308         Tests: No new tests because there is no functional change.
11309
11310         * rendering/InlineFlowBox.cpp:
11311         (SameSizeAsInlineFlowBox):
11312         * rendering/InlineFlowBox.h:
11313         (WebCore::InlineFlowBox::InlineFlowBox):
11314         (InlineFlowBox):
11315         * rendering/RenderBlock.cpp:
11316         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
11317         * rendering/RenderBlockLineLayout.cpp:
11318         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
11319         (WebCore::RenderBlock::linkToEndLineIfNeeded):
11320         (WebCore::RenderBlock::determineStartPosition):
11321         * rendering/RootInlineBox.cpp:
11322         (WebCore::RootInlineBox::RootInlineBox):
11323         (WebCore::RootInlineBox::setContainingRegion):
11324         (WebCore):
11325         * rendering/RootInlineBox.h:
11326         (WebCore):
11327         (WebCore::RootInlineBox::paginationStrut):
11328         (WebCore::RootInlineBox::setPaginationStrut):
11329         (WebCore::RootInlineBox::isFirstAfterPageBreak):
11330         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
11331         (WebCore::RootInlineBox::paginatedLineWidth):
11332         (WebCore::RootInlineBox::setPaginatedLineWidth):
11333         (RootInlineBox):
11334         (WebCore::RootInlineBox::containingRegion):
11335         (WebCore::RootInlineBox::ensureLineFragmentationData):
11336         (LineFragmentationData):
11337         (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
11338
11339 2012-11-13  Milian Wolff  <milian.wolff@kdab.com>
11340
11341         [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
11342         https://bugs.webkit.org/show_bug.cgi?id=98038
11343
11344         Reviewed by Simon Hausmann.
11345
11346         Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.
11347
11348         * platform/graphics/OpenGLShims.cpp:
11349         (WebCore):
11350
11351 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11352
11353         WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
11354         https://bugs.webkit.org/show_bug.cgi?id=101616
11355
11356         Reviewed by Beth Dakin.
11357
11358         If the rowheader role is exposed because the element is not within a table, the mac platform
11359         should map that to a generic group.
11360
11361         Test: platform/mac/accessibility/rowheader-outside-table-role.html
11362
11363         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11364         (createAccessibilityRoleMap):
11365
11366 2012-11-13  Stephen White  <senorblanco@chromium.org>
11367
11368         [Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
11369         https://bugs.webkit.org/show_bug.cgi?id=101952
11370
11371         Reviewed by James Robinson.
11372
11373         With these changes, all of the css3/filters tests pass when the
11374         if-test in GraphicsLayerChromium::setFilters() is forced true (for
11375         now, it remains true only if there's a reference filter in the chain).
11376
11377         Covered by the css3/filters tests (when the switch is thrown in
11378         GraphicsLayerChromium::setFilters()).
11379
11380         * WebCore.gypi:
11381         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
11382         Drop to software rendering if there's a custom filter in the chain.
11383         This is the same as the WebFilterOperations path is doing.
11384         * platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
11385         * platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
11386         New implementation of drop-shadow filter; equivalent to
11387         the path in cc/render_surface_filters.cc.
11388         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
11389         Fix the sepia and grayscale filters (value was inverted).
11390
11391 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11392
11393         Unreviewed, rolling out r134442.
11394         http://trac.webkit.org/changeset/134442
11395         https://bugs.webkit.org/show_bug.cgi?id=102111
11396
11397         Does not compile on apple-mac (Requested by abarth on
11398         #webkit).
11399
11400         * CMakeLists.txt:
11401         * GNUmakefile.list.am:
11402         * Target.pri:
11403         * WebCore.gypi:
11404         * WebCore.vcproj/WebCore.vcproj:
11405         * WebCore.xcodeproj/project.pbxproj:
11406         * css/CSSCursorImageValue.cpp:
11407         (WebCore::CSSCursorImageValue::cachedImage):
11408         * css/CSSFontFaceSrcValue.cpp:
11409         (WebCore::CSSFontFaceSrcValue::cachedFont):
11410         * css/CSSImageSetValue.cpp:
11411         (WebCore::CSSImageSetValue::cachedImageSet):
11412         * css/CSSImageValue.cpp:
11413         (WebCore::CSSImageValue::cachedImage):
11414         * css/CSSImageValue.h:
11415         (WebCore):
11416         (CSSImageValue):
11417         * css/StyleResolver.cpp:
11418         (WebCore::StyleResolver::loadPendingImage):
11419         * css/StyleRuleImport.cpp:
11420         (WebCore::StyleRuleImport::requestStyleSheet):
11421         * css/WebKitCSSSVGDocumentValue.cpp:
11422         (WebCore::WebKitCSSSVGDocumentValue::load):
11423         * css/WebKitCSSShaderValue.cpp:
11424         (WebCore::WebKitCSSShaderValue::cachedShader):
11425         * dom/ScriptElement.cpp:
11426         (WebCore::ScriptElement::requestScript):
11427         * html/HTMLLinkElement.cpp:
11428         (WebCore::HTMLLinkElement::process):
11429         * html/parser/CSSPreloadScanner.cpp:
11430         (WebCore::CSSPreloadScanner::emitRule):
11431         * html/parser/CSSPreloadScanner.h:
11432         (CSSPreloadScanner):
11433         * html/parser/HTMLPreloadScanner.cpp:
11434         (WebCore::PreloadTask::preload):
11435         * loader/ImageLoader.cpp:
11436         (WebCore::ImageLoader::updateFromElement):
11437         * loader/cache/CachedResourceLoader.cpp:
11438         (WebCore::CachedResourceLoader::requestImage):
11439         (WebCore::CachedResourceLoader::requestResource):
11440         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11441         (WebCore):
11442         (WebCore::CachedResourceLoader::preload):
11443         * loader/cache/CachedResourceLoader.h:
11444         (WebCore):
11445         (CachedResourceLoader):
11446         * loader/cache/CachedResourceRequest.cpp:
11447         (WebCore::CachedResourceRequest::CachedResourceRequest):
11448         * loader/cache/CachedResourceRequest.h:
11449         (CachedResourceRequest):
11450         (WebCore::CachedResourceRequest::defer):
11451         (WebCore::CachedResourceRequest::setDefer):
11452         * loader/cache/CachedResourceRequestInitiators.cpp: Removed.
11453         * loader/cache/CachedResourceRequestInitiators.h: Removed.
11454         * loader/icon/IconLoader.cpp:
11455         (WebCore::IconLoader::startLoading):
11456         * platform/ThreadGlobalData.cpp:
11457         (WebCore::ThreadGlobalData::ThreadGlobalData):
11458         * platform/ThreadGlobalData.h:
11459         (ThreadGlobalData):
11460         * svg/SVGFEImageElement.cpp:
11461         (WebCore::SVGFEImageElement::requestImageResource):
11462         * svg/SVGFontFaceUriElement.cpp:
11463         (WebCore::SVGFontFaceUriElement::loadFont):
11464         * svg/SVGUseElement.cpp:
11465         (WebCore::SVGUseElement::svgAttributeChanged):
11466
11467 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11468
11469         AX: file upload input text value is not exposed through accessibility
11470         https://bugs.webkit.org/show_bug.cgi?id=100583
11471
11472         Reviewed by Beth Dakin.
11473
11474         This is a hard problem to solve on the Mac because there are three pieces of information
11475              1) The type of button 2) The text on the button 3) The text for the value.
11476         I think the best compromise is to label this as a file upload button type in the role description, 
11477         and then expose the file path text as the AXTitle. 
11478         This will give the more relevant information and should be clear what is happening.
11479
11480         Test: platform/mac/accessibility/file-upload-button-subrole.html
11481
11482         * English.lproj/Localizable.strings:
11483         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11484         (-[WebAccessibilityObjectWrapper subrole]):
11485         (-[WebAccessibilityObjectWrapper roleDescription]):
11486         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
11487         * platform/LocalizedStrings.cpp:
11488         (WebCore::AXFileUploadButtonText):
11489         * platform/LocalizedStrings.h:
11490
11491 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11492
11493         Unreviewed, rolling out r133944.
11494         http://trac.webkit.org/changeset/133944
11495         https://bugs.webkit.org/show_bug.cgi?id=102118
11496
11497         Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
11498         #webkit).
11499
11500         * bindings/scripts/CodeGeneratorV8.pm:
11501         (GenerateFunctionCallback):
11502         (GenerateParametersCheck):
11503         (GenerateSingleConstructorCallback):
11504         (GenerateNamedConstructorCallback):
11505         (TypeCanFailConversion):
11506         * dom/Element.cpp:
11507         (WebCore::Element::setAttributeNode):
11508         (WebCore::Element::removeAttributeNode):
11509         * dom/Element.idl:
11510
11511 2012-11-13  Adam Barth  <abarth@webkit.org>
11512
11513         Unreviewed.
11514
11515         Update run-bindings-tests results.
11516
11517         * bindings/scripts/test/V8/V8Float64Array.cpp:
11518         (WebCore::V8Float64Array::dispatchWrapCustom):
11519         (WebCore::V8Float64Array::wrapSlow):
11520         * bindings/scripts/test/V8/V8Float64Array.h:
11521         (WebCore::V8Float64Array::toNative):
11522         (V8Float64Array):
11523         (WebCore):
11524         (WebCore::dispatchWrap):
11525         (WebCore::toV8Object):
11526         (WebCore::toV8):
11527         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
11528         (WebCore::V8TestActiveDOMObject::wrapSlow):
11529         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
11530         (WebCore::V8TestActiveDOMObject::toNative):
11531         (V8TestActiveDOMObject):
11532         (WebCore):
11533         (WebCore::dispatchWrap):
11534         (WebCore::toV8Object):
11535         (WebCore::toV8):
11536         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
11537         (WebCore::V8TestCustomNamedGetter::wrapSlow):
11538         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
11539         (WebCore::V8TestCustomNamedGetter::toNative):
11540         (V8TestCustomNamedGetter):
11541         (WebCore):
11542         (WebCore::dispatchWrap):
11543         (WebCore::toV8Object):
11544         (WebCore::toV8):
11545         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
11546         (WebCore::V8TestEventConstructor::wrapSlow):
11547         * bindings/scripts/test/V8/V8TestEventConstructor.h:
11548         (WebCore::V8TestEventConstructor::toNative):
11549         (V8TestEventConstructor):
11550         (WebCore):
11551         (WebCore::dispatchWrap):
11552         (WebCore::toV8Object):
11553         (WebCore::toV8):
11554         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
11555         (WebCore::V8TestEventTarget::wrapSlow):
11556         * bindings/scripts/test/V8/V8TestEventTarget.h:
11557         (WebCore::V8TestEventTarget::toNative):
11558         (V8TestEventTarget):
11559         (WebCore):
11560         (WebCore::dispatchWrap):
11561         (WebCore::toV8Object):
11562         (WebCore::toV8):
11563         * bindings/scripts/test/V8/V8TestException.cpp:
11564         (WebCore::V8TestException::wrapSlow):
11565         * bindings/scripts/test/V8/V8TestException.h:
11566         (WebCore::V8TestException::toNative):
11567         (V8TestException):
11568         (WebCore):
11569         (WebCore::dispatchWrap):
11570         (WebCore::toV8Object):
11571         (WebCore::toV8):
11572         * bindings/scripts/test/V8/V8TestInterface.cpp:
11573         (WebCore::V8TestInterface::wrapSlow):
11574         * bindings/scripts/test/V8/V8TestInterface.h:
11575         (WebCore::V8TestInterface::toNative):
11576         (V8TestInterface):
11577         (WebCore):
11578         (WebCore::dispatchWrap):
11579         (WebCore::toV8Object):
11580         (WebCore::toV8):
11581         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
11582         (WebCore::V8TestMediaQueryListListener::wrapSlow):
11583         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
11584         (WebCore::V8TestMediaQueryListListener::toNative):
11585         (V8TestMediaQueryListListener):
11586         (WebCore):
11587         (WebCore::dispatchWrap):
11588         (WebCore::toV8Object):
11589         (WebCore::toV8):
11590         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
11591         (WebCore::V8TestNamedConstructor::wrapSlow):
11592         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
11593         (WebCore::V8TestNamedConstructor::toNative):
11594         (V8TestNamedConstructor):
11595         (WebCore):
11596         (WebCore::dispatchWrap):
11597         (WebCore::toV8Object):
11598         (WebCore::toV8):
11599         * bindings/scripts/test/V8/V8TestNode.cpp:
11600         (WebCore::V8TestNode::wrapSlow):
11601         * bindings/scripts/test/V8/V8TestNode.h:
11602         (WebCore::V8TestNode::toNative):
11603         (V8TestNode):
11604         (WebCore):
11605         (WebCore::dispatchWrap):
11606         (WebCore::toV8Object):
11607         (WebCore::toV8):
11608         (WebCore::toV8Fast):
11609         * bindings/scripts/test/V8/V8TestObj.cpp:
11610         (WebCore::V8TestObj::wrapSlow):
11611         * bindings/scripts/test/V8/V8TestObj.h:
11612         (WebCore::V8TestObj::toNative):
11613         (V8TestObj):
11614         (WebCore):
11615         (WebCore::dispatchWrap):
11616         (WebCore::toV8Object):
11617         (WebCore::toV8):
11618         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
11619         (WebCore::V8TestOverloadedConstructors::wrapSlow):
11620         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
11621         (WebCore::V8TestOverloadedConstructors::toNative):
11622         (V8TestOverloadedConstructors):
11623         (WebCore):
11624         (WebCore::dispatchWrap):
11625         (WebCore::toV8Object):
11626         (WebCore::toV8):
11627         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
11628         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
11629         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
11630         (WebCore::V8TestSerializedScriptValueInterface::toNative):
11631         (V8TestSerializedScriptValueInterface):
11632         (WebCore):
11633         (WebCore::dispatchWrap):
11634         (WebCore::toV8Object):
11635         (WebCore::toV8):
11636
11637 2012-11-13  Adam Barth  <abarth@webkit.org>
11638
11639         Unreviewed.
11640
11641         Speculative build fix for Qt.
11642
11643         * dom/make_names.pl:
11644         (printWrapperFactoryCppFile):
11645
11646 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
11647
11648         Allow painting outside overflow clip in accelerated scrolling layers
11649         https://bugs.webkit.org/show_bug.cgi?id=100524
11650
11651         Reviewed by Simon Fraser.
11652
11653         In preparation for avoiding repaints when scrolling child layers, make it
11654         possible to paint outside the overflow clip.
11655
11656         Test: compositing/overflow/updating-scrolling-content.html
11657
11658         * rendering/LayoutState.h:
11659         (LayoutState):
11660         * rendering/RenderBlock.cpp:
11661         (WebCore::RenderBlock::paint):
11662         * rendering/RenderBox.cpp:
11663         (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
11664         * rendering/RenderLayer.cpp:
11665         (WebCore::RenderLayer::repaintBlockSelectionGaps):
11666
11667 2012-11-13  Patrick Gansterer  <paroga@webkit.org>
11668
11669         Port SimpleFontDataWin.cpp to WinCE
11670         https://bugs.webkit.org/show_bug.cgi?id=97889
11671
11672         Reviewed by Brent Fulgham.
11673
11674         Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too in a next step.
11675         Also cleaned up the include headers.
11676
11677         * platform/graphics/win/SimpleFontDataWin.cpp:
11678         (WebCore::SimpleFontData::initGDIFont):
11679         (WebCore::SimpleFontData::platformDestroy):
11680         (WebCore::SimpleFontData::boundsForGDIGlyph):
11681         (WebCore):
11682         (WebCore::SimpleFontData::widthForGDIGlyph):
11683
11684 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
11685
11686         Web Inspector: [Chromium] move spectrum.css into the standalone css files group.
11687
11688         Not reviewed: moved css file in gypi.
11689
11690         * WebCore.gypi:
11691
11692 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11693
11694         Unreviewed, rolling out r134434.
11695         http://trac.webkit.org/changeset/134434
11696         https://bugs.webkit.org/show_bug.cgi?id=102072
11697
11698         The test that was added asserts in loader.
11699
11700         * loader/FrameLoader.cpp:
11701         (WebCore::createWindow):
11702         * page/DOMWindow.cpp:
11703         (WebCore):
11704         (WebCore::DOMWindow::adjustWindowRect):
11705         (WebCore::DOMWindow::moveBy):
11706         (WebCore::DOMWindow::moveTo):
11707         (WebCore::DOMWindow::resizeBy):
11708         (WebCore::DOMWindow::resizeTo):
11709         (WebCore::DOMWindow::open):
11710         (WebCore::DOMWindow::showModalDialog):
11711         * page/DOMWindow.h:
11712         (DOMWindow):
11713
11714 2012-11-13  Dan Carney  <dcarney@google.com>
11715
11716         [V8] More efficient wrapper dispatch
11717         https://bugs.webkit.org/show_bug.cgi?id=102082
11718
11719         Reviewed by Adam Barth.
11720
11721         Dispatching a call to V8Whatever::wrap involved a chain
11722         of calls, each of which checked its wrapper cache.
11723         This refactor gives calls only 2 choices of functions to call:
11724         toV8 and toV8Object instead of wrap. wrap has been renamed to
11725         dispatchWrap and no longer contains cache checks.
11726         Additionally, classes which require a custom toV8 function
11727         have had all wrapping and caching calls removed, as they could
11728         not have been accessed.
11729
11730         No new tests. Sufficiently covered.
11731
11732         * Modules/indexeddb/IDBAny.idl:
11733         * Modules/indexeddb/IDBKey.idl:
11734         * WebCore.gypi:
11735         * bindings/scripts/CodeGeneratorV8.pm:
11736         (GenerateHeader):
11737         (GenerateNormalAttrGetter):
11738         (GenerateImplementation):
11739         (GenerateToV8Converters):
11740         * bindings/scripts/IDLAttributes.txt:
11741         * bindings/v8/SerializedScriptValue.cpp:
11742         * bindings/v8/custom/V8BlobCustom.cpp:
11743         (WebCore::V8Blob::dispatchWrapCustom):
11744         * bindings/v8/custom/V8CSSRuleCustom.cpp:
11745         (WebCore::V8CSSRule::dispatchWrapCustom):
11746         * bindings/v8/custom/V8CSSValueCustom.cpp:
11747         (WebCore::V8CSSValue::dispatchWrapCustom):
11748         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
11749         (WebCore::V8CanvasRenderingContext::dispatchWrapCustom):
11750         * bindings/v8/custom/V8DataViewCustom.cpp:
11751         (WebCore):
11752         (WebCore::V8DataView::dispatchWrapCustom):
11753         * bindings/v8/custom/V8DocumentCustom.cpp:
11754         (WebCore::V8Document::dispatchWrapCustom):
11755         * bindings/v8/custom/V8ElementCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8PerformanceEntryCustom.cpp.
11756         (WebCore):
11757         (WebCore::V8Element::dispatchWrapCustom):
11758         * bindings/v8/custom/V8EntryCustom.cpp:
11759         (WebCore::V8Entry::dispatchWrapCustom):
11760         * bindings/v8/custom/V8EntrySyncCustom.cpp:
11761         (WebCore::V8EntrySync::dispatchWrapCustom):
11762         * bindings/v8/custom/V8EventCustom.cpp:
11763         (WebCore):
11764         (WebCore::V8Event::dispatchWrapCustom):
11765         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
11766         (WebCore::V8HTMLCollection::dispatchWrapCustom):
11767         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
11768         (WebCore::V8HTMLDocument::dispatchWrapCustom):
11769         * bindings/v8/custom/V8HTMLElementCustom.cpp:
11770         (WebCore::V8HTMLElement::dispatchWrapCustom):
11771         * bindings/v8/custom/V8ImageDataCustom.cpp:
11772         (WebCore::V8ImageData::dispatchWrapCustom):
11773         * bindings/v8/custom/V8NodeCustom.cpp:
11774         (WebCore::V8Node::dispatchWrapCustom):
11775         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
11776         (WebCore::V8PerformanceEntry::dispatchWrapCustom):
11777         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
11778         (WebCore::V8SVGDocument::dispatchWrapCustom):
11779         * bindings/v8/custom/V8SVGElementCustom.cpp:
11780         (WebCore::V8SVGElement::dispatchWrapCustom):
11781         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
11782         (WebCore::V8SVGPathSeg::dispatchWrapCustom):
11783         * bindings/v8/custom/V8StyleSheetCustom.cpp:
11784         (WebCore::V8StyleSheet::dispatchWrapCustom):
11785         * dom/Element.idl:
11786         * dom/make_names.pl:
11787         (printWrapperFunctions):
11788         (printWrapperFactoryCppFile):
11789         (printWrapperFactoryHeaderFile):
11790         * html/MicroDataItemValue.idl:
11791         * inspector/ScriptProfile.idl:
11792         * inspector/ScriptProfileNode.idl:
11793         * page/DOMWindow.idl:
11794         * workers/WorkerContext.idl:
11795
11796 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11797
11798         Unreviewed, rolling out r134367.
11799         http://trac.webkit.org/changeset/134367
11800         https://bugs.webkit.org/show_bug.cgi?id=100738
11801
11802         Speculative rollout, could have cause Dromaeo setAttribute
11803         perf regression.
11804
11805         * dom/Element.cpp:
11806         (WebCore::Element::attributeChanged):
11807         (WebCore::checkNeedsStyleInvalidationForClassChange):
11808         (WebCore::Element::classAttributeChanged):
11809
11810 2012-11-13  Marja Hölttä  <marja@chromium.org>
11811
11812         Add initiator to CachedResourceRequest.
11813         https://bugs.webkit.org/show_bug.cgi?id=101935
11814
11815         Reviewed by Adam Barth.
11816
11817         Motivation: Chromium needs to know which elements request a
11818         resource (such as an image or a script) (bug 92761). In addition,
11819         for exposing resource timing information (bug 84883) we need to
11820         store the initiator, and this is the first step towards it.
11821
11822         No new tests: No visible change in behavior.
11823
11824         * CMakeLists.txt:
11825         * GNUmakefile.list.am:
11826         * Target.pri:
11827         * WebCore.gypi:
11828         * WebCore.vcproj/WebCore.vcproj:
11829         * WebCore.xcodeproj/project.pbxproj:
11830         * css/CSSCrossfadeValue.cpp:
11831         (WebCore::cachedImageForCSSValue):
11832         * css/CSSCursorImageValue.cpp:
11833         (WebCore::CSSCursorImageValue::cachedImage):
11834         * css/CSSFontFaceSrcValue.cpp:
11835         (WebCore::CSSFontFaceSrcValue::cachedFont):
11836         * css/CSSImageSetValue.cpp:
11837         (WebCore::CSSImageSetValue::cachedImageSet):
11838         * css/CSSImageValue.cpp:
11839         (WebCore::CSSImageValue::cachedImage):
11840         * css/CSSImageValue.h:
11841         (WebCore):
11842         (CSSImageValue):
11843         * css/StyleResolver.cpp:
11844         (WebCore::StyleResolver::loadPendingImage):
11845         * css/StyleRuleImport.cpp:
11846         (WebCore::StyleRuleImport::requestStyleSheet):
11847         * css/WebKitCSSSVGDocumentValue.cpp:
11848         (WebCore::WebKitCSSSVGDocumentValue::load):
11849         * css/WebKitCSSShaderValue.cpp:
11850         (WebCore::WebKitCSSShaderValue::cachedShader):
11851         * dom/ScriptElement.cpp:
11852         (WebCore::ScriptElement::requestScript):
11853         * html/HTMLLinkElement.cpp:
11854         (WebCore::HTMLLinkElement::process):
11855         * html/parser/CSSPreloadScanner.cpp:
11856         (WebCore::CSSPreloadScanner::emitRule):
11857         * html/parser/CSSPreloadScanner.h:
11858         (CSSPreloadScanner):
11859         * html/parser/HTMLPreloadScanner.cpp:
11860         (WebCore::PreloadTask::preload):
11861         * loader/ImageLoader.cpp:
11862         (WebCore::ImageLoader::updateFromElement):
11863         * loader/cache/CachedResourceLoader.cpp:
11864         (WebCore::CachedResourceLoader::requestImage):
11865         (WebCore::CachedResourceLoader::requestResource):
11866         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11867         (WebCore):
11868         (WebCore::CachedResourceLoader::preload):
11869         * loader/cache/CachedResourceLoader.h:
11870         (WebCore):
11871         (CachedResourceLoader):
11872         * loader/cache/CachedResourceRequest.cpp:
11873         (WebCore::CachedResourceRequest::CachedResourceRequest):
11874         (WebCore):
11875         (WebCore::CachedResourceRequest::~CachedResourceRequest):
11876         (WebCore::CachedResourceRequest::setInitiator):
11877         (WebCore::CachedResourceRequest::initiatorName):
11878         (WebCore::CachedResourceRequest::initiatorDocument):
11879         (WebCore::CachedResourceRequest::initiatorElement):
11880         * loader/cache/CachedResourceRequest.h:
11881         (WebCore):
11882         (WebCore::CachedResourceRequest::setOptions):
11883         (WebCore::CachedResourceRequest::defer):
11884         (WebCore::CachedResourceRequest::setDefer):
11885         (CachedResourceRequest):
11886         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11887         (WebCore):
11888         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
11889         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11890         (WebCore):
11891         (CachedResourceRequestInitiators):
11892         (WebCore::cachedResourceRequestInitiators):
11893         * loader/icon/IconLoader.cpp:
11894         (WebCore::IconLoader::startLoading):
11895         * platform/ThreadGlobalData.cpp:
11896         (WebCore::ThreadGlobalData::ThreadGlobalData):
11897         * platform/ThreadGlobalData.h:
11898         (WebCore):
11899         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
11900         (ThreadGlobalData):
11901         * svg/SVGFEImageElement.cpp:
11902         (WebCore::SVGFEImageElement::requestImageResource):
11903         * svg/SVGFontFaceUriElement.cpp:
11904         (WebCore::SVGFontFaceUriElement::loadFont):
11905         * svg/SVGUseElement.cpp:
11906         (WebCore::SVGUseElement::svgAttributeChanged):
11907
11908 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11909
11910         Unreviewed, rolling out r134345.
11911         http://trac.webkit.org/changeset/134345
11912         https://bugs.webkit.org/show_bug.cgi?id=102106
11913
11914         Incomplete support for NATIVE_TYPE_ERR in objc and other
11915         bindings (Requested by jsbell on #webkit).
11916
11917         * Modules/mediastream/MediaConstraintsImpl.cpp:
11918         (WebCore::MediaConstraintsImpl::create):
11919         * Modules/mediastream/MediaStreamTrackList.cpp:
11920         (WebCore::MediaStreamTrackList::add):
11921         (WebCore::MediaStreamTrackList::remove):
11922         * Modules/mediastream/RTCDataChannel.cpp:
11923         (WebCore::RTCDataChannel::setBinaryType):
11924         * Modules/mediastream/RTCIceCandidate.cpp:
11925         (WebCore::RTCIceCandidate::create):
11926         * Modules/mediastream/RTCPeerConnection.cpp:
11927         (WebCore::RTCPeerConnection::parseConfiguration):
11928         (WebCore::RTCPeerConnection::createOffer):
11929         (WebCore::RTCPeerConnection::createAnswer):
11930         (WebCore::RTCPeerConnection::setLocalDescription):
11931         (WebCore::RTCPeerConnection::setRemoteDescription):
11932         (WebCore::RTCPeerConnection::addIceCandidate):
11933         (WebCore::RTCPeerConnection::addStream):
11934         (WebCore::RTCPeerConnection::removeStream):
11935         * Modules/mediastream/RTCSessionDescription.cpp:
11936         (WebCore::RTCSessionDescription::create):
11937         (WebCore::RTCSessionDescription::setType):
11938         * bindings/js/CallbackFunction.cpp:
11939         (WebCore::checkFunctionOnlyCallback):
11940         * bindings/js/JSCustomXPathNSResolver.cpp:
11941         (WebCore::JSCustomXPathNSResolver::create):
11942         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
11943         (WebCore::JSHTMLOptionsCollection::add):
11944         * bindings/js/JSHTMLSelectElementCustom.cpp:
11945         (WebCore::selectIndexSetter):
11946         * bindings/js/JSMutationObserverCustom.cpp:
11947         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
11948         * bindings/js/JSSQLResultSetRowListCustom.cpp:
11949         (WebCore::JSSQLResultSetRowList::item):
11950         * bindings/js/JSSQLTransactionCustom.cpp:
11951         (WebCore::JSSQLTransaction::executeSql):
11952         * bindings/js/JSSQLTransactionSyncCustom.cpp:
11953         (WebCore::JSSQLTransactionSync::executeSql):
11954         * bindings/scripts/CodeGeneratorJS.pm:
11955         (GenerateParametersCheck):
11956         * bindings/scripts/CodeGeneratorObjC.pm:
11957         (GenerateImplementation):
11958         * bindings/scripts/CodeGeneratorV8.pm:
11959         (GenerateFunctionCallString):
11960         * bindings/v8/V8Callback.h:
11961         (WebCore::createFunctionOnlyCallback):
11962         * bindings/v8/V8Collection.cpp:
11963         (WebCore::toOptionsCollectionSetter):
11964         * bindings/v8/custom/V8DocumentCustom.cpp:
11965         (WebCore::V8Document::evaluateCallback):
11966         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
11967         (WebCore::V8HTMLOptionsCollection::addCallback):
11968         * bindings/v8/custom/V8MutationObserverCustom.cpp:
11969         (WebCore::V8MutationObserver::constructorCallback):
11970         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
11971         (WebCore::V8SQLTransaction::executeSqlCallback):
11972         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
11973         (WebCore::V8SQLTransactionSync::executeSqlCallback):
11974         * dom/DOMCoreException.idl:
11975         * html/HTMLElement.cpp:
11976         (WebCore::HTMLElement::insertAdjacentElement):
11977         * html/HTMLMediaElement.cpp:
11978         (WebCore::HTMLMediaElement::webkitAddKey):
11979         * html/HTMLOptionsCollection.cpp:
11980         (WebCore::HTMLOptionsCollection::add):
11981         * html/canvas/CanvasRenderingContext2D.cpp:
11982         (WebCore::CanvasRenderingContext2D::drawImage):
11983         (WebCore::CanvasRenderingContext2D::createPattern):
11984         (WebCore::CanvasRenderingContext2D::putImageData):
11985         (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
11986         * page/Crypto.cpp:
11987         (WebCore::Crypto::getRandomValues):
11988         * page/DOMSelection.cpp:
11989         (WebCore::DOMSelection::extend):
11990         * svg/properties/SVGTransformListPropertyTearOff.h:
11991         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
11992
11993 2012-11-13  Erik Arvidsson  <arv@chromium.org>
11994
11995         Update DOMException name: HierarchyRequestError
11996         https://bugs.webkit.org/show_bug.cgi?id=102092
11997
11998         Reviewed by Ojan Vafai.
11999
12000         Patch 3 of 25 to update DOMException name to match the spec and Firefox.
12001
12002         Updated existing tests.
12003
12004         * dom/DOMCoreException.cpp:
12005
12006 2012-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
12007
12008         Clean up use of adjustWindowRect
12009         https://bugs.webkit.org/show_bug.cgi?id=102072
12010
12011         Reviewed by Alexis Menard.
12012
12013         Tested by fast/dom/Window/open-window-min-size.html
12014
12015         * loader/FrameLoader.cpp:
12016         (WebCore::createWindow):
12017
12018             Validate the window size here so that it is not just done for
12019             .open, but also for .showModalDialog. This is compatible with
12020             other browsers such as IE and Firefox (though IE > 6, enforces
12021             a minimum width of 250 instead of 100 as Firefox and us.)
12022
12023         * page/DOMWindow.cpp:
12024         (WebCore):
12025         (WebCore::DOMWindow::adjustWindowRect):
12026
12027             Make it a static method which only takes page. It was never
12028             called from anywhere without a valid page, so the page check
12029             has been turned into an assert, and two of the arguments have
12030             been removed as they can be accessed via the page.
12031
12032         (WebCore::DOMWindow::moveBy):
12033         (WebCore::DOMWindow::moveTo):
12034         (WebCore::DOMWindow::resizeBy):
12035         (WebCore::DOMWindow::resizeTo):
12036
12037             Update use of adjustWindowRect.
12038
12039         (WebCore::DOMWindow::open):
12040
12041             Avoid modifying the WindowFeatures as the WebCore::createWindow
12042             validates and adjusts the arguments.
12043
12044         * page/DOMWindow.h:
12045         (DOMWindow):
12046
12047 2012-11-13  Bem Jones-Bey  <bjonesbe@adobe.com>
12048
12049         [CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
12050         https://bugs.webkit.org/show_bug.cgi?id=97736
12051
12052         Reviewed by Andreas Kling.
12053
12054         Rename properties to match updated spec.
12055
12056         Tests: fast/exclusions/shape-margin-parsing.html
12057                fast/exclusions/shape-padding-parsing.html
12058
12059         * css/CSSComputedStyleDeclaration.cpp:
12060         (WebCore):
12061         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
12062         * css/CSSParser.cpp:
12063         (WebCore::isSimpleLengthPropertyID):
12064         (WebCore::CSSParser::parseValue):
12065         * css/CSSProperty.cpp:
12066         (WebCore::CSSProperty::isInheritedProperty):
12067         * css/CSSPropertyNames.in:
12068         * css/StyleBuilder.cpp:
12069         (WebCore::StyleBuilder::StyleBuilder):
12070         * css/StylePropertySet.cpp:
12071         (WebCore::StylePropertySet::asText):
12072         * css/StylePropertyShorthand.cpp:
12073         (WebCore::webkitWrapShorthand):
12074         * css/StyleResolver.cpp:
12075         (WebCore::StyleResolver::applyProperty):
12076         * rendering/style/RenderStyle.cpp:
12077         (WebCore::RenderStyle::diff):
12078         * rendering/style/RenderStyle.h:
12079         * rendering/style/StyleRareNonInheritedData.cpp:
12080         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
12081         (WebCore::StyleRareNonInheritedData::operator==):
12082         * rendering/style/StyleRareNonInheritedData.h:
12083         (StyleRareNonInheritedData):
12084
12085 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12086
12087         Unreviewed, rolling out r134418.
12088         http://trac.webkit.org/changeset/134418
12089         https://bugs.webkit.org/show_bug.cgi?id=101903
12090
12091         The newly added test is crashing on cr-win.
12092
12093         * dom/ElementShadow.cpp:
12094         * dom/ElementShadow.h:
12095         * html/HTMLInputElement.cpp:
12096         (WebCore::HTMLInputElement::updateType):
12097         (WebCore::HTMLInputElement::setIndeterminate):
12098         * html/HTMLProgressElement.cpp:
12099         (WebCore::HTMLProgressElement::didElementStateChange):
12100         * html/shadow/SelectRuleFeatureSet.cpp:
12101         (WebCore::SelectRuleFeatureSet::add):
12102         (WebCore::SelectRuleFeatureSet::clear):
12103         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12104         * html/shadow/SelectRuleFeatureSet.h:
12105         (SelectRuleFeatureSet):
12106
12107 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12108
12109         Unreviewed, rolling out r134391.
12110         http://trac.webkit.org/changeset/134391
12111         https://bugs.webkit.org/show_bug.cgi?id=99660
12112
12113         Speculative rollout, trying to fix browser_tests failure.
12114
12115         * English.lproj/localizedStrings.js:
12116         * inspector/Inspector.json:
12117         * inspector/InspectorClient.h:
12118         * inspector/InspectorPageAgent.cpp:
12119         (PageAgentState):
12120         (WebCore::InspectorPageAgent::enable):
12121         (WebCore::InspectorPageAgent::disable):
12122         * inspector/InspectorPageAgent.h:
12123         * inspector/front-end/Settings.js:
12124         * inspector/front-end/SettingsScreen.js:
12125         (WebInspector.GenericSettingsTab):
12126         * inspector/front-end/inspector.js:
12127         (WebInspector.doLoadedDone):
12128
12129 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
12130
12131         Unreviewed, rolling out r134205.
12132         http://trac.webkit.org/changeset/134205
12133         https://bugs.webkit.org/show_bug.cgi?id=102093
12134
12135         Broke webkit-flow-inlines-dynamic.html on several ports
12136         (Requested by mihnea on #webkit).
12137
12138         * css/StyleResolver.cpp:
12139         (WebCore::StyleResolver::isValidRegionStyleProperty):
12140         * rendering/InlineBox.cpp:
12141         * rendering/InlineBox.h:
12142         (WebCore):
12143         (InlineBox):
12144         * rendering/InlineFlowBox.cpp:
12145         (WebCore::InlineFlowBox::addToLine):
12146         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
12147         * rendering/RenderRegion.cpp:
12148         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
12149         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
12150         (WebCore::RenderRegion::computeStyleInRegion):
12151         (WebCore::RenderRegion::computeChildrenStyleInRegion):
12152         (WebCore::RenderRegion::setObjectStyleInRegion):
12153         (WebCore::RenderRegion::clearObjectStyleInRegion):
12154         * rendering/RenderRegion.h:
12155         (RenderRegion):
12156         (ObjectRegionStyleInfo):
12157
12158 2012-11-13  Andreas Kling  <kling@webkit.org>
12159
12160         Remove the non-const overload of ElementAttributeData::inlineStyle().
12161
12162         Rubber-stamped by Anders Koivisto.
12163
12164         No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.
12165
12166         * dom/ElementAttributeData.h:
12167
12168 2012-11-13  Keishi Hattori  <keishi@webkit.org>
12169
12170         [Chromium] Enable input type month/week
12171         https://bugs.webkit.org/show_bug.cgi?id=102042
12172
12173         Reviewed by Kent Tamura.
12174
12175         Enable input type month/week for Chromium.
12176
12177         No new tests. Tests will be added later in Bug 102045 and Bug 102046.
12178
12179         * bindings/generic/RuntimeEnabledFeatures.cpp:
12180         (WebCore):
12181
12182 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12183
12184         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
12185         https://bugs.webkit.org/show_bug.cgi?id=101906
12186
12187         Reviewed by Dimitri Glazkov.
12188
12189         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
12190         setPseudo()/pseudo() instead.
12191
12192         No new tests, covered by existing tests.
12193
12194         * html/HTMLMeterElement.cpp:
12195         (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
12196         it anywhere, we have to set it into pseudo attribute here.
12197         (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
12198         * html/shadow/MeterShadowElement.cpp:
12199         (WebCore::MeterInnerElement::MeterInnerElement):
12200         (WebCore::MeterValueElement::valuePseudoId):
12201         * html/shadow/MeterShadowElement.h:
12202         (MeterInnerElement):
12203         (WebCore::MeterBarElement::MeterBarElement):
12204         (MeterBarElement):
12205         (WebCore::MeterValueElement::MeterValueElement):
12206         (WebCore::MeterValueElement::updatePseudo):
12207         (MeterValueElement):
12208
12209 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12210
12211         Changing pseudoClass (:indeterminate) should cause distribution
12212         https://bugs.webkit.org/show_bug.cgi?id=101903
12213
12214         Reviewed by Dimitri Glazkov.
12215
12216         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
12217         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
12218
12219         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
12220         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
12221
12222         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
12223                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
12224
12225         * dom/ElementShadow.cpp:
12226         (WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
12227         have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
12228         here.
12229         (WebCore):
12230         * dom/ElementShadow.h:
12231         (WebCore):
12232         * html/HTMLInputElement.cpp:
12233         (WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
12234         (WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
12235         * html/HTMLProgressElement.cpp:
12236         (WebCore::HTMLProgressElement::didElementStateChange):
12237         * html/shadow/SelectRuleFeatureSet.cpp:
12238         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
12239         (WebCore::SelectRuleFeatureSet::add):
12240         (WebCore::SelectRuleFeatureSet::clear):
12241         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12242         * html/shadow/SelectRuleFeatureSet.h:
12243         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
12244         (SelectRuleFeatureSet):
12245
12246 2012-11-13  Andreas Kling  <kling@webkit.org>
12247
12248         Exploit ElementAttributeData sharing in Node.cloneNode.
12249         <http://webkit.org/b/101374>
12250
12251         Reviewed by Anders Carlsson.
12252
12253         Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
12254         If the source data is immutable, simply ref it from the new node at virtually no cost.
12255
12256         If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
12257         Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
12258         and memory in the long run.
12259
12260         ~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.
12261
12262         * dom/Element.cpp:
12263         (WebCore::Element::cloneAttributesFromElement):
12264
12265             Move attribute data cloning logic from ElementAttributeData to Element.
12266
12267         * dom/ElementAttributeData.cpp:
12268         (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
12269         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
12270         (WebCore::ElementAttributeData::ElementAttributeData):
12271         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
12272         (WebCore::ElementAttributeData::makeMutableCopy):
12273         (WebCore::ElementAttributeData::makeImmutableCopy):
12274         * dom/ElementAttributeData.h:
12275         (ElementAttributeData):
12276         (ImmutableElementAttributeData):
12277         (MutableElementAttributeData):
12278
12279             Add facilities for converting a mutable ElementAttributeData to an immutable one.
12280             Share some code in the common base class constructor.
12281
12282 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12283
12284         Unreviewed. Build fix of V8 bindings.
12285
12286         * bindings/v8/V8DOMWrapper.cpp:
12287         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12288
12289 2012-11-13  Andrey Adaikin  <aandrey@chromium.org>
12290
12291         Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
12292         https://bugs.webkit.org/show_bug.cgi?id=102071
12293
12294         Reviewed by Pavel Feldman.
12295
12296         * inspector/front-end/CanvasProfileView.js:
12297         (WebInspector.CanvasProfileView):
12298         (WebInspector.CanvasProfileView.prototype.dispose):
12299         (WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
12300         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
12301         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
12302         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
12303         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
12304         (WebInspector.CanvasProfileView.prototype._createCallNode):
12305         * inspector/front-end/canvasProfiler.css:
12306         (#canvas-replay-image.wait):
12307
12308 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
12309
12310         Web Inspector: Settings screen: some panel shortcuts are missing
12311         https://bugs.webkit.org/show_bug.cgi?id=101026
12312
12313         Reviewed by Pavel Feldman.
12314
12315         Panels, that have not been loaded by the time shortcuts view was
12316         initialized, had no chance to register shortcuts.
12317
12318         Solution: move shortcut registration (for shortcuts screen) to panel
12319         descriptors.
12320
12321         More changes: add JsDoc annotations to ShortcutScreen and change "key"
12322         parameter type for raw string to key descriptor object.
12323
12324         * WebCore.gypi: Added TimelinePanelDescriptor.js file.
12325         * WebCore.vcproj/WebCore.vcproj: Ditto.
12326         * inspector/compile-front-end.py: Ditto.
12327         * inspector/front-end/WebKit.qrc: Ditto.
12328         * inspector/front-end/inspector.html: Ditto.
12329         * inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
12330         * inspector/front-end/GoToLineDialog.js: Ditto.
12331         * inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
12332         shortcuts registration.
12333         * inspector/front-end/ElementsPanel.js: Ditto.
12334         * inspector/front-end/ScriptsPanel.js: Ditto.
12335         * inspector/front-end/StylesSidebarPane.js: Ditto.
12336         * inspector/front-end/TimelinePanel.js: Ditto.
12337         * inspector/front-end/ConsoleView.js: Changes order of lines to increase
12338         readability.
12339         * inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
12340         shortcuts registration and key descriptor constants.
12341         * inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
12342         * inspector/front-end/TimelinePanelDescriptor.js: Ditto.
12343         * inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
12344         "registerShortcuts" method accept array of key descriptors.
12345         (WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
12346         * inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
12347         type from string to key descriptor.
12348         * inspector/front-end/inspector.js: Register shortcuts using
12349         panel descriptors.
12350         (WebInspector._panelDescriptors): Removed duplicate line.
12351
12352 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12353
12354         Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
12355         https://bugs.webkit.org/show_bug.cgi?id=102060
12356
12357         Reviewed by Zoltan Herczeg.
12358
12359         Adding more NEONized packing functions to GraphicsContext3DNEON.h.
12360         These functions are three times faster with this intrinsics optimizations.
12361
12362         * platform/graphics/GraphicsContext3D.cpp:
12363         (WebCore):
12364         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
12365         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
12366         (ARM):
12367         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
12368         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
12369         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):
12370
12371 2012-11-13  Csaba Osztrogonác  <ossy@webkit.org>
12372
12373         [Qt] Enable Mutation observer
12374         https://bugs.webkit.org/show_bug.cgi?id=102066
12375
12376         Reviewed by Pavel Feldman.
12377
12378         * DerivedSources.pri: Add missing IDL files.
12379
12380 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12381
12382         [V8] Make isValidDOMObject() static
12383         https://bugs.webkit.org/show_bug.cgi?id=101914
12384
12385         Reviewed by Adam Barth.
12386
12387         isValidDOMObject() is used by DOMWrapper.cpp only.
12388
12389         No tests. No change in behavior.
12390
12391         * bindings/v8/V8DOMWrapper.cpp:
12392         (WebCore::isValidDOMObject):
12393         (WebCore):
12394         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12395         * bindings/v8/V8DOMWrapper.h:
12396         (V8DOMWrapper):
12397
12398 2012-11-13  Mihnea Ovidenie  <mihnea@adobe.com>
12399
12400         [CSSRegions] Incorrect computed height for content with region-break-before
12401         https://bugs.webkit.org/show_bug.cgi?id=101862
12402
12403         Reviewed by Julien Chaffraix.
12404
12405         When processing the region breaks for auto-height regions, we skipped the case
12406         when the region-break-before occurred in the first region in the chain which was
12407         an auto-height region. Because of that, the region computed height was not 0
12408         as it was supposed to be, but rather LayoutUnit::max() / 2.
12409
12410         Test: fast/regions/autoheight-breakbefore-wrongheight.html
12411
12412         * rendering/RenderFlowThread.cpp:
12413         (WebCore::RenderFlowThread::addForcedRegionBreak):
12414         Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
12415         and the first region in chain is an auto-height region.
12416         * rendering/RenderRegion.cpp:
12417         (WebCore::RenderRegion::updateLogicalHeight):
12418         Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.
12419
12420 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12421
12422         Memory instrumentation: remove reportMemoryUsage method from ImageObserver
12423         https://bugs.webkit.org/show_bug.cgi?id=102058
12424
12425         Reviewed by Pavel Feldman.
12426
12427         * bindings/v8/V8PerIsolateData.cpp:
12428         (WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
12429         each element of the vector as generic vector instrumentation will take care of it.
12430         * platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
12431         we don't count its by the pointer to the base class which may differ from the actual
12432         object address.
12433         (WebCore::Image::reportMemoryUsage):
12434         * platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
12435         (ImageObserver):
12436
12437 2012-11-13  Eberhard Graether  <egraether@google.com>
12438
12439         checkbox to toggle FPS counter in the inspector's settings
12440         https://bugs.webkit.org/show_bug.cgi?id=99660
12441
12442         Reviewed by Pavel Feldman.
12443
12444         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
12445
12446         No new tests.
12447
12448         * English.lproj/localizedStrings.js:
12449         * inspector/Inspector.json:
12450         * inspector/InspectorClient.h:
12451         (WebCore::InspectorClient::canShowFPSCounter):
12452         (WebCore::InspectorClient::setShowFPSCounter):
12453         (InspectorClient):
12454         * inspector/InspectorPageAgent.cpp:
12455         (PageAgentState):
12456         (WebCore::InspectorPageAgent::enable):
12457         (WebCore::InspectorPageAgent::disable):
12458         (WebCore::InspectorPageAgent::canShowFPSCounter):
12459         (WebCore):
12460         (WebCore::InspectorPageAgent::setShowFPSCounter):
12461         * inspector/InspectorPageAgent.h:
12462         * inspector/front-end/Settings.js:
12463         * inspector/front-end/SettingsScreen.js:
12464         (WebInspector.GenericSettingsTab):
12465         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
12466         * inspector/front-end/inspector.js:
12467         (WebInspector.doLoadedDone):
12468
12469 2012-11-12  Kent Tamura  <tkent@chromium.org>
12470
12471         Unable to set valid time value to input[type=time] with user interaction in some cases
12472         https://bugs.webkit.org/show_bug.cgi?id=102048
12473
12474         Reviewed by Kentaro Hara.
12475
12476         The implementations of shouldMillisecondFieldReadOnly,
12477         shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
12478         incorrect. We need to check if a part of the minimum value matches to
12479         the corresponding part of the current value.
12480
12481         Also, we had better check hour field editability.
12482
12483         Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
12484
12485         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
12486         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
12487         Fix a problem that hh:mm:00.sss didn't create a seconds field.
12488         * html/shadow/DateTimeEditElement.cpp:
12489         (DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
12490         (WebCore::DateTimeEditBuilder::visitField):
12491         Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
12492         (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
12493         Added. An hour field should be read-only if the step value is a multiple
12494         of a day and the hour part of the minimum value matches to the hour part
12495         of the value.
12496         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
12497         A millisecond field should be read-only if the step value is a multiple
12498         of one second and the millisecond part of the minimum value matches to
12499         the millisecond part of the value.
12500         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
12501         A minute field should be read-only if the step value is a multiple of
12502         one hour and the minute part of the minimum value matches to the minute
12503         part of the value.
12504         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
12505         A second field should be read-only if the step value is a multiple of
12506         one minute and the second part of the minimum value matches to the second
12507         part of the value.
12508         * platform/Decimal.cpp:
12509         (WebCore::Decimal::remainder):
12510         Fix a bug in case that the fractional part of quotient is >= 0.5. Also
12511         make this matches to C99, C++11, ECMAScript behavior.
12512
12513 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12514
12515         Memory instrumentation: MemoryBlock name should not include full path to the block
12516         https://bugs.webkit.org/show_bug.cgi?id=102055
12517
12518         Reviewed by Pavel Feldman.
12519
12520         * inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
12521         intead of fully qualified name.
12522
12523 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12524
12525         Web Inspector: get rid of enter/exitTextChangeMode in the editor
12526         https://bugs.webkit.org/show_bug.cgi?id=101845
12527
12528         Reviewed by Vsevolod Vlasov.
12529
12530         They seem to do nothing.
12531
12532         * inspector/front-end/DefaultTextEditor.js:
12533         (WebInspector.DefaultTextEditor.prototype._textChanged):
12534         (WebInspector.DefaultTextEditor.prototype.editRange):
12535         (WebInspector.TextEditorMainPanel):
12536         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
12537         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12538         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12539         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12540         * inspector/front-end/TextEditorModel.js:
12541         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12542
12543 2012-11-13  Tommy Widenflycht  <tommyw@google.com>
12544
12545         Remove the custom WebSocket::send for both V8 and JSC
12546         https://bugs.webkit.org/show_bug.cgi?id=101936
12547
12548         Reviewed by Kentaro Hara.
12549
12550         This patch removes the custom WebSocket::send since it isn't needed anymore.
12551
12552         Patch covered by existing tests.
12553
12554         * Modules/websockets/WebSocket.idl:
12555         * UseV8.cmake:
12556         * WebCore.gypi:
12557         * bindings/js/JSWebSocketCustom.cpp:
12558         * bindings/v8/custom/V8WebSocketCustom.cpp: Removed.
12559
12560 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12561
12562         Web Inspector: move indentation logic into TextEditorModel
12563         https://bugs.webkit.org/show_bug.cgi?id=101842
12564
12565         Reviewed by Vsevolod Vlasov.
12566
12567         I'd like to move as much headless logic into the TextEditorModel as possible.
12568         Drive by: removed some dead code, converted getter into function and moved undo
12569         mark state into the model as well.
12570
12571         * inspector/front-end/DefaultTextEditor.js:
12572         (WebInspector.DefaultTextEditor.prototype.editRange):
12573         (WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
12574         (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
12575         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12576         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12577         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12578         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
12579         (WebInspector.TextEditorMainChunk):
12580         (WebInspector.TextEditorMainChunk.prototype.isDecorated):
12581         (WebInspector.TextEditorMainChunk.prototype.set expanded):
12582         * inspector/front-end/TextEditorModel.js:
12583         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12584
12585 2012-11-13  Hayato Ito  <hayato@chromium.org>
12586
12587         Unreviewed attempt to fix the chromium mac-build after r134348.
12588
12589         * platform/graphics/mac/FontMac.mm:
12590         (WebCore::Font::drawGlyphs):
12591         * platform/mac/WebCoreSystemInterface.h:
12592         * platform/mac/WebCoreSystemInterface.mm:
12593
12594 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12595
12596         Web Inspector: migrate text editor to mutation observers
12597         https://bugs.webkit.org/show_bug.cgi?id=101841
12598
12599         Reviewed by Vsevolod Vlasov.
12600
12601         Otherwise, we miss notifications on the removed lines.
12602
12603         * inspector/front-end/DefaultTextEditor.js:
12604         (WebInspector.DefaultTextEditor.prototype.wasShown):
12605         (WebInspector.DefaultTextEditor.prototype.willHide):
12606         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
12607         (WebInspector.TextEditorMainPanel):
12608         (WebInspector.TextEditorMainPanel.prototype._wasShown):
12609         (WebInspector.TextEditorMainPanel.prototype._willHide):
12610         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
12611         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
12612         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
12613         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
12614         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
12615         (WebInspector.TextEditorMainPanel.prototype._paintLine):
12616         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
12617         (WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
12618         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
12619         (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
12620         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12621         * inspector/front-end/externs.js:
12622         (WebKitMutation):
12623         (WebKitMutationObserver.prototype.observe):
12624         (WebKitMutationObserver.prototype.disconnect):
12625         * inspector/front-end/textEditor.css:
12626         (.debug-fadeout):
12627         (@-webkit-keyframes debug-fadeout):
12628         (to):
12629
12630 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12631
12632         Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
12633         https://bugs.webkit.org/show_bug.cgi?id=101473
12634
12635         Reviewed by Zoltan Herczeg.
12636
12637         With NEON intrinsics the packing/unpacking functions can be optimized well.
12638         This particular function is about 3 times faster with ARM NEON. On top level tests
12639         the speed up was 1.18x.
12640
12641         * CMakeLists.txt:
12642         * GNUmakefile.am:
12643         * GNUmakefile.list.am:
12644         * Target.pri:
12645         * WebCore.gyp/WebCore.gyp:
12646         * WebCore.gypi:
12647         * WebCore.pri:
12648         * WebCore.xcodeproj/project.pbxproj:
12649         * platform/graphics/GraphicsContext3D.cpp:
12650         (WebCore):
12651         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
12652         (WebCore):
12653         (ARM):
12654         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
12655         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):
12656
12657 2012-11-13  Takashi Sakamoto  <tasak@google.com>
12658
12659         Crash when replacing parts of text inputs with content: url(...)
12660         https://bugs.webkit.org/show_bug.cgi?id=101133
12661
12662         Reviewed by Kent Tamura.
12663
12664         Disable directly setting content of elements in an input element's
12665         shadow dom tree, because the setting breaks input element's behavior.
12666
12667         Tests: fast/forms/number/number-content-url-crash.html
12668                fast/forms/search/search-content-url-crash.html
12669
12670         * css/html.css:
12671         (input::-webkit-textfield-decoration-container):
12672         Use important to disable overriding an input element's content
12673         property.
12674         * html/TextFieldInputType.cpp:
12675         (WebCore::TextFieldInputType::attach):
12676         Added ASSERTION. No content should be applied to
12677         input::-webkit-textfield-decoration-container.
12678
12679 2012-11-12  Huang Dongsung  <luxtella@company100.net>
12680
12681         [Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
12682         https://bugs.webkit.org/show_bug.cgi?id=101918
12683
12684         Reviewed by Noam Rosenthal.
12685
12686         Remove TiledBackingStore::rect(), because it is not used anymore.
12687
12688         * platform/graphics/TiledBackingStore.h:
12689         (TiledBackingStore):
12690
12691 2012-11-12  Adam Barth  <abarth@webkit.org>
12692
12693         [V8] We should be able to recover the V8DOMWindowShell more quickly
12694         https://bugs.webkit.org/show_bug.cgi?id=102020
12695
12696         Reviewed by Kentaro Hara.
12697
12698         For isolated worlds, we used to store the V8DOMWindowShell as an
12699         internal field of the inner DOM window. This patch moves the pointer to
12700         an internal field of the v8::Context, which saves us the work of
12701         looking up the inner DOM window.
12702
12703         Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
12704         because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
12705         the V8PerContextData when we detach the V8DOMWindowShell from the
12706         frame.)
12707
12708         * bindings/scripts/CodeGeneratorV8.pm:
12709         (GetInternalFields):
12710         * bindings/v8/V8DOMWindowShell.cpp:
12711         (WebCore::V8DOMWindowShell::initializeIfNeeded):
12712         * bindings/v8/V8DOMWindowShell.h:
12713         (WebCore::V8DOMWindowShell::getEntered):
12714         * bindings/v8/V8PerContextData.h:
12715
12716 2012-11-12  Kentaro Hara  <haraken@chromium.org>
12717
12718         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
12719         https://bugs.webkit.org/show_bug.cgi?id=101054
12720
12721         Reviewed by Adam Barth.
12722
12723         I'm investigating a Chromium crash bug:
12724         http://code.google.com/p/chromium/issues/detail?id=155942
12725
12726         I've not yet identified the root cause (because I can't reproduce
12727         the crash), but it looks like we are storing NULL pointers to
12728         V8 internal fields. Just in case, we can add an ASSERT() to
12729         guarantee that NULL pointers are never stored. (Also I'm hoping
12730         that this ASSERT() will give me more debug information.)
12731
12732         No tests. No change in behavior.
12733
12734         * bindings/v8/V8DOMWrapper.h:
12735         (WebCore::V8DOMWrapper::setDOMWrapper):
12736
12737 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
12738
12739         Changing id, className, or attribute should invalidate distribution
12740         https://bugs.webkit.org/show_bug.cgi?id=100738
12741
12742         Reviewed by Dimitri Glazkov.
12743
12744         When id, className, or attribute is changed, we might have to invalidate distribution.
12745         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
12746         and invalidate distribution only if necessary.
12747
12748         When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
12749         So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
12750
12751         Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
12752         to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.
12753
12754         DOM/ModifyAttribute.html
12755         Before this patch:
12756                 median  stdev  min      max    [ms]
12757           1st   115.62   0.67  114.75   117.00
12758           2nd   115.08   1.13  113.25   117.58
12759           3rd   114.75   1.16  113.42   117.83
12760
12761         After this patch:
12762                 median  stdev  min      max    [ms]
12763           1st   102.55   0.95  101.25   104.50
12764           2nd   103.10   0.86  102.20   100.95
12765           3rd   103.30   1.05  102.10   106.65
12766
12767         Tests: fast/dom/shadow/distribution-attribute-modified.html
12768                fast/dom/shadow/distribution-className-modified.html
12769                fast/dom/shadow/distribution-id-modified.html
12770                fast/dom/shadow/reprojection-attribute-modified.html
12771                fast/dom/shadow/reprojection-className-modified.html
12772                fast/dom/shadow/reprojection-id-modified.html
12773
12774         * dom/Element.cpp:
12775         (WebCore::Element::attributeChanged):
12776         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
12777         (HasSelectorForClassStyleFunctor):
12778         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
12779         (WebCore):
12780         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
12781         (HasSelectorForClassDistributionFunctor):
12782         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
12783         (WebCore::checkFunctorForClassChange):
12784         (WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
12785         (WebCore::checkNeedsDistributionInvalidationForClassChange):
12786         (WebCore::Element::classAttributeChanged):
12787
12788 2012-11-12  Joe Mason  <jmason@rim.com>
12789
12790         [BlackBerry] NetworkJob should not check if data is received with HEAD
12791         https://bugs.webkit.org/show_bug.cgi?id=102034
12792
12793         Reviewed by George Staikos.
12794
12795         Internal PR: 241391
12796
12797         Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
12798         have no data.
12799
12800         Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html
12801
12802         * platform/network/blackberry/NetworkJob.cpp:
12803         (WebCore::NetworkJob::NetworkJob):
12804         (WebCore::NetworkJob::initialize):
12805         (WebCore::NetworkJob::shouldNotifyClientFailed):
12806         * platform/network/blackberry/NetworkJob.h:
12807         (NetworkJob):
12808
12809 2012-11-12  Adam Barth  <abarth@webkit.org>
12810
12811         [V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
12812         https://bugs.webkit.org/show_bug.cgi?id=102015
12813
12814         Reviewed by Kentaro Hara.
12815
12816         Previously, Nodes had a special path through
12817         V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
12818         could find the V8PerContextData quickly. Now that we can get the
12819         V8PerContextData from the v8::Context quickly, we can move Nodes to the
12820         general case. The net consequence is that creation of all DOM objects
12821         should be as fast as Nodes are.
12822
12823         * bindings/scripts/CodeGeneratorV8.pm:
12824         (GenerateToV8Converters):
12825         * bindings/scripts/test/V8/V8Float64Array.cpp:
12826         (WebCore::V8Float64Array::wrapSlow):
12827         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
12828         (WebCore::V8TestActiveDOMObject::wrapSlow):
12829         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
12830         (WebCore::V8TestCustomNamedGetter::wrapSlow):
12831         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
12832         (WebCore::V8TestEventConstructor::wrapSlow):
12833         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
12834         (WebCore::V8TestEventTarget::wrapSlow):
12835         * bindings/scripts/test/V8/V8TestException.cpp:
12836         (WebCore::V8TestException::wrapSlow):
12837         * bindings/scripts/test/V8/V8TestInterface.cpp:
12838         (WebCore::V8TestInterface::wrapSlow):
12839         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
12840         (WebCore::V8TestMediaQueryListListener::wrapSlow):
12841         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
12842         (WebCore::V8TestNamedConstructor::wrapSlow):
12843         * bindings/scripts/test/V8/V8TestNode.cpp:
12844         (WebCore::V8TestNode::wrapSlow):
12845         * bindings/scripts/test/V8/V8TestObj.cpp:
12846         (WebCore::V8TestObj::wrapSlow):
12847         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
12848         (WebCore::V8TestOverloadedConstructors::wrapSlow):
12849         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
12850         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
12851         * bindings/v8/V8Binding.cpp:
12852         * bindings/v8/V8Binding.h:
12853         (WebCore):
12854         * bindings/v8/V8DOMWrapper.cpp:
12855         (WebCore::V8DOMWrapper::instantiateV8Object):
12856         * bindings/v8/V8DOMWrapper.h:
12857         (V8DOMWrapper):
12858
12859 2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
12860
12861         Some CSS properties are not handled on StyleResolver::applyProperty
12862         https://bugs.webkit.org/show_bug.cgi?id=102027
12863
12864         Reviewed by Gyuyoung Kim.
12865
12866         The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
12867         need to be handled on StyleResolver::applyProperty.
12868
12869         * css/StyleResolver.cpp:
12870         (WebCore::StyleResolver::applyProperty):
12871
12872 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12873
12874         Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
12875         https://bugs.webkit.org/show_bug.cgi?id=102031
12876
12877         Reviewed by Beth Dakin.
12878
12879         RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
12880         and calculateLayerBounds() multiple times for painting a single layer.
12881         
12882         Keep track of whether we've computed the root-relative bounds and do it on demand.
12883         Compute the offset relative to rootLayer once, and pass it around as an optional parameter
12884         to functions that need it.
12885
12886         * rendering/RenderLayer.cpp:
12887         (WebCore::RenderLayer::paintLayerContents):
12888         (WebCore::RenderLayer::hitTestLayer):
12889         (WebCore::RenderLayer::calculateRects):
12890         (WebCore::RenderLayer::intersectsDamageRect):
12891         (WebCore::RenderLayer::boundingBox):
12892         (WebCore::RenderLayer::calculateLayerBounds):
12893         * rendering/RenderLayer.h:
12894         * rendering/RenderLayerCompositor.cpp:
12895         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12896
12897 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12898
12899         Change calculateLayerBounds() from a static function to a member function
12900         https://bugs.webkit.org/show_bug.cgi?id=102022
12901
12902         Reviewed by Beth Dakin.
12903
12904         calculateLayerBounds() has grown into a substantial function after
12905         starting live as a little utility function, so make it a member function
12906         of RenderLayer, and adjust callers accordingly.
12907
12908         * rendering/RenderLayer.cpp:
12909         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
12910         (WebCore::RenderLayer::paintLayerContents):
12911         (WebCore::RenderLayer::calculateLayerBounds):
12912         * rendering/RenderLayer.h:
12913         * rendering/RenderLayerCompositor.cpp:
12914         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12915
12916 2012-11-12  Alexei Filippov  <alph@chromium.org>
12917
12918         Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
12919         https://bugs.webkit.org/show_bug.cgi?id=101601
12920
12921         Reviewed by Yury Semikhatsky.
12922
12923         * English.lproj/localizedStrings.js:
12924         * inspector/front-end/NativeMemorySnapshotView.js:
12925         * inspector/front-end/Settings.js:
12926         * inspector/front-end/SettingsScreen.js:
12927         (WebInspector.GenericSettingsTab):
12928
12929 2012-11-10  Dirk Schulze  <krit@webkit.org>
12930
12931         BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
12932         https://bugs.webkit.org/show_bug.cgi?id=101854
12933
12934         Reviewed by Andreas Kling.
12935
12936         The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
12937         blend with themselves. This patch introduces simple interpolation of BasicShapes for
12938         the -webkit-clip-path property.
12939
12940         Test: css3/masking/clip-path-animation.html
12941
12942         * page/animation/CSSPropertyAnimation.cpp:
12943         (WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
12944             It skips blending on <clipPath> references, polygons and if the shapes are not of
12945             the same type.
12946         (WebCore):
12947         (PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
12948         (WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
12949         (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
12950             properties.
12951         * rendering/style/BasicShapes.cpp:
12952             The blending is done by each shape itself. This is similar to FilterOperations or
12953             TransformOperations.
12954         (WebCore::BasicShapeRectangle::blend):
12955         (WebCore):
12956         (WebCore::BasicShapeCircle::blend):
12957         (WebCore::BasicShapeEllipse::blend):
12958         (WebCore::BasicShapePolygon::blend):
12959         * rendering/style/BasicShapes.h:
12960             Added new blending functions to header.
12961         (BasicShape):
12962         (BasicShapeRectangle):
12963         (BasicShapeCircle):
12964         (BasicShapeEllipse):
12965         (BasicShapePolygon):
12966
12967 2012-11-12  Adam Barth  <abarth@webkit.org>
12968
12969         [V8] We should be able to get V8PerContextData from a v8::Context more quickly
12970         https://bugs.webkit.org/show_bug.cgi?id=102008
12971
12972         Reviewed by Ojan Vafai.
12973
12974         This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
12975         API to get the V8PerContextData associated with a v8::Context much more
12976         quickly. We no longer need to use a hidden property on the inner global
12977         object. This patch will enable future optimizations.
12978
12979         * bindings/v8/V8HiddenPropertyName.h:
12980         (WebCore):
12981         * bindings/v8/V8PerContextData.cpp:
12982         (WebCore::V8PerContextData::dispose):
12983         (WebCore::V8PerContextData::init):
12984         * bindings/v8/V8PerContextData.h:
12985         (WebCore::V8PerContextData::from):
12986
12987 2012-11-12  Elliott Sprehn  <esprehn@chromium.org>
12988
12989         Make Frames and HTMLFrameOwnerElement less friendly
12990         https://bugs.webkit.org/show_bug.cgi?id=102003
12991
12992         Reviewed by Ojan Vafai.
12993
12994         Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
12995         this patch makes it go through a method to allow future hooks when frames
12996         are associated with owners.
12997
12998         No new tests, this is just a refactor.
12999
13000         * html/HTMLFrameOwnerElement.cpp:
13001         (WebCore::HTMLFrameOwnerElement::setContentFrame):
13002         * html/HTMLFrameOwnerElement.h:
13003         (HTMLFrameOwnerElement):
13004         (WebCore::HTMLFrameOwnerElement::clearContentFrame):
13005         * page/Frame.cpp:
13006         (WebCore::Frame::Frame): Use new methods.
13007
13008 2012-11-12  Beth Dakin  <bdakin@apple.com>
13009
13010         Zoomed-in scrolling is very slow when deviceScaleFactor > 1
13011         https://bugs.webkit.org/show_bug.cgi?id=101787
13012
13013         Reviewed by Simon Fraser.
13014
13015         This patch adds a new member to the GraphicsContextState that tracks 
13016         whether or not fonts should be subpixel-quantized. We want to default 
13017         to sibpixel-quantizing, but we'll turn it off if we're scrolling 
13018         content that cannot be scrolled on the scrolling thread.
13019
13020         State has a new bool shouldSubpixelQuantizeFonts. It defaults to true 
13021         since normally we do want to quantize.
13022         * platform/graphics/GraphicsContext.cpp:
13023         (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
13024         (WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
13025         * platform/graphics/GraphicsContext.h:
13026         (WebCore::GraphicsContextState::GraphicsContextState):
13027         (GraphicsContextState):
13028         (GraphicsContext):
13029
13030         wkSetCGFontRenderingMode now takes a BOOL parameter which indicates 
13031         whether or not it should try to subpixel-quantize the fonts.
13032         * platform/graphics/mac/FontMac.mm:
13033         (WebCore::Font::drawGlyphs):
13034         * platform/mac/WebCoreSystemInterface.h:
13035         * platform/mac/WebCoreSystemInterface.mm:
13036
13037         Disable subpixel-quantization for overflow areas, subframes, and 
13038         content that is scrolling on the main thread.
13039         * rendering/RenderLayer.cpp:
13040         (WebCore::RenderLayer::paintLayerContents):
13041
13042 2012-11-12  Timothy Hatcher  <timothy@apple.com>
13043
13044         Expose InspectorFrontendClientLocal::setAttachedWindow as public.
13045
13046         This allows external actions to update the docked state in the frontend.
13047
13048         https://bugs.webkit.org/show_bug.cgi?id=102023
13049
13050         Reviewed by Anders Carlsson.
13051
13052         * inspector/InspectorFrontendClientLocal.h:
13053         Moved InspectorFrontendClientLocal::setAttachedWindow to public section.
13054
13055 2012-11-12  Erik Arvidsson  <arv@chromium.org>
13056
13057         Replace DOMException TYPE_MISMATCH_ERR with TypeError
13058         https://bugs.webkit.org/show_bug.cgi?id=101604
13059
13060         Reviewed by Adam Barth.
13061
13062         DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.
13063
13064         We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
13065         the spec mandates TypeError being thrown.
13066
13067         Updated existing tests.
13068
13069         * Modules/mediastream/MediaConstraintsImpl.cpp:
13070         * Modules/mediastream/MediaStreamTrackList.cpp:
13071         * Modules/mediastream/PeerConnection00.cpp:
13072         * Modules/mediastream/RTCDataChannel.cpp:
13073         * Modules/mediastream/RTCIceCandidate.cpp:
13074         * Modules/mediastream/RTCPeerConnection.cpp:
13075         * Modules/mediastream/RTCSessionDescription.cpp:
13076         * Modules/mediastream/SessionDescription.cpp:
13077         * bindings/js/CallbackFunction.cpp:
13078         * bindings/js/JSCustomXPathNSResolver.cpp:
13079         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13080         * bindings/js/JSHTMLSelectElementCustom.cpp:
13081         * bindings/js/JSMutationObserverCustom.cpp:
13082         * bindings/js/JSSQLResultSetRowListCustom.cpp:
13083         * bindings/js/JSSQLTransactionCustom.cpp:
13084         * bindings/js/JSSQLTransactionSyncCustom.cpp:
13085         * bindings/scripts/CodeGeneratorJS.pm:
13086         * bindings/scripts/CodeGeneratorObjC.pm:
13087         * bindings/scripts/CodeGeneratorV8.pm:
13088         * bindings/v8/V8Callback.h:
13089         * bindings/v8/V8Collection.cpp:
13090         * bindings/v8/custom/V8DocumentCustom.cpp:
13091         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13092         * bindings/v8/custom/V8MutationObserverCustom.cpp:
13093         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
13094         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
13095         * dom/DOMCoreException.idl:
13096         * html/HTMLElement.cpp:
13097         * html/HTMLMediaElement.cpp:
13098         * html/HTMLOptionsCollection.cpp:
13099         * html/canvas/CanvasRenderingContext2D.cpp:
13100         * page/Crypto.cpp:
13101         * page/DOMSelection.cpp:
13102         * svg/properties/SVGTransformListPropertyTearOff.h:
13103
13104 2012-11-12  Joshua Bell  <jsbell@chromium.org>
13105
13106         IndexedDB: Use sequence<> instead of DOMString[] in IDL
13107         https://bugs.webkit.org/show_bug.cgi?id=100539
13108
13109         Reviewed by Adam Barth.
13110
13111         In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
13112         WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
13113         to that. Note webkit.org/b/100537 which requires sequence<String> instead.
13114
13115         Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
13116
13117         * Modules/indexeddb/IDBDatabase.cpp:
13118         (WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
13119         * Modules/indexeddb/IDBDatabase.h:
13120         (WebCore::IDBDatabase::transaction):
13121         (IDBDatabase):
13122         * Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
13123         * Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
13124         * Modules/indexeddb/IDBObjectStore.h:
13125         (WebCore::IDBObjectStore::createIndex):
13126         * Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>
13127
13128 2012-11-12  Anders Carlsson  <andersca@apple.com>
13129
13130         Remove Leopard only gradient code
13131         https://bugs.webkit.org/show_bug.cgi?id=102033
13132
13133         Reviewed by Dan Bernstein.
13134
13135         USE_CG_SHADING was only ever true on Leopard, so we can remove it now.
13136
13137         * platform/graphics/Gradient.h:
13138         * platform/graphics/cg/GradientCG.cpp:
13139         (WebCore::Gradient::platformDestroy):
13140         (WebCore::Gradient::platformGradient):
13141         (WebCore::Gradient::paint):
13142
13143 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13144
13145         [BlackBerry] Update BB10 form theme.
13146         https://bugs.webkit.org/show_bug.cgi?id=100760
13147
13148         Reviewed by Rob Buis.
13149
13150         RIM PR 237003
13151         Internally Reviewed by Eli Fidler.
13152         Since we nolonger use small font for form controls, adjust paddingDivisor
13153         ratio to decrease the padding value.
13154
13155         * platform/blackberry/RenderThemeBlackBerry.cpp:
13156         (WebCore):
13157
13158 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13159
13160         Fix filter dirty rect regression from r134311
13161         https://bugs.webkit.org/show_bug.cgi?id=102002
13162
13163         Reviewed by Beth Dakin.
13164
13165         When rendering with filters, the code can inflate the root-relative
13166         paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
13167         broke this behavior.
13168     
13169         Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
13170         and using it for the rest of the function.
13171
13172         * rendering/RenderLayer.cpp:
13173         (WebCore::RenderLayer::paintLayerContents):
13174
13175 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13176
13177         [V8] V8Event::valueAccessorGetter() in custom binding is not used
13178         https://bugs.webkit.org/show_bug.cgi?id=101893
13179
13180         Reviewed by Adam Barth.
13181
13182         No tests. No change in behavior.
13183
13184         * bindings/v8/custom/V8EventCustom.cpp:
13185
13186 2012-11-12  Roger Fong  <roger_fong@apple.com>
13187
13188         Web Inspector: Fix docking behaviour on Windows.
13189         https://bugs.webkit.org/show_bug.cgi?id=101978
13190
13191         Reviewed by Brian Weinstein.
13192
13193         There are a number of problems with docking behaviour on Windows.
13194         For starters, it does not ever constrain the inspector's size properly while docked.
13195         It also does not properly set the whether or not the inspector can be docked/undocked.
13196         This patch fixes both issues.
13197
13198         * inspector/InspectorFrontendClientLocal.cpp:
13199         (WebCore::InspectorFrontendClientLocal::frontendLoaded):
13200         Switch order of calling bringToFront and setDockingUnavailable.
13201
13202 2012-11-12  Adam Barth  <abarth@webkit.org>
13203
13204         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
13205         https://bugs.webkit.org/show_bug.cgi?id=101519
13206
13207         Reviewed by Ojan Vafai.
13208
13209         There should be no change in behavior.  The new API is slightly faster
13210         than the old API (and apparently works correctly internally in V8).
13211
13212         * bindings/scripts/CodeGeneratorV8.pm:
13213         (GenerateHeader):
13214         * bindings/scripts/test/V8/V8Float64Array.h:
13215         (WebCore::V8Float64Array::toNative):
13216         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
13217         (WebCore::V8TestActiveDOMObject::toNative):
13218         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
13219         (WebCore::V8TestCustomNamedGetter::toNative):
13220         * bindings/scripts/test/V8/V8TestEventConstructor.h:
13221         (WebCore::V8TestEventConstructor::toNative):
13222         * bindings/scripts/test/V8/V8TestEventTarget.h:
13223         (WebCore::V8TestEventTarget::toNative):
13224         * bindings/scripts/test/V8/V8TestException.h:
13225         (WebCore::V8TestException::toNative):
13226         * bindings/scripts/test/V8/V8TestInterface.h:
13227         (WebCore::V8TestInterface::toNative):
13228         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
13229         (WebCore::V8TestMediaQueryListListener::toNative):
13230         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
13231         (WebCore::V8TestNamedConstructor::toNative):
13232         * bindings/scripts/test/V8/V8TestNode.h:
13233         (WebCore::V8TestNode::toNative):
13234         * bindings/scripts/test/V8/V8TestObj.h:
13235         (WebCore::V8TestObj::toNative):
13236         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
13237         (WebCore::V8TestSerializedScriptValueInterface::toNative):
13238         * bindings/v8/NPV8Object.cpp:
13239         (WebCore::v8ObjectToNPObject):
13240         (WebCore::npCreateV8ScriptObject):
13241         * bindings/v8/V8Collection.h:
13242         (WebCore::toNativeCollection):
13243         * bindings/v8/V8DOMWindowShell.cpp:
13244         (WebCore::setIsolatedWorldField):
13245         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
13246         * bindings/v8/V8DOMWrapper.cpp:
13247         (WebCore::V8DOMWrapper::isWrapperOfType):
13248         * bindings/v8/V8DOMWrapper.h:
13249         (WebCore::V8DOMWrapper::setDOMWrapper):
13250         (WebCore::V8DOMWrapper::clearDOMWrapper):
13251         * bindings/v8/WrapperTypeInfo.h:
13252         (WebCore::toNative):
13253         (WebCore::toWrapperTypeInfo):
13254
13255 2012-11-12  Andreas Kling  <kling@webkit.org>
13256
13257         Rename AttributeStyle => PresentationAttributeStyle across WebCore.
13258         <http://webkit.org/b/101975>
13259
13260         Rubber-stamped by Antti Koivisto.
13261
13262         The completely separate concepts of "attribute style" and "style attribute" were a bit too
13263         easy to confuse in variable and method names. Reconfigure our terminology to call it
13264         "presentation attribute style" instead of "attribute style".
13265
13266         * css/StyleResolver.cpp:
13267         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
13268         (WebCore::StyleResolver::matchAllRules):
13269         (WebCore::StyleResolver::canShareStyleWithElement):
13270         * dom/Attr.cpp:
13271         (WebCore::Attr::style):
13272         * dom/ElementAttributeData.cpp:
13273         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
13274         (WebCore::ElementAttributeData::reportMemoryUsage):
13275         * dom/ElementAttributeData.h:
13276         (WebCore::ElementAttributeData::presentationAttributeStyle):
13277         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
13278         (ElementAttributeData):
13279         * dom/Node.h:
13280         (WebCore::Node::attributeStyleDirty):
13281         (WebCore::Node::setPresentationAttributeStyleDirty):
13282         (WebCore::Node::clearPresentationAttributeStyleDirty):
13283         * dom/StyledElement.cpp:
13284         (WebCore::StyledElement::attributeChanged):
13285         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
13286         (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
13287         * dom/StyledElement.h:
13288         (WebCore::StyledElement::additionalPresentationAttributeStyle):
13289         (StyledElement):
13290         (WebCore::StyledElement::collectStyleForPresentationAttribute):
13291         (WebCore::StyledElement::presentationAttributeStyle):
13292         * html/HTMLBRElement.cpp:
13293         (WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
13294         * html/HTMLBRElement.h:
13295         (HTMLBRElement):
13296         * html/HTMLBodyElement.cpp:
13297         (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
13298         * html/HTMLBodyElement.h:
13299         (HTMLBodyElement):
13300         * html/HTMLDivElement.cpp:
13301         (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
13302         * html/HTMLDivElement.h:
13303         (HTMLDivElement):
13304         * html/HTMLElement.cpp:
13305         (WebCore::HTMLElement::applyBorderAttributeToStyle):
13306         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
13307         (WebCore::HTMLElement::collectStyleForPresentationAttribute):
13308         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
13309         (WebCore::HTMLElement::addHTMLLengthToStyle):
13310         * html/HTMLElement.h:
13311         (HTMLElement):
13312         * html/HTMLEmbedElement.cpp:
13313         (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
13314         * html/HTMLEmbedElement.h:
13315         (HTMLEmbedElement):
13316         * html/HTMLFontElement.cpp:
13317         (WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
13318         * html/HTMLFontElement.h:
13319         (HTMLFontElement):
13320         * html/HTMLFrameSetElement.cpp:
13321         (WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
13322         * html/HTMLFrameSetElement.h:
13323         (HTMLFrameSetElement):
13324         * html/HTMLHRElement.cpp:
13325         (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
13326         * html/HTMLHRElement.h:
13327         (HTMLHRElement):
13328         * html/HTMLIFrameElement.cpp:
13329         (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
13330         * html/HTMLIFrameElement.h:
13331         (HTMLIFrameElement):
13332         * html/HTMLImageElement.cpp:
13333         (WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
13334         * html/HTMLImageElement.h:
13335         (HTMLImageElement):
13336         * html/HTMLInputElement.cpp:
13337         (WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
13338         * html/HTMLInputElement.h:
13339         (HTMLInputElement):
13340         * html/HTMLLIElement.cpp:
13341         (WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
13342         * html/HTMLLIElement.h:
13343         (HTMLLIElement):
13344         * html/HTMLMarqueeElement.cpp:
13345         (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
13346         * html/HTMLMarqueeElement.h:
13347         (HTMLMarqueeElement):
13348         * html/HTMLOListElement.cpp:
13349         (WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
13350         * html/HTMLOListElement.h:
13351         (HTMLOListElement):
13352         * html/HTMLObjectElement.cpp:
13353         (WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
13354         * html/HTMLObjectElement.h:
13355         (HTMLObjectElement):
13356         * html/HTMLParagraphElement.cpp:
13357         (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
13358         * html/HTMLParagraphElement.h:
13359         (HTMLParagraphElement):
13360         * html/HTMLPlugInElement.cpp:
13361         (WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
13362         * html/HTMLPlugInElement.h:
13363         (HTMLPlugInElement):
13364         * html/HTMLPreElement.cpp:
13365         (WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
13366         * html/HTMLPreElement.h:
13367         (HTMLPreElement):
13368         * html/HTMLTableCaptionElement.cpp:
13369         (WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
13370         * html/HTMLTableCaptionElement.h:
13371         (HTMLTableCaptionElement):
13372         * html/HTMLTableCellElement.cpp:
13373         (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
13374         (WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
13375         * html/HTMLTableCellElement.h:
13376         (HTMLTableCellElement):
13377         * html/HTMLTableColElement.cpp:
13378         (WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
13379         (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
13380         * html/HTMLTableColElement.h:
13381         (HTMLTableColElement):
13382         * html/HTMLTableElement.cpp:
13383         (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
13384         (WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
13385         * html/HTMLTableElement.h:
13386         (HTMLTableElement):
13387         * html/HTMLTablePartElement.cpp:
13388         (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
13389         * html/HTMLTablePartElement.h:
13390         (HTMLTablePartElement):
13391         * html/HTMLTableSectionElement.cpp:
13392         (WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
13393         * html/HTMLTableSectionElement.h:
13394         (HTMLTableSectionElement):
13395         * html/HTMLTextAreaElement.cpp:
13396         (WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
13397         * html/HTMLTextAreaElement.h:
13398         (HTMLTextAreaElement):
13399         * html/HTMLUListElement.cpp:
13400         (WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
13401         * html/HTMLUListElement.h:
13402         (HTMLUListElement):
13403         * html/HTMLVideoElement.cpp:
13404         (WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
13405         * html/HTMLVideoElement.h:
13406         (HTMLVideoElement):
13407         * inspector/InspectorCSSAgent.cpp:
13408         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
13409         * mathml/MathMLElement.cpp:
13410         (WebCore::MathMLElement::collectStyleForPresentationAttribute):
13411         * mathml/MathMLElement.h:
13412         (MathMLElement):
13413         * svg/SVGImageElement.cpp:
13414         (WebCore::SVGImageElement::collectStyleForPresentationAttribute):
13415         * svg/SVGImageElement.h:
13416         (SVGImageElement):
13417         * svg/SVGStyledElement.cpp:
13418         (WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
13419         * svg/SVGStyledElement.h:
13420         (SVGStyledElement):
13421         * svg/SVGTextContentElement.cpp:
13422         (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
13423         * svg/SVGTextContentElement.h:
13424         (SVGTextContentElement):
13425
13426 2012-11-12  Adam Barth  <abarth@webkit.org>
13427
13428         [V8] Many things crash when switching to V8's new aligned pointer API
13429         https://bugs.webkit.org/show_bug.cgi?id=101994
13430
13431         Reviewed by Eric Seidel.
13432
13433         When using the aligned pointer API, we need to make sure to initialize
13434         every internal field that we later read because the new API has better
13435         error checks than the old API. This patch explicitly initializes the
13436         enteredIsolatedWorldIndex internal field to zero for main worlds,
13437         fixing the LayoutTest crashes from our previous attempt to move the
13438         aligned pointer API.
13439
13440         * bindings/v8/V8DOMWindowShell.cpp:
13441         (WebCore::V8DOMWindowShell::initializeIfNeeded):
13442
13443 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13444
13445         Reduce the crazy number of parameters to RenderLayer painting member functions
13446         https://bugs.webkit.org/show_bug.cgi?id=101895
13447
13448         Reviewed by Beth Dakin.
13449
13450         The various RenderLayer::paintLayer* functions took a lot of arguments, most
13451         of which were passed down directly to descendants.
13452         
13453         Gather these arguments into a LayerPaintingInfo struct.
13454
13455         * rendering/RenderLayer.cpp:
13456         (WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
13457         to descendant paint calls.
13458         (WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
13459         (WebCore::RenderLayer::paintLayer): When painting transformed layers, we
13460         make a new LayerPaintingInfo because the root layer is shifted.
13461         (WebCore::RenderLayer::paintLayerContentsAndReflection):
13462         (WebCore::RenderLayer::paintLayerContents):
13463         (WebCore::RenderLayer::paintList):
13464         (WebCore::RenderLayer::paintPaginatedChildLayer):
13465         (WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
13466         struct for column painting.
13467         * rendering/RenderLayer.h:
13468         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
13469         (LayerPaintingInfo):
13470         * rendering/RenderLayerBacking.cpp:
13471         (WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
13472         to enter layer painting.
13473         * rendering/RenderReplica.cpp:
13474         (WebCore::RenderReplica::paint): Ditto.
13475
13476 2012-11-12  Brady Eidson  <beidson@apple.com>
13477
13478         NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
13479         https://bugs.webkit.org/show_bug.cgi?id=101872
13480
13481         Reviewed by Alexey Proskuryakov.
13482
13483         Expose shouldSniffContent to pass it along to the NetworkProcess.
13484
13485         * loader/ResourceLoader.h:
13486         (WebCore::ResourceLoader::shouldSniffContent):
13487
13488 2012-11-12  Christophe Dumez  <christophe.dumez@intel.com>
13489
13490         Fix memory leak in createSurfaceForBackingStore()
13491         https://bugs.webkit.org/show_bug.cgi?id=101941
13492
13493         Reviewed by Kenneth Rohde Christiansen.
13494
13495         Fix memory leak in createSurfaceForBackingStore(),
13496         the RefPtr<cairo_surface_t> should be released
13497         when returned since we pass ownership to the
13498         caller.
13499
13500         No new tests, no behavior change for layout tests.
13501
13502         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13503         (WebCore::createSurfaceForBackingStore):
13504
13505 2012-11-12  Joe Mason  <jmason@rim.com>
13506
13507         [BlackBerry] Update to new proxyInfo API
13508         https://bugs.webkit.org/show_bug.cgi?id=101945
13509
13510         Reviewed by George Staikos.
13511
13512         Internal PR: 234680
13513         Reviewed internally by: Leo Yang
13514
13515         The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
13516         have been replaced with a single, more efficient proxyInfo method.
13517
13518         No new tests because this is an API update with no behaviour change.
13519
13520         * platform/network/blackberry/NetworkJob.cpp:
13521         (WebCore::NetworkJob::sendRequestWithCredentials):
13522         (WebCore::NetworkJob::storeCredentials):
13523
13524 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13525
13526         Unreviewed, rolling out r126157.
13527         http://trac.webkit.org/changeset/126157
13528         https://bugs.webkit.org/show_bug.cgi?id=101954
13529
13530         This patch caused (untestable) regression of the volume
13531         property on Mac, Win, and Blackberry ports. (Requested by
13532         jernoble on #webkit).
13533
13534         * platform/graphics/MediaPlayer.cpp:
13535         (WebCore::MediaPlayer::loadWithNextMediaEngine):
13536         (WebCore::MediaPlayer::setVolume):
13537         (WebCore::MediaPlayer::setMuted):
13538         (WebCore::MediaPlayer::setPreservesPitch):
13539         (WebCore::MediaPlayer::setSize):
13540         (WebCore::MediaPlayer::setVisible):
13541         (WebCore::MediaPlayer::setPreload):
13542
13543 2012-11-12  Arpita Bahuguna  <arpitabahuguna@gmail.com>
13544
13545         Specified width CSS tables should not include border and padding as part of that width.
13546         https://bugs.webkit.org/show_bug.cgi?id=77028
13547
13548         Reviewed by Julien Chaffraix.
13549
13550         CSS table width should not include border and padding even though HTML
13551         tables size as though their width includes border/padding.
13552
13553         This is applicable for all CSS tables with specified widths.
13554
13555         The change would also make our rendering of CSS tables with specified
13556         width similar to that of Opera, IE and FF.
13557
13558         Test: fast/table/css-table-width-with-border-padding.html
13559
13560         * rendering/RenderTable.cpp:
13561         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
13562         Added check for all (positive) specified widths for CSS tables to
13563         consider border and padding outside of the specified width.
13564
13565 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13566
13567         Move resolving blob references to FormData.
13568         https://bugs.webkit.org/show_bug.cgi?id=101754
13569
13570         Reviewed by Simon Hausmann.
13571
13572         Resolving Blob-references to a set of just File and Data is done similar by several platforms.
13573         This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
13574         BlackBerry network implementation.
13575
13576         * platform/network/FormData.cpp:
13577         (WebCore::appendBlobResolved):
13578         (WebCore::FormData::resolveBlobReferences):
13579         * platform/network/FormData.h:
13580         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
13581         (WebCore::ResourceRequest::initializePlatformRequest):
13582         * platform/network/cf/FormDataStreamCFNet.cpp:
13583         (WebCore::setHTTPBody):
13584         * platform/network/qt/QNetworkReplyHandler.cpp:
13585         (WebCore::FormDataIODevice::prepareFormElements):
13586
13587 2012-11-12  Zeno Albisser  <zeno@webkit.org>
13588
13589         GraphicsSurfaceGLX does not handle transparency correctly.
13590         https://bugs.webkit.org/show_bug.cgi?id=101943
13591
13592         GraphicsSurfacGLX must consistently use RGBA texture format.
13593         glXCreateWindow must be called after creating the XWindow
13594         that serves as a temporary offscreen texture storage, in order
13595         to allow for transparency.
13596         When creating the offscreen XWindow we must make sure,
13597         that we use a framebuffer configuration that supports
13598         an alpha mask.
13599
13600         Reviewed by Noam Rosenthal.
13601
13602         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
13603         (WebCore):
13604         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
13605         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
13606         (WebCore::GraphicsSurfacePrivate::createSurface):
13607         (GraphicsSurfacePrivate):
13608         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
13609
13610 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13611
13612         Unreviewed, rolling out r134225.
13613         http://trac.webkit.org/changeset/134225
13614         https://bugs.webkit.org/show_bug.cgi?id=101948
13615
13616         Appears to have broken the EFL and GTK builds (Requested by
13617         abarth on #webkit).
13618
13619         * bindings/js/JSHTMLElementCustom.cpp:
13620         (WebCore):
13621         (WebCore::JSHTMLElement::itemValue):
13622         (WebCore::JSHTMLElement::setItemValue):
13623         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13624         (WebCore):
13625         (WebCore::V8HTMLElement::itemValueAccessorGetter):
13626         (WebCore::V8HTMLElement::itemValueAccessorSetter):
13627         * html/HTMLElement.idl:
13628
13629 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13630
13631         hitTestResultAtPoint does two hit-tests if called on non main frame
13632         https://bugs.webkit.org/show_bug.cgi?id=101915
13633
13634         Reviewed by Antonio Gomes.
13635
13636         Always redirect hitTestResultAtPoint to the main-frame. This used to being
13637         done on every result that hit anything, which caused running the expensive 
13638         hit-tests multiple times in almost all cases.
13639
13640         * page/EventHandler.cpp:
13641         (WebCore::EventHandler::hitTestResultAtPoint):
13642
13643 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13644
13645         [V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
13646         https://bugs.webkit.org/show_bug.cgi?id=101892
13647
13648         Reviewed by Adam Barth.
13649
13650         We can remove [Custom] from callUID in ScriptProfileNode.idl.
13651
13652         No tests. No change in behavior.
13653
13654         * GNUmakefile.list.am:
13655         * Target.pri:
13656         * UseJSC.cmake:
13657         * WebCore.gypi:
13658         * WebCore.vcproj/WebCore.vcproj:
13659         * WebCore.xcodeproj/project.pbxproj:
13660         * bindings/js/JSBindingsAllInOne.cpp:
13661         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
13662         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
13663         * inspector/ScriptProfileNode.idl:
13664
13665 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13666
13667         [V8] Performance::memory getter needs not to be [Custom]
13668         https://bugs.webkit.org/show_bug.cgi?id=101890
13669
13670         Reviewed by Adam Barth.
13671
13672         No tests. No change in behavior.
13673
13674         * UseV8.cmake:
13675         * WebCore.gypi:
13676         * bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
13677         * page/Performance.idl:
13678
13679 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13680
13681         [V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
13682         https://bugs.webkit.org/show_bug.cgi?id=101888
13683
13684         Reviewed by Adam Barth.
13685
13686         We can remove [Custom] from getter. It is possible to remove [Custom]
13687         from setter, but it changes the current behavior.
13688         (I think the current implementation of the setter is wrong.
13689         I'll fix it in another patch.)
13690
13691         No tests. No change in behavior.
13692
13693         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13694         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13695         * html/HTMLOptionsCollection.idl:
13696
13697 2012-11-12  Yael Aharon  <yael.aharon@intel.com>
13698
13699         [EFL][WK2][AC] Black screen when applications use software backend.
13700         https://bugs.webkit.org/show_bug.cgi?id=101659
13701
13702         Reviewed by Kenneth Rohde Christiansen.
13703
13704         Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.
13705
13706         No new tests. Will be covered when running existing tests without enabling openGL.
13707
13708         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13709         (WebCore::createSurfaceForImage):
13710         (WebCore):
13711         * platform/graphics/efl/CairoUtilitiesEfl.h:
13712         (WebCore):
13713
13714 2012-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
13715
13716         Unreviewed. Fix make distcheck.
13717
13718         * GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
13719         contain idl files anymore.
13720         * GNUmakefile.list.am: Add missing header files.
13721
13722 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
13723
13724         MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
13725         https://bugs.webkit.org/show_bug.cgi?id=101733
13726
13727         Reviewed by Jochen Eisinger.
13728
13729         This patch adds better verification to MediaConstraintsImpl.
13730
13731         Existing tests expanded to cover this change.
13732
13733         * Modules/mediastream/MediaConstraintsImpl.cpp:
13734         (WebCore::MediaConstraintsImpl::initialize):
13735
13736 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13737
13738         Unreviewed, rolling out r134223.
13739         http://trac.webkit.org/changeset/134223
13740         https://bugs.webkit.org/show_bug.cgi?id=101939
13741
13742         Breaks inspector tests (Requested by pfeldman on #webkit).
13743
13744         * inspector/front-end/DefaultTextEditor.js:
13745         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
13746         (WebInspector.TextEditorMainPanel):
13747         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
13748         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
13749         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
13750         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
13751         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
13752         (WebInspector.TextEditorMainPanel.prototype._paintLine):
13753         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
13754         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
13755         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
13756         * inspector/front-end/externs.js:
13757         * inspector/front-end/textEditor.css:
13758
13759 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13760
13761         [Qt] Support ResourceRequest's setTimeoutInterval
13762         https://bugs.webkit.org/show_bug.cgi?id=101731
13763
13764         Reviewed by Simon Hausmann.
13765
13766         Establish a timeout and return the correct error when it is triggered.
13767
13768         Tested by existing http/tests/xmlhttprequest/timeout tests.
13769
13770         * platform/network/ResourceRequestBase.cpp:
13771         * platform/network/qt/QNetworkReplyHandler.cpp:
13772         (WebCore::QNetworkReplyHandler::release):
13773         (WebCore::QNetworkReplyHandler::finish):
13774         (WebCore::QNetworkReplyHandler::timeout):
13775         (WebCore::QNetworkReplyHandler::timerEvent):
13776         (WebCore::QNetworkReplyHandler::start):
13777         * platform/network/qt/QNetworkReplyHandler.h:
13778         (QNetworkReplyHandler):
13779
13780 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13781
13782         Unreviewed, rolling out r134224.
13783         http://trac.webkit.org/changeset/134224
13784         https://bugs.webkit.org/show_bug.cgi?id=101937
13785
13786         asserting on bawts (Requested by kling on #webkit).
13787
13788         * rendering/style/RenderStyle.cpp:
13789         (WebCore::RenderStyle::diff):
13790         (WebCore::RenderStyle::setColor):
13791         (WebCore::RenderStyle::setVisitedLinkColor):
13792         * rendering/style/RenderStyle.h:
13793         * rendering/style/StyleBackgroundData.cpp:
13794         (WebCore::StyleBackgroundData::StyleBackgroundData):
13795         * rendering/style/StyleBackgroundData.h:
13796         (WebCore::StyleBackgroundData::color):
13797         (StyleBackgroundData):
13798         * rendering/style/StyleInheritedData.cpp:
13799         (WebCore::StyleInheritedData::StyleInheritedData):
13800         * rendering/style/StyleInheritedData.h:
13801         (StyleInheritedData):
13802         * rendering/style/StyleMultiColData.cpp:
13803         (WebCore::StyleMultiColData::StyleMultiColData):
13804         * rendering/style/StyleMultiColData.h:
13805         (StyleMultiColData):
13806         * rendering/style/StyleRareInheritedData.cpp:
13807         (SameSizeAsStyleRareInheritedData):
13808         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
13809         (WebCore::StyleRareInheritedData::operator==):
13810         * rendering/style/StyleRareInheritedData.h:
13811         (WebCore):
13812         (StyleRareInheritedData):
13813         * rendering/style/StyleRareNonInheritedData.cpp:
13814         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
13815         (WebCore::StyleRareNonInheritedData::operator==):
13816         * rendering/style/StyleRareNonInheritedData.h:
13817         (StyleRareNonInheritedData):
13818
13819 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13820
13821         [BlackBerry] Update BB10 form theme.
13822         https://bugs.webkit.org/show_bug.cgi?id=100760
13823
13824         Reviewed by Rob Buis.
13825
13826         RIM PR 236993
13827         Internally Reviewed by Jeff Rogers.
13828         Use slide and paint method on slider range and media controls.
13829
13830         * platform/blackberry/RenderThemeBlackBerry.cpp:
13831         (WebCore):
13832         (WebCore::drawThreeSliceHorizontal):
13833         (WebCore::drawThreeSliceVertical):
13834         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13835         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
13836         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
13837         (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
13838         * platform/blackberry/RenderThemeBlackBerry.h:
13839         (RenderThemeBlackBerry):
13840
13841 2012-11-12  Kent Tamura  <tkent@chromium.org>
13842
13843         Refactoring: set read-only values on layout in DateTimeEditElement
13844         https://bugs.webkit.org/show_bug.cgi?id=101916
13845
13846         Reviewed by Kentaro Hara.
13847
13848         We have always updated read-only values when we set an empty value or
13849         DateTimeFieldsState. It has wasted CPU time because such read-only
13850         values are never updated after layout() essentially. So, we set
13851         read-only values in DateTimeEditBuilder used by layout(), and remove
13852         dateForReadOnlyField arguments of setEmptyValue and
13853         setValueAsDateTimeFieldsState.
13854
13855         No new tests. This should not make behavior changes.
13856
13857         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
13858         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
13859         We removed dateForReadOnlyField argument because read-only values are
13860         already set in DateTimeFieldElement::layout().
13861         * html/shadow/DateTimeEditElement.cpp:
13862         (WebCore::DateTimeEditBuilder::visitField):
13863         Set a value to a read-only minute/second/millisecond field while
13864         building UI elements.
13865         Also, changed variable types for millisecond and second fields to
13866         RefPtr<DateTimeNumericFieldElement> because we'd like to call
13867         setValueAsDate, which is private in DateTimeMillisecondFieldElement and
13868         DateTimeSecondFieldElement
13869         (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
13870         We removed dateForReadOnlyField argument because read-only values are
13871         already set in DateTimeFieldElement::layout().
13872         (WebCore::DateTimeEditElement::setEmptyValue): Ditto.
13873         * html/shadow/DateTimeEditElement.h:
13874         (DateTimeEditElement):
13875         Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.
13876
13877         * html/shadow/DateTimeFieldElement.cpp:
13878         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
13879         We removed dateForReadOnlyField argument because read-only values are
13880         already set in DateTimeFieldElement::layout().
13881         * html/shadow/DateTimeFieldElement.h:
13882         (DateTimeFieldElement): Ditto.
13883
13884         * html/shadow/DateTimeFieldElements.cpp: Ditto.
13885         * html/shadow/DateTimeFieldElements.h: Ditto.
13886         * html/shadow/DateTimeNumericFieldElement.cpp:
13887         (WebCore::DateTimeNumericFieldElement::setEmptyValue):
13888         It should do nothing if it is read-only because a read-only value was
13889         already set just after construction.
13890         * html/shadow/DateTimeNumericFieldElement.h:
13891         (DateTimeNumericFieldElement):
13892         Removed dateForReadOnlyField argument of setEmptyValue.
13893         * html/shadow/DateTimeSymbolicFieldElement.cpp:
13894         (WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
13895         * html/shadow/DateTimeSymbolicFieldElement.h:
13896         (DateTimeSymbolicFieldElement): Ditto.
13897
13898 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13899
13900         [BlackBerry] Update BB10 form theme.
13901         https://bugs.webkit.org/show_bug.cgi?id=100760
13902
13903         Reviewed by Rob Buis.
13904
13905         RIM PR 236993
13906         Internally Reviewed by Jeff Rogers.
13907         Enable GL slider.
13908
13909         * platform/blackberry/RenderThemeBlackBerry.cpp:
13910         (WebCore::drawThreeSlice):
13911         (WebCore):
13912         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13913         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
13914
13915 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13916
13917         [V8][JSC] HTMLElement::itemValue() needs not to be custom
13918         https://bugs.webkit.org/show_bug.cgi?id=101882
13919
13920         Reviewed by Adam Barth.
13921
13922         We can remove a [Custom] IDL attribute.
13923
13924         No tests. No change in behavior.
13925
13926         * bindings/js/JSHTMLElementCustom.cpp:
13927         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13928         * html/HTMLElement.idl:
13929
13930 2012-11-12  Andreas Kling  <kling@webkit.org>
13931
13932         RenderStyle: Pack Color members tighter in substructures.
13933         <http://webkit.org/b/101860>
13934
13935         Reviewed by Antti Koivisto.
13936
13937         For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
13938         members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.
13939
13940         Memory saved per instance:
13941
13942             - StyleMultiColData:          4 bytes
13943             - StyleBackgroundData:        8 bytes
13944             - StyleInheritedData:         8 bytes
13945             - StyleRareInheritedData:    24 bytes
13946             - StyleRareNonInheritedData: 24 bytes
13947
13948         323kB progression on Membuster3.
13949
13950         * rendering/style/RenderStyle.cpp:
13951         (WebCore::RenderStyle::diff):
13952         (WebCore::RenderStyle::setColor):
13953         (WebCore::RenderStyle::setVisitedLinkColor):
13954         (WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
13955         (WebCore::RenderStyle::setBackgroundColor):
13956         * rendering/style/RenderStyle.h:
13957         * rendering/style/StyleBackgroundData.cpp:
13958         (WebCore::StyleBackgroundData::StyleBackgroundData):
13959         * rendering/style/StyleBackgroundData.h:
13960         (WebCore::StyleBackgroundData::color):
13961         (StyleBackgroundData):
13962         * rendering/style/StyleInheritedData.cpp:
13963         (WebCore::StyleInheritedData::StyleInheritedData):
13964         * rendering/style/StyleInheritedData.h:
13965         (StyleInheritedData):
13966         * rendering/style/StyleMultiColData.cpp:
13967         (WebCore::StyleMultiColData::StyleMultiColData):
13968         (WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
13969         * rendering/style/StyleMultiColData.h:
13970         (StyleMultiColData):
13971         (WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
13972         * rendering/style/StyleRareInheritedData.cpp:
13973         (SameSizeAsStyleRareInheritedData):
13974         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
13975         (WebCore::StyleRareInheritedData::operator==):
13976         (WebCore::StyleRareInheritedData::setTextStrokeColor):
13977         (WebCore::StyleRareInheritedData::setTextFillColor):
13978         (WebCore::StyleRareInheritedData::setTextEmphasisColor):
13979         (WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
13980         (WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
13981         (WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
13982         * rendering/style/StyleRareInheritedData.h:
13983         (StyleRareInheritedData):
13984         (WebCore::StyleRareInheritedData::textStrokeColor):
13985         (WebCore::StyleRareInheritedData::textFillColor):
13986         (WebCore::StyleRareInheritedData::textEmphasisColor):
13987         (WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
13988         (WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
13989         (WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
13990         * rendering/style/StyleRareNonInheritedData.cpp:
13991         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
13992         (WebCore::StyleRareNonInheritedData::operator==):
13993         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
13994         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
13995         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
13996         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
13997         (WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
13998         (WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
13999         * rendering/style/StyleRareNonInheritedData.h:
14000         (WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
14001         (WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
14002         (WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
14003         (WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
14004         (WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
14005         (WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
14006         (StyleRareNonInheritedData):
14007
14008 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14009
14010         Web Inspector: migrate text editor to mutation observers
14011         https://bugs.webkit.org/show_bug.cgi?id=101841
14012
14013         Reviewed by Vsevolod Vlasov.
14014
14015         Otherwise, we miss notifications on the removed lines.
14016
14017         * inspector/front-end/DefaultTextEditor.js:
14018         (WebInspector.TextEditorMainPanel):
14019         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
14020         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
14021         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
14022         (WebInspector.TextEditorMainPanel.prototype._handleMutation):
14023         * inspector/front-end/externs.js:
14024         (WebKitMutation):
14025         (WebKitMutationObserver.prototype.observe):
14026         (WebKitMutationObserver.prototype.disconnect):
14027
14028 2012-11-12  Allan Sandfeld Jensen  <sandfeld@kde.org>
14029
14030         [Qt] Flash-plugin starts with wrong width
14031         https://bugs.webkit.org/show_bug.cgi?id=101836
14032
14033         Reviewed by Simon Hausmann.
14034
14035         Defer the setWindow call, so that the one time it is called it will have its final size.
14036
14037         * plugins/PluginPackage.cpp:
14038         (WebCore::PluginPackage::determineQuirks):
14039
14040 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14041
14042         Remove the V8 custom code for WebSockets constructor
14043         https://bugs.webkit.org/show_bug.cgi?id=100801
14044
14045         Reviewed by Kentaro Hara.
14046
14047         This patch does the following:
14048
14049         1) Modifies the V8 code generator to support overloaded constructors,
14050            the JS generator is fixed to work as before. Proper support for JS will come later.
14051
14052         2) Modifies WebSocket.h/.cpp for the new constructors.
14053
14054         Tested by running WebSockets layout tests.
14055
14056         * Modules/websockets/WebSocket.cpp:
14057         (WebCore::WebSocket::create):
14058         (WebCore):
14059         * Modules/websockets/WebSocket.h:
14060         (WebSocket):
14061         * Modules/websockets/WebSocket.idl:
14062         * bindings/scripts/CodeGeneratorJS.pm:
14063         (GenerateConstructorDefinition):
14064         * bindings/scripts/CodeGeneratorV8.pm:
14065         (GenerateHeader):
14066         (GenerateOverloadedConstructorCallback):
14067         (GenerateSingleConstructorCallback):
14068         (GenerateConstructorCallback):
14069         (GenerateImplementation):
14070         * bindings/scripts/IDLParser.pm:
14071         (copyAttributes):
14072         (parseExtendedAttributeList):
14073         (parseExtendedAttributes):
14074         (applyExtendedAttributeList):
14075         * bindings/scripts/IDLStructure.pm:
14076         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
14077         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
14078         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
14079         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
14080         (WebDOMTestOverloadedConstructors::operator=):
14081         (WebDOMTestOverloadedConstructors::impl):
14082         (WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
14083         (toWebCore):
14084         (toWebKit):
14085         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
14086         (WebCore):
14087         (WebDOMTestOverloadedConstructors):
14088         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
14089         (WebKit):
14090         (WebKit::kit):
14091         (WebKit::core):
14092         (WebKit::wrapTestOverloadedConstructors):
14093         (webkit_dom_test_overloaded_constructors_finalize):
14094         (webkit_dom_test_overloaded_constructors_set_property):
14095         (webkit_dom_test_overloaded_constructors_get_property):
14096         (webkit_dom_test_overloaded_constructors_constructed):
14097         (webkit_dom_test_overloaded_constructors_class_init):
14098         (webkit_dom_test_overloaded_constructors_init):
14099         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
14100         (_WebKitDOMTestOverloadedConstructors):
14101         (_WebKitDOMTestOverloadedConstructorsClass):
14102         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
14103         (WebKit):
14104         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
14105         (WebCore):
14106         (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
14107         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
14108         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
14109         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
14110         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
14111         (WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
14112         (WebCore::JSTestOverloadedConstructorsPrototype::self):
14113         (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
14114         (WebCore::JSTestOverloadedConstructors::finishCreation):
14115         (WebCore::JSTestOverloadedConstructors::createPrototype):
14116         (WebCore::JSTestOverloadedConstructors::destroy):
14117         (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
14118         (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
14119         (WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
14120         (WebCore::jsTestOverloadedConstructorsConstructor):
14121         (WebCore::JSTestOverloadedConstructors::getConstructor):
14122         (WebCore::isObservable):
14123         (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
14124         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
14125         (WebCore::toJS):
14126         (WebCore::toTestOverloadedConstructors):
14127         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
14128         (WebCore):
14129         (JSTestOverloadedConstructors):
14130         (WebCore::JSTestOverloadedConstructors::create):
14131         (WebCore::JSTestOverloadedConstructors::createStructure):
14132         (WebCore::JSTestOverloadedConstructors::impl):
14133         (WebCore::JSTestOverloadedConstructors::releaseImpl):
14134         (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
14135         (JSTestOverloadedConstructorsOwner):
14136         (WebCore::wrapperOwner):
14137         (WebCore::wrapperContext):
14138         (JSTestOverloadedConstructorsPrototype):
14139         (WebCore::JSTestOverloadedConstructorsPrototype::create):
14140         (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
14141         (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
14142         (JSTestOverloadedConstructorsConstructor):
14143         (WebCore::JSTestOverloadedConstructorsConstructor::create):
14144         (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
14145         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
14146         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
14147         (-[DOMTestOverloadedConstructors dealloc]):
14148         (-[DOMTestOverloadedConstructors finalize]):
14149         (core):
14150         (kit):
14151         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
14152         (WebCore):
14153         * bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
14154         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
14155         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
14156         (WebCore):
14157         (TestOverloadedConstructorsV8Internal):
14158         (WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
14159         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
14160         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
14161         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
14162         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
14163         (WebCore::V8TestOverloadedConstructors::constructorCallback):
14164         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
14165         (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
14166         (WebCore::V8TestOverloadedConstructors::GetTemplate):
14167         (WebCore::V8TestOverloadedConstructors::HasInstance):
14168         (WebCore::V8TestOverloadedConstructors::wrapSlow):
14169         (WebCore::V8TestOverloadedConstructors::derefObject):
14170         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
14171         (WebCore):
14172         (V8TestOverloadedConstructors):
14173         (WebCore::V8TestOverloadedConstructors::toNative):
14174         (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
14175         (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
14176         (WebCore::V8TestOverloadedConstructors::wrap):
14177         (WebCore::toV8):
14178         * bindings/v8/custom/V8WebSocketCustom.cpp:
14179
14180 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14181
14182         [Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
14183         https://bugs.webkit.org/show_bug.cgi?id=101891
14184
14185         Reviewed by Hajime Morita.
14186
14187         We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
14188         since it will have more features than the original RuleFeatureSet has.
14189
14190         Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.
14191
14192         No new tests, no change in behavior.
14193
14194         * CMakeLists.txt:
14195         * GNUmakefile.list.am:
14196         * Target.pri:
14197         * WebCore.gypi:
14198         * WebCore.vcproj/WebCore.vcproj:
14199         * WebCore.xcodeproj/project.pbxproj:
14200         * dom/ElementShadow.h:
14201         (ElementShadow):
14202         (WebCore::ElementShadow::selectRuleFeatureSet):
14203         (WebCore):
14204         * html/shadow/SelectRuleFeatureSet.cpp: Added.
14205         (WebCore):
14206         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
14207         (WebCore::SelectRuleFeatureSet::add):
14208         (WebCore::SelectRuleFeatureSet::clear):
14209         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
14210         * html/shadow/SelectRuleFeatureSet.h: Added.
14211         (WebCore):
14212         (SelectRuleFeatureSet):
14213         (WebCore::SelectRuleFeatureSet::hasSelectorForId):
14214         (WebCore::SelectRuleFeatureSet::hasSelectorForClass):
14215         (WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
14216         * testing/Internals.cpp:
14217         (WebCore::Internals::hasSelectorForIdInShadow):
14218         (WebCore::Internals::hasSelectorForClassInShadow):
14219         (WebCore::Internals::hasSelectorForAttributeInShadow):
14220
14221 2012-11-13  Keishi Hattori  <keishi@webkit.org>
14222
14223         Build fix for Chromium Android (caused by r134216)
14224
14225         Unreviewed.
14226
14227         No new tests.
14228
14229         * platform/text/PlatformLocale.cpp:
14230         (WebCore::Locale::formatDateTime):
14231
14232 2012-11-12  Keishi Hattori  <keishi@webkit.org>
14233
14234         Add support for week/month to Locale::formatDateTime()
14235         https://bugs.webkit.org/show_bug.cgi?id=101878
14236
14237         Reviewed by Kent Tamura.
14238
14239         Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.
14240
14241         Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.
14242
14243         * platform/text/PlatformLocale.cpp:
14244         (WebCore::DateTimeStringBuilder::visitField):
14245         (WebCore::Locale::formatDateTime): Support week and month types.
14246
14247 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
14248
14249         [Qt] Can not load MHTML documents
14250         https://bugs.webkit.org/show_bug.cgi?id=101765
14251
14252         Reviewed by Simon Hausmann.
14253
14254         Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.
14255
14256         Tested by existing mhtml/ tests.
14257
14258         * platform/qt/MIMETypeRegistryQt.cpp:
14259         (WebCore):
14260
14261 2012-11-12  Andreas Kling  <akling@apple.com>
14262
14263         Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
14264         <http://webkit.org/b/101850>
14265
14266         Reviewed by Antti Koivisto.
14267
14268         Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
14269         222kB progression on Membuster3.
14270
14271         * platform/network/ResourceRequestBase.cpp:
14272         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
14273
14274 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14275
14276         MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
14277         https://bugs.webkit.org/show_bug.cgi?id=101751
14278
14279         Reviewed by Adam Barth.
14280
14281         This patch queues the events until the JS interpreter is in an idle state.
14282
14283         Existing tests cover this patch.
14284
14285         * Modules/mediastream/RTCDataChannel.cpp:
14286         (WebCore::RTCDataChannel::RTCDataChannel):
14287         (WebCore::RTCDataChannel::readyStateChanged):
14288         (WebCore::RTCDataChannel::dataArrived):
14289         (WebCore::RTCDataChannel::error):
14290         (WebCore::RTCDataChannel::scheduleDispatchEvent):
14291         (WebCore):
14292         (WebCore::RTCDataChannel::scheduledEventTimerFired):
14293         * Modules/mediastream/RTCDataChannel.h:
14294         (RTCDataChannel):
14295         * platform/chromium/support/WebRTCDataChannel.cpp:
14296         (WebKit::WebRTCDataChannel::setBufferedAmount):
14297         (WebKit::WebRTCDataChannel::readyStateChanged):
14298         (WebKit::WebRTCDataChannel::dataArrived):
14299         (WebKit::WebRTCDataChannel::error):
14300
14301 2012-11-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>
14302
14303         Remove HTMLInputElement dependency from PickerIndicatorElement
14304         https://bugs.webkit.org/show_bug.cgi?id=101913
14305
14306         Reviewed by Kent Tamura.
14307
14308         Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
14309         PickerIndicatorElement. It makes easier to add interactions between picker indicator
14310         and its owner without having to add functions to HTMLInputElement.
14311
14312         No new tests. This is just a refactor.
14313
14314         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
14315         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
14316         (WebCore):
14317         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
14318         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
14319         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
14320         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
14321         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
14322         * html/BaseMultipleFieldsDateAndTimeInputType.h:
14323         (WebCore):
14324         (BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
14325         * html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
14326         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
14327         (WebCore::PickerIndicatorElement::create):
14328         (WebCore::PickerIndicatorElement::defaultEventHandler):
14329         (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
14330         (WebCore::PickerIndicatorElement::didChooseValue):
14331         (WebCore::PickerIndicatorElement::openPopup):
14332         * html/shadow/PickerIndicatorElement.h:
14333         (PickerIndicatorElement): Added a PickerIndicatorOwner member.
14334         (PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
14335         (WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
14336         (WebCore::PickerIndicatorElement::removePickerIndicatorOwner):
14337
14338 2012-11-12  Mihnea Ovidenie  <mihnea@adobe.com>
14339
14340         [CSSRegions]Add support for text-shadow in region styling
14341         https://bugs.webkit.org/show_bug.cgi?id=94472
14342
14343         Reviewed by David Hyatt.
14344
14345         Original patch by Andrei Onea.
14346         Add support for text-shadow in region styling (@-webkit-region rule).
14347         In addition to the previously supported region styling properties (background-color and color),
14348         text-shadow requires the computation of an element style in region at layout time.
14349
14350         This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
14351         can be used to retrieve the object style in region (if already cached) or to compute it
14352         on the spot. When computing the object style in region, we need to compute the style in region
14353         also for the object ancestor, up to the content nodes.
14354
14355         This patch also refactors the way styles in region are computed and stored, because
14356         we can compute the style in region not only at paint time, but also at layout time.
14357
14358         Test: fast/regions/region-style-text-shadow.html
14359
14360         * css/StyleResolver.cpp:
14361         (WebCore::StyleResolver::isValidRegionStyleProperty):
14362         Allow text-shadow to be used in region styling.
14363         * rendering/InlineBox.cpp:
14364         (WebCore::InlineBox::styleInRegion):
14365         Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
14366         Compute the style in region if not computed yet.
14367         (WebCore::InlineBox::regionDuringLayout):
14368         Retrieve the region in which an InlineBox is being flowed.
14369         * rendering/InlineBox.h:
14370         * rendering/InlineFlowBox.cpp: Take region styling into account.
14371         (WebCore::InlineFlowBox::addToLine):
14372         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
14373         * rendering/RenderRegion.cpp:
14374         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
14375         (WebCore::canCacheObjectStyleInRegion):
14376         Test if we can cache the computed style in region.
14377         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
14378         (WebCore::RenderRegion::computeStyleInRegion):
14379         (WebCore::RenderRegion::setChildrenStyleInRegion):
14380         (WebCore::setObjectHasBoxDecorationsFlag):
14381         (WebCore::RenderRegion::setObjectStyleInRegion):
14382         (WebCore::RenderRegion::clearObjectStyleInRegion):
14383         (WebCore::RenderRegion::ensureRegionStyleForObject):
14384         * rendering/RenderRegion.h:
14385
14386 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
14387
14388         Unreviewed, rolling out r134154.
14389         http://trac.webkit.org/changeset/134154
14390         https://bugs.webkit.org/show_bug.cgi?id=101919
14391
14392         Causes plenty of crashes on GTK and Apple Win builders
14393         (Requested by zdobersek on #webkit).
14394
14395         * css/mediaControls.css:
14396         * css/mediaControlsQuickTime.css:
14397         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
14398         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
14399         * html/shadow/MediaControlElements.cpp:
14400         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
14401         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
14402         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
14403         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
14404         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
14405         * html/shadow/MediaControlElements.h:
14406         (MediaControlElement):
14407         (MediaControlToggleClosedCaptionsButtonElement):
14408         * html/shadow/MediaControlRootElement.cpp:
14409         (WebCore::MediaControlRootElement::MediaControlRootElement):
14410         (WebCore::MediaControlRootElement::create):
14411         (WebCore::MediaControlRootElement::setMediaController):
14412         (WebCore::MediaControlRootElement::hide):
14413         (WebCore::MediaControlRootElement::makeTransparent):
14414         (WebCore::MediaControlRootElement::reset):
14415         (WebCore::MediaControlRootElement::reportedError):
14416         * html/shadow/MediaControlRootElement.h:
14417         (WebCore):
14418         (MediaControlRootElement):
14419         * html/shadow/MediaControlRootElementChromium.cpp:
14420         (WebCore::MediaControlRootElementChromium::initializeControls):
14421         * html/shadow/MediaControls.h:
14422         (MediaControls):
14423         * platform/Language.cpp:
14424         (WebCore):
14425         * platform/Language.h:
14426         (WebCore):
14427         * rendering/RenderMediaControls.cpp:
14428         (WebCore::RenderMediaControls::paintMediaControlsPart):
14429         * rendering/RenderMediaControlsChromium.cpp:
14430         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
14431
14432 2012-11-12  Mike West  <mkwst@chromium.org>
14433
14434         'for (x in y)' requires 'var' declaration in ConsoleMessage.js
14435         https://bugs.webkit.org/show_bug.cgi?id=101908
14436
14437         Reviewed by Pavel Feldman.
14438
14439         r134166 should have included a 'var' declaration in its 'for (x in y)'
14440         loop. This patch adds the missing 'var' in order to prevent leakage into
14441         the global context.
14442
14443         * inspector/front-end/ConsoleMessage.js:
14444         (WebInspector.ConsoleMessageImpl.prototype.append):
14445         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14446
14447 2012-11-12  Zeno Albisser  <zeno@webkit.org>
14448
14449         [Qt] MiniBrowser should not strongly depend on QtTestSupport.
14450         https://bugs.webkit.org/show_bug.cgi?id=101775
14451
14452         Introducing HAVE(QTTESTSUPPORT) to allow building
14453         MiniBrowser without QtTestSupport.
14454         This is necessary when using a production build.
14455
14456         Reviewed by Tor Arne Vestbø.
14457
14458         * Target.pri:
14459         * platform/qt/QtTestSupport.h:
14460
14461 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14462
14463         Web Inspector: wasShown is called twice when show() is called from within wasShown
14464         https://bugs.webkit.org/show_bug.cgi?id=101858
14465
14466         Reviewed by Vsevolod Vlasov.
14467
14468         When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
14469         We now mute one of them.
14470
14471         * inspector/front-end/View.js:
14472         (WebInspector.View):
14473         (WebInspector.View.prototype._inNotification):
14474         (WebInspector.View.prototype._parentIsShowing):
14475         (WebInspector.View.prototype._callOnVisibleChildren):
14476         (WebInspector.View.prototype._processWasShown):
14477         (WebInspector.View.prototype._processWillHide):
14478         (WebInspector.View.prototype._processOnResize):
14479         (WebInspector.View.prototype._notify):
14480         (WebInspector.View.prototype.show):
14481
14482 2012-11-12  Ryosuke Niwa  <rniwa@webkit.org>
14483
14484         Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
14485         in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.
14486
14487         Furthermore, we can't update layout in updateAppearance. So do that in its call sites.
14488
14489         * editing/FrameSelection.cpp:
14490         (WebCore::FrameSelection::setSelection):
14491         (WebCore::FrameSelection::recomputeCaretRect):
14492         (WebCore::FrameSelection::updateAppearance):
14493         (WebCore::FrameSelection::setCaretVisibility):
14494
14495 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14496
14497         Don't update style when attaching in HTMLMeterElement
14498         https://bugs.webkit.org/show_bug.cgi?id=101714
14499
14500         Reviewed by Hajime Morita.
14501
14502         HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
14503         can cause style-update prevention. The similar thing has already happened in Bug 100507.
14504
14505         Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.
14506
14507         Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html
14508
14509         * html/HTMLMeterElement.cpp:
14510         * html/HTMLMeterElement.h:
14511         (HTMLMeterElement): Removed attach(). We don't need it.
14512
14513 2012-11-09  Ryosuke Niwa  <rniwa@webkit.org>
14514
14515         Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
14516         https://bugs.webkit.org/show_bug.cgi?id=101547
14517
14518         Reviewed by Simon Fraser.
14519
14520         I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
14521         previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
14522         selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
14523         This will let us avoid doing an extra layout upon destruction and not regress repaint tests.
14524
14525         Covered by existing tests.
14526
14527         * editing/FrameSelection.cpp:
14528         (WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
14529         (WebCore::FrameSelection::prepareForDestruction): Added.
14530         (WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
14531         Also, don't update style before updating selection unless text caret is disabled since we always
14532         update the layout (including style) when text caret is enabled.
14533         * editing/FrameSelection.h:
14534         (FrameSelection):
14535         * loader/FrameLoader.cpp:
14536         (WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.
14537
14538 2012-11-11  Dongwoo Joshua Im  <dw.im@samsung.com>
14539
14540         [CSS3] Parsing the property, text-align-last.
14541         https://bugs.webkit.org/show_bug.cgi?id=99439
14542
14543         Reviewed by Julien Chaffraix.
14544
14545         This patch implements the parsing side of the "text-align-last" property specified
14546         in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
14547         Specification link : http://www.w3.org/TR/css3-text/#text-align-last
14548
14549         Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
14550                fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
14551
14552         * css/CSSComputedStyleDeclaration.cpp:
14553         (WebCore):
14554         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
14555         * css/CSSParser.cpp:
14556         (WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
14557         * css/CSSPrimitiveValueMappings.h:
14558         (WebCore):
14559         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
14560         (WebCore::CSSPrimitiveValue::operator ETextAlignLast):
14561         * css/CSSProperty.cpp:
14562         (WebCore::CSSProperty::isInheritedProperty):
14563         * css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
14564         * css/StyleBuilder.cpp:
14565         (WebCore::StyleBuilder::StyleBuilder):
14566         * css/StylePropertySet.cpp:
14567         (WebCore):
14568         * css/StyleResolver.cpp:
14569         (WebCore::StyleResolver::applyProperty):
14570         * rendering/style/RenderStyle.h:
14571         * rendering/style/RenderStyleConstants.h:
14572         * rendering/style/StyleRareInheritedData.cpp:
14573         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
14574         (WebCore::StyleRareInheritedData::operator==):
14575         * rendering/style/StyleRareInheritedData.h:
14576         (StyleRareInheritedData): Add m_textAlignLast.
14577
14578 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14579
14580         [Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
14581         https://bugs.webkit.org/show_bug.cgi?id=101881
14582
14583         Reviewed by Kent Tamura.
14584
14585         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
14586         setPseudo()/pseudo() instead.
14587
14588         No new tests, simple refacotring.
14589
14590         * html/HTMLKeygenElement.cpp:
14591         (WebCore::KeygenSelectElement::KeygenSelectElement):
14592         (KeygenSelectElement):
14593
14594 2012-11-11  Adam Barth  <abarth@webkit.org>
14595
14596         Many DOMWindowProperties would benefit from being ScriptWrappable
14597         https://bugs.webkit.org/show_bug.cgi?id=101887
14598
14599         Reviewed by Kentaro Hara.
14600
14601         These object are only ever created at the behest of script, which means
14602         making them ScriptWrappable is a win.
14603
14604         * page/BarInfo.h:
14605         * page/Console.h:
14606         * page/Crypto.h:
14607         * page/History.h:
14608         * page/Location.h:
14609         * page/Navigator.h:
14610         * page/Performance.h:
14611
14612 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14613
14614         [V8] HTMLDocument::all() needs not to be custom
14615         https://bugs.webkit.org/show_bug.cgi?id=101875
14616
14617         Reviewed by Adam Barth.
14618
14619         We can easily remove the custom getter from V8 because the
14620         custom setter sets .all by ForceSet(). On the other hand,
14621         it is non-trivial to remove the custom getter from JSC
14622         because the custom setter sets .all by putDirect()
14623         and the custom getter wants to get it by getDirect().
14624
14625         No tests. No change in behavior.
14626
14627         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
14628         * html/HTMLDocument.idl:
14629
14630 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14631
14632         [V8] V8Console::memoryAttrGetter() needs not to be custom
14633         https://bugs.webkit.org/show_bug.cgi?id=101873
14634
14635         Reviewed by Adam Barth.
14636
14637         No tests. No change in behavior.
14638
14639         * bindings/v8/custom/V8ConsoleCustom.cpp:
14640         (WebCore):
14641         * page/Console.idl:
14642
14643 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14644
14645         [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
14646         https://bugs.webkit.org/show_bug.cgi?id=101180
14647
14648         Reviewed by Dimitri Glazkov.
14649
14650         This is a preparation patch for Bug 100451.
14651
14652         We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
14653         When an element attribute is changed, we might have to invalidate content distribution,
14654         however it's high cost operation. So we would like to check RuleFeatureSet used in
14655         select attributes to determine we really need to invalidate distribution.
14656
14657         Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
14658         first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
14659         For the performance reason, we have a flag to check whether we need to collect features again.
14660
14661         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
14662
14663         * WebCore.exp.in:
14664         * dom/ElementShadow.cpp:
14665         (WebCore::ElementShadow::ElementShadow):
14666         (WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
14667         nodes (and their ShadowDOM).
14668         (WebCore):
14669         (WebCore::ElementShadow::ensureSelectFeatureSetCollected):
14670         (WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
14671         ShadowDOM. We need to collect id, class, and attribute names.
14672         * dom/ElementShadow.h:
14673         (WebCore::ElementShadow::shouldCollectSelectFeatureSet):
14674         (ElementShadow):
14675         (WebCore::ElementShadow::hasSelectorForId):
14676         (WebCore):
14677         (WebCore::ElementShadow::hasSelectorForClass):
14678         (WebCore::ElementShadow::hasSelectorForAttribute):
14679         * html/shadow/HTMLContentElement.cpp:
14680         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
14681         (WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
14682         (WebCore::HTMLContentElement::removedFrom): ditto.
14683         * html/shadow/HTMLContentElement.h:
14684         (WebCore::toHTMLContentElement):
14685         (WebCore):
14686         * testing/Internals.cpp:
14687         (WebCore::Internals::hasSelectorForIdInShadow):
14688         (WebCore):
14689         (WebCore::Internals::hasSelectorForClassInShadow):
14690         (WebCore::Internals::hasSelectorForAttributeInShadow):
14691         * testing/Internals.h:
14692         (Internals):
14693         * testing/Internals.idl:
14694
14695 2012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>
14696
14697         Unreviewed, rolling out r134144.
14698         http://trac.webkit.org/changeset/134144
14699         https://bugs.webkit.org/show_bug.cgi?id=101876
14700
14701         seems to break win 7 chromium browser test (Requested by
14702         hayato on #webkit).
14703
14704         * WebCore.exp.in:
14705         * page/EventHandler.cpp:
14706         (WebCore):
14707         (WebCore::EventHandler::handleMouseMoveEvent):
14708         * page/EventHandler.h:
14709         (EventHandler):
14710         * testing/Internals.cpp:
14711         * testing/Internals.h:
14712         * testing/Internals.idl:
14713
14714 2012-11-11  Kent Tamura  <tkent@chromium.org>
14715
14716         Internals: MockPagePopup should not update DOM structure during detach()
14717         https://bugs.webkit.org/show_bug.cgi?id=101710
14718
14719         Reviewed by Hajime Morita.
14720
14721         PickerIndicatorElement::detach calls
14722         MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
14723         which remove the mock iframe from the tree. But updating the tree during
14724         detach() is dangerous.
14725
14726         MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
14727         requests to call 'close' asynchronously, and 'close' removes the mock
14728         iframe. We need to change MockPagePopup so that it is ref-couted and has
14729         a timer.
14730
14731         No new tests. This is a change for the test harness.
14732
14733         * testing/MockPagePopupDriver.cpp:
14734         (MockPagePopup): Make this ref-counted, add closeLater, add close, and
14735         add m_closeTimer.
14736         (WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
14737         (WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
14738         (WebCore::MockPagePopup::closeLater):
14739         - Add one reference to avoid destruction by m_mockPagePopup.clear() in
14740           closePagePopup.
14741         - Notify didClosePopup here because the client expects didClosePopup is
14742           called synchronously.
14743         - Invoke the timer to call 'close'
14744         (WebCore::MockPagePopup::close):
14745         Just remove one reference. This means calling the desructor.
14746         (WebCore::MockPagePopup::~MockPagePopup):
14747         Move didClosePopup call to caloseLater.
14748         (WebCore::MockPagePopupDriver::closePagePopup):
14749         Request to close PagePopup.
14750         Clear PagePopupClient in m_pagePopupController because this object is
14751         necessary until MockPagePopup is closed, but it should not have a
14752         reference to the PagePopupClient.
14753         * testing/MockPagePopupDriver.h:
14754         (MockPagePopupDriver): Make MockPagePopup ref-counted.
14755
14756 2012-11-11  Adam Barth  <abarth@webkit.org>
14757
14758         axObjectCache code is more complicated than necessary
14759         https://bugs.webkit.org/show_bug.cgi?id=101820
14760
14761         Reviewed by Darin Adler.
14762
14763         This code should use OwnPtr rather than manually calling new/delete.
14764         Also, instead of using a "double check" pattern, we can just access the
14765         private fields on the top document directly.
14766
14767         * dom/Document.cpp:
14768         (WebCore::Document::Document):
14769         (WebCore::Document::clearAXObjectCache):
14770         (WebCore::Document::axObjectCacheExists):
14771         (WebCore):
14772         (WebCore::Document::axObjectCache):
14773         * dom/Document.h:
14774         (Document):
14775
14776 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14777
14778         Save one call to containerForRepaint() when updating layer positions
14779         https://bugs.webkit.org/show_bug.cgi?id=101856
14780
14781         Reviewed by Dan Bernstein.
14782
14783          RenderLayer::updateLayerPositions() has already computed the repaint container,
14784          but calls computeRepaintRects() which computes it again. Computing the repaint
14785          container involves a walk back up the layer tree, so calling it during a tree
14786          traversal is costly.
14787          
14788          Fix by passing the repaint container down into computeRepaintRects().
14789
14790         * rendering/RenderLayer.cpp:
14791         (WebCore::RenderLayer::updateLayerPositions):
14792         (WebCore::RenderLayer::computeRepaintRects):
14793         (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
14794         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
14795         (WebCore::RenderLayer::setHasVisibleContent):
14796         * rendering/RenderLayer.h:
14797         (RenderLayer):
14798
14799 2012-11-11  Kenichi Ishibashi  <bashi@chromium.org>
14800
14801         WTFString::utf8() should have a mode of conversion to use replacement character
14802         https://bugs.webkit.org/show_bug.cgi?id=101678
14803
14804         Reviewed by Alexey Proskuryakov.
14805
14806         Follow the change on String::utf8()
14807
14808         No new tests. No changes in behavior.
14809
14810         * Modules/websockets/WebSocket.cpp:
14811         (WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
14812         * Modules/websockets/WebSocketChannel.cpp:
14813         (WebCore::WebSocketChannel::send): Ditto.
14814         * html/MediaFragmentURIParser.cpp:
14815         (WebCore::MediaFragmentURIParser::parseFragments): Ditto.
14816         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
14817         (WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
14818         * platform/network/blackberry/rss/RSSFilterStream.cpp:
14819         (WebCore::RSSFilterStream::convertContentToHtml): Ditto.
14820         * platform/network/blackberry/rss/RSSGenerator.cpp:
14821         (WebCore::RSSGenerator::generateHtml): Ditto.
14822
14823 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14824
14825         Coalesce main thread scroll position updates
14826         https://bugs.webkit.org/show_bug.cgi?id=101855
14827
14828         Reviewed by Anders Carlsson.
14829
14830         When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls 
14831         from ScrollingTree would pile up on the main thread, and we'd handle several per
14832         runloop cycle when scrolling fast. This causes extra work especially on pages
14833         with position:fixed elements which must update RenderLayers on scrolling.
14834         
14835         Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
14836         scrolling updates to one per runloop.
14837
14838         * page/scrolling/ScrollingCoordinator.cpp:
14839         (WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
14840         for the scheduled scroll position update.
14841         (WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If 
14842         the timer is active and the parameters match, just update the target scroll
14843         position and return. If the params don't match, dispatch the scheduled update,
14844         and then the new one. Otherwise, prime the timer.
14845         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
14846         the existing updateMainFrameScrollPosition() with the saved values.
14847         * page/scrolling/ScrollingCoordinator.h:
14848         * page/scrolling/ScrollingTree.cpp:
14849         (WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
14850         rather than updateMainFrameScrollPosition().
14851         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14852         (WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
14853         position elements to jiggle with the patch; we should be calling syncPosition() (which just
14854         sets the position data, without touching CA layers).
14855
14856 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14857
14858         Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
14859         https://bugs.webkit.org/show_bug.cgi?id=101514
14860
14861         Reviewed by Tim Horton.
14862
14863         ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
14864         ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
14865         we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
14866         set the layer position (rather than just doing a 'sync').
14867
14868         * page/scrolling/ScrollingCoordinator.cpp:
14869         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
14870         * page/scrolling/ScrollingCoordinator.h:
14871         * page/scrolling/ScrollingTree.cpp:
14872         (WebCore::ScrollingTree::updateMainFrameScrollPosition):
14873         * page/scrolling/ScrollingTree.h:
14874         * page/scrolling/mac/ScrollingCoordinatorMac.h:
14875         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14876         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
14877         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
14878
14879 2012-11-10  Sheriff Bot  <webkit.review.bot@gmail.com>
14880
14881         Unreviewed, rolling out r134069.
14882         http://trac.webkit.org/changeset/134069
14883         https://bugs.webkit.org/show_bug.cgi?id=101852
14884
14885         "It is a wrong way to fix the problem. See discussions in bug
14886         96614" (Requested by 1JTAAPQFJ on #webkit).
14887
14888         * bindings/js/JSDictionary.cpp:
14889         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
14890
14891 2012-11-10  Mike West  <mkwst@chromium.org>
14892
14893         Web Inspector: Multiple '%c' formatting options should all have effect.
14894         https://bugs.webkit.org/show_bug.cgi?id=101495
14895
14896         Reviewed by Pavel Feldman.
14897
14898         This patch supports multiple '%c' formatting blocks in console messages.
14899         'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
14900         do exactly what you expect: "blue!" will be blue, and "green!" will be
14901         green.
14902
14903         The implementation moves the styles off the message's parent 'span', and
14904         onto new 'span' elements that wrap the various textual bits of the
14905         message.
14906
14907         * inspector/front-end/ConsoleMessage.js:
14908         (WebInspector.ConsoleMessageImpl.prototype.):
14909         (WebInspector.ConsoleMessageImpl.prototype.append):
14910         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14911
14912 2012-11-10  Mike West  <mkwst@chromium.org>
14913
14914         Including <CoreText/CoreText.h> breaks the chromium/mac build.
14915         https://bugs.webkit.org/show_bug.cgi?id=101851
14916
14917         Reviewed by Dan Bernstein.
14918
14919         r134146 introduced inclusion of 'CoreText/CoreText.h' in
14920         SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
14921         around, it looks like this needs to be modified to include
14922         'ApplicationServices/ApplicationServices.h'.
14923
14924         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
14925             Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
14926         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
14927             Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.
14928
14929 2012-11-10  Andreas Kling  <kling@webkit.org>
14930
14931         Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
14932         <http://webkit.org/b/101849>
14933
14934         Reviewed by Anders Carlsson.
14935
14936         Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
14937         possible moment, to avoid unnecessarily detaching and cloning from attribute data.
14938
14939         120 kB progression on Membuster3.
14940
14941         * dom/Element.cpp:
14942         (WebCore::Element::setAttributeInternal):
14943         (WebCore::Element::addAttributeInternal):
14944
14945 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14946
14947         Some minor optimizations in RenderLayer
14948         https://bugs.webkit.org/show_bug.cgi?id=101847
14949
14950         Reviewed by Anders Carlsson.
14951
14952         Some minor performance improvements in RenderLayer code.
14953
14954         * rendering/RenderLayer.cpp:
14955         (WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
14956         so prefix it with an isInline() check which tests a bit on RenderObject.
14957         (WebCore::RenderLayer::localBoundingBox): Ditto.
14958         (WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
14959         into a local variable.
14960
14961 2012-11-10  Anders Carlsson  <andersca@apple.com>
14962
14963         Document::m_fullScreenElementStack should be a Vector
14964         https://bugs.webkit.org/show_bug.cgi?id=101844
14965
14966         Reviewed by Andreas Kling.
14967
14968         m_fullScreenElementStack is currently a Deque where elements are being prepended
14969         and removed from the beginning in LIFO order, so it can be replaced with a Vector.
14970
14971         * dom/Document.cpp:
14972         (WebCore::Document::requestFullScreenForElement):
14973         (WebCore::Document::webkitCancelFullScreen):
14974         (WebCore::Document::popFullscreenElementStack):
14975         (WebCore::Document::pushFullscreenElementStack):
14976         * dom/Document.h:
14977         (WebCore::Document::webkitFullscreenElement):
14978         (Document):
14979
14980 2012-11-10  Adam Barth  <abarth@webkit.org>
14981
14982         [V8] Clean up header includes and ifdefs in V8GCController
14983         https://bugs.webkit.org/show_bug.cgi?id=101691
14984
14985         Reviewed by Kentaro Hara.
14986
14987         This file doesn't need to include all these headers anymore.
14988
14989         * bindings/v8/V8GCController.cpp:
14990         (WebCore::workingSetEstimateMBMutex):
14991         (WebCore::V8GCController::majorGCEpilogue):
14992         (WebCore::V8GCController::checkMemoryUsage):
14993
14994 2012-11-10  Joseph Pecoraro  <pecoraro@apple.com>
14995
14996         [Mac] Guard WebCore PageVisibility Symbol Export
14997         https://bugs.webkit.org/show_bug.cgi?id=101817
14998
14999         Reviewed by Andreas Kling.
15000
15001         Guard the export with the same ENABLE guards around its definition
15002         and implementation.
15003
15004         * WebCore.exp.in:
15005
15006 2012-11-10  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
15007
15008         [css] text-decoration:none no longer valid
15009         https://bugs.webkit.org/show_bug.cgi?id=101529
15010
15011         Reviewed by Ojan Vafai.
15012
15013         This patch fixes an issue where the 'none' value was parsed as explicitly
15014         'initial' value. However true in a sense that the initial value for the
15015         'text-decoration' property is 'none', the value itself could not be parsed as
15016         'initial'.
15017
15018         The getComputedStyle layout tests for 'text-decoration' and
15019         '-webkit-text-decoration-line' CSS properties are updated with the correct
15020         results.
15021
15022         * css/CSSParser.cpp:
15023         (WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
15024         gets its own identifier value instead of explicit initial.
15025
15026 2012-11-09  Dean Jackson  <dino@apple.com>
15027
15028         Support list of tracks in caption media controls
15029         https://bugs.webkit.org/show_bug.cgi?id=101669
15030
15031         Reviewed by Eric Carlson.
15032
15033         Attempt three of commit. The first two times caused build failures on Chromium.
15034
15035         Add some new elements to the media control shadow DOM that display the list of available
15036         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15037         where it is given a very basic design. At the moment only the list of available tracks
15038         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15039
15040         No new tests - this doesn't expose any testable surface.
15041
15042         * css/mediaControls.css: Added default rules that hide the new elements.
15043         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15044         * html/shadow/MediaControlElements.cpp:
15045         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15046         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15047         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15048         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15049         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15050         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15051         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15052         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15053         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15054         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15055         * html/shadow/MediaControlElements.h:
15056         (MediaControlElement):
15057         (MediaControlToggleClosedCaptionsButtonElement):
15058         (MediaControlClosedCaptionsContainerElement):
15059         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15060         * html/shadow/MediaControlRootElement.cpp:
15061         (WebCore::MediaControlRootElement::MediaControlRootElement):
15062         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15063         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15064         (WebCore::MediaControlRootElement::hide):
15065         (WebCore::MediaControlRootElement::makeTransparent):
15066         (WebCore::MediaControlRootElement::reset):
15067         (WebCore::MediaControlRootElement::reportedError):
15068         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15069         (WebCore):
15070         * html/shadow/MediaControlRootElement.h:
15071         (WebCore):
15072         (MediaControlRootElement):
15073         * html/shadow/MediaControlRootElementChromium.cpp:
15074         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15075         * html/shadow/MediaControls.h:
15076         (MediaControls):
15077         * platform/Language.cpp:
15078         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15079         * platform/Language.h:
15080         (WebCore):
15081         * rendering/RenderMediaControls.cpp:
15082         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15083         * rendering/RenderMediaControlsChromium.cpp:
15084         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15085
15086 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15087
15088         Unreviewed, rolling out r134152.
15089         http://trac.webkit.org/changeset/134152
15090         https://bugs.webkit.org/show_bug.cgi?id=101831
15091
15092         broke chromium again (Requested by dino_ on #webkit).
15093
15094         * css/mediaControls.css:
15095         * css/mediaControlsQuickTime.css:
15096         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15097         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15098         * html/shadow/MediaControlElements.cpp:
15099         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15100         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15101         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15102         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15103         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15104         * html/shadow/MediaControlElements.h:
15105         (MediaControlElement):
15106         (MediaControlToggleClosedCaptionsButtonElement):
15107         * html/shadow/MediaControlRootElement.cpp:
15108         (WebCore::MediaControlRootElement::MediaControlRootElement):
15109         (WebCore::MediaControlRootElement::create):
15110         (WebCore::MediaControlRootElement::setMediaController):
15111         (WebCore::MediaControlRootElement::hide):
15112         (WebCore::MediaControlRootElement::makeTransparent):
15113         (WebCore::MediaControlRootElement::reset):
15114         (WebCore::MediaControlRootElement::reportedError):
15115         * html/shadow/MediaControlRootElement.h:
15116         (WebCore):
15117         (MediaControlRootElement):
15118         * html/shadow/MediaControlRootElementChromium.cpp:
15119         (WebCore::MediaControlRootElementChromium::initializeControls):
15120         * html/shadow/MediaControls.h:
15121         (MediaControls):
15122         * platform/Language.cpp:
15123         (WebCore):
15124         * platform/Language.h:
15125         (WebCore):
15126         * rendering/RenderMediaControls.cpp:
15127         (WebCore::RenderMediaControls::paintMediaControlsPart):
15128         * rendering/RenderMediaControlsChromium.cpp:
15129         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
15130
15131 2012-11-09  Dean Jackson  <dino@apple.com>
15132
15133         Support list of tracks in caption media controls
15134         https://bugs.webkit.org/show_bug.cgi?id=101669
15135
15136         Reviewed by Eric Carlson.
15137
15138         Attempt two of commit. The first time caused a build failure on Chromium.
15139
15140         Add some new elements to the media control shadow DOM that display the list of available
15141         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15142         where it is given a very basic design. At the moment only the list of available tracks
15143         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15144
15145         No new tests - this doesn't expose any testable surface.
15146
15147         * css/mediaControls.css: Added default rules that hide the new elements.
15148         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15149         * html/shadow/MediaControlElements.cpp:
15150         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15151         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15152         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15153         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15154         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15155         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15156         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15157         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15158         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15159         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15160         * html/shadow/MediaControlElements.h:
15161         (MediaControlElement):
15162         (MediaControlToggleClosedCaptionsButtonElement):
15163         (MediaControlClosedCaptionsContainerElement):
15164         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15165         * html/shadow/MediaControlRootElement.cpp:
15166         (WebCore::MediaControlRootElement::MediaControlRootElement):
15167         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15168         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15169         (WebCore::MediaControlRootElement::hide):
15170         (WebCore::MediaControlRootElement::makeTransparent):
15171         (WebCore::MediaControlRootElement::reset):
15172         (WebCore::MediaControlRootElement::reportedError):
15173         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15174         (WebCore):
15175         * html/shadow/MediaControlRootElement.h:
15176         (WebCore):
15177         (MediaControlRootElement):
15178         * html/shadow/MediaControlRootElementChromium.cpp:
15179         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15180         * html/shadow/MediaControls.h:
15181         (MediaControls):
15182         * platform/Language.cpp:
15183         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15184         * platform/Language.h:
15185         (WebCore):
15186         * rendering/RenderMediaControls.cpp:
15187         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15188         * rendering/RenderMediaControlsChromium.cpp:
15189         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15190
15191 2012-11-09  Ojan Vafai  <ojan@chromium.org>
15192
15193         Should only fire a single set of mouse events and update hover state once when scrolling is done
15194         https://bugs.webkit.org/show_bug.cgi?id=99940
15195
15196         Reviewed by Levi Weintraub.
15197
15198         -Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
15199         timer is fired, we ensure the actual goal of not firing fake mouse events
15200         until the scroll is completed. This is the core part of this change.
15201         -Change our mouse event throttling to keep a running average of how long
15202         mouse events take and adjust throttling appropriately.
15203         Test: fast/scrolling/fake-mouse-event-throttling.html
15204         -Maintain a minimum throttle of 100ms.
15205
15206         * page/EventHandler.cpp:
15207         (WebCore):
15208         (WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
15209         (WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
15210         Keep track of a running average instead of max. This lets us adjust throttling
15211         dynamically without punishing a page for having a single mouse event handler
15212         that takes disproportionately long.
15213         (RunningAverageDurationTracker):
15214         (WebCore::EventHandler::EventHandler):
15215         (WebCore::EventHandler::clear):
15216         (WebCore::EventHandler::mouseMoved):
15217         (WebCore::EventHandler::handleMouseMoveEvent):
15218         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
15219         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
15220         * page/EventHandler.h:
15221         (EventHandler):
15222         * platform/Timer.h:
15223         (WebCore::DeferrableOneShotTimer::setDelay):
15224         (WebCore::DeferrableOneShotTimer::delay):
15225         Add a way of adjusting the timer delay.
15226
15227 2012-11-09  Rick Byers  <rbyers@chromium.org>
15228
15229         Move chromium to USE(LAZY_NATIVE_CURSOR)
15230         https://bugs.webkit.org/show_bug.cgi?id=101501
15231
15232         Reviewed by Adam Barth.
15233
15234         This simplifies cursor handling in chromium and unifies it with other
15235         ports for easier code sharing and testing by moving to the
15236         USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.
15237
15238         PlatformCursor adds no value in chromium since the sandboxing model
15239         requires the cursor information be marshalled to the browser process
15240         before being turned into a real OS cursor.
15241
15242         Test: fast/events/mouse-cursor.html
15243
15244         * WebCore.gypi:
15245         * platform/Cursor.h:
15246         (WebCore):
15247         * platform/chromium/CursorChromium.cpp:
15248         (WebCore::Cursor::Cursor):
15249         (WebCore::Cursor::operator=):
15250         (WebCore::Cursor::~Cursor):
15251         (WebCore::Cursor::ensurePlatformCursor):
15252         * platform/chromium/PlatformCursor.h: Removed.
15253
15254 2012-11-09  Noam Rosenthal  <noam.rosenthal@nokia.com>
15255
15256         Allow ports to decide whether an image should be directly composited
15257         https://bugs.webkit.org/show_bug.cgi?id=101827
15258
15259         Reviewed by Simon Fraser.
15260
15261         Tested by compositing/tiling/huge-layer-img.html.
15262
15263         * platform/graphics/GraphicsLayer.h:
15264         (WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
15265             Allow the GraphicsLayer implementation to decide if the image can be composited.
15266
15267         * rendering/RenderLayerBacking.cpp:
15268         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
15269             Take onto account the new shouldDirectlyCompositeImage check.
15270
15271 2012-11-09  Dan Bernstein  <mitz@apple.com>
15272
15273         SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
15274         https://bugs.webkit.org/show_bug.cgi?id=101799
15275
15276         Reviewed by Alexey Proskuryakov.
15277
15278         In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
15279         different behavior from not setting it at all. We can get the correct behavior and greatly
15280         simplify the code by not setting attributes to their default values.
15281
15282         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
15283         Removed redundant #import directives and changed the remaining ones to #include.
15284         (WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
15285         only add attributes that have non-default values.
15286
15287 2012-11-09  Rick Byers  <rbyers@chromium.org>
15288
15289         No tests for changing mouse cursors
15290         https://bugs.webkit.org/show_bug.cgi?id=100550
15291
15292         Reviewed by Adam Barth.
15293
15294         Add infrastructure to keep track of the last set mouse cursor,
15295         and then to query it from DumpRenderTree.
15296
15297         Test: fast/events/mouse-cursor.html
15298
15299         * WebCore.exp.in: Add Cursor copy ctor export
15300         * page/EventHandler.cpp:
15301         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
15302         * page/EventHandler.h:
15303         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
15304         * testing/Internals.cpp:
15305         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
15306         (WebCore):
15307         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
15308         * testing/Internals.h: Declare getCurrentCursorInfo
15309         * testing/Internals.idl: Declare getCurrentCursorInfo
15310
15311 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15312
15313         Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
15314         https://bugs.webkit.org/show_bug.cgi?id=101701
15315
15316         Reviewed by Noam Rosenthal.
15317
15318         Add TiledBackingStore::rect() because CoordinatedTile needs to know
15319         m_rect of TiledBackingStore.
15320
15321         * platform/graphics/TiledBackingStore.h:
15322         (WebCore::TiledBackingStore::rect):
15323
15324 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15325
15326         Unreviewed, rolling out r134139.
15327         http://trac.webkit.org/changeset/134139
15328         https://bugs.webkit.org/show_bug.cgi?id=101823
15329
15330         breaks chromium (android) build (Requested by thorton on
15331         #webkit).
15332
15333         * css/mediaControls.css:
15334         * css/mediaControlsQuickTime.css:
15335         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15336         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15337         * html/shadow/MediaControlElements.cpp:
15338         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15339         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15340         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15341         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15342         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15343         * html/shadow/MediaControlElements.h:
15344         (MediaControlElement):
15345         (MediaControlToggleClosedCaptionsButtonElement):
15346         * html/shadow/MediaControlRootElement.cpp:
15347         (WebCore::MediaControlRootElement::MediaControlRootElement):
15348         (WebCore::MediaControlRootElement::create):
15349         (WebCore::MediaControlRootElement::setMediaController):
15350         (WebCore::MediaControlRootElement::hide):
15351         (WebCore::MediaControlRootElement::makeTransparent):
15352         (WebCore::MediaControlRootElement::reset):
15353         (WebCore::MediaControlRootElement::reportedError):
15354         * html/shadow/MediaControlRootElement.h:
15355         (WebCore):
15356         (MediaControlRootElement):
15357         * html/shadow/MediaControlRootElementChromium.cpp:
15358         (WebCore::MediaControlRootElementChromium::initializeControls):
15359         * html/shadow/MediaControls.h:
15360         (MediaControls):
15361         * platform/Language.cpp:
15362         (WebCore):
15363         * platform/Language.h:
15364         (WebCore):
15365
15366 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15367
15368         [TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
15369         https://bugs.webkit.org/show_bug.cgi?id=101675
15370
15371         Reviewed by Noam Rosenthal.
15372
15373         Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
15374         value equals image->nativeImageForCurrentFrame() by change, we can encounter
15375         undefined behavior.
15376
15377         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
15378         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
15379         (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
15380
15381 2012-11-09  Dean Jackson  <dino@apple.com>
15382
15383         Support list of tracks in caption media controls
15384         https://bugs.webkit.org/show_bug.cgi?id=101669
15385
15386         Reviewed by Eric Carlson.
15387
15388         Add some new elements to the media control shadow DOM that display the list of available
15389         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15390         where it is given a very basic design. At the moment only the list of available tracks
15391         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15392
15393         No new tests - this doesn't expose any testable surface.
15394
15395         * css/mediaControls.css: Added default rules that hide the new elements.
15396         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15397         * html/shadow/MediaControlElements.cpp:
15398         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15399         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15400         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15401         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15402         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15403         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15404         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15405         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15406         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15407         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15408         * html/shadow/MediaControlElements.h:
15409         (MediaControlElement):
15410         (MediaControlToggleClosedCaptionsButtonElement):
15411         (MediaControlClosedCaptionsContainerElement):
15412         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15413         * html/shadow/MediaControlRootElement.cpp:
15414         (WebCore::MediaControlRootElement::MediaControlRootElement):
15415         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15416         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15417         (WebCore::MediaControlRootElement::hide):
15418         (WebCore::MediaControlRootElement::makeTransparent):
15419         (WebCore::MediaControlRootElement::reset):
15420         (WebCore::MediaControlRootElement::reportedError):
15421         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15422         (WebCore):
15423         * html/shadow/MediaControlRootElement.h:
15424         (WebCore):
15425         (MediaControlRootElement):
15426         * html/shadow/MediaControlRootElementChromium.cpp:
15427         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15428         * html/shadow/MediaControls.h:
15429         (MediaControls):
15430         * platform/Language.cpp:
15431         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15432         * platform/Language.h:
15433         (WebCore):
15434
15435 2012-11-09  Noel Gordon  <noel.gordon@gmail.com>
15436
15437         [chromium] Should pass fast/images/paletted-png-with-color-profile.html
15438         https://bugs.webkit.org/show_bug.cgi?id=101551
15439
15440         Reviewed by Adam Barth.
15441
15442         Support decoding color PALETTE images that have an ICC color profile.
15443
15444         Covered by fast/images/png-suite/test.html and many other fast/image tests.
15445
15446         * platform/image-decoders/png/PNGImageDecoder.cpp:
15447         (WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
15448         transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
15449         corrected. Use the transparency count from the tRNS reader to detect the expansion
15450         of RGB and PALLETE image pixels to RGBA.
15451
15452 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15453
15454         Correct hit-test point scaling for document.elementFromPoint
15455         https://bugs.webkit.org/show_bug.cgi?id=101798
15456
15457         Reviewed by Adam Barth.
15458
15459         The hit-test point come from user JavaScript is in the document coordinate.
15460         Convert to the frame coordinate with correct scale factor for hit test.
15461
15462         Test: fast/dom/elementFromPoint-scaled-scrolled.html
15463
15464         * dom/Document.cpp:
15465         (WebCore::nodeFromPoint):
15466
15467 2012-11-09  Alec Flett  <alecflett@chromium.org>
15468
15469         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15470         https://bugs.webkit.org/show_bug.cgi?id=101415
15471
15472         Reviewed by Tony Chang.
15473
15474         Combine abstract interface IDBBackingStore with its only
15475         implementation, IDBLevelDBBackingStore, to reduce code
15476         complexity. The legacy structure existed to support a SQLLite
15477         IDBBackingStore, but it is no longer worth the complexity to
15478         support this abstraction.
15479
15480         Changes include:
15481         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15482
15483         2) Merge together IDBBackingStore's inner classes: Cursor,
15484         Transaction, and ObjectStoreRecordIdentfier with their respective
15485         subclasses in IDBLevelDBBackingStore.
15486
15487         3) Simplifying the inner Transaction class to not be refcounted or
15488         virtualized, to allow it to be a simple concrete member of its
15489         owner, IDBTransactionBackendImpl.
15490
15491         No new tests as this is purely a refactor.
15492
15493         * Modules/indexeddb/IDBBackingStore.cpp:
15494         (WebCore::recordInternalError):
15495         (WebCore::setUpMetadata):
15496         (WebCore::IDBBackingStore::IDBBackingStore):
15497         (WebCore):
15498         (WebCore::IDBBackingStore::~IDBBackingStore):
15499         (WebCore::IDBBackingStore::open):
15500         (WebCore::IDBBackingStore::getDatabaseNames):
15501         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15502         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15503         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15504         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15505         (WebCore::deleteRange):
15506         (WebCore::IDBBackingStore::deleteDatabase):
15507         (WebCore::IDBBackingStore::getObjectStores):
15508         (WebCore::setMaxObjectStoreId):
15509         (WebCore::IDBBackingStore::createObjectStore):
15510         (WebCore::IDBBackingStore::deleteObjectStore):
15511         (WebCore::IDBBackingStore::getRecord):
15512         (WebCore::IDBBackingStore::putRecord):
15513         (WebCore::IDBBackingStore::clearObjectStore):
15514         (WebCore::IDBBackingStore::deleteRecord):
15515         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15516         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15517         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15518         (WebCore::IDBBackingStore::getIndexes):
15519         (WebCore::setMaxIndexId):
15520         (WebCore::IDBBackingStore::createIndex):
15521         (WebCore::IDBBackingStore::deleteIndex):
15522         (WebCore::IDBBackingStore::putIndexDataForRecord):
15523         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15524         (WebCore::IDBBackingStore::findKeyInIndex):
15525         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15526         (WebCore::IDBBackingStore::keyExistsInIndex):
15527         (WebCore::IDBBackingStore::Cursor::Cursor):
15528         (WebCore::IDBBackingStore::Cursor::firstSeek):
15529         (WebCore::IDBBackingStore::Cursor::advance):
15530         (WebCore::IDBBackingStore::Cursor::continueFunction):
15531         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15532         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15533         (WebCore::ObjectStoreKeyCursorImpl::create):
15534         (ObjectStoreKeyCursorImpl):
15535         (WebCore::ObjectStoreKeyCursorImpl::value):
15536         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15537         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15538         (WebCore::ObjectStoreCursorImpl::create):
15539         (ObjectStoreCursorImpl):
15540         (WebCore::ObjectStoreCursorImpl::value):
15541         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15542         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15543         (WebCore::IndexKeyCursorImpl::create):
15544         (IndexKeyCursorImpl):
15545         (WebCore::IndexKeyCursorImpl::value):
15546         (WebCore::IndexKeyCursorImpl::primaryKey):
15547         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15548         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15549         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15550         (WebCore::IndexCursorImpl::create):
15551         (IndexCursorImpl):
15552         (WebCore::IndexCursorImpl::value):
15553         (WebCore::IndexCursorImpl::primaryKey):
15554         (WebCore::IndexCursorImpl::recordIdentifier):
15555         (WebCore::IndexCursorImpl::IndexCursorImpl):
15556         (WebCore::IndexCursorImpl::loadCurrentRow):
15557         (WebCore::objectStoreCursorOptions):
15558         (WebCore::indexCursorOptions):
15559         (WebCore::IDBBackingStore::openObjectStoreCursor):
15560         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15561         (WebCore::IDBBackingStore::openIndexKeyCursor):
15562         (WebCore::IDBBackingStore::openIndexCursor):
15563         (WebCore::IDBBackingStore::Transaction::Transaction):
15564         (WebCore::IDBBackingStore::Transaction::begin):
15565         (WebCore::IDBBackingStore::Transaction::commit):
15566         (WebCore::IDBBackingStore::Transaction::rollback):
15567         * Modules/indexeddb/IDBBackingStore.h:
15568         (WebCore):
15569         (IDBBackingStore):
15570         (RecordIdentifier):
15571         (WebCore::IDBBackingStore::RecordIdentifier::create):
15572         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15573         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15574         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15575         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15576         (WebCore::IDBBackingStore::RecordIdentifier::version):
15577         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15578         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15579         (Transaction):
15580         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15581         (CursorOptions):
15582         (Cursor):
15583         (WebCore::IDBBackingStore::Cursor::Cursor):
15584         (WebCore::IDBBackingStore::Cursor::key):
15585         (WebCore::IDBBackingStore::Cursor::primaryKey):
15586         (WebCore::IDBBackingStore::Cursor::~Cursor):
15587         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15588         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15589         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15590         (WebCore::IDBIndexBackendImpl::countInternal):
15591         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15592         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15593         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15594         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15595         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15596         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15597         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15598         (WebCore::IDBTransactionBackendImpl::abort):
15599         (WebCore::IDBTransactionBackendImpl::commit):
15600         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15601         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15602         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15603         * WebCore.xcodeproj/project.pbxproj:
15604
15605 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15606
15607         Correct scroll adjustment for touchEvent.clientX/clientY
15608         https://bugs.webkit.org/show_bug.cgi?id=101800
15609
15610         Reviewed by Adam Barth.
15611
15612         FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
15613         Convert to document coordinate before passing to JavaScript.
15614
15615         Test: fast/events/touch/touch-scaled-scrolled.html
15616
15617         * dom/Touch.cpp:
15618         (WebCore::contentsX):
15619         (WebCore::contentsY):
15620
15621 2012-11-09  Alexandru Chiculita  <achicu@adobe.com>
15622
15623         [Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
15624         https://bugs.webkit.org/show_bug.cgi?id=98990
15625
15626         Reviewed by Noam Rosenthal.
15627
15628         Added code that draws the Custom Filter in the TextureMapperGL. Also added 
15629         required code to make a depth buffer for a BitmapTextureGL.
15630
15631         Note that the code is not optimized yet, so it will always recompile the shader.
15632
15633         Test: css3/filters/custom/composited/custom-filter-blend-modes.html
15634
15635         * platform/graphics/texmap/TextureMapperGL.cpp:
15636         (WebCore::BitmapTextureGL::BitmapTextureGL):
15637         (WebCore::getPassesRequiredForFilter):
15638         (WebCore):
15639         (WebCore::TextureMapperGL::drawUsingCustomFilter):
15640         (WebCore::BitmapTextureGL::applyFilters):
15641         (WebCore::BitmapTextureGL::initializeDepthBuffer):
15642         (WebCore::BitmapTextureGL::~BitmapTextureGL):
15643         * platform/graphics/texmap/TextureMapperGL.h:
15644         (BitmapTextureGL):
15645
15646 2012-11-09  Sadrul Habib Chowdhury  <sadrul@chromium.org>
15647
15648         CustomEvent: Allow taking in a serialized value during initialization.
15649         https://bugs.webkit.org/show_bug.cgi?id=101348
15650
15651         Reviewed by Adam Barth.
15652
15653         If a CustomEvent is initialized using a serialized value, then for each access
15654         to |detail|, the value is deserialized first. This way, each world gets a different
15655         deserialization.
15656
15657         * UseV8.cmake:
15658         * WebCore.gypi:
15659         * bindings/v8/V8HiddenPropertyName.h:
15660         (WebCore):
15661         * bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
15662         (WebCore):
15663         (WebCore::V8CustomEvent::detailAccessorGetter):
15664         * dom/CustomEvent.cpp:
15665         (WebCore::CustomEvent::initCustomEvent):
15666         (WebCore):
15667         * dom/CustomEvent.h:
15668         (CustomEvent):
15669         (WebCore::CustomEvent::serializedScriptValue):
15670         * dom/CustomEvent.idl:
15671
15672 2012-11-09  Brady Eidson  <beidson@apple.com>
15673
15674         Implement WebResourceBuffer::isEmpty()
15675         https://bugs.webkit.org/show_bug.cgi?id=101805
15676
15677         Reviewed by Alexey Proskuryakov.
15678
15679         This is required to make the existing subresource loading in NetworkProcess work correctly,
15680         as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver 
15681         the data to the ResourceLoader.
15682
15683         No new tests (No change in behavior in any configuration we test.)
15684
15685         * loader/ResourceBuffer.h: Make isEmpty() virtual.
15686
15687 2012-11-09  Michael Saboff  <msaboff@apple.com>
15688
15689         HTML Attributes names and values should be created as 8 bit string where possible
15690         https://bugs.webkit.org/show_bug.cgi?id=101781
15691
15692         Reviewed by Filip Pizlo.
15693
15694         Given that almost all attribute names and values are lower case ASCII, we should try to
15695         create 8 bit strings to process them.  Creating an AtomicString already tries to make
15696         an 8 bit string, so that didn't need to change.
15697
15698         No new tests, functionality covered by existing tests.
15699
15700         * html/HTMLViewSourceDocument.cpp:
15701         (WebCore::HTMLViewSourceDocument::processTagToken):
15702         * html/parser/HTMLMetaCharsetParser.cpp:
15703         (WebCore::HTMLMetaCharsetParser::processMeta):
15704         * html/parser/HTMLPreloadScanner.cpp:
15705         (WebCore::PreloadTask::processAttributes):
15706
15707 2012-11-09  Dana Jansens  <danakj@chromium.org>
15708
15709         [chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
15710         https://bugs.webkit.org/show_bug.cgi?id=101795
15711
15712         Reviewed by James Robinson.
15713
15714         * WebCore.gyp/WebCore.gyp:
15715
15716 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15717
15718         Unreviewed, rolling out r134101.
15719         http://trac.webkit.org/changeset/134101
15720         https://bugs.webkit.org/show_bug.cgi?id=101790
15721
15722         IDBDatabaseBackendTest.BackingStoreRetention failing
15723         (Requested by jsbell|gardener on #webkit).
15724
15725         * GNUmakefile.list.am:
15726         * Modules/indexeddb/IDBBackingStore.cpp:
15727         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
15728         (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
15729         (WebCore::IDBLevelDBBackingStore::open):
15730         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
15731         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
15732         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
15733         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
15734         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
15735         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
15736         (WebCore::IDBLevelDBBackingStore::getObjectStores):
15737         (WebCore::IDBLevelDBBackingStore::createObjectStore):
15738         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
15739         (WebCore::IDBLevelDBBackingStore::getRecord):
15740         (WebCore):
15741         (WebCore::IDBLevelDBBackingStore::putRecord):
15742         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
15743         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
15744         (WebCore::IDBLevelDBBackingStore::deleteRecord):
15745         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
15746         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15747         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
15748         (WebCore::IDBLevelDBBackingStore::getIndexes):
15749         (WebCore::IDBLevelDBBackingStore::createIndex):
15750         (WebCore::IDBLevelDBBackingStore::deleteIndex):
15751         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
15752         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
15753         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
15754         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
15755         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
15756         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
15757         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
15758         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
15759         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
15760         (WebCore::IDBLevelDBBackingStore::createTransaction):
15761         (WebCore::IDBLevelDBBackingStore::Transaction::create):
15762         (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
15763         (WebCore::IDBLevelDBBackingStore::Transaction::begin):
15764         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
15765         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
15766         (WebCore::IDBLevelDBBackingStore::backingStoreExists):
15767         * Modules/indexeddb/IDBBackingStore.h:
15768         (WebCore):
15769         (WebCore::IDBBackingStore::~IDBBackingStore):
15770         (IDBBackingStore):
15771         (RecordIdentifier):
15772         (WebCore::IDBBackingStore::Cursor::~Cursor):
15773         (WebCore::IDBBackingStore::Transaction::~Transaction):
15774         (Transaction):
15775         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15776         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15777         * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
15778         (WebCore):
15779         (IDBLevelDBBackingStore):
15780         (Transaction):
15781         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
15782         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15783         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15784         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15785         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15786         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15787         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15788         (WebCore::IDBTransactionBackendImpl::abort):
15789         (WebCore::IDBTransactionBackendImpl::commit):
15790         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15791         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15792         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15793         * WebCore.xcodeproj/project.pbxproj:
15794
15795 2012-11-09  Erik Arvidsson  <arv@chromium.org>
15796
15797         REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
15798         https://bugs.webkit.org/show_bug.cgi?id=101627
15799
15800         Reviewed by Alexey Proskuryakov.
15801
15802         We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
15803         was changed. If an element is moved from a standards document to a quirks mode document the
15804         m_classNamesForQuirksMode would not be up to date which lead to wrong results.
15805
15806         Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).
15807
15808         Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html
15809
15810         * html/ClassList.cpp:
15811         (WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
15812                                           it is up to date.
15813         * html/ClassList.h:
15814
15815 2012-11-09  Alec Flett  <alecflett@chromium.org>
15816
15817         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15818         https://bugs.webkit.org/show_bug.cgi?id=101415
15819
15820         Reviewed by Tony Chang.
15821
15822         Combine abstract interface IDBBackingStore with its only
15823         implementation, IDBLevelDBBackingStore, to reduce code
15824         complexity. The legacy structure existed to support a SQLLite
15825         IDBBackingStore, but it is no longer worth the complexity to
15826         support this abstraction.
15827
15828         Changes include:
15829         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15830
15831         2) Merge together IDBBackingStore's inner classes: Cursor,
15832         Transaction, and ObjectStoreRecordIdentfier with their respective
15833         subclasses in IDBLevelDBBackingStore.
15834
15835         3) Simplifying the inner Transaction class to not be refcounted or
15836         virtualized, to allow it to be a simple concrete member of its
15837         owner, IDBTransactionBackendImpl.
15838
15839         No new tests as this is purely a refactor.
15840
15841         * Modules/indexeddb/IDBBackingStore.cpp:
15842         (WebCore::recordInternalError):
15843         (WebCore::setUpMetadata):
15844         (WebCore::IDBBackingStore::IDBBackingStore):
15845         (WebCore):
15846         (WebCore::IDBBackingStore::~IDBBackingStore):
15847         (WebCore::IDBBackingStore::open):
15848         (WebCore::IDBBackingStore::getDatabaseNames):
15849         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15850         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15851         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15852         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15853         (WebCore::deleteRange):
15854         (WebCore::IDBBackingStore::deleteDatabase):
15855         (WebCore::IDBBackingStore::getObjectStores):
15856         (WebCore::setMaxObjectStoreId):
15857         (WebCore::IDBBackingStore::createObjectStore):
15858         (WebCore::IDBBackingStore::deleteObjectStore):
15859         (WebCore::IDBBackingStore::getRecord):
15860         (WebCore::IDBBackingStore::putRecord):
15861         (WebCore::IDBBackingStore::clearObjectStore):
15862         (WebCore::IDBBackingStore::deleteRecord):
15863         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15864         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15865         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15866         (WebCore::IDBBackingStore::getIndexes):
15867         (WebCore::setMaxIndexId):
15868         (WebCore::IDBBackingStore::createIndex):
15869         (WebCore::IDBBackingStore::deleteIndex):
15870         (WebCore::IDBBackingStore::putIndexDataForRecord):
15871         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15872         (WebCore::IDBBackingStore::findKeyInIndex):
15873         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15874         (WebCore::IDBBackingStore::keyExistsInIndex):
15875         (WebCore::IDBBackingStore::Cursor::Cursor):
15876         (WebCore::IDBBackingStore::Cursor::firstSeek):
15877         (WebCore::IDBBackingStore::Cursor::advance):
15878         (WebCore::IDBBackingStore::Cursor::continueFunction):
15879         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15880         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15881         (WebCore::ObjectStoreKeyCursorImpl::create):
15882         (ObjectStoreKeyCursorImpl):
15883         (WebCore::ObjectStoreKeyCursorImpl::value):
15884         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15885         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15886         (WebCore::ObjectStoreCursorImpl::create):
15887         (ObjectStoreCursorImpl):
15888         (WebCore::ObjectStoreCursorImpl::value):
15889         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15890         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15891         (WebCore::IndexKeyCursorImpl::create):
15892         (IndexKeyCursorImpl):
15893         (WebCore::IndexKeyCursorImpl::value):
15894         (WebCore::IndexKeyCursorImpl::primaryKey):
15895         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15896         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15897         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15898         (WebCore::IndexCursorImpl::create):
15899         (IndexCursorImpl):
15900         (WebCore::IndexCursorImpl::value):
15901         (WebCore::IndexCursorImpl::primaryKey):
15902         (WebCore::IndexCursorImpl::recordIdentifier):
15903         (WebCore::IndexCursorImpl::IndexCursorImpl):
15904         (WebCore::IndexCursorImpl::loadCurrentRow):
15905         (WebCore::objectStoreCursorOptions):
15906         (WebCore::indexCursorOptions):
15907         (WebCore::IDBBackingStore::openObjectStoreCursor):
15908         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15909         (WebCore::IDBBackingStore::openIndexKeyCursor):
15910         (WebCore::IDBBackingStore::openIndexCursor):
15911         (WebCore::IDBBackingStore::Transaction::Transaction):
15912         (WebCore::IDBBackingStore::Transaction::begin):
15913         (WebCore::IDBBackingStore::Transaction::commit):
15914         (WebCore::IDBBackingStore::Transaction::rollback):
15915         * Modules/indexeddb/IDBBackingStore.h:
15916         (WebCore):
15917         (IDBBackingStore):
15918         (RecordIdentifier):
15919         (WebCore::IDBBackingStore::RecordIdentifier::create):
15920         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15921         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15922         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15923         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15924         (WebCore::IDBBackingStore::RecordIdentifier::version):
15925         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15926         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15927         (Transaction):
15928         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15929         (CursorOptions):
15930         (Cursor):
15931         (WebCore::IDBBackingStore::Cursor::Cursor):
15932         (WebCore::IDBBackingStore::Cursor::key):
15933         (WebCore::IDBBackingStore::Cursor::primaryKey):
15934         (WebCore::IDBBackingStore::Cursor::~Cursor):
15935         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15936         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15937         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15938         (WebCore::IDBIndexBackendImpl::countInternal):
15939         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15940         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15941         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15942         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15943         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15944         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15945         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15946         (WebCore::IDBTransactionBackendImpl::abort):
15947         (WebCore::IDBTransactionBackendImpl::commit):
15948         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15949         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15950         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15951         * WebCore.xcodeproj/project.pbxproj:
15952
15953 2012-10-28  Timothy Hatcher  <timothy@apple.com>
15954
15955         Make -webkit-canvas in CSS use the full backing store instead
15956         of always 1x when rendering.
15957
15958         https://bugs.webkit.org/show_bug.cgi?id=100611
15959
15960         Reviewed by Dean Jackson.
15961
15962         Test: fast/canvas/canvas-as-image-hidpi.html
15963
15964         * html/HTMLCanvasElement.cpp:
15965         (WebCore::HTMLCanvasElement::makePresentationCopy): Pass Unscaled to copyImage.
15966         (WebCore::HTMLCanvasElement::copiedImage): Ditto.
15967         * platform/graphics/ImageBuffer.h:
15968         * platform/graphics/cg/ImageBufferCG.cpp:
15969         (WebCore::ImageBuffer::copyImage): Added Scale parameter and use copyNativeImage for Unscaled.
15970         * platform/graphics/cairo/ImageBufferCairo.cpp:
15971         (WebCore::ImageBuffer::copyImage): Added unnamed ScaleBehavior parameter.
15972         * platform/graphics/qt/ImageBufferQt.cpp:
15973         (WebCore::ImageBuffer::copyImage): Ditto.
15974         * platform/graphics/skia/ImageBufferSkia.cpp:
15975         (WebCore::ImageBuffer::copyImage): Ditto.
15976         * platform/graphics/wince/ImageBufferWinCE.cpp:
15977         (WebCore::ImageBuffer::copyImage): Ditto.
15978         * platform/graphics/wx/ImageBufferWx.cpp:
15979         (WebCore::ImageBuffer::copyImage): Ditto.
15980
15981 2012-10-28  Timothy Hatcher  <timothy@apple.com>
15982
15983         Reset the canvas backing store pixel ratio when the buffer resizes.
15984
15985         The backing store was not being recreated using the current page pixel ratio
15986         when a resize occurred.
15987
15988         https://bugs.webkit.org/show_bug.cgi?id=100608
15989
15990         Reviewed by Darin Adler.
15991
15992         Test: fast/canvas/canvas-resize-reset-pixelRatio.html
15993
15994         * html/HTMLCanvasElement.cpp:
15995         (WebCore::HTMLCanvasElement::HTMLCanvasElement): Use targetDeviceScaleFactor.
15996         (WebCore::HTMLCanvasElement::reset): Do a clear only if the pixel ratios also
15997         match. Store the new pixel ratio in m_deviceScaleFactor.
15998         (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Added.
15999         * html/HTMLCanvasElement.h:
16000         (WebCore::HTMLCanvasElement::setSize): Return early only if the sizes and
16001         pixel ratios match.
16002
16003 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
16004
16005         RemoveFormat command doesn't remove background color
16006         https://bugs.webkit.org/show_bug.cgi?id=101682
16007
16008         Reviewed by Tony Chang.
16009
16010         Fixed the bug by removing all non-transparent background-color properties.
16011
16012         Test: editing/execCommand/remove-format-background-color.html
16013
16014         * editing/RemoveFormatCommand.cpp:
16015         (WebCore::RemoveFormatCommand::doApply):
16016
16017 2012-11-09  Alec Flett  <alecflett@chromium.org>
16018
16019         IndexedDB: switch frontend to use int64_t-based references
16020         https://bugs.webkit.org/show_bug.cgi?id=100426
16021
16022         Reviewed by Tony Chang.
16023
16024         Remove String-based objectStore/index references, obsoleted by
16025         https://bugs.webkit.org/show_bug.cgi?id=100425.
16026
16027         No new tests as this is the second half of a refactor.
16028
16029         * Modules/indexeddb/IDBCallbacks.h:
16030         * Modules/indexeddb/IDBDatabase.cpp:
16031         (WebCore::IDBDatabase::deleteObjectStore):
16032         (WebCore::IDBDatabase::transaction):
16033         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16034         (WebCore::IDBDatabaseBackendImpl::setVersion):
16035         (WebCore::IDBDatabaseBackendImpl::transaction):
16036         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16037         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16038         (IDBDatabaseBackendImpl):
16039         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16040         (IDBDatabaseBackendInterface):
16041         * Modules/indexeddb/IDBMetadata.h:
16042         (WebCore::IDBObjectStoreMetadata::findIndex):
16043         (IDBObjectStoreMetadata):
16044         (WebCore::IDBObjectStoreMetadata::containsIndex):
16045         * Modules/indexeddb/IDBObjectStore.cpp:
16046         (WebCore::IDBObjectStore::put):
16047         (WebCore):
16048         (WebCore::IDBObjectStore::index):
16049         (WebCore::IDBObjectStore::deleteIndex):
16050         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16051         (WebCore::IDBObjectStoreBackendImpl::put):
16052         (WebCore):
16053         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
16054         (IDBObjectStoreBackendImpl):
16055         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
16056         * inspector/Inspector-1.0.json:
16057         * inspector/Inspector.json:
16058         * inspector/InspectorIndexedDBAgent.cpp:
16059         (WebCore):
16060         (WebCore::InspectorIndexedDBAgent::requestData):
16061         * inspector/InspectorIndexedDBAgent.h:
16062         (InspectorIndexedDBAgent):
16063
16064 2012-11-09  Mario Sanchez Prada  <mario@webkit.org>
16065
16066         [GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk
16067         https://bugs.webkit.org/show_bug.cgi?id=101727
16068
16069         Reviewed by Chris Fleizach.
16070
16071         Added conditional compilation checks for GTK+ specific
16072         accessibility code, to pave the way for sharing this
16073         implementation with other ports (e.g WebKitEFL).
16074
16075         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
16076         (webkitAccessibleTextGetTextAfterOffset): Added conditional
16077         compilation checks, only implementing it in GTK so far.
16078         (webkitAccessibleTextGetTextAtOffset): Ditto.
16079         (webkitAccessibleTextGetTextBeforeOffset): Ditto.
16080         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
16081         (atkParentOfRootObject): Added conditional compilation checks,
16082         only implementing in GTK the part of getting the accessible object
16083         for the root object.
16084         (webkitAccessibleGetParent): Updated comments.
16085         (webkitAccessibleGetNChildren): Ditto.
16086         (webkitAccessibleRefChild): Ditto.
16087         (webkitAccessibleGetIndexInParent): Ditto.
16088         (webkitAccessibleGetAttributes): Only set the 'toolkit' attribute
16089         for GTK. Other ports might be interested in this too.
16090         (setAtkStateSetFromCoreObject): Updated comments.
16091
16092 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16093
16094         MediaStream API: Don't trigger any object deletion during RTCPeerConnection::stop
16095         https://bugs.webkit.org/show_bug.cgi?id=101586
16096
16097         Reviewed by Adam Barth.
16098
16099         Stop calling stop on the RTCPeerConnectionHandler, and don't delete it, when
16100         ActiveDOMObject::stop is called on RTCPeerConnection. Due to the async nature of the new
16101         API some WebCore objects might be cleaned away which is not allowed at this stage.
16102
16103         This behaviour is not possible to test unfortunately in webkit.
16104
16105         * Modules/mediastream/RTCPeerConnection.cpp:
16106         (WebCore::RTCPeerConnection::stop):
16107
16108 2012-11-09  Joshua Bell  <jsbell@chromium.org>
16109
16110         [Chromium] Unreviewed gardening. Fix chromium-win builds following r134082
16111
16112         * WebCore.gypi:
16113
16114 2012-11-09  Dan Carney  <dcarney@google.com>
16115
16116         [V8] Remove ScriptController::windowShell()
16117         https://bugs.webkit.org/show_bug.cgi?id=100235
16118
16119         Reviewed by Adam Barth.
16120
16121         Refactored windowShell(DOMWrapperWorld*) and
16122         existingWindowShell(DOMWrapperWorld*) to be like JSC.
16123
16124         No new tests. No change in functionality.
16125
16126         * bindings/scripts/CodeGeneratorV8.pm:
16127         (GenerateToV8Converters):
16128         * bindings/v8/DOMWrapperWorld.cpp:
16129         (WebCore::isolatedWorldMap):
16130         (WebCore::DOMWrapperWorld::getAllWorlds):
16131         (WebCore):
16132         * bindings/v8/DOMWrapperWorld.h:
16133         (DOMWrapperWorld):
16134         * bindings/v8/PageScriptDebugServer.cpp:
16135         (WebCore::PageScriptDebugServer::addListener):
16136         * bindings/v8/ScriptController.cpp:
16137         (WebCore::ScriptController::~ScriptController):
16138         (WebCore::ScriptController::clearForOutOfMemory):
16139         (WebCore):
16140         (WebCore::ScriptController::clearForClose):
16141         (WebCore::ScriptController::updateSecurityOrigin):
16142         (WebCore::ScriptController::initializeMainWorld): Returns true if the main world was initialized.
16143         (WebCore::existingWindowShellWorkaroundWorld):
16144         (WebCore::ScriptController::existingWindowShell):
16145         (WebCore::ScriptController::windowShell):
16146         (WebCore::ScriptController::evaluateInIsolatedWorld):
16147         (WebCore::ScriptController::currentWorldContext):
16148         (WebCore::ScriptController::mainWorldContext):
16149         (WebCore::ScriptController::haveInterpreter):
16150         (WebCore::ScriptController::enableEval):
16151         (WebCore::ScriptController::disableEval):
16152         (WebCore::ScriptController::clearWindowShell):
16153         (WebCore::ScriptController::setContextDebugId):
16154         (WebCore::ScriptController::updateDocument):
16155         (WebCore::ScriptController::namedItemAdded):
16156         (WebCore::ScriptController::namedItemRemoved):
16157         * bindings/v8/ScriptController.h:
16158         (ScriptController):
16159         (WebCore::ScriptController::getAllWorlds):
16160         * bindings/v8/V8Binding.cpp:
16161         (WebCore::perContextDataForCurrentWorld):
16162         (WebCore::handleOutOfMemory):
16163         * bindings/v8/V8DOMWindowShell.cpp:
16164         (WebCore::V8DOMWindowShell::initializeIfNeeded):
16165         (WebCore::V8DOMWindowShell::updateDocument):
16166         (WebCore::V8DOMWindowShell::namedItemAdded):
16167         (WebCore::V8DOMWindowShell::namedItemRemoved):
16168         * bindings/v8/V8DOMWindowShell.h:
16169         (WebCore::V8DOMWindowShell::isContextInitialized):
16170         (WebCore::V8DOMWindowShell::isGlobalInitialized):
16171         * bindings/v8/custom/V8DocumentCustom.cpp:
16172         (WebCore::toV8):
16173         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
16174         (WebCore::toV8):
16175         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
16176         (WebCore::toV8):
16177
16178 2012-11-09  Adam Barth  <abarth@webkit.org>
16179
16180         [V8] Remove a level of indirection in DOMDataStore
16181         https://bugs.webkit.org/show_bug.cgi?id=101690
16182
16183         Reviewed by Kentaro Hara.
16184
16185         There is no longer any reason for the DOMDataStore to hold the wrapper
16186         map via a pointer. It can just hold the wrapper map directly, saving a
16187         level of indirection. I doubt this has any measurable performance gain.
16188
16189         * bindings/v8/DOMDataStore.cpp:
16190         (WebCore::DOMDataStore::DOMDataStore):
16191         (WebCore::DOMDataStore::~DOMDataStore):
16192         (WebCore::DOMDataStore::reportMemoryUsage):
16193         * bindings/v8/DOMDataStore.h:
16194         (WebCore::DOMDataStore::get):
16195         (WebCore::DOMDataStore::set):
16196         (DOMDataStore):
16197
16198 2012-11-09  Mihnea Ovidenie  <mihnea@adobe.com>
16199
16200         [CSSRegions] Region styling properties are not filtered correctly
16201         https://bugs.webkit.org/show_bug.cgi?id=101768
16202
16203         Reviewed by Andreas Kling.
16204
16205         Region styling allows only a handful of css properties. There is a mechanism in place,
16206         in StyleResolver::isValidRegionStyleProperty that filters the supported region style properties.
16207         In order to be effective, this mechanism relies on RuleData::m_isInRegionRule being set correctly.
16208         This patch makes sure that the flag RuleData::m_isInRegionRule is set properly in RuleData constructor.
16209
16210         Test: fast/regions/region-style-not-supported-properties.html
16211
16212         * css/RuleSet.cpp:
16213         (WebCore::RuleData::RuleData):
16214
16215 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16216
16217         MediaStream API: Deleting all files relating to the deprecated PeerConnection00
16218         https://bugs.webkit.org/show_bug.cgi?id=101730
16219
16220         Reviewed by Adam Barth.
16221
16222         Since RTCPeerConenction has superseeded PeerConnection00 this patch removes all
16223         files relating to the old API.
16224
16225         No testing needed, the remaining tests makes sure that nothing else breaks.
16226
16227         * CMakeLists.txt:
16228         * GNUmakefile.list.am:
16229         * Modules/mediastream/DOMWindowMediaStream.idl:
16230         * Modules/mediastream/IceCallback.h: Removed.
16231         * Modules/mediastream/IceCallback.idl: Removed.
16232         * Modules/mediastream/IceCandidate.cpp: Removed.
16233         * Modules/mediastream/IceCandidate.h: Removed.
16234         * Modules/mediastream/IceCandidate.idl: Removed.
16235         * Modules/mediastream/PeerConnection00.cpp: Removed.
16236         * Modules/mediastream/PeerConnection00.h: Removed.
16237         * Modules/mediastream/PeerConnection00.idl: Removed.
16238         * Modules/mediastream/SessionDescription.cpp: Removed.
16239         * Modules/mediastream/SessionDescription.h: Removed.
16240         * Modules/mediastream/SessionDescription.idl: Removed.
16241         * WebCore.gypi:
16242         * bindings/generic/RuntimeEnabledFeatures.cpp:
16243         (WebCore):
16244         * bindings/generic/RuntimeEnabledFeatures.h:
16245         (RuntimeEnabledFeatures):
16246         * dom/EventTargetFactory.in:
16247         * platform/chromium/support/WebICECandidateDescriptor.cpp: Removed.
16248         * platform/chromium/support/WebICEOptions.cpp: Removed.
16249         * platform/chromium/support/WebMediaHints.cpp: Removed.
16250         * platform/mediastream/IceCandidateDescriptor.cpp: Removed.
16251         * platform/mediastream/IceCandidateDescriptor.h: Removed.
16252         * platform/mediastream/IceOptions.cpp: Removed.
16253         * platform/mediastream/IceOptions.h: Removed.
16254         * platform/mediastream/MediaHints.cpp: Removed.
16255         * platform/mediastream/MediaHints.h: Removed.
16256         * platform/mediastream/MediaStreamCenter.h:
16257         (WebCore):
16258         (MediaStreamCenter):
16259         * platform/mediastream/PeerConnection00Handler.cpp: Removed.
16260         * platform/mediastream/PeerConnection00Handler.h: Removed.
16261         * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
16262         * platform/mediastream/SessionDescriptionDescriptor.cpp: Removed.
16263         * platform/mediastream/SessionDescriptionDescriptor.h: Removed.
16264         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
16265         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
16266         (WebCore):
16267         (MediaStreamCenterBlackBerry):
16268         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
16269         * platform/mediastream/chromium/MediaStreamCenterChromium.h:
16270         (WebCore):
16271         (MediaStreamCenterChromium):
16272         * platform/mediastream/chromium/PeerConnection00Handler.cpp: Removed.
16273         * platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Removed.
16274         * platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Removed.
16275         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
16276         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
16277         (WebCore):
16278         (MediaStreamCenterGStreamer):
16279
16280 2012-11-09  Jer Noble  <jer.noble@apple.com>
16281
16282         Plugin diagnostic logging should send plugin file basename instead of MIME type.
16283         https://bugs.webkit.org/show_bug.cgi?id=101679
16284
16285         Reviewed by Eric Carlson.
16286
16287         Log the basename of the plugin file rather than the mime type so as to more
16288         accurately log which plugin was used to handle the request.
16289
16290         * loader/SubframeLoader.cpp:
16291         (WebCore::logPluginRequest): Log the plugin 'file' field, if present.
16292         * plugins/PluginData.cpp:
16293         (WebCore::PluginData::pluginInfoForMimeType): Factored out from pluginNameForMimeType.
16294         (WebCore::PluginData::pluginNameForMimeType): Use pluginInfoForMimeType to retrieve name field.
16295         (WebCore::PluginData::pluginFileForMimeType): Use pluginInfoForMimeType to retrieve file field.
16296         * plugins/PluginData.h:
16297
16298 2012-11-09  Alexey Proskuryakov  <ap@apple.com>
16299
16300         CookieJar uses Document class, which is a layering violation
16301         https://bugs.webkit.org/show_bug.cgi?id=101621
16302
16303         Reviewed by Brady Eidson.
16304
16305         Split CookieJar in two parts, one that takes a Document, and another that is a pure
16306         platform one, using NetworkingContext to access the correct platform storage.
16307
16308         * GNUmakefile.list.am:
16309         * PlatformBlackBerry.cmake:
16310         * Target.pri:
16311         * WebCore.gypi:
16312         * WebCore.gyp/WebCore.gyp:
16313         * WebCore.vcproj/WebCore.vcproj:
16314         * WebCore.xcodeproj/project.pbxproj:
16315         Updated.
16316
16317         * loader/CookieJar.cpp: Added.
16318         (WebCore::networkingContext):
16319         (WebCore::cookies):
16320         (WebCore::setCookies):
16321         (WebCore::cookiesEnabled):
16322         (WebCore::cookieRequestHeaderFieldValue):
16323         (WebCore::getRawCookies):
16324         (WebCore::deleteCookie):
16325         (WebCore::getHostnamesWithCookies):
16326         (WebCore::deleteCookiesForHostname):
16327         (WebCore::deleteAllCookies):
16328         * loader/CookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16329         This is an adaptor for pure platform implementations. Clients continue to use the
16330         old interface unchanged.
16331
16332         * platform/blackberry/CookieJarBlackBerry.cpp: Removed.
16333         * loader/blackberry/CookieJarBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/CookieJarBlackBerry.cpp.
16334         * platform/network/chromium/CookieJarChromium.cpp: Removed.
16335         * loader/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/platform/network/chromium/CookieJarChromium.cpp.
16336         These platforms do not have a pure platform implementation yet, so they just keep
16337         to use original implementations. Since the code is not in platform/ any more, the
16338         violation is resolved for Chromium and Blackberry, too.
16339
16340         * platform/CookieJar.h: Removed.
16341         * platform/network/PlatformCookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16342         The platform interface is now more uniform - all functions take a NetworkingContext
16343         instead of hardcoding which cookie storage to use in some cases.
16344         Renamed functions that are only useful for document.cookie implementation to look
16345         less generic.
16346
16347         * platform/mac/CookieJar.mm: Removed.
16348         * platform/network/mac/CookieJarMac.mm: Copied from Source/WebCore/platform/mac/CookieJar.mm.
16349         (WebCore::cookiesForDOM): This now takes a context instead of Document, and also
16350         takes a firstParty URL (unused on Mac, but used on some other platforms).
16351         (WebCore::cookieRequestHeaderFieldValue): Get cookie storage from context (and
16352         use shared one if context is null).
16353         (WebCore::setCookiesFromDOM): Ditto.
16354         (WebCore::cookiesEnabled): Ditto.
16355         (WebCore::getRawCookies): Ditto.
16356         (WebCore::deleteCookie): Ditto.
16357         (WebCore::getHostnamesWithCookies): Ditto. This used to only support default storage,
16358         but its cleaner to have a uniform interface.
16359         (WebCore::deleteCookiesForHostname): Ditto.
16360         (WebCore::deleteAllCookies): Ditto.
16361
16362         * platform/network/cf/CookieJarCFNet.cpp:
16363         Same changes as on Mac.
16364
16365         * platform/network/curl/CookieJarCurl.cpp:
16366         Updated for new interface. Implementation is largely a dummy one.
16367
16368         * platform/qt/CookieJarQt.h: Removed.
16369         * platform/network/qt/CookieJarQt.h: Copied from Source/WebCore/platform/qt/CookieJarQt.h.
16370         Moved to a common location, most cookie files were in network/ already.
16371
16372         * platform/qt/CookieJarQt.cpp: Removed.
16373         * platform/network/qt/CookieJarQt.cpp: Copied from Source/WebCore/platform/qt/CookieJarQt.cpp.
16374         (WebCore::setCookiesFromDOM): Use context's or shared cooke jar as appropriate.
16375         (WebCore::cookiesForDOM): Ditto.
16376         (WebCore::cookieRequestHeaderFieldValue): Ditto.
16377         (WebCore::cookiesEnabled): Ditto.
16378         (WebCore::getRawCookies): Ditto.
16379         (WebCore::deleteCookie): Ditto.
16380         (WebCore::getHostnamesWithCookies): Back-end implementation can only handle shared
16381         jar here, assert that argument does not request another one.
16382         (WebCore::deleteCookiesForHostname): Ditto.
16383         (WebCore::deleteAllCookies): Ditto.
16384
16385         * platform/network/soup/CookieJarSoup.cpp:
16386         (WebCore::cookieJarForContext):
16387         (WebCore::setCookiesFromDOM):
16388         (WebCore::cookiesForContext):
16389         (WebCore::cookiesForDOM):
16390         (WebCore::cookieRequestHeaderFieldValue):
16391         (WebCore::cookiesEnabled):
16392         (WebCore::getRawCookies):
16393         (WebCore::deleteCookie):
16394         (WebCore::getHostnamesWithCookies):
16395         (WebCore::deleteCookiesForHostname):
16396         (WebCore::deleteAllCookies):
16397         Updated for new function signatures, and use the same cross-platform logic for
16398         choosing a cookie jar.
16399
16400         * platform/network/soup/CookieJarSoup.h: Don't include unnecessary CooieJar.h.
16401         
16402         * platform/network/win/CookieJarWin.cpp:
16403         (WebCore::setCookiesFromDOM):
16404         (WebCore::cookiesForDOM):
16405         (WebCore::cookieRequestHeaderFieldValue):
16406         (WebCore::cookiesEnabled):
16407         (WebCore::getRawCookies):
16408         (WebCore::deleteCookie):
16409         (WebCore::getHostnamesWithCookies):
16410         (WebCore::deleteCookiesForHostname):
16411         (WebCore::deleteAllCookies):
16412         Updated for new function signatures.
16413
16414 2012-11-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
16415
16416         [css] Text decoration's "blink" not valid when CSS3_TEXT is enabled
16417         https://bugs.webkit.org/show_bug.cgi?id=101750
16418
16419         Reviewed by Ojan Vafai.
16420
16421         This patch fixes an issue regarding "blink" value, which is valid for CSS 2.1
16422         "text-decoration" property, but recently have its parser function modified by
16423         the addition of CSS3 "-webkit-text-decoration-line" property.
16424
16425         The 'fast/css/getComputedStyle/getComputedStyle-text-decoration.html'
16426         layout test is updated with all possible value combinations.
16427
16428         * css/CSSParser.cpp:
16429         (WebCore::CSSParser::parseTextDecoration): Added 'blink' value to list
16430         if accepted.
16431
16432 2012-11-09  Xan Lopez  <xlopez@igalia.com>
16433
16434         [GTK] Do not use 'ls' to list IDL files in EXTRA_DIST
16435         https://bugs.webkit.org/show_bug.cgi?id=101581
16436
16437         Reviewed by Martin Robinson.
16438
16439         Use normal GNU Make wildcards instead of 'ls' to list files in
16440         EXTRA_DIST, it's safer and more straightforward.
16441
16442         * GNUmakefile.am: ditto.
16443
16444 2012-11-09  Charles Wei  <charles.wei@torchmobile.com.cn>
16445
16446         Need to clear exception in JSDictionary that might have been caused by previous operation.
16447         https://bugs.webkit.org/show_bug.cgi?id=96614
16448
16449         Reviewed by George Staikos.
16450
16451         IndexedDB IDBDatabase::createObjectStore supports both String type of KeyPath and
16452         String Array type of KeyPath. It will first try to get the keyPath as a String Array,
16453         if fails, it will try to get KeyPath as a String, from the Dictionary. The first get
16454         will leave the internal ExecState of Dictionary in exception state. We need to clear
16455         the exception state before the 2nd query, otherwise the second query will also fail.
16456
16457         No new tests. The existing test case LayoutTests/storage/indexeddb/tutorial.html should
16458         now work with this patch.
16459         * bindings/js/JSDictionary.cpp:
16460         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
16461
16462 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16463
16464         Month/week picker should submit month/week string
16465         https://bugs.webkit.org/show_bug.cgi?id=101744
16466
16467         Reviewed by Kent Tamura.
16468
16469         Month/week picker should submit month/week string and not yyyy-mm-dd.
16470
16471         No new tests. Test will be added in Bug 101555 and Bug 101556.
16472
16473         * Resources/pagepopups/calendarPicker.js:
16474         (DaysTable.prototype._handleDayClick):
16475
16476 2012-11-07  Pavel Feldman  <pfeldman@chromium.org>
16477
16478         Web Inspector: wrong output for empty object {}
16479         https://bugs.webkit.org/show_bug.cgi?id=101356
16480
16481         Reviewed by Vsevolod Vlasov.
16482
16483         Changed preview formatting to iterate over enumerable properties only + visit the prototypes.
16484
16485         * inspector/InjectedScriptSource.js:
16486         (.):
16487         * inspector/front-end/ConsoleMessage.js:
16488         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
16489
16490 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16491
16492         Fix annotations in page popup files
16493         https://bugs.webkit.org/show_bug.cgi?id=101736
16494
16495         Reviewed by Kent Tamura.
16496
16497         Add @constructor where needed. Replacing /* with /** for annotations.
16498
16499         No new tests. No behavior change.
16500
16501         * Resources/pagepopups/calendarPicker.js:
16502         * Resources/pagepopups/pickerCommon.js:
16503         * Resources/pagepopups/suggestionPicker.js:
16504
16505 2012-11-09  Huang Dongsung  <luxtella@company100.net>
16506
16507         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
16508         https://bugs.webkit.org/show_bug.cgi?id=101656
16509
16510         Reviewed by Kenneth Rohde Christiansen.
16511
16512         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
16513         smartly, but currently TiledBackingStore expects a contents rect is big enough
16514         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
16515         is usually wrong expectation.
16516
16517         We must compute cover and keep rects using the visibleRect, instead of
16518         the rect intersecting the visibleRect with m_rect, because TBS can be
16519         used as a backing store of GraphicsLayer and the visible rect usually
16520         does not intersect with m_rect.
16521         In the below case, the intersecting rect is an empty.
16522
16523          +---------------+
16524          |               |
16525          |   m_rect      |
16526          |       +-------|-----------------------+
16527          |       | HERE  |  cover or keep        |
16528          +---------------+      rect             |
16529                  |         +---------+           |
16530                  |         | visible |           |
16531                  |         |  rect   |           |
16532                  |         +---------+           |
16533                  |                               |
16534                  |                               |
16535                  +-------------------------------+
16536
16537         We must create or keep the tiles in the HERE region. Currently in the
16538         case, we do not create or keep tiles on the HERE region. Moreover, in
16539         the case, we early return, which means we don't remove any tiles. It
16540         causes to waste heap and video memory.
16541
16542         This patch changes TiledBackingStore to manage tiles smartly for
16543         Coordinated Graphics.
16544
16545         Changing cache policy is not testable in layout tests.
16546
16547         * platform/graphics/TiledBackingStore.cpp:
16548         (WebCore::TiledBackingStore::visibleRect):
16549         (WebCore::TiledBackingStore::visibleAreaIsCovered):
16550         (WebCore::TiledBackingStore::createTiles):
16551         (WebCore::TiledBackingStore::adjustForContentsRect):
16552         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
16553         * platform/graphics/TiledBackingStore.h:
16554         (TiledBackingStore):
16555
16556 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16557
16558         Fix undefined variable in Week constructor for calendar picker
16559         https://bugs.webkit.org/show_bug.cgi?id=101734
16560
16561         Reviewed by Kent Tamura.
16562
16563         Closer compiler found an undefined variable in the Week constructor.
16564
16565         No new tests. This code isn't used.
16566
16567         * Resources/pagepopups/calendarPicker.js:
16568         (Week): Used wrong variable name.
16569
16570 2012-11-09  Pavel Feldman  <pfeldman@chromium.org>
16571
16572         Web Inspector: render canvas log as a grid.
16573         https://bugs.webkit.org/show_bug.cgi?id=101732
16574
16575         Reviewed by Vsevolod Vlasov.
16576
16577         * English.lproj/localizedStrings.js:
16578         * inspector/front-end/CanvasProfileView.js:
16579         (WebInspector.CanvasProfileView):
16580         (WebInspector.CanvasProfileView.prototype._onSelectTraceLog):
16581         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
16582         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
16583         (WebInspector.CanvasProfileHeader.prototype.traceLogId):
16584         (WebInspector.CanvasLogGrid):
16585         (WebInspector.CanvasLogGrid.prototype._didReceiveTraceLog):
16586         (WebInspector.CanvasLogGrid.prototype._createCallNode):
16587         * inspector/front-end/DataGrid.js:
16588         (WebInspector.DataGridNode.prototype.createCell):
16589         * inspector/front-end/canvasProfiler.css:
16590         (#canvas-replay-image-container):
16591
16592 2012-11-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
16593
16594         Regression(r107593) Crash in ContextMenuController::addInspectElementItem()
16595         https://bugs.webkit.org/show_bug.cgi?id=101595
16596
16597         Reviewed by Simon Hausmann.
16598
16599         If the contextMenu is a null pointer treat it as empty, appendItem will later
16600         create it if necessary.
16601
16602         * page/ContextMenuController.cpp:
16603         (WebCore::ContextMenuController::addInspectElementItem):
16604
16605 2012-11-09  Christophe Dumez  <christophe.dumez@intel.com>
16606
16607         [EFL][WK2] Add support for custom cursors
16608         https://bugs.webkit.org/show_bug.cgi?id=101723
16609
16610         Reviewed by Kenneth Rohde Christiansen.
16611
16612         Add getEvasObject() virtual method to Image class and
16613         provide implementation for BitmapImage.
16614
16615         No new tests, no behavior change.
16616
16617         * platform/efl/CursorEfl.cpp:
16618         (WebCore::cursorString):
16619         * platform/graphics/BitmapImage.h:
16620         (BitmapImage):
16621         * platform/graphics/Image.h:
16622         (Image):
16623         (WebCore::Image::getEvasObject):
16624         * platform/graphics/efl/ImageEfl.cpp:
16625         (WebCore::BitmapImage::getEvasObject):
16626         (WebCore):
16627
16628 2012-11-09  Adam Barth  <abarth@webkit.org>
16629
16630         IndexedDB should use mostly ScriptWrappable DOM objects
16631         https://bugs.webkit.org/show_bug.cgi?id=101694
16632
16633         Reviewed by Kentaro Hara.
16634
16635         These object always have JavaScript wrappers, so we should store the
16636         wrappers inline to use less memory and be faster.
16637
16638         * Modules/indexeddb/IDBAny.h:
16639         * Modules/indexeddb/IDBCursor.h:
16640         * Modules/indexeddb/IDBDatabase.h:
16641         * Modules/indexeddb/IDBFactory.h:
16642         * Modules/indexeddb/IDBIndex.h:
16643         * Modules/indexeddb/IDBKey.h:
16644         * Modules/indexeddb/IDBKeyRange.h:
16645         * Modules/indexeddb/IDBObjectStore.h:
16646         * Modules/indexeddb/IDBRequest.h:
16647         * Modules/indexeddb/IDBTransaction.h:
16648
16649 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16650
16651         Web Inspector: Add meaningful error message when request content was evicted from inspector cache.
16652         https://bugs.webkit.org/show_bug.cgi?id=101578
16653
16654         Reviewed by Yury Semikhatsky.
16655
16656         Added specific error message when request content was evicted from inspector cache.
16657         Replaced purge with evict in fields/methods names.
16658
16659         * inspector/InspectorResourceAgent.cpp:
16660         (WebCore::InspectorResourceAgent::getResponseBody):
16661         * inspector/NetworkResourcesData.cpp:
16662         (WebCore::NetworkResourcesData::ResourceData::ResourceData):
16663         (WebCore::NetworkResourcesData::ResourceData::evictContent):
16664         (WebCore::NetworkResourcesData::setResourceContent):
16665         (WebCore::NetworkResourcesData::maybeAddResourceData):
16666         (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
16667         (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
16668         (WebCore::NetworkResourcesData::ensureFreeSpace):
16669         * inspector/NetworkResourcesData.h:
16670         (WebCore::NetworkResourcesData::ResourceData::isContentEvicted):
16671         (ResourceData):
16672
16673 2012-11-09  Kent Tamura  <tkent@chromium.org>
16674
16675         Don't use RenderTextControlSingleLine for date/time input types without the multiple-fields UI
16676         https://bugs.webkit.org/show_bug.cgi?id=101722
16677
16678         Reviewed by Hajime Morita.
16679
16680         Because the date/time input types are not textfields, we should not use
16681         RenderTextControlSingleLine, and don't need to create shadow trees for
16682         RenderTextControlSingleLine.
16683
16684         No new tests. Covered by fast/forms/*/*-appearance-*.html.
16685
16686         * css/html.css:
16687         (input[type="date"]):
16688         It has menulist appeanrace by default, and should be a flexible box to
16689         center the inner text. 10em width is almost same as the default width of
16690         text fields.
16691         (input[type="datetime"]): Ditto.
16692         (input[type="datetime-local"]): Ditto.
16693         (input[type="month"]): Ditto.
16694         (input[type="time"]): Ditto.
16695         (input[type="week"]): Ditto.
16696         (input::-webkit-date-and-time-value):
16697         Added. A style for the inner text block.
16698         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
16699         (WebCore::BaseChooserOnlyDateAndTimeInputType::createRenderer):
16700         Don't create RenderTextControlSingleLine.
16701         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue):
16702         Skip TextFieldInputType::updateInnerTextValue.
16703         (WebCore::BaseChooserOnlyDateAndTimeInputType::forwardEvent):
16704         Skip TextFieldInputType::forwardEvent.
16705         (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
16706         Just add one element to the shadow root.
16707         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
16708         Sets a localized value to the inner text block.
16709         (WebCore::BaseChooserOnlyDateAndTimeInputType::setValue):
16710         Calls updateAppearance if the value is updated.
16711         * html/BaseChooserOnlyDateAndTimeInputType.h:
16712         (BaseChooserOnlyDateAndTimeInputType): Declare updateAppearance,
16713         createRenderer, updateInnerTextValue, forwardEvent, createShadowSubtree,
16714         and setValue.
16715         * html/BaseDateAndTimeInputType.h:
16716         (WebCore): Add a FIXME comment.
16717         (BaseDateAndTimeInputType):
16718         Make visibleValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16719         * html/TextFieldInputType.h:
16720         (TextFieldInputType):
16721         Make setValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16722
16723 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16724
16725         Web Inspector: Clarify meaning of different urls in protocol.
16726         https://bugs.webkit.org/show_bug.cgi?id=101582
16727
16728         Reviewed by Yury Semikhatsky.
16729
16730         * inspector/Inspector.json:
16731
16732 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16733
16734         Month picker should select the current month when navigating while keeping selection position.
16735         https://bugs.webkit.org/show_bug.cgi?id=101724
16736
16737         Reviewed by Kent Tamura.
16738
16739         Month picker needs to behave differently because selection won't be in the same position when changing current month.
16740
16741         No new tests. Test will be added in Bug 101556.
16742
16743         * Resources/pagepopups/calendarPicker.js:
16744         (DaysTable.prototype.navigateToMonth): Date/Week picker should keep selection position for first selected date node.
16745         (DaysTable.prototype._startMoveInAnimation): Moving shared code to separate function.
16746         (MonthPickerDaysTable.prototype.navigateToMonth): Month picker should just select the month.
16747
16748 2012-11-09  Alexei Filippov  <alph@chromium.org>
16749
16750         Web Inspector: Fix heap snapshots counted several times by NMI
16751         https://bugs.webkit.org/show_bug.cgi?id=101085
16752
16753         The fix moves snapshots size counting to V8PerIsolateData class. As long
16754         as it has one instance per isolate its reportMemoryUsage should be
16755         called once per isolate.
16756
16757         Reviewed by Yury Semikhatsky.
16758
16759         * bindings/v8/V8PerIsolateData.cpp:
16760         (WebCore::V8PerIsolateData::reportMemoryUsage):
16761         * inspector/InspectorProfilerAgent.cpp:
16762         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
16763
16764 2012-11-08  Pavel Feldman  <pfeldman@chromium.org>
16765
16766         Web Inspector: split SplitView into SplitView and SidebarView
16767         https://bugs.webkit.org/show_bug.cgi?id=101612
16768
16769         Reviewed by Vsevolod Vlasov.
16770
16771         Currently, SplitView is rather a sidebar view. I'm extracting the reusable split component from it.
16772
16773         * WebCore.gypi:
16774         * WebCore.vcproj/WebCore.vcproj:
16775         * inspector/compile-front-end.py:
16776         * inspector/front-end/AuditsPanel.js:
16777         (WebInspector.AuditsPanel):
16778         * inspector/front-end/CSSNamedFlowCollectionsView.js:
16779         (WebInspector.CSSNamedFlowCollectionsView):
16780         (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
16781         * inspector/front-end/ElementsPanel.js:
16782         * inspector/front-end/FileSystemView.js:
16783         (WebInspector.FileSystemView):
16784         * inspector/front-end/MemoryStatistics.js:
16785         (WebInspector.CounterUI):
16786         (WebInspector.MemoryStatistics.prototype.setTopPosition):
16787         (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
16788         (WebInspector.MemoryStatistics.prototype.visible):
16789         (WebInspector.MemoryStatistics.prototype.show):
16790         (WebInspector.MemoryStatistics.prototype.hide):
16791         * inspector/front-end/NavigatorOverlayController.js:
16792         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
16793         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
16794         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
16795         (WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
16796         * inspector/front-end/NetworkPanel.js:
16797         * inspector/front-end/Panel.js:
16798         (WebInspector.Panel.prototype.createSidebarView):
16799         (WebInspector.Panel.prototype.createSidebarViewWithTree):
16800         * inspector/front-end/ProfilesPanel.js:
16801         (WebInspector.ProfilesPanel):
16802         * inspector/front-end/ResourcesPanel.js:
16803         * inspector/front-end/ScriptsPanel.js:
16804         (WebInspector.ScriptsPanel):
16805         * inspector/front-end/SidebarView.js: Added.
16806         (WebInspector.SidebarView):
16807         (WebInspector.SidebarView.prototype._hasLeftSidebar):
16808         (WebInspector.SidebarView.prototype.get mainElement):
16809         (WebInspector.SidebarView.prototype.get sidebarElement):
16810         (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
16811         (WebInspector.SidebarView.prototype.setMinimalSidebarWidth):
16812         (WebInspector.SidebarView.prototype.setMinimalMainWidthPercent):
16813         (WebInspector.SidebarView.prototype.setSidebarWidth):
16814         (WebInspector.SidebarView.prototype.sidebarWidth):
16815         (WebInspector.SidebarView.prototype.onResize):
16816         (WebInspector.SidebarView.prototype.applyConstraints):
16817         (WebInspector.SidebarView.prototype.hideMainElement):
16818         (WebInspector.SidebarView.prototype.showMainElement):
16819         (WebInspector.SidebarView.prototype.hideSidebarElement):
16820         (WebInspector.SidebarView.prototype.showSidebarElement):
16821         (WebInspector.SidebarView.prototype.elementsToRestoreScrollPositionsFor):
16822         * inspector/front-end/SplitView.js:
16823         (WebInspector.SplitView):
16824         (WebInspector.SplitView.prototype.firstElement):
16825         (WebInspector.SplitView.prototype.secondElement):
16826         (WebInspector.SplitView.prototype.setChangeFirstOnResize):
16827         (WebInspector.SplitView.prototype.resizerElement):
16828         (WebInspector.SplitView.prototype.showOnlyFirst):
16829         (WebInspector.SplitView.prototype.showOnlySecond):
16830         (WebInspector.SplitView.prototype._showOnly):
16831         (WebInspector.SplitView.prototype._removeAllLayoutProperties):
16832         (WebInspector.SplitView.prototype.showBoth):
16833         (WebInspector.SplitView.prototype.setResizable):
16834         (WebInspector.SplitView.prototype.setSplitOffset):
16835         (WebInspector.SplitView.prototype.splitOffset):
16836         (WebInspector.SplitView.prototype._innerSetSplitOffset):
16837         (WebInspector.SplitView.prototype._startResizerDragging):
16838         * inspector/front-end/TimelinePanel.js:
16839         * inspector/front-end/WebKit.qrc:
16840         * inspector/front-end/inspector.html:
16841         * inspector/front-end/splitView.css:
16842
16843 2012-11-09  Andrey Lushnikov  <lushnikov@google.com>
16844
16845         Web Inspector: Ctrl+A in the network panel should select resource content, not the entire panel
16846         https://bugs.webkit.org/show_bug.cgi?id=101591
16847
16848         Reviewed by Vsevolod Vlasov.
16849
16850         Intercept Ctrl+A event in DefaultTextEditor to select resource content
16851
16852         * inspector/front-end/DefaultTextEditor.js:
16853         (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Added Ctrl+A
16854         (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Intercept Ctrl+A even for readonly fields
16855         (WebInspector.TextEditorMainPanel.prototype.handleSelectAll):
16856         * inspector/front-end/KeyboardShortcut.js: Added SelectAll constant for Ctrl+A combination
16857
16858 2012-11-09  Dan Carney  <dcarney@google.com>
16859
16860         [V8] Main world should have one DOMDataStore
16861         https://bugs.webkit.org/show_bug.cgi?id=101470
16862
16863         Reviewed by Kentaro Hara.
16864
16865         The main world DOMWrapperWorld held onto a DOMDataStore that should
16866         never be used, as there is a static one optimized for speed in
16867         DOMDataStore.
16868
16869         No new tests. No change in functionality.
16870
16871         * bindings/v8/DOMDataStore.cpp:
16872         (WebCore::DOMDataStore::current):
16873         * bindings/v8/DOMWrapperWorld.h:
16874         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
16875         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
16876         * bindings/v8/V8DOMWrapper.h:
16877         (WebCore::V8DOMWrapper::getCachedWrapper):
16878
16879 2012-11-09  Alexei Filippov  <alph@chromium.org>
16880
16881         Web Inspector: Navigating around NMI snapshot grid with keys breaks the grid
16882         https://bugs.webkit.org/show_bug.cgi?id=101611
16883
16884         Reviewed by Yury Semikhatsky.
16885
16886         Keys navigation cause populate message sent to the node. The node should
16887         not react on populate messages but the first one.
16888
16889         * inspector/front-end/NativeMemorySnapshotView.js:
16890
16891 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
16892
16893         Web Inspector: Timeline: "Send Request" events are shown out of order.
16894         https://bugs.webkit.org/show_bug.cgi?id=101544
16895
16896         Reviewed by Yury Semikhatsky.
16897
16898         Solution: replace obsolete out-of-order record pushing with frontend
16899         record reparenting.
16900
16901         * inspector/InspectorTimelineAgent.cpp:
16902         (WebCore::InspectorTimelineAgent::willSendResourceRequest): Replaced
16903         direct record pushing with standard appendRecord invokation.
16904         * inspector/front-end/TimelinePresentationModel.js:
16905         (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
16906         Made "Send Request" records top-level if gluing is on.
16907
16908 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
16909
16910         Unreviewed, rolling out r134010.
16911         http://trac.webkit.org/changeset/134010
16912         https://bugs.webkit.org/show_bug.cgi?id=101716
16913
16914         Broke the chromium windows build. (Requested by noel_ on
16915         #webkit).
16916
16917         * Modules/indexeddb/IDBAny.cpp:
16918         * Modules/indexeddb/IDBCallbacks.h:
16919         * Modules/indexeddb/IDBDatabase.cpp:
16920         (WebCore::IDBDatabase::createObjectStore):
16921         (WebCore::IDBDatabase::deleteObjectStore):
16922         (WebCore::IDBDatabase::transaction):
16923         * Modules/indexeddb/IDBDatabase.h:
16924         (IDBDatabase):
16925         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16926         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
16927         (WebCore):
16928         (WebCore::IDBDatabaseBackendImpl::setVersion):
16929         (WebCore::IDBDatabaseBackendImpl::transaction):
16930         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16931         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16932         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
16933         (IDBDatabaseBackendImpl):
16934         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16935         (WebCore):
16936         (IDBDatabaseBackendInterface):
16937         * Modules/indexeddb/IDBMetadata.h:
16938         (WebCore::IDBObjectStoreMetadata::containsIndex):
16939         (WebCore::IDBDatabaseMetadata::findObjectStore):
16940         (IDBDatabaseMetadata):
16941         (WebCore::IDBDatabaseMetadata::containsObjectStore):
16942         * Modules/indexeddb/IDBObjectStore.cpp:
16943         (WebCore::IDBObjectStore::put):
16944         (WebCore):
16945         (WebCore::IDBObjectStore::createIndex):
16946         (WebCore::IDBObjectStore::index):
16947         (WebCore::IDBObjectStore::deleteIndex):
16948         * Modules/indexeddb/IDBObjectStore.h:
16949         (WebCore::IDBObjectStore::openCursor):
16950         (IDBObjectStore):
16951         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16952         (WebCore::IDBObjectStoreBackendImpl::put):
16953         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
16954         (WebCore):
16955         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
16956         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
16957         (WebCore::IDBObjectStoreBackendImpl::index):
16958         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
16959         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
16960         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
16961         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
16962         (IDBObjectStoreBackendImpl):
16963         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
16964         (WebCore):
16965         * Modules/indexeddb/IDBTransaction.cpp:
16966         (WebCore::IDBTransaction::objectStore):
16967         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
16968         (WebCore::IDBTransactionBackendImpl::objectStore):
16969         (WebCore):
16970         * Modules/indexeddb/IDBTransactionBackendImpl.h:
16971         (IDBTransactionBackendImpl):
16972         * Modules/indexeddb/IDBTransactionBackendInterface.h:
16973
16974 2012-11-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
16975
16976         [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded
16977         https://bugs.webkit.org/show_bug.cgi?id=101570
16978
16979         Reviewed by Gustavo Noronha Silva.
16980
16981         Expose a new method to check whether a vector of loaded languages is empty.
16982         WK2-EFL needs it to set the default language (if the client didn't set any) when
16983         spelling setting is being enabled. This change makes it more convenient to check
16984         whether the dictionaries vector is empty.
16985
16986         No new tests, no behavior change.
16987
16988         * platform/text/enchant/TextCheckerEnchant.cpp:
16989         (TextCheckerEnchant::checkSpellingOfString):
16990         (TextCheckerEnchant::getGuessesForWord):
16991         (TextCheckerEnchant::loadedSpellCheckingLanguages):
16992         A newly exposed method is used internally too.
16993
16994         * platform/text/enchant/TextCheckerEnchant.h:
16995         (WebCore::TextCheckerEnchant::hasDictionary):
16996         Add an inline hasDictionary() method.
16997
16998 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
16999
17000         [Refactoring] Remove shadowPseudoId() and use pseudo() instead in TextTrackCue
17001         https://bugs.webkit.org/show_bug.cgi?id=101702
17002
17003         Reviewed by Hajime Morita.
17004
17005         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from TextTrackCue and use
17006         setPseudo()/pseudo() instead.
17007
17008         No new tests, simple refactoring.
17009
17010         * html/track/TextTrackCue.cpp:
17011         (WebCore::TextTrackCueBox::TextTrackCueBox):
17012         * html/track/TextTrackCue.h:
17013         (TextTrackCueBox):
17014
17015 2012-11-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
17016
17017         table not aligned in center column and seems shrunk because of float:right (table-layout: fixed and width: 100%)
17018         https://bugs.webkit.org/show_bug.cgi?id=18153
17019
17020         Reviewed by Beth Dakin.
17021
17022         Preferred logical width is computed incorrectly for fixed layout tables
17023         with 100% percent width, in standards mode.
17024
17025         According to our fixed table layout algorithm (CSS2 specification - 17.5.2.1)
17026         the ultimate width of the table is the greater of the value of the
17027         'width' property for the table elements and the sum of the column
17028         widths.
17029
17030         For our specific scenario we have a fixed layout table with 100% width
17031         consisting of columns with fixed widths, the sum of which is less than
17032         the specified width of the table (i.e. 100% of the containing block).
17033         Even then the applied width is the cummulative of the width of the
17034         columns.
17035
17036         This happens because of the quirks mode check added in
17037         FixedTableLayout::computePreferredLogicalWidths(), which prohibits the
17038         setting of maxWidth to our fixed layout table with percent width, and
17039         which perhaps is not required anymore.
17040
17041         Test: fast/table/fixed-table-layout/table-with-percent-width.html
17042
17043         * rendering/FixedTableLayout.cpp:
17044         (WebCore::FixedTableLayout::computePreferredLogicalWidths):
17045         Removed the quirks mode check.
17046
17047 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17048
17049         Unreviewed, rolling out r134004.
17050         http://trac.webkit.org/changeset/134004
17051         https://bugs.webkit.org/show_bug.cgi?id=101713
17052
17053         multiple crashes (Requested by hayato on #webkit).
17054
17055         * rendering/RenderThemeMac.mm:
17056         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17057         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17058         (WebCore::RenderThemeMac::paintMediaMuteButton):
17059         (WebCore::RenderThemeMac::paintMediaPlayButton):
17060         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17061         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17062         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17063         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17064         (WebCore::RenderThemeMac::paintMediaRewindButton):
17065         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17066         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17067         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17068         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17069         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17070         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17071         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17072         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17073         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17074         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17075
17076 2012-11-08  Jan Keromnes  <janx@linux.com>
17077
17078         Web Inspector: stop using cursorCoords in CodeMirrorTextEditor
17079         https://bugs.webkit.org/show_bug.cgi?id=101607
17080
17081         Reviewed by Vsevolod Vlasov.
17082
17083         API changes completing migration to v3.
17084
17085         * inspector/front-end/CodeMirrorTextEditor.js:
17086         (WebInspector.CodeMirrorTextEditor):
17087         (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
17088         (WebInspector.CodeMirrorTextEditor.prototype.selection):
17089
17090 2012-11-08  Alexei Filippov  <alph@chromium.org>
17091
17092         Web Inspector: make "Other" bar color darker in NMI snapshot.
17093         https://bugs.webkit.org/show_bug.cgi?id=101602
17094
17095         Reviewed by Vsevolod Vlasov.
17096
17097         * inspector/front-end/NativeMemorySnapshotView.js:
17098         (WebInspector.MemoryBlockViewProperties._initialize):
17099
17100 2012-11-08  Alec Flett  <alecflett@chromium.org>
17101
17102         IndexedDB: switch frontend to use int64_t-based references
17103         https://bugs.webkit.org/show_bug.cgi?id=100426
17104
17105         Reviewed by Tony Chang.
17106
17107         Remove String-based objectStore/index references, obsoleted by
17108         https://bugs.webkit.org/show_bug.cgi?id=100425.
17109
17110         No new tests as this is the second half of a refactor.
17111
17112         * Modules/indexeddb/IDBCallbacks.h:
17113         * Modules/indexeddb/IDBDatabase.cpp:
17114         (WebCore::IDBDatabase::deleteObjectStore):
17115         (WebCore::IDBDatabase::transaction):
17116         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17117         (WebCore::IDBDatabaseBackendImpl::setVersion):
17118         (WebCore::IDBDatabaseBackendImpl::transaction):
17119         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17120         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17121         (IDBDatabaseBackendImpl):
17122         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17123         (IDBDatabaseBackendInterface):
17124         * Modules/indexeddb/IDBMetadata.h:
17125         (WebCore::IDBObjectStoreMetadata::findIndex):
17126         (IDBObjectStoreMetadata):
17127         (WebCore::IDBObjectStoreMetadata::containsIndex):
17128         * Modules/indexeddb/IDBObjectStore.cpp:
17129         (WebCore::IDBObjectStore::put):
17130         (WebCore):
17131         (WebCore::IDBObjectStore::index):
17132         (WebCore::IDBObjectStore::deleteIndex):
17133         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17134         (WebCore::IDBObjectStoreBackendImpl::put):
17135         (WebCore):
17136         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17137         (IDBObjectStoreBackendImpl):
17138         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17139         * inspector/Inspector-1.0.json:
17140         * inspector/Inspector.json:
17141         * inspector/InspectorIndexedDBAgent.cpp:
17142         (WebCore):
17143         (WebCore::InspectorIndexedDBAgent::requestData):
17144         * inspector/InspectorIndexedDBAgent.h:
17145         (InspectorIndexedDBAgent):
17146
17147 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17148
17149         [Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
17150         https://bugs.webkit.org/show_bug.cgi?id=101692
17151
17152         Reviewed by Dimitri Glazkov.
17153
17154         We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
17155
17156         No new tests, simple refactoring.
17157
17158         * css/RuleFeature.cpp:
17159         (WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
17160         (WebCore):
17161         * css/RuleFeature.h:
17162         (WebCore):
17163         (RuleFeatureSet):
17164         * css/RuleSet.cpp:
17165         (WebCore::collectFeaturesFromRuleData):
17166
17167 2012-11-08  Robert Sesek  <rsesek@chromium.org>
17168
17169         Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
17170         https://bugs.webkit.org/show_bug.cgi?id=101634
17171
17172         Reviewed by Adam Barth.
17173
17174         No new tests, just disabling unused code in Chromium port.
17175
17176         * rendering/RenderThemeMac.mm:
17177         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17178         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17179         (WebCore::RenderThemeMac::paintMediaMuteButton):
17180         (WebCore::RenderThemeMac::paintMediaPlayButton):
17181         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17182         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17183         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17184         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17185         (WebCore::RenderThemeMac::paintMediaRewindButton):
17186         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17187         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17188         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17189         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17190         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17191         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17192         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17193         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17194         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17195         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17196
17197 2012-11-08  Keishi Hattori  <keishi@webkit.org>
17198
17199         Enable calendar picker for input types week/month
17200         https://bugs.webkit.org/show_bug.cgi?id=101553
17201
17202         Reviewed by Kent Tamura.
17203
17204         Enabling calendar picker for <input type=week/month>
17205
17206         No new tests. Tests will be added later in Bug 101556 and Bug 101555.
17207
17208         * rendering/RenderThemeChromiumCommon.cpp:
17209         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
17210
17211 2012-11-08  Robin Cao  <robin.cao@torchmobile.com.cn>
17212
17213         [BlackBerry] Change the default return value of MediaPlayerPrivate::hasSingleSecurityOrigin
17214         https://bugs.webkit.org/show_bug.cgi?id=101681
17215
17216         Reviewed by George Staikos.
17217
17218         Since the platform player in BlackBerry disallows resources that come from different origins,
17219         so it's safe to directly returns true here.
17220
17221         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
17222         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
17223
17224 2012-11-08  Mark Lam  <mark.lam@apple.com>
17225
17226         Renamed ...InlineMethods.h files to ...Inlines.h.
17227         https://bugs.webkit.org/show_bug.cgi?id=101145.
17228
17229         Reviewed by Geoffrey Garen.
17230
17231         This is only a refactoring effort to rename the files. There are no
17232         functionality changes.
17233
17234         No new tests.
17235
17236         * GNUmakefile.list.am:
17237         * Target.pri:
17238         * WebCore.gypi:
17239         * WebCore.vcproj/WebCore.vcproj:
17240         * WebCore.xcodeproj/project.pbxproj:
17241         * html/parser/HTMLEntityParser.cpp:
17242         * html/parser/HTMLTokenizer.cpp:
17243         * html/track/WebVTTTokenizer.cpp:
17244         * xml/parser/CharacterReferenceParserInlineMethods.h: Removed.
17245         * xml/parser/CharacterReferenceParserInlines.h: Copied from Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h.
17246         * xml/parser/MarkupTokenizerInlineMethods.h: Removed.
17247         * xml/parser/MarkupTokenizerInlines.h: Copied from Source/WebCore/xml/parser/MarkupTokenizerInlineMethods.h.
17248         * xml/parser/XMLCharacterReferenceParser.cpp:
17249         * xml/parser/XMLTokenizer.cpp:
17250
17251 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17252
17253         Unreviewed, rolling out r133984.
17254         http://trac.webkit.org/changeset/133984
17255         https://bugs.webkit.org/show_bug.cgi?id=101684
17256
17257         windows build error. (Requested by hayato on #webkit).
17258
17259         * Modules/indexeddb/IDBCallbacks.h:
17260         * Modules/indexeddb/IDBDatabase.cpp:
17261         (WebCore::IDBDatabase::createObjectStore):
17262         (WebCore::IDBDatabase::deleteObjectStore):
17263         (WebCore::IDBDatabase::transaction):
17264         * Modules/indexeddb/IDBDatabase.h:
17265         (IDBDatabase):
17266         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17267         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
17268         (WebCore):
17269         (WebCore::IDBDatabaseBackendImpl::setVersion):
17270         (WebCore::IDBDatabaseBackendImpl::transaction):
17271         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17272         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17273         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
17274         (IDBDatabaseBackendImpl):
17275         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17276         (IDBDatabaseBackendInterface):
17277         * Modules/indexeddb/IDBMetadata.h:
17278         (WebCore::IDBObjectStoreMetadata::containsIndex):
17279         (WebCore::IDBDatabaseMetadata::findObjectStore):
17280         (IDBDatabaseMetadata):
17281         (WebCore::IDBDatabaseMetadata::containsObjectStore):
17282         * Modules/indexeddb/IDBObjectStore.cpp:
17283         (WebCore::IDBObjectStore::put):
17284         (WebCore):
17285         (WebCore::IDBObjectStore::createIndex):
17286         (WebCore::IDBObjectStore::index):
17287         (WebCore::IDBObjectStore::deleteIndex):
17288         * Modules/indexeddb/IDBObjectStore.h:
17289         (WebCore::IDBObjectStore::openCursor):
17290         (IDBObjectStore):
17291         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17292         (WebCore::IDBObjectStoreBackendImpl::put):
17293         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
17294         (WebCore):
17295         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
17296         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
17297         (WebCore::IDBObjectStoreBackendImpl::index):
17298         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
17299         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
17300         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
17301         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17302         (IDBObjectStoreBackendImpl):
17303         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17304         * Modules/indexeddb/IDBTransaction.cpp:
17305         (WebCore::IDBTransaction::objectStore):
17306         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
17307         (WebCore::IDBTransactionBackendImpl::objectStore):
17308         (WebCore):
17309         * Modules/indexeddb/IDBTransactionBackendImpl.h:
17310         (IDBTransactionBackendImpl):
17311         * Modules/indexeddb/IDBTransactionBackendInterface.h:
17312
17313 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17314
17315         HTMLContentElement should preserve parsed CSSSelectorList
17316         https://bugs.webkit.org/show_bug.cgi?id=101543
17317
17318         Reviewed by Dimitri Glazkov.
17319
17320         We would like to preserve CSSSelectorList for select attribute of HTMLContentElement.
17321
17322         Before, we parsed and validated select attribute every time distribution happens. If we preserve the parsed
17323         CSSSelectorList, we can reduce distribution time.
17324
17325         This is also a prepration patch for Bug 101180. It also needs the parsed CSSSelectorList. We don't want to
17326         parse and validate it again.
17327
17328         No new tests, covered by exising tests.
17329
17330         * html/shadow/ContentSelectorQuery.cpp:
17331         (WebCore::ContentSelectorQuery::ContentSelectorQuery): We don't parse select attribute here anymore.
17332         if it's already parsed.
17333         (WebCore::ContentSelectorQuery::matches):
17334         * html/shadow/ContentSelectorQuery.h:
17335         (ContentSelectorQuery):
17336         * html/shadow/HTMLContentElement.cpp:
17337         (WebCore::HTMLContentElement::HTMLContentElement):
17338         (WebCore::HTMLContentElement::isSelectValid):
17339         (WebCore::HTMLContentElement::ensureSelectParsed): If we don't have parsed the current select attribute,
17340         we parse and validate it.
17341         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, we have to have a flag enabled
17342         to parse select attrite again.
17343         (WebCore::validateSubSelector): Moved from ContentSelectorQuery.
17344         (WebCore):
17345         (WebCore::validateSelector): Moved from ContentSelectorQuery.
17346         (WebCore::HTMLContentElement::validateSelect):
17347         * html/shadow/HTMLContentElement.h:
17348         (HTMLContentElement):
17349         (WebCore::HTMLContentElement::setSelect):
17350         (WebCore):
17351         (WebCore::HTMLContentElement::selectorList):
17352         * html/shadow/HTMLShadowElement.cpp:
17353         (WebCore::HTMLShadowElement::emptySelectorList):
17354         (WebCore):
17355         * html/shadow/HTMLShadowElement.h:
17356         (HTMLShadowElement):
17357         (WebCore::HTMLShadowElement::selectorList):
17358         * html/shadow/InsertionPoint.h:
17359         (InsertionPoint):
17360
17361 2012-11-08  Alec Flett  <alecflett@chromium.org>
17362
17363         IndexedDB: switch frontend to use int64_t-based references
17364         https://bugs.webkit.org/show_bug.cgi?id=100426
17365
17366         Reviewed by Tony Chang.
17367
17368         Remove String-based objectStore/index references, obsoleted by
17369         https://bugs.webkit.org/show_bug.cgi?id=100425.
17370
17371         No new tests as this is the second half of a refactor.
17372
17373         * Modules/indexeddb/IDBCallbacks.h:
17374         * Modules/indexeddb/IDBDatabase.cpp:
17375         (WebCore::IDBDatabase::deleteObjectStore):
17376         (WebCore::IDBDatabase::transaction):
17377         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17378         (WebCore::IDBDatabaseBackendImpl::setVersion):
17379         (WebCore::IDBDatabaseBackendImpl::transaction):
17380         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17381         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17382         (IDBDatabaseBackendImpl):
17383         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17384         (IDBDatabaseBackendInterface):
17385         * Modules/indexeddb/IDBMetadata.h:
17386         (WebCore::IDBObjectStoreMetadata::findIndex):
17387         (IDBObjectStoreMetadata):
17388         (WebCore::IDBObjectStoreMetadata::containsIndex):
17389         * Modules/indexeddb/IDBObjectStore.cpp:
17390         (WebCore::IDBObjectStore::put):
17391         (WebCore):
17392         (WebCore::IDBObjectStore::index):
17393         (WebCore::IDBObjectStore::deleteIndex):
17394         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17395         (WebCore::IDBObjectStoreBackendImpl::put):
17396         (WebCore):
17397         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17398         (IDBObjectStoreBackendImpl):
17399         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17400         * inspector/Inspector-1.0.json:
17401         * inspector/Inspector.json:
17402         * inspector/InspectorIndexedDBAgent.cpp:
17403         (WebCore):
17404         (WebCore::InspectorIndexedDBAgent::requestData):
17405         * inspector/InspectorIndexedDBAgent.h:
17406         (InspectorIndexedDBAgent):
17407
17408 2012-11-08  Kenichi Ishibashi  <bashi@chromium.org>
17409
17410         [Chromium] Arabic digits should appear left-to-right
17411         https://bugs.webkit.org/show_bug.cgi?id=101440
17412
17413         Reviewed by Tony Chang.
17414
17415         Call hb_buffer_set_direction() to set direction when drawing glyphs or
17416         direction should be overridden. Leave direction setting to HarfBuzz when
17417         WebKit is calculating widths because the direction is LTR by default while
17418         calculating widths.  Set script before shaping so that HarfBuzz can estimate
17419         appropriate direction.
17420
17421         Test: fast/text/international/arabic-digits.html
17422
17423         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
17424         (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
17425         Add m_script. This holds the script of the run.
17426         (WebCore::HarfBuzzShaper::shape):
17427         Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
17428         direction should be overridden.
17429         (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
17430         Set script of HarfBuzzRuns.
17431         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
17432         Add an argument that indicates it should set direction.
17433         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
17434         (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
17435         (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
17436         (WebCore::HarfBuzzShaper::HarfBuzzRun::script):
17437         (HarfBuzzRun):
17438         (HarfBuzzShaper):
17439
17440 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17441
17442         [TexMap] Remove contentsLayer() in GraphicsLayerTextureMapper.
17443         https://bugs.webkit.org/show_bug.cgi?id=101658
17444
17445         Reviewed by Noam Rosenthal.
17446
17447         GraphicsLayerTextureMapper::contentsLayer() is duplicated to
17448         GraphicsLayer::platformLayer(), so we remove it.
17449
17450         No new tests, this is just a refactor.
17451
17452         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
17453         (WebCore::GraphicsLayerTextureMapper::platformLayer):
17454         * platform/graphics/texmap/TextureMapperLayer.cpp:
17455         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
17456
17457 2012-11-08  Benjamin Poulain  <benjamin@webkit.org>
17458
17459         Improve the use of AtomicString with literals
17460         https://bugs.webkit.org/show_bug.cgi?id=101298
17461
17462         Reviewed by Darin Adler.
17463
17464         Fix a bunch of cases of AtomicString with literals:
17465         -Do not create temporary AtomicString to perform a comparison, that is very wasteful.
17466         -Use the ConstructFromLiteral constructor whenever it makes sense.
17467         -Make "x-frame-options" static instead of creating it for each response.
17468         -Use ASCIILiteral() instead of AtomicString() in EventHandler, the function takes a String,
17469          not an AtomicString.
17470
17471         * Modules/battery/BatteryController.cpp:
17472         (WebCore::BatteryController::supplementName):
17473         * Modules/battery/NavigatorBattery.cpp:
17474         (WebCore::NavigatorBattery::from):
17475         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
17476         (WebCore::DraggedIsolatedFileSystem::supplementName):
17477         * Modules/gamepad/NavigatorGamepad.cpp:
17478         (WebCore::NavigatorGamepad::from):
17479         * Modules/geolocation/GeolocationController.cpp:
17480         (WebCore::GeolocationController::supplementName):
17481         * Modules/geolocation/NavigatorGeolocation.cpp:
17482         (WebCore::NavigatorGeolocation::from):
17483         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
17484         (WebCore::DOMWindowIndexedDatabase::from):
17485         * Modules/indexeddb/IDBCursor.cpp:
17486         (WebCore::IDBCursor::directionNext):
17487         (WebCore::IDBCursor::directionNextUnique):
17488         (WebCore::IDBCursor::directionPrev):
17489         (WebCore::IDBCursor::directionPrevUnique):
17490         * Modules/indexeddb/IDBRequest.cpp:
17491         (WebCore::IDBRequest::readyState):
17492         * Modules/indexeddb/IDBTransaction.cpp:
17493         (WebCore::IDBTransaction::modeReadOnly):
17494         (WebCore::IDBTransaction::modeReadWrite):
17495         (WebCore::IDBTransaction::modeVersionChange):
17496         (WebCore::IDBTransaction::modeReadOnlyLegacy):
17497         (WebCore::IDBTransaction::modeReadWriteLegacy):
17498         * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
17499         (WebCore::PageGroupIndexedDatabase::from):
17500         * Modules/intents/DOMWindowIntents.cpp:
17501         (WebCore::DOMWindowIntents::from):
17502         * Modules/mediastream/UserMediaController.cpp:
17503         (WebCore::UserMediaController::supplementName):
17504         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
17505         (WebCore::NavigatorContentUtils::supplementName):
17506         * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
17507         (WebCore::NavigatorNetworkInfoConnection::from):
17508         * Modules/networkinfo/NetworkInfoController.cpp:
17509         (WebCore::NetworkInfoController::supplementName):
17510         * Modules/notifications/DOMWindowNotifications.cpp:
17511         (WebCore::DOMWindowNotifications::from):
17512         * Modules/notifications/NotificationController.cpp:
17513         (WebCore::NotificationController::supplementName):
17514         * Modules/quota/DOMWindowQuota.cpp:
17515         (WebCore::DOMWindowQuota::from):
17516         * Modules/speech/SpeechRecognitionController.cpp:
17517         (WebCore::SpeechRecognitionController::supplementName):
17518         * Modules/vibration/Vibration.cpp:
17519         (WebCore::Vibration::supplementName):
17520         * accessibility/AccessibilityObject.cpp:
17521         (WebCore::AccessibilityObject::invalidStatus):
17522         * accessibility/AccessibilityRenderObject.cpp:
17523         (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
17524         (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
17525         * bindings/v8/custom/V8DOMWindowCustom.cpp:
17526         (WebCore::V8DOMWindow::namedSecurityCheck):
17527         * bindings/v8/custom/V8NodeListCustom.cpp:
17528         (WebCore::V8NodeList::namedPropertyGetter):
17529         * dom/ContextFeatures.cpp:
17530         (WebCore::ContextFeatures::supplementName):
17531         * dom/DeviceMotionController.cpp:
17532         (WebCore::DeviceMotionController::supplementName):
17533         * dom/DeviceOrientationController.cpp:
17534         (WebCore::DeviceOrientationController::supplementName):
17535         * dom/Element.cpp:
17536         (WebCore::Element::webkitRegionOverset):
17537         * dom/MutationRecord.cpp:
17538         * html/FileInputType.cpp:
17539         (WebCore::UploadButtonElement::shadowPseudoId):
17540         * html/FormController.cpp:
17541         (WebCore::SavedFormState::getReferencedFilePaths):
17542         (WebCore::FormKeyGenerator::formKey):
17543         * html/HTMLButtonElement.cpp:
17544         (WebCore::HTMLButtonElement::formControlType):
17545         * html/HTMLDetailsElement.cpp:
17546         (WebCore::summaryQuerySelector):
17547         * html/HTMLFieldSetElement.cpp:
17548         (WebCore::HTMLFieldSetElement::formControlType):
17549         * html/HTMLKeygenElement.cpp:
17550         (WebCore::KeygenSelectElement::shadowPseudoId):
17551         (WebCore::HTMLKeygenElement::formControlType):
17552         * html/HTMLOptGroupElement.cpp:
17553         (WebCore::HTMLOptGroupElement::formControlType):
17554         * html/HTMLOutputElement.cpp:
17555         (WebCore::HTMLOutputElement::formControlType):
17556         * html/HTMLSelectElement.cpp:
17557         (WebCore::HTMLSelectElement::formControlType):
17558         * html/HTMLTextAreaElement.cpp:
17559         (WebCore::HTMLTextAreaElement::formControlType):
17560         * html/HTMLTextFormControlElement.cpp:
17561         (WebCore::directionString):
17562         * html/shadow/DateTimeEditElement.cpp:
17563         (WebCore::DateTimeEditElement::DateTimeEditElement):
17564         * html/shadow/DateTimeFieldElements.cpp:
17565         (WebCore::DateTimeAMPMFieldElement::create):
17566         (WebCore::DateTimeDayFieldElement::create):
17567         (WebCore::DateTimeHourFieldElement::create):
17568         (WebCore::DateTimeMillisecondFieldElement::create):
17569         (WebCore::DateTimeMinuteFieldElement::create):
17570         (WebCore::DateTimeMonthFieldElement::create):
17571         (WebCore::DateTimeSecondFieldElement::create):
17572         (WebCore::DateTimeSymbolicMonthFieldElement::create):
17573         (WebCore::DateTimeWeekFieldElement::create):
17574         (WebCore::DateTimeYearFieldElement::create):
17575         * html/shadow/DetailsMarkerControl.cpp:
17576         (WebCore::DetailsMarkerControl::shadowPseudoId):
17577         * html/shadow/ImageInnerElement.cpp:
17578         (WebCore::ImageInnerElement::shadowPseudoId):
17579         * html/shadow/MediaControlElements.cpp:
17580         (WebCore::MediaControlPanelElement::shadowPseudoId):
17581         (WebCore::MediaControlTimelineContainerElement::shadowPseudoId):
17582         (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId):
17583         (WebCore::MediaControlStatusDisplayElement::shadowPseudoId):
17584         (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId):
17585         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId):
17586         (WebCore::MediaControlPlayButtonElement::shadowPseudoId):
17587         (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
17588         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId):
17589         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId):
17590         (WebCore::MediaControlRewindButtonElement::shadowPseudoId):
17591         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId):
17592         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
17593         (WebCore::MediaControlTimelineElement::shadowPseudoId):
17594         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId):
17595         (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId):
17596         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId):
17597         (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId):
17598         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId):
17599         (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId):
17600         (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId):
17601         (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId):
17602         * html/shadow/MediaControlRootElement.cpp:
17603         (WebCore::MediaControlRootElement::shadowPseudoId):
17604         * html/shadow/MediaControlRootElementChromium.cpp:
17605         (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
17606         (WebCore::MediaControlRootElementChromium::shadowPseudoId):
17607         * html/shadow/MediaControlRootElementChromiumAndroid.cpp:
17608         (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
17609         * html/shadow/MeterShadowElement.cpp:
17610         (WebCore::MeterInnerElement::shadowPseudoId):
17611         (WebCore::MeterBarElement::shadowPseudoId):
17612         (WebCore::MeterValueElement::shadowPseudoId):
17613         * html/shadow/ProgressShadowElement.cpp:
17614         (WebCore::ProgressInnerElement::shadowPseudoId):
17615         (WebCore::ProgressBarElement::shadowPseudoId):
17616         (WebCore::ProgressValueElement::shadowPseudoId):
17617         * html/shadow/SliderThumbElement.cpp:
17618         (WebCore::sliderThumbShadowPseudoId):
17619         (WebCore::mediaSliderThumbShadowPseudoId):
17620         (WebCore::SliderContainerElement::shadowPseudoId):
17621         * html/shadow/SpinButtonElement.cpp:
17622         (WebCore::SpinButtonElement::shadowPseudoId):
17623         * html/shadow/TextControlInnerElements.cpp:
17624         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
17625         (WebCore::SearchFieldCancelButtonElement::shadowPseudoId):
17626         (WebCore::InputFieldSpeechButtonElement::shadowPseudoId):
17627         * html/track/TextTrackCue.cpp:
17628         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId):
17629         * loader/CrossOriginAccessControl.cpp:
17630         (WebCore::passesAccessControlCheck):
17631         * loader/MainResourceLoader.cpp:
17632         (WebCore::MainResourceLoader::didReceiveResponse):
17633         * loader/PrerendererClient.cpp:
17634         (WebCore::PrerendererClient::supplementName):
17635         * loader/cache/CachedResource.cpp:
17636         (WebCore::CachedResource::updateResponseAfterRevalidation):
17637         * page/DOMWindowPagePopup.cpp:
17638         (WebCore::DOMWindowPagePopup::supplementName):
17639         * page/EventHandler.cpp:
17640         (WebCore::EventHandler::handlePasteGlobalSelection):
17641         (WebCore::focusDirectionForKey):
17642         * page/SpeechInput.cpp:
17643         (WebCore::SpeechInput::supplementName):
17644         * page/animation/CompositeAnimation.cpp:
17645         (WebCore::CompositeAnimation::updateKeyframeAnimations):
17646         * platform/graphics/FontCache.cpp:
17647         (WebCore::alternateFamilyName):
17648         * platform/graphics/MediaPlayer.cpp:
17649         (WebCore::applicationOctetStream):
17650         (WebCore::textPlain):
17651         (WebCore::codecs):
17652         * platform/graphics/chromium/FontCacheAndroid.cpp:
17653         (WebCore::FontCache::getLastResortFallbackFont):
17654         * platform/graphics/filters/SourceAlpha.cpp:
17655         (WebCore::SourceAlpha::effectName):
17656         * platform/graphics/filters/SourceGraphic.cpp:
17657         (WebCore::SourceGraphic::effectName):
17658         * platform/graphics/mac/FontCacheMac.mm:
17659         (WebCore::FontCache::getSimilarFontPlatformData):
17660         (WebCore::FontCache::getLastResortFallbackFont):
17661         * platform/graphics/skia/FontCacheSkia.cpp:
17662         (WebCore::FontCache::getLastResortFallbackFont):
17663         * platform/graphics/win/FontCacheWin.cpp:
17664         (WebCore::FontCache::getLastResortFallbackFont):
17665         * platform/graphics/wx/FontCacheWx.cpp:
17666         (WebCore::FontCache::getSimilarFontPlatformData):
17667         * platform/network/ResourceResponseBase.cpp:
17668         (WebCore::ResourceResponseBase::setHTTPHeaderField):
17669         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
17670         (WebCore::ResourceResponseBase::hasCacheValidatorFields):
17671         (WebCore::ResourceResponseBase::date):
17672         (WebCore::ResourceResponseBase::age):
17673         (WebCore::ResourceResponseBase::expires):
17674         (WebCore::ResourceResponseBase::lastModified):
17675         (WebCore::ResourceResponseBase::isAttachment):
17676         * rendering/RenderTextControlMultiLine.cpp:
17677         (WebCore::RenderTextControlMultiLine::getAvgCharWidth):
17678         * rendering/RenderTextControlSingleLine.cpp:
17679         (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
17680         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
17681         * svg/SVGAnimateColorElement.cpp:
17682         (WebCore::attributeValueIsCurrentColor):
17683         * svg/SVGAnimateMotionElement.cpp:
17684         (WebCore::SVGAnimateMotionElement::rotateMode):
17685         * svg/SVGAnimationElement.cpp:
17686         (WebCore::SVGAnimationElement::setCalcMode):
17687         (WebCore::SVGAnimationElement::setAttributeType):
17688         (WebCore::SVGAnimationElement::isAdditive):
17689         (WebCore::SVGAnimationElement::isAccumulated):
17690         (WebCore::inheritsFromProperty):
17691         * svg/SVGFEConvolveMatrixElement.cpp:
17692         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
17693         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
17694         (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
17695         (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
17696         * svg/SVGFEDiffuseLightingElement.cpp:
17697         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
17698         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
17699         * svg/SVGFEDropShadowElement.cpp:
17700         (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
17701         (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
17702         * svg/SVGFEGaussianBlurElement.cpp:
17703         (WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
17704         (WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
17705         * svg/SVGFEMorphologyElement.cpp:
17706         (WebCore::SVGFEMorphologyElement::radiusXIdentifier):
17707         (WebCore::SVGFEMorphologyElement::radiusYIdentifier):
17708         * svg/SVGFESpecularLightingElement.cpp:
17709         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
17710         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
17711         * svg/SVGFETurbulenceElement.cpp:
17712         (WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
17713         (WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
17714         * svg/SVGFilterElement.cpp:
17715         (WebCore::SVGFilterElement::filterResXIdentifier):
17716         (WebCore::SVGFilterElement::filterResYIdentifier):
17717         * svg/SVGLangSpace.cpp:
17718         (WebCore::SVGLangSpace::xmlspace):
17719         (WebCore::SVGLangSpace::addSupportedAttributes):
17720         * svg/SVGMarkerElement.cpp:
17721         (WebCore::SVGMarkerElement::orientTypeIdentifier):
17722         (WebCore::SVGMarkerElement::orientAngleIdentifier):
17723         (WebCore::SVGMarkerElement::synchronizeOrientType):
17724         * svg/SVGSVGElement.cpp:
17725         (WebCore::SVGSVGElement::contentScriptType):
17726         (WebCore::SVGSVGElement::contentStyleType):
17727         * svg/SVGStyleElement.cpp:
17728         (WebCore::SVGStyleElement::type):
17729         (WebCore::SVGStyleElement::media):
17730         * svg/SVGTextContentElement.cpp:
17731         (WebCore::SVGTextContentElement::collectStyleForAttribute):
17732         * svg/SVGViewSpec.cpp:
17733         (WebCore::SVGViewSpec::viewBoxIdentifier):
17734         (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
17735         (WebCore::SVGViewSpec::transformIdentifier):
17736         * svg/animation/SVGSMILElement.cpp:
17737         (WebCore::SVGSMILElement::parseClockValue):
17738         (WebCore::SVGSMILElement::restart):
17739         (WebCore::SVGSMILElement::fill):
17740         (WebCore::SVGSMILElement::repeatCount):
17741         * testing/InternalSettings.cpp:
17742         (WebCore::InternalSettings::from):
17743         * xml/parser/XMLTreeBuilder.cpp:
17744         (WebCore::XMLTreeBuilder::processDOCTYPE):
17745         (WebCore::XMLTreeBuilder::processXMLEntity):
17746
17747 2012-11-08  Beth Dakin  <bdakin@apple.com>
17748
17749         https://bugs.webkit.org/show_bug.cgi?id=101644
17750         Fixed header on Facebook news feed becomes detached from top of 
17751         viewport after rubber band scrolling
17752         -and corresponding-
17753         <rdar://problem/12651944>
17754
17755         Reviewed by Simon Fraser.
17756
17757         There is code to handle this for non-threaded scrolling on FrameView. 
17758         This patch moves most of that code into a convenience function on 
17759         ScrollingCoordinator.
17760
17761         Have FrameView::scrollOffsetForFixedPosition() call 
17762         WebCore::scrollOffsetForFixedPosition() with all the right 
17763         parameters.
17764         * page/FrameView.cpp:
17765         (WebCore::FrameView::scrollOffsetForFixedPosition):
17766
17767         Here's where all the math happens.
17768         * page/scrolling/ScrollingCoordinator.cpp:
17769         (WebCore::fixedPositionScrollOffset):
17770         (WebCore::scrollOffsetForFixedPosition):
17771
17772         The viewportRect in these three places needs to have the 
17773         adjusted-for-fixed offset.
17774         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
17775         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
17776         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
17777         * rendering/RenderLayerCompositor.cpp:
17778         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
17779
17780 2012-11-08  Alpha Lam  <hclam@chromium.org>
17781
17782         [chromium] Deferred image decoding fails with image orientation
17783         https://bugs.webkit.org/show_bug.cgi?id=101648
17784
17785         Reviewed by Stephen White.
17786
17787         When an image is deferred save the orientation state. Once this state
17788         is cached it can be used to reply future queries since this state is
17789         static.
17790
17791         No new tests but platform/chromium/virtual/deferred/fast/images/image-orientation.html is passing now.
17792
17793         * platform/graphics/chromium/DeferredImageDecoder.cpp:
17794         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
17795         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
17796         (WebCore::DeferredImageDecoder::orientation):
17797         * platform/graphics/chromium/DeferredImageDecoder.h:
17798         (DeferredImageDecoder):
17799
17800 2012-11-08  Andreas Kling  <kling@webkit.org>
17801
17802         DocumentLoader: Shrink-to-fit the ResourceResponse vector after loading completes.
17803         <http://webkit.org/b/101657>
17804
17805         Reviewed by Anders Carlsson.
17806
17807         Shrink DocumentLoader::m_responses to exact size when we stop adding responses to it,
17808         as we know it won't grow after that.
17809
17810         520kB progression on Membuster3.
17811
17812         * loader/DocumentLoader.cpp:
17813         (WebCore::DocumentLoader::stopRecordingResponses):
17814
17815 2012-11-08  Hans Muller  <hmuller@adobe.com>
17816
17817         [CSS Exclusions] Polygon with horizontal bottom edges returns incorrect segments
17818         https://bugs.webkit.org/show_bug.cgi?id=100874
17819
17820         Reviewed by Dirk Schulze.
17821
17822         Revised the way that computeXIntersections() handles intersections with horizotal polygon edges.
17823         Deciding if a vertex intersection corresponds to a polygon "edge crossing", i.e. a change from inside
17824         to outside or outside to inside, now depends on which side of the horizontal line the function's
17825         y parameter corresponds to. If the y corresponds to the top of the line, then isaMinY the parameter
17826         is true, and an intersection with a horizontal edge is only considered to be an edge crossing if
17827         if the inside of the polygon is just below the horizontal edge.  When isMinY is false then the inside
17828         of the polygon must be just above the horizontal edge.
17829
17830         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html
17831                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html
17832
17833         * rendering/ExclusionPolygon.cpp:
17834         (WebCore::getVertexIntersectionVertices): Corrected two cases where the next/previous vertex was determined incorrectly.
17835         (WebCore::ExclusionPolygon::computeXIntersections): Added a bool isMinY parameter which specifies if the y parameter corresponds to the top or bottom a horizontal line.
17836         (WebCore::ExclusionPolygon::getExcludedIntervals): Added the new computeXIntersections() parameter.
17837         (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
17838         * rendering/ExclusionPolygon.h:
17839         (WebCore::ExclusionPolygonEdge::previousEdge): Corrected the previousEdge() function.
17840
17841 2012-11-08  Otto Derek Cheung  <otcheung@rim.com>
17842
17843         [BlackBerry] Disable cookies on file://
17844         https://bugs.webkit.org/show_bug.cgi?id=101646
17845
17846         Reviewed by Rob Buis.
17847
17848         Disabling cookies on file and local in the browser app.
17849
17850         PR 239779
17851
17852         Tested by trying to set and retrieve cookies on WI while browsing
17853         files on the file scheme.
17854
17855         * platform/blackberry/CookieManager.cpp:
17856         (WebCore):
17857         (WebCore::shouldIgnoreScheme):
17858         (WebCore::CookieManager::getRawCookies):
17859         (WebCore::CookieManager::checkAndTreatCookie):
17860
17861 2012-11-08  Joshua Bell  <jsbell@chromium.org>
17862
17863         Expose snapshots in platform/leveldb wrapper API
17864         https://bugs.webkit.org/show_bug.cgi?id=100786
17865
17866         Reviewed by Tony Chang.
17867
17868         Expose leveldb "snapshots" in the LevelDB API. A snapshot lets you observe the database
17869         as it was when the snapshot was taken. This can be used to implement parallel transactions,
17870         e.g. where a read transaction won't see updates made by a later write transaction.
17871
17872         Tests: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.Transaction*'
17873
17874         * platform/leveldb/LevelDBDatabase.cpp:
17875         (WebCore::LevelDBSnapshot::LevelDBSnapshot): New (but for now internal-only) wrapper type.
17876         (WebCore):
17877         (WebCore::LevelDBSnapshot::~LevelDBSnapshot): Release the leveldb::Snapshot.
17878         (WebCore::LevelDBDatabase::get): Optional snapshot argument, for use by transactions.
17879         (WebCore::LevelDBDatabase::createIterator): Ditto.
17880         * platform/leveldb/LevelDBDatabase.h:
17881         (leveldb):
17882         (WebCore):
17883         (LevelDBSnapshot):
17884         (LevelDBDatabase):
17885         * platform/leveldb/LevelDBTransaction.cpp:
17886         (WebCore::LevelDBTransaction::LevelDBTransaction): Initialize a snapshot.
17887         (WebCore::LevelDBTransaction::get):
17888         (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
17889         * platform/leveldb/LevelDBTransaction.h:
17890         (LevelDBTransaction):
17891
17892 2012-11-08  Brady Eidson  <beidson@apple.com>
17893
17894         Have NetworkProcess do the actual loading of subresources.
17895         https://bugs.webkit.org/show_bug.cgi?id=101640
17896
17897         Reviewed by Alexey Proskuryakov.
17898
17899         No new tests (No change in behavior in any configuration we test.)
17900
17901         * WebCore.exp.in:
17902         * loader/ResourceBuffer.h: Virtualize a few methods for ports to override.
17903
17904 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17905
17906         Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.
17907         https://bugs.webkit.org/show_bug.cgi?id=101424
17908
17909         Reviewed by Noam Rosenthal.
17910
17911         This patch adds ASSERT to TextureMapperLayer while fixing this bug in
17912         WebKit2.
17913
17914         * platform/graphics/texmap/TextureMapperLayer.cpp:
17915         (WebCore::TextureMapperLayer::paintSelf):
17916
17917 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17918
17919         Unreviewed, rolling out r133945.
17920         http://trac.webkit.org/changeset/133945
17921         https://bugs.webkit.org/show_bug.cgi?id=101645
17922
17923         Numerous layout and unit test failures (Requested by
17924         jsbell|gardener on #webkit).
17925
17926         * bindings/scripts/CodeGeneratorV8.pm:
17927         (GenerateHeader):
17928         * bindings/scripts/test/V8/V8Float64Array.h:
17929         (WebCore::V8Float64Array::toNative):
17930         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
17931         (WebCore::V8TestActiveDOMObject::toNative):
17932         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
17933         (WebCore::V8TestCustomNamedGetter::toNative):
17934         * bindings/scripts/test/V8/V8TestEventConstructor.h:
17935         (WebCore::V8TestEventConstructor::toNative):
17936         * bindings/scripts/test/V8/V8TestEventTarget.h:
17937         (WebCore::V8TestEventTarget::toNative):
17938         * bindings/scripts/test/V8/V8TestException.h:
17939         (WebCore::V8TestException::toNative):
17940         * bindings/scripts/test/V8/V8TestInterface.h:
17941         (WebCore::V8TestInterface::toNative):
17942         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
17943         (WebCore::V8TestMediaQueryListListener::toNative):
17944         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
17945         (WebCore::V8TestNamedConstructor::toNative):
17946         * bindings/scripts/test/V8/V8TestNode.h:
17947         (WebCore::V8TestNode::toNative):
17948         * bindings/scripts/test/V8/V8TestObj.h:
17949         (WebCore::V8TestObj::toNative):
17950         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
17951         (WebCore::V8TestSerializedScriptValueInterface::toNative):
17952         * bindings/v8/NPV8Object.cpp:
17953         (WebCore::v8ObjectToNPObject):
17954         (WebCore::npCreateV8ScriptObject):
17955         * bindings/v8/V8Collection.h:
17956         (WebCore::toNativeCollection):
17957         * bindings/v8/V8DOMWindowShell.cpp:
17958         (WebCore::setIsolatedWorldField):
17959         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
17960         * bindings/v8/V8DOMWrapper.cpp:
17961         (WebCore::V8DOMWrapper::isWrapperOfType):
17962         * bindings/v8/V8DOMWrapper.h:
17963         (WebCore::V8DOMWrapper::setDOMWrapper):
17964         (WebCore::V8DOMWrapper::clearDOMWrapper):
17965         * bindings/v8/WrapperTypeInfo.h:
17966         (WebCore::toNative):
17967         (WebCore::toWrapperTypeInfo):
17968
17969 2012-11-01  Filip Pizlo  <fpizlo@apple.com>
17970
17971         JSC should infer when indexed storage contains only integers or doubles
17972         https://bugs.webkit.org/show_bug.cgi?id=98606
17973
17974         Reviewed by Oliver Hunt.
17975
17976         Just refactoring WebCore to pass 0 for the ArrayAllocationProfile*.
17977
17978         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
17979         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
17980         * bindings/js/JSClipboardCustom.cpp:
17981         (WebCore::JSClipboard::types):
17982         * bindings/js/JSDOMBinding.cpp:
17983         (WebCore::jsArray):
17984         * bindings/js/JSDOMBinding.h:
17985         (WebCore::jsArray):
17986         * bindings/js/JSInjectedScriptHostCustom.cpp:
17987         (WebCore::getJSListenerFunctions):
17988         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
17989         (WebCore::JSJavaScriptCallFrame::scopeChain):
17990         * bindings/js/JSMessageEventCustom.cpp:
17991         (WebCore::JSMessageEvent::ports):
17992         * bindings/js/JSMutationCallbackCustom.cpp:
17993         (WebCore::JSMutationCallback::handleEvent):
17994         * bindings/js/JSWebGLRenderingContextCustom.cpp:
17995         (WebCore::toJS):
17996         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
17997         (WebCore::JSWebGLRenderingContext::getSupportedExtensions):
17998         * bindings/js/SerializedScriptValue.cpp:
17999         (WebCore::CloneDeserializer::deserialize):
18000
18001 2012-11-08  Tiancheng Jiang  <tijiang@rim.com>
18002
18003         [BlackBerry] Update BB10 date input form.
18004         https://bugs.webkit.org/show_bug.cgi?id=101075
18005
18006         Reviewed by Rob Buis.
18007
18008         RIM PR 234531
18009         Internally Reviewed by Mike Fenton.
18010         Change date input appearance to button and hide caret when click on them.
18011
18012         * css/themeBlackBerry.css:
18013         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
18014
18015 2012-11-08  Adam Barth  <abarth@webkit.org>
18016
18017         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
18018         https://bugs.webkit.org/show_bug.cgi?id=101519
18019
18020         Reviewed by Ojan Vafai.
18021
18022         There should be no change in behavior.  The new API is slightly faster
18023         than the old API (and apparently works correctly internally in V8).
18024
18025         * bindings/scripts/CodeGeneratorV8.pm:
18026         (GenerateHeader):
18027         * bindings/scripts/test/V8/V8Float64Array.h:
18028         (WebCore::V8Float64Array::toNative):
18029         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
18030         (WebCore::V8TestActiveDOMObject::toNative):
18031         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
18032         (WebCore::V8TestCustomNamedGetter::toNative):
18033         * bindings/scripts/test/V8/V8TestEventConstructor.h:
18034         (WebCore::V8TestEventConstructor::toNative):
18035         * bindings/scripts/test/V8/V8TestEventTarget.h:
18036         (WebCore::V8TestEventTarget::toNative):
18037         * bindings/scripts/test/V8/V8TestException.h:
18038         (WebCore::V8TestException::toNative):
18039         * bindings/scripts/test/V8/V8TestInterface.h:
18040         (WebCore::V8TestInterface::toNative):
18041         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
18042         (WebCore::V8TestMediaQueryListListener::toNative):
18043         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
18044         (WebCore::V8TestNamedConstructor::toNative):
18045         * bindings/scripts/test/V8/V8TestNode.h:
18046         (WebCore::V8TestNode::toNative):
18047         * bindings/scripts/test/V8/V8TestObj.h:
18048         (WebCore::V8TestObj::toNative):
18049         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
18050         (WebCore::V8TestSerializedScriptValueInterface::toNative):
18051         * bindings/v8/NPV8Object.cpp:
18052         (WebCore::v8ObjectToNPObject):
18053         (WebCore::npCreateV8ScriptObject):
18054         * bindings/v8/V8Collection.h:
18055         (WebCore::toNativeCollection):
18056         * bindings/v8/V8DOMWindowShell.cpp:
18057         (WebCore::setIsolatedWorldField):
18058         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
18059         * bindings/v8/V8DOMWrapper.cpp:
18060         (WebCore::V8DOMWrapper::isWrapperOfType):
18061         * bindings/v8/V8DOMWrapper.h:
18062         (WebCore::V8DOMWrapper::setDOMWrapper):
18063         (WebCore::V8DOMWrapper::clearDOMWrapper):
18064         * bindings/v8/WrapperTypeInfo.h:
18065         (WebCore::toNative):
18066         (WebCore::toWrapperTypeInfo):
18067
18068 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18069
18070         setAttributeNode and friends should not have optional argument
18071         https://bugs.webkit.org/show_bug.cgi?id=101631
18072
18073         Reviewed by Ojan Vafai.
18074
18075         http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-887236154
18076
18077         Fix getAttributeNode, getAttributeNodeNS and removeAttributeNode to make the Attr
18078         argument mandatory.
18079
18080         These used to throw DOMExceptions when an invalid type was passed instead of
18081         TypeError which is also a spec violation.
18082
18083         Updated existing tests.
18084
18085         * bindings/scripts/CodeGeneratorV8.pm:
18086         * dom/Element.cpp:
18087         * dom/Element.idl:
18088
18089 2012-11-08  Joshua Bell  <jsbell@chromium.org>
18090
18091         IndexedDB: Remove unused error handling clauses when writing to transaction
18092         https://bugs.webkit.org/show_bug.cgi?id=100700
18093
18094         Reviewed by Tony Chang.
18095
18096         Transactions are written into in-memory data structures. This can only fail if allocation
18097         fails, so "success" results are always returned. Change the return types to void, and delete
18098         all of the unreachable error handling code.
18099
18100         No new tests - just refactoring/dead code removal.
18101
18102         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
18103         (WebCore::putBool): Only write to transactions.
18104         (WebCore):
18105         (WebCore::putInt): Ditto.
18106         (WebCore::putVarInt): Ditto.
18107         (WebCore::putString): Ditto.
18108         (WebCore::putIDBKeyPath): Ditto.
18109         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
18110         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
18111         (WebCore::deleteRange): Writes only to transaction, so can't fail.
18112         (WebCore::setMaxObjectStoreId):
18113         (WebCore::IDBLevelDBBackingStore::createObjectStore):
18114         (WebCore::getNewVersionNumber):
18115         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
18116         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
18117         (WebCore::setMaxIndexId):
18118         (WebCore::IDBLevelDBBackingStore::createIndex):
18119         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18120         * platform/leveldb/LevelDBTransaction.cpp:
18121         (WebCore::LevelDBTransaction::set): Return type is void.
18122         (WebCore::LevelDBTransaction::put): Ditto.
18123         (WebCore::LevelDBTransaction::remove): Ditto.
18124         * platform/leveldb/LevelDBTransaction.h:
18125         (LevelDBTransaction):
18126
18127 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
18128
18129         On Chromium, click-after-nested-block.html, focus_editable_html.html, and autoscroll.html
18130         hit assertion added in r133840
18131         https://bugs.webkit.org/show_bug.cgi?id=101576
18132
18133         Reviewed by Abhishek Arya.
18134
18135         Update layout before invalidating caret rect as needed.
18136         Existing tests cover this.
18137
18138         * editing/FrameSelection.cpp:
18139         (WebCore::FrameSelection::setCaretVisibility): Merged clearCaretRectIfNeeded.
18140         * editing/FrameSelection.h:
18141
18142 2012-11-08  Elliott Sprehn  <esprehn@chromium.org>
18143
18144         Skip frame owner disconnect when there's no frames
18145         https://bugs.webkit.org/show_bug.cgi?id=101619
18146
18147         Reviewed by Ojan Vafai.
18148
18149         Even when there's no subframes in the document we traverse down every
18150         subtree on Node removal looking for frames to disconnect. This patch
18151         checks document()->frame()->tree()->firstChild() to skip this traversal
18152         if there's no subframes.
18153
18154         No new tests, this just short circuits code for speed.
18155
18156         * dom/ContainerNodeAlgorithms.h:
18157         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
18158
18159 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18160
18161         Wrong error type is thrown for type errors in callbacks
18162         https://bugs.webkit.org/show_bug.cgi?id=101502
18163
18164         Reviewed by Adam Barth.
18165
18166         We should be throwing a TypeError and not a DOMException with code TYPE_MISMATCH_ERR.
18167
18168         http://www.w3.org/TR/WebIDL/#es-callback-function
18169
18170         Updated existing tests.
18171
18172         * bindings/scripts/CodeGeneratorJS.pm:
18173         * bindings/scripts/CodeGeneratorV8.pm:
18174         * bindings/scripts/test/JS/JSTestObj.cpp:
18175         * bindings/scripts/test/V8/V8TestObj.cpp:
18176
18177 2012-11-08  Andreas Kling  <kling@webkit.org>
18178
18179         4.68MB below RenderStyle::filter() on Membuster3.
18180         <http://webkit.org/b/101624>
18181         <rdar://problem/12663822>
18182
18183         Reviewed by Darin Adler.
18184
18185         Rename the non-const RenderStyle::filter() to mutableFilter() since using it causes us to detach
18186         from the rare non-inherited data (copy-on-write.)
18187         Most call sites were calling filter() on a RenderStyle* which was causing the bloat.
18188
18189         4.68MB progression on Membuster3.
18190
18191         * css/StyleResolver.cpp:
18192         (WebCore::StyleResolver::loadPendingSVGDocuments):
18193         (WebCore::StyleResolver::loadPendingShaders):
18194         * rendering/style/RenderStyle.h:
18195
18196 2012-11-08  Alexey Proskuryakov  <ap@apple.com>
18197
18198         Create loader/blackberry directory, because svn-apply cannot apply a patch that
18199         creates a directory and moves a file into it.
18200
18201         * loader/blackberry: Added.
18202
18203 2012-11-08  Geoffrey Garen  <ggaren@apple.com>
18204
18205         Mac build fix: Mark WidthCache.h 'private' so WebKit can use it.
18206
18207         Not reviewed.
18208
18209         * WebCore.xcodeproj/project.pbxproj:
18210
18211 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
18212
18213         Optimized kerning and ligatures using caching
18214         https://bugs.webkit.org/show_bug.cgi?id=101269
18215
18216         Reviewed by Dan Bernstein.
18217
18218         Consider three kinds of text layout, and the value of caching for each:
18219
18220             (1) 1 layout of 100% unique words: small negative value.
18221
18222             (2) 1 layout of English prose: medium positive value.
18223
18224             (3) Many layouts of anything: extra-extra-large positive value.
18225
18226         Since we can't distinguish betwen these workflows a priori, we use statistical
18227         sampling. To minimize cost in (1) and maximize benefit in (2) and (3), we treat
18228         each cache access as a statistical sample, and use the cache in proportion to
18229         the observed probability of duplicate text measurement.
18230
18231         Benchmark results:
18232             plt3: 1% faster
18233             chapter-reflow-once-random: No change [*]
18234             chapter-reflow-once: 23% faster
18235             chapter-reflow-twice: 52% faster
18236             chapter-reflow-thrice: 68% faster
18237             chapter-reflow: 263% faster
18238             line-layout: 270% faster
18239
18240             [*] This is a stress test designed to make everything go wrong for
18241             caching. It does not represent real world content.
18242
18243         * GNUmakefile.list.am:
18244         * Target.pri:
18245         * WebCore.vcproj/WebCore.vcproj:
18246         * WebCore.xcodeproj/project.pbxproj:
18247         * platform/graphics/WidthCache.h: Added.
18248
18249         (WidthCache): Added a class that caches common word widths. This cache
18250         could cache more things or more cases in future -- but for now it seems
18251         to cover the common cases.
18252
18253         (SmallStringKey): Early profiling showed that allocating an AtomicString
18254         or String measurably added to the cost of the cache, so I added a custom
18255         string key that can be stored directly inside the table by value --
18256         empirically answering an age-old question with which Apple WebKit engineers
18257         seem to be obsessed.
18258
18259         (WebCore::WidthCache::SmallStringKey::capacity):
18260         (WebCore::WidthCache::SmallStringKey::SmallStringKey):
18261         (WebCore::WidthCache::SmallStringKey::characters):
18262         (WebCore::WidthCache::SmallStringKey::length):
18263         (WebCore::WidthCache::SmallStringKey::hash):
18264         (WebCore::WidthCache::SmallStringKey::isHashTableDeletedValue):
18265         (WebCore::WidthCache::SmallStringKey::isHashTableEmptyValue):
18266         (WebCore::WidthCache::SmallStringKeyHash::hash):
18267         (WebCore::WidthCache::SmallStringKeyHash::equal):
18268         (SmallStringKeyHash):
18269         (SmallStringKeyHashTraits):
18270         (WebCore::WidthCache::SmallStringKeyHashTraits::isEmptyValue): Ditto.
18271
18272         (WebCore::WidthCache::WidthCache):
18273         (WebCore::WidthCache::add): Separate out the "don't use the cache" case
18274         so the compiler can inline it separate, hopefully further reducing cases
18275         of (1).
18276
18277         (WebCore::WidthCache::addSlowCase): There's a little subtlety to the
18278         sampling policy here. Lots of different approaches are possible, and I
18279         just picked a simple one that seemed to work based on benchmarking. I'll
18280         point out some interesting sublteties I'm aware of here:
18281
18282             (*) Since we start at the min sampling rate, a font used for 20 words
18283             or fewer never allocates a cache. Anecdotally, some fonts seem to
18284             be used this way.
18285
18286             (*) When the sampling rate is x / y, sampling all x words in a row
18287             seems smart because some words may occur more commonly in relation to
18288             each other (such as 'each' and 'other'), and repeat workloads will
18289             lay out the same words in order. Intuitively, these are both reasons
18290             this policy may ramp up more effectively under load.
18291
18292             (*) I opted for linear back-off instead of, say, exponential back-off
18293             because we're not trying to back off to infinity -- just to our min
18294             sampling rate. Since we don't expect the cache to hit for every word,
18295             my guess is that exponential back-off would be too aggressive.
18296
18297             (*) Our "eviction" policy has an IQ of 1. I expect this is sufficient
18298             because it would be surprising to see a million unique words all used
18299             in the same document. (I would not like to play a Letterpress game
18300             against such a document.)
18301
18302         (WebCore::WidthCache::clear): Needed because a font can change, in which
18303         case we need to ditch its cache.
18304
18305         (WebCore::operator==): Needed for hashing.
18306
18307 2012-11-08  Andrey Kosyakov  <caseq@chromium.org>
18308
18309         Web Inspector: show statistics over selected frame range in Timeline's Frame mode
18310         https://bugs.webkit.org/show_bug.cgi?id=101593
18311
18312         Reviewed by Pavel Feldman.
18313
18314         - change status bar records counter wording to "N of M frames|records shown" depending on mode;
18315         - append average frame length and & stddev in frame mode;
18316         - expand the above to a popover that includes frame count, range duration and min/avg/max/stddev on frame length;
18317         - show frame bars & dividers iff selection range includes < 30 frames (drive-by)
18318
18319         * English.lproj/localizedStrings.js:
18320         * inspector/front-end/TimelineFrameController.js:
18321         (WebInspector.FrameStatistics):
18322         * inspector/front-end/TimelineModel.js:
18323         (WebInspector.TimelineModel.aggregateTimeByCategory):
18324         * inspector/front-end/TimelinePanel.js:
18325         (WebInspector.TimelinePanel.prototype.get statusBarItems):
18326         (WebInspector.TimelinePanel.prototype._createStatusBarItems.getAnchor):
18327         (WebInspector.TimelinePanel.prototype._createStatusBarItems):
18328         (WebInspector.TimelinePanel.prototype._updateRecordsCounter):
18329         (WebInspector.TimelinePanel.prototype._updateFrameStatistics):
18330         (WebInspector.TimelinePanel.prototype._showFrameStatistics):
18331         (WebInspector.TimelinePanel.prototype._updateFrameBars):
18332         (WebInspector.TimelinePanel.prototype._overviewModeChanged.set if):
18333         (WebInspector.TimelinePanel.prototype._overviewModeChanged):
18334         (WebInspector.TimelinePanel.prototype._refresh):
18335         * inspector/front-end/TimelinePresentationModel.js:
18336         (WebInspector.TimelinePresentationModel.prototype.):
18337         (WebInspector.TimelinePresentationModel.prototype.compareEndTime):
18338         (WebInspector.TimelinePresentationModel.prototype.filteredFrames):
18339         (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
18340         * inspector/front-end/timelinePanel.css:
18341         (.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
18342         (.timeline-records-stats):
18343         (.timeline-frames-stats):
18344
18345 2012-11-08  Jakob Petsovits  <jpetsovits@rim.com>
18346
18347         [BlackBerry] Rework the API to use document coordinates
18348         https://bugs.webkit.org/show_bug.cgi?id=101608
18349         RIM PR 173292
18350
18351         Reviewed by Adam Treat.
18352
18353         Provide a better API for WebPage to relay.
18354         See Source/WebKit/blackberry/ChangeLog for details.
18355
18356         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
18357         (WebCore::MediaPlayerPrivate::getWindowScreenRect):
18358         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
18359         (Platform):
18360         (BlackBerry):
18361         (MediaPlayerPrivate):
18362
18363 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
18364
18365         Unreviewed, rolling out r133892.
18366         http://trac.webkit.org/changeset/133892
18367         https://bugs.webkit.org/show_bug.cgi?id=101617
18368
18369         Compile failures on mac, android, linux (Requested by
18370         jsbell|gardener on #webkit).
18371
18372         * bindings/v8/DOMDataStore.cpp:
18373         (WebCore::DOMDataStore::current):
18374         * bindings/v8/DOMWrapperWorld.h:
18375         (WebCore::DOMWrapperWorld::domDataStore):
18376         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18377         * bindings/v8/V8DOMWrapper.h:
18378         (WebCore::V8DOMWrapper::getCachedWrapper):
18379
18380 2012-11-08  Andrey Adaikin  <aandrey@chromium.org>
18381
18382         Web Inspector: [Canvas] UI iterations: image on the top, auto replay
18383         https://bugs.webkit.org/show_bug.cgi?id=101584
18384
18385         Reviewed by Pavel Feldman.
18386
18387         * inspector/front-end/CanvasProfileView.js:
18388         (WebInspector.CanvasProfileView):
18389         (WebInspector.CanvasProfileView.prototype._showTraceLog):
18390         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
18391         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
18392         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
18393         * inspector/front-end/canvasProfiler.css:
18394         (.canvas-trace-log):
18395         (#canvas-replay-image-container):
18396         (#canvas-replay-image):
18397
18398 2012-11-08  Wei Fanzhe  <whyer1@gmail.com>
18399
18400         While absolute positioning is put before the first flexitem, flexitems will move to a new line.
18401         https://bugs.webkit.org/show_bug.cgi?id=101294
18402
18403         Reviewed by Ojan Vafai.
18404
18405         This issue has to do with RenderFlexibleBox::computeNextFlexLine. When determing line breaks, the algorithm sees if 1) the total width exceeds lineBreakLength and 2) whether orderedChildren is non-empty.  But then, if the total width exceeds lineBreakLength and there's only absolutely positioned elemments in orderedChildren then the conditions are met and the algorithm mistakenly breaks the line. The solution is to see if orderedChildren collects at least a flex item. If it does, break the line.  
18406
18407         * rendering/RenderFlexibleBox.cpp:
18408         (WebCore::RenderFlexibleBox::computeNextFlexLine):
18409
18410 2012-11-08  Dimitri Glazkov  <dglazkov@chromium.org>
18411
18412         Unreviewed, rolling out r133429.
18413         http://trac.webkit.org/changeset/133429
18414         https://bugs.webkit.org/show_bug.cgi?id=101173
18415
18416         Speculative roll out, investigating perf regression.
18417
18418         * dom/ContextFeatures.cpp:
18419         * dom/ContextFeatures.h:
18420         * dom/Position.cpp:
18421         (WebCore::Position::Position):
18422         (WebCore::Position::findParent):
18423         * dom/TreeScope.cpp:
18424         (WebCore::TreeScope::getSelection):
18425         * html/HTMLTagNames.in:
18426         * html/shadow/HTMLContentElement.cpp:
18427         (WebCore::HTMLContentElement::contentTagName):
18428         * page/DOMWindow.idl:
18429
18430 2012-11-07  Emil A Eklund  <eae@chromium.org>
18431
18432         Fix enclosingLayoutRect calls in InlineFlowBox.h
18433         https://bugs.webkit.org/show_bug.cgi?id=101497
18434
18435         Reviewed by Levi Weintraub.
18436
18437         InlineFlowBox.h used to include LayoutTypesInlineMethods.h which
18438         overrid enclosingLayoutRect to call closingIntRect. When we
18439         removed the LayoutTypes abstraction we switched these to
18440         enclosingIntRect to preserve the behavior.
18441         This patch changes these back to enclosingLayoutRect which is
18442         the desired behavior.
18443
18444         Covered by existing tests.
18445
18446         * rendering/InlineFlowBox.h:
18447         (WebCore::InlineFlowBox::layoutOverflowRect):
18448         (WebCore::InlineFlowBox::visualOverflowRect):
18449
18450 2012-11-08  Philip Rogers  <pdr@google.com>
18451
18452         Remove unnecessary save/restore in SVGTextRunRenderingContext
18453         https://bugs.webkit.org/show_bug.cgi?id=101546
18454
18455         Reviewed by Andreas Kling.
18456
18457         This patch removes an unnecessary context save/restore SVGTextRunRenderingContext by
18458         refactoring the code to save off the stroke thickness.
18459
18460         No new tests as this is heavily covered by existing tests.
18461
18462         * rendering/svg/SVGTextRunRenderingContext.cpp:
18463         (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
18464
18465 2012-11-08  Carlos Garcia Campos  <cgarcia@igalia.com>
18466
18467         [GTK] Clean up includes in GObject DOM bindings code
18468         https://bugs.webkit.org/show_bug.cgi?id=101077
18469
18470         Reviewed by Kentaro Hara.
18471
18472         Remove some headers included multiple times for the same file and
18473         fix consistency in the includes style.
18474
18475         * bindings/gobject/DOMObjectCache.cpp:
18476         * bindings/gobject/GObjectEventListener.cpp:
18477         * bindings/gobject/GObjectEventListener.h:
18478         * bindings/gobject/WebKitDOMBinding.cpp:
18479         * bindings/gobject/WebKitDOMBinding.h:
18480         * bindings/gobject/WebKitDOMEventTarget.cpp:
18481         * bindings/gobject/WebKitDOMEventTarget.h:
18482         * bindings/gobject/WebKitDOMEventTargetPrivate.h:
18483         (WebKit):
18484         * bindings/gobject/WebKitDOMObject.cpp:
18485         * bindings/gobject/WebKitDOMObject.h:
18486         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
18487         * bindings/gobject/WebKitHTMLElementWrapperFactory.h:
18488         * bindings/scripts/CodeGeneratorGObject.pm:
18489         (GenerateHeader):
18490         (GenerateFunction):
18491         (Generate):
18492         (WriteData):
18493         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
18494         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
18495         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
18496         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
18497         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
18498         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
18499         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
18500         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
18501         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
18502         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
18503         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
18504         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
18505         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
18506         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
18507         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
18508         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
18509         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
18510         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
18511         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
18512         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
18513         * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
18514         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
18515         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
18516         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
18517         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
18518         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
18519         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
18520         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
18521         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
18522         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
18523         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
18524         * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
18525         * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
18526         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
18527         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
18528         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
18529         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
18530         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
18531         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
18532
18533 2012-11-08  Dan Carney  <dcarney@google.com>
18534
18535         [V8] Main world should have one DOMDataStore
18536         https://bugs.webkit.org/show_bug.cgi?id=101470
18537
18538         Reviewed by Kentaro Hara.
18539
18540         The main world DOMWrapperWorld held onto a DOMDataStore that should
18541         never be used, as there is a static one optimized for speed in
18542         DOMDataStore.
18543
18544         No new tests. No change in functionality.
18545
18546         * bindings/v8/DOMDataStore.cpp:
18547         (WebCore::DOMDataStore::current):
18548         * bindings/v8/DOMWrapperWorld.h:
18549         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
18550         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18551         * bindings/v8/V8DOMWrapper.h:
18552         (WebCore::V8DOMWrapper::getCachedWrapper):
18553
18554 2012-11-08  Laszlo Gombos  <l.gombos@samsung.com>
18555
18556         [EFL] Remove non-variable options from the build system
18557         https://bugs.webkit.org/show_bug.cgi?id=101506
18558
18559         Reviewed by Kenneth Rohde Christiansen.
18560
18561         Remove WTF_USE_ICU_UNICODE, WTF_USE_CAIRO and WTF_USE_FREETYPE cmake variables
18562         as these are always set to const 1 and not really configurable.
18563
18564         Remove duplicate platform/graphics/cairo include path from
18565         PlatformEfl.cmake.
18566
18567         No new tests as there is no new functionality.
18568
18569         * PlatformEfl.cmake:
18570
18571 2012-11-08  KyungTae Kim  <ktf.kim@samsung.com>
18572
18573         Unused parameters on GraphicsLayerUpdater.cpp
18574         https://bugs.webkit.org/show_bug.cgi?id=101577
18575
18576         Reviewed by Kentaro Hara.
18577
18578         The parameter 'displayID' is not used when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
18579         Use UNUSED_PARAM macro for removing -Wunused-parameter warnings
18580
18581         * platform/graphics/GraphicsLayerUpdater.cpp:
18582         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
18583         (WebCore::GraphicsLayerUpdater::screenDidChange):
18584
18585 2012-11-08  Alexander Pavlov  <apavlov@chromium.org>
18586
18587         Web Inspector: Add option to disable rulers (Elements panel)
18588         https://bugs.webkit.org/show_bug.cgi?id=101554
18589
18590         Reviewed by Pavel Feldman.
18591
18592         A new setting, showMetricsRulers, has been introduced (off by default, so users need to opt in to see the rulers).
18593         The setting value is passed into InspectorDOMAgent, down to the InspectorOverlayPage, which affects the drawGrid() and
18594         drawRulers() calls. As a side effect, the issue when the rulers were painted for elements having no renderers has been fixed.
18595
18596         No new tests, a UI change.
18597
18598         * English.lproj/localizedStrings.js: Add "Show rulers" string.
18599         * inspector/InspectorDOMAgent.cpp:
18600         (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): Copy over the showRulers value.
18601         * inspector/InspectorOverlay.cpp:
18602         (WebCore::buildObjectForHighlight): Copy over the showRulers value.
18603         * inspector/InspectorOverlay.h:
18604         (HighlightConfig): Add |bool showRulers|.
18605         (WebCore::Highlight::Highlight): Initialize fields.
18606         (Highlight): Add |bool showRulers|.
18607         (WebCore::Highlight::setDataFromConfig):
18608         * inspector/InspectorOverlayPage.html:
18609         * inspector/front-end/DOMAgent.js: Make use of WebInspector.settings.showMetricsRulers when building the highlight DTO.
18610         * inspector/front-end/Settings.js: Add showMetricsRulers.
18611         * inspector/front-end/SettingsScreen.js:
18612         (WebInspector.GenericSettingsTab): Add "Show rulers" checkbox in the Elements panel section.
18613
18614 2012-11-08  Alexander Shalamov  <alexander.shalamov@intel.com>
18615
18616         Warn in the inspector console when using dpi and dpcm units outside of media="print"
18617         https://bugs.webkit.org/show_bug.cgi?id=100865
18618
18619         Reviewed by Kenneth Rohde Christiansen.
18620
18621         Added function that prints warning to inspector console whenever dpi or dpcm CSS units
18622         are used for screen media.
18623
18624         Test: fast/media/mq-resolution-dpi-dpcm-warning.html
18625
18626         * css/CSSStyleSheet.cpp:
18627         (WebCore::CSSStyleSheet::setMediaQueries):
18628         * css/MediaList.cpp:
18629         (WebCore):
18630         (WebCore::addResolutionWarningMessageToConsole):
18631         (WebCore::reportMediaQueryWarningIfNeeded):
18632         * css/MediaList.h:
18633         (WebCore):
18634         * css/MediaQueryMatcher.cpp:
18635         (WebCore::MediaQueryMatcher::matchMedia):
18636         * css/StyleSheetContents.cpp:
18637         (WebCore::StyleSheetContents::parserAppendRule):
18638
18639 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18640
18641         Web Inspector: Console: "time" and "timeEnd" should have same number of required arguments
18642         https://bugs.webkit.org/show_bug.cgi?id=101451
18643
18644         Reviewed by Yury Semikhatsky.
18645
18646         Solution: make console.time "title" parameter mandatory.
18647
18648         * page/Console.idl: Changed parameter specification.
18649
18650 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
18651
18652         Unreviewed fixed inspector frontend compilation
18653
18654         * inspector/front-end/DataGrid.js:
18655
18656 2012-11-08  Zeno Albisser  <zeno@webkit.org>
18657
18658         GraphicsSurfaceGLX needs to query the drawable for YInversion.
18659         https://bugs.webkit.org/show_bug.cgi?id=101472
18660
18661         After r133049 the WebGL content is now displayed upside down
18662         for the Qt port. We cannot just apply a generic rule, that
18663         the content needs to be flipped upside down.
18664         Instead we have to query GLX to tell us, if the drawable's
18665         framebuffer is y-inverted.
18666
18667         Reviewed by Kenneth Rohde Christiansen.
18668
18669         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
18670         (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
18671         (GraphicsSurfacePrivate):
18672         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
18673
18674 2012-11-08  Mike West  <mkwst@chromium.org>
18675
18676         Warn when parsing an invalid X-Frame-Options header.
18677         https://bugs.webkit.org/show_bug.cgi?id=101447
18678
18679         Reviewed by Adam Barth.
18680
18681         An 'X-Frame-Options' header that contains an invalid option (that is,
18682         neither 'DENY' nor 'SAMEORIGIN') is ignored. This patch adds a console
18683         warning to notify developers that they've made a mistake.
18684
18685         Test: http/tests/security/XFrameOptions/x-frame-options-invalid.html
18686
18687         * dom/Document.cpp:
18688         (WebCore::Document::processHttpEquiv):
18689             Move the request identifier generation out of the failure block in
18690             order to pass it into 'shouldInterruptLoadForXFrameOptions'. This
18691             ensures that the console message is properly tied to a request.
18692         * loader/FrameLoader.cpp:
18693         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
18694         * loader/FrameLoader.h:
18695         (FrameLoader):
18696             'shouldInterruptLoadForXFrameOptions' now accepts a request
18697             identifier as a parameter, and generates a console message if the
18698             load is blocked.
18699         * loader/MainResourceLoader.cpp:
18700         (WebCore::MainResourceLoader::didReceiveResponse):
18701             Pass the request identifier into 'shouldInterruptLoadForXFrameOptions'.
18702
18703 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18704
18705         Web Inspector: Timeline: Improve time/timeEnd appearance.
18706         https://bugs.webkit.org/show_bug.cgi?id=100936
18707
18708         Reviewed by Yury Semikhatsky.
18709
18710         Changes:
18711         - time/timeEnd records should be top level records only in "glue" mode
18712         - time/timeEnd records should display "message" in record list / popover
18713         - glued records add aggregated statistics to root record
18714         - glued records do not reduce their origin self time
18715
18716         Test: inspector/timeline/timeline-time.html
18717
18718         * English.lproj/localizedStrings.js: Added "Message" string.
18719         * inspector/front-end/TimelinePresentationModel.js:
18720         (WebInspector.TimelinePresentationModel.Record): Added "origin" field.
18721
18722 2012-11-08  Yury Semikhatsky  <yurys@chromium.org>
18723
18724         Web Inspector: move front-end methods called from native part to InspectorFrontendAPI
18725         https://bugs.webkit.org/show_bug.cgi?id=101463
18726
18727         Reviewed by Vsevolod Vlasov.
18728
18729         Moved Web Inspector methods called from native code to InspectorFrontendAPI.
18730
18731         * inspector/InspectorClient.cpp:
18732         (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
18733         * inspector/InspectorFrontendHost.cpp:
18734         (WebCore::FrontendMenuProvider::create):
18735         (WebCore::FrontendMenuProvider::disconnect):
18736         (WebCore::FrontendMenuProvider::FrontendMenuProvider):
18737         (WebCore::FrontendMenuProvider::contextMenuItemSelected):
18738         (WebCore::FrontendMenuProvider::contextMenuCleared):
18739         (FrontendMenuProvider):
18740         (WebCore::InspectorFrontendHost::showContextMenu):
18741         * inspector/front-end/InspectorFrontendAPI.js:
18742         (InspectorFrontendAPI.loadCompleted):
18743         (InspectorFrontendAPI.contextMenuItemSelected):
18744         (InspectorFrontendAPI.contextMenuCleared):
18745         (InspectorFrontendAPI.dispatchMessageAsync):
18746         (InspectorFrontendAPI.dispatchMessage):
18747         * inspector/front-end/inspector.js:
18748
18749 2012-11-08  Kunihiko Sakamoto  <ksakamoto@chromium.org>
18750
18751         User can change a disabled select (drop down box)
18752         https://bugs.webkit.org/show_bug.cgi?id=100932
18753
18754         Reviewed by Kent Tamura.
18755
18756         <select> should not handle events if it's disabled.
18757
18758         Test: fast/forms/select/select-disabled.html
18759
18760         * html/HTMLSelectElement.cpp:
18761         (WebCore::HTMLSelectElement::defaultEventHandler):
18762
18763 2012-11-08  Alec Flett  <alecflett@chromium.org>
18764
18765         IndexedDB: Rename methods and remove dead code from IDBBackingStore
18766         https://bugs.webkit.org/show_bug.cgi?id=101488
18767
18768         Reviewed by Ojan Vafai.
18769
18770         In preparation for merging IDBBackingStore and IDBLevelDBBackingStore:
18771
18772         1) rename ObjectStoreRecordIdentifier to RecordIdentifier
18773         2) remove IDBBackingStore::forEachRecord and friends
18774         3) remove IDBBackingStore::Cursor::close, since it was an empty method.
18775
18776         No new tests as this is purely code cleanup.
18777
18778         * Modules/indexeddb/IDBBackingStore.cpp:
18779         (WebCore::IDBLevelDBBackingStore::getRecord):
18780         (WebCore):
18781         (WebCore::IDBLevelDBBackingStore::putRecord):
18782         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
18783         (WebCore::IDBLevelDBBackingStore::deleteRecord):
18784         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
18785         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18786         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
18787         * Modules/indexeddb/IDBBackingStore.h:
18788         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
18789         (IDBBackingStore):
18790         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
18791         (WebCore::IDBCursorBackendImpl::close):
18792         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
18793         (WebCore::IDBIndexBackendImpl::countInternal):
18794         (WebCore::IDBIndexBackendImpl::getInternal):
18795         (WebCore::IDBIndexBackendImpl::getKeyInternal):
18796         * Modules/indexeddb/IDBLevelDBBackingStore.h:
18797         (IDBLevelDBBackingStore):
18798         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
18799         (WebCore::IDBObjectStoreBackendImpl::getInternal):
18800         (WebCore):
18801         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
18802         (WebCore::IDBObjectStoreBackendImpl::putInternal):
18803         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
18804         (WebCore::IDBObjectStoreBackendImpl::countInternal):
18805
18806 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18807
18808         Web Inspector: console error after inspecting IndexedDB
18809         https://bugs.webkit.org/show_bug.cgi?id=101481
18810
18811         Reviewed by Pavel Feldman.
18812
18813         Added objectId nullity check to RemoteOBject::release.
18814         Drive-by added release for entry key and primaryKey.
18815
18816         * inspector/front-end/IndexedDBViews.js:
18817         (WebInspector.IDBDataView.prototype.clear):
18818         * inspector/front-end/RemoteObject.js:
18819         (WebInspector.RemoteObject.prototype.release):
18820
18821 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18822
18823         Web Inspector: Migrate inspector IndexedDB support to frontend API.
18824         https://bugs.webkit.org/show_bug.cgi?id=101457
18825
18826         Reviewed by Pavel Feldman.
18827
18828         Migrated IndexedDB support to web facing IndexedDB API.
18829
18830         * inspector/Inspector.json:
18831         * inspector/InspectorIndexedDBAgent.cpp:
18832         (WebCore):
18833         (WebCore::assertIDBFactory):
18834         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
18835         (WebCore::InspectorIndexedDBAgent::requestDatabase):
18836         (WebCore::InspectorIndexedDBAgent::requestData):
18837         * inspector/front-end/IndexedDBModel.js:
18838         (WebInspector.IndexedDBModel.prototype.innerCallback):
18839         (WebInspector.IndexedDBModel.prototype._requestData):
18840         * inspector/front-end/IndexedDBViews.js:
18841         (WebInspector.IDBDataView.prototype._updateData.callback):
18842         (WebInspector.IDBDataView.prototype._updateData):
18843         (WebInspector.IDBDataGridNode):
18844         (WebInspector.IDBDataGridNode.prototype.createCell):
18845
18846 2012-08-20  Taiju Tsuiki  <tzik@chromium.org>
18847
18848         Web Inspector: Drop dimmed crumb handling
18849         https://bugs.webkit.org/show_bug.cgi?id=94457
18850
18851         Reviewed by Vsevolod Vlasov.
18852
18853         No new tests. Existing inspector test should work.
18854
18855         * inspector/front-end/ElementsPanel.js:
18856         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
18857         (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
18858         * inspector/front-end/breadcrumbList.css:
18859
18860 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18861
18862         Web Inspector: Infinite loop in DataGrid::autoSizeColumn
18863         https://bugs.webkit.org/show_bug.cgi?id=101363
18864
18865         Reviewed by Pavel Feldman.
18866
18867         Test: inspector/datagrid-autosize.html
18868
18869         * inspector/front-end/DataGrid.js:
18870         (WebInspector.DataGrid.prototype._autoSizeWidths):
18871         (WebInspector.DataGrid.prototype.autoSizeColumns):
18872
18873 2012-11-07  Keishi Hattori  <keishi@webkit.org>
18874
18875         Implement week picking to calendar picker
18876         https://bugs.webkit.org/show_bug.cgi?id=101449
18877
18878         Reviewed by Kent Tamura.
18879
18880         This adds week picker mode to CalendarPicker.
18881
18882         No new tests. Tests will be added later when this feature is enabled in DRT.
18883
18884         * Resources/pagepopups/calendarPicker.css:
18885         (.month-mode .day):
18886         (.week-mode .available.day-selected.monday): Rounded corners around week selection.
18887         (.week-mode .available.day-selected.sunday): Ditto.
18888         (.week-mode .unavailable.day-selected):
18889         (.week-mode .unavailable.day-selected.monday):
18890         (.week-mode .unavailable.day-selected.sunday):
18891         (.week-mode .week-column.unavailable.day-selected):
18892         (.week-column): Hide week column unless in week mode.
18893         (.week-mode .week-column):
18894         * Resources/pagepopups/calendarPicker.js:
18895         (parseDateString): Support week string.
18896         (Week):
18897         (Week.parse): Parses "yyyy-Www" string.
18898         (Week.createFromDate): Creates Week containing datetime.
18899         (Week.createFromToday): Creates Week containing today.
18900         (Week.weekOneStartDateForYear): Returns the start date for the first week of year.
18901         (Week.numberOfWeeksInYear): Returns the number of weeks in year.
18902         (Week._numberOfWeeksSinceDate): Returns number of weeks since a date.
18903         (Week.prototype.equals): Returns true if the Weeks are the same.
18904         (Week.prototype.previous): Returns the previous Week.
18905         (Week.prototype.next): Returns the next Week.
18906         (Week.prototype.startDate): Returns start datetime of Week.
18907         (Week.prototype.endDate): Returns end datetime of Week.
18908         (Week.prototype.valueOf): Returns the milliseconds since epoch.
18909         (Week.prototype.toString): Returns ISO week string.
18910         (CalendarPicker): Add week picker mode.
18911         (CalendarPicker.prototype.showMonth): Use NavigationBehaviour instead of bools.
18912         (YearMonthController.prototype.attachTo): Fix bug.
18913         (YearMonthController.prototype.moveRelatively): Use new showMonth.
18914         (DaysTable.prototype.attachTo): Add week number column.
18915         (DaysTable.prototype._renderMonth): Render week numbers.
18916         (DaysTable.prototype.navigateToMonth): Render week numbers.
18917         (DaysTable.prototype.selectRange):
18918         (DaysTable.prototype._selectRangeAtPosition): Week number nodes have an positionX of -1.
18919         (DaysTable.prototype._maybeSetPreviousMonth):
18920         (DaysTable.prototype._maybeSetNextMonth):
18921         (MonthPickerDaysTable.prototype.selectRange):
18922         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange):
18923         (MonthPickerDaysTable.prototype._handleKey):
18924         (WeekPickerDaysTable): Added.
18925         (WeekPickerDaysTable.prototype._markRangeAsSelected): Marks week as selected.
18926         (WeekPickerDaysTable.prototype.selectRange): Selects week.
18927         (WeekPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects week and navigate to show entire selection.
18928         (WeekPickerDaysTable.prototype._rangeForNode): Returns Week for node.
18929         (WeekPickerDaysTable.prototype._handleKey):
18930
18931 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
18932
18933         Unreviewed, rolling out r133841.
18934         http://trac.webkit.org/changeset/133841
18935         https://bugs.webkit.org/show_bug.cgi?id=101542
18936
18937         Reverted patches were innocent (Requested by shinyak on
18938         #webkit).
18939
18940         * WebCore.exp.in:
18941         * dom/Element.cpp:
18942         (WebCore::Element::shadowPseudoId):
18943         * dom/Element.h:
18944         (Element):
18945         * dom/ElementRareData.cpp:
18946         (WebCore::ElementRareData::reportMemoryUsage):
18947         * dom/ElementRareData.h:
18948         (ElementRareData):
18949         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
18950         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
18951         * html/ColorInputType.cpp:
18952         (WebCore::ColorInputType::createShadowSubtree):
18953         * html/HTMLTextAreaElement.cpp:
18954         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
18955         * html/RangeInputType.cpp:
18956         (WebCore::RangeInputType::createShadowSubtree):
18957         * html/TextFieldInputType.cpp:
18958         (WebCore::TextFieldInputType::createShadowSubtree):
18959         (WebCore::TextFieldInputType::updatePlaceholderText):
18960         * html/ValidationMessage.cpp:
18961         (WebCore::ValidationMessage::buildBubbleTree):
18962         * html/shadow/DateTimeEditElement.cpp:
18963         (WebCore::DateTimeEditBuilder::visitLiteral):
18964         (WebCore::DateTimeEditElement::DateTimeEditElement):
18965         * html/shadow/DateTimeFieldElement.cpp:
18966         (WebCore::DateTimeFieldElement::initialize):
18967         * html/shadow/DateTimeFieldElement.h:
18968         (DateTimeFieldElement):
18969         * html/shadow/PickerIndicatorElement.cpp:
18970         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
18971         * html/track/TextTrackCue.cpp:
18972         (WebCore::TextTrackCueBox::TextTrackCueBox):
18973         (WebCore::TextTrackCue::updateDisplayTree):
18974         * testing/Internals.cpp:
18975         (WebCore::Internals::setShadowPseudoId):
18976
18977 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
18978
18979         Fix EFL build, which has accelerated compositing disabled, by making
18980         repaintViewRectangle() const.
18981
18982         * rendering/RenderView.cpp:
18983         (WebCore::RenderView::repaintViewRectangle):
18984         * rendering/RenderView.h:
18985         (RenderView):
18986
18987 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
18988
18989         constify ALL the repaint containers
18990         https://bugs.webkit.org/show_bug.cgi?id=101541
18991
18992         Reviewed by Beth Dakin.
18993
18994         Make all the RenderLayerModelObject* repaintContainer arguments const, since
18995         these member functions should have no need to mutate this object.
18996
18997         * WebCore.exp.in:
18998         * rendering/RenderBR.h:
18999         * rendering/RenderBlock.cpp:
19000         (WebCore::RenderBlock::selectionGapRectsForRepaint):
19001         (WebCore::RenderBlock::rectWithOutlineForRepaint):
19002         * rendering/RenderBlock.h:
19003         * rendering/RenderBox.cpp:
19004         (WebCore::RenderBox::outlineBoundsForRepaint):
19005         (WebCore::RenderBox::mapLocalToContainer):
19006         (WebCore::RenderBox::clippedOverflowRectForRepaint):
19007         (WebCore::RenderBox::computeRectForRepaint):
19008         * rendering/RenderBox.h:
19009         * rendering/RenderFlowThread.cpp:
19010         (WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
19011         * rendering/RenderFlowThread.h:
19012         * rendering/RenderInline.cpp:
19013         (WebCore::RenderInline::clippedOverflowRectForRepaint):
19014         (WebCore::RenderInline::rectWithOutlineForRepaint):
19015         (WebCore::RenderInline::computeRectForRepaint):
19016         (WebCore::RenderInline::mapLocalToContainer):
19017         * rendering/RenderInline.h:
19018         * rendering/RenderListMarker.cpp:
19019         (WebCore::RenderListMarker::selectionRectForRepaint):
19020         * rendering/RenderListMarker.h:
19021         * rendering/RenderObject.cpp:
19022         (WebCore::RenderObject::repaintUsingContainer):
19023         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
19024         (WebCore::RenderObject::rectWithOutlineForRepaint):
19025         (WebCore::RenderObject::clippedOverflowRectForRepaint):
19026         (WebCore::RenderObject::computeRectForRepaint):
19027         (WebCore::RenderObject::computeFloatRectForRepaint):
19028         (WebCore::RenderObject::mapLocalToContainer):
19029         (WebCore::RenderObject::localToContainerQuad):
19030         (WebCore::RenderObject::localToContainerPoint):
19031         * rendering/RenderObject.h:
19032         (WebCore::RenderObject::selectionRectForRepaint):
19033         (WebCore::RenderObject::outlineBoundsForRepaint):
19034         * rendering/RenderReplaced.cpp:
19035         (WebCore::RenderReplaced::selectionRectForRepaint):
19036         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
19037         * rendering/RenderReplaced.h:
19038         * rendering/RenderTableCell.cpp:
19039         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
19040         (WebCore::RenderTableCell::computeRectForRepaint):
19041         * rendering/RenderTableCell.h:
19042         * rendering/RenderTableCol.cpp:
19043         (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
19044         * rendering/RenderTableCol.h:
19045         * rendering/RenderTableRow.cpp:
19046         (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
19047         * rendering/RenderTableRow.h:
19048         * rendering/RenderText.cpp:
19049         (WebCore::RenderText::clippedOverflowRectForRepaint):
19050         (WebCore::RenderText::selectionRectForRepaint):
19051         * rendering/RenderText.h:
19052         * rendering/RenderView.cpp:
19053         (WebCore::RenderView::mapLocalToContainer):
19054         (WebCore::RenderView::computeRectForRepaint):
19055         * rendering/RenderView.h:
19056         * rendering/svg/RenderSVGForeignObject.cpp:
19057         (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
19058         (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
19059         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
19060         * rendering/svg/RenderSVGForeignObject.h:
19061         * rendering/svg/RenderSVGGradientStop.h:
19062         * rendering/svg/RenderSVGHiddenContainer.h:
19063         * rendering/svg/RenderSVGInline.cpp:
19064         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
19065         (WebCore::RenderSVGInline::computeFloatRectForRepaint):
19066         (WebCore::RenderSVGInline::mapLocalToContainer):
19067         * rendering/svg/RenderSVGInline.h:
19068         * rendering/svg/RenderSVGModelObject.cpp:
19069         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
19070         (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
19071         (WebCore::RenderSVGModelObject::mapLocalToContainer):
19072         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
19073         * rendering/svg/RenderSVGModelObject.h:
19074         * rendering/svg/RenderSVGRoot.cpp:
19075         (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
19076         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
19077         (WebCore::RenderSVGRoot::mapLocalToContainer):
19078         * rendering/svg/RenderSVGRoot.h:
19079         * rendering/svg/RenderSVGText.cpp:
19080         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
19081         (WebCore::RenderSVGText::computeRectForRepaint):
19082         (WebCore::RenderSVGText::computeFloatRectForRepaint):
19083         (WebCore::RenderSVGText::mapLocalToContainer):
19084         * rendering/svg/RenderSVGText.h:
19085         * rendering/svg/SVGRenderSupport.cpp:
19086         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
19087         (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
19088         (WebCore::SVGRenderSupport::mapLocalToContainer):
19089         * rendering/svg/SVGRenderSupport.h:
19090         (SVGRenderSupport):
19091
19092 2012-11-07  Kent Tamura  <tkent@chromium.org>
19093
19094         [Chromium-win] Refactor date/time format conversion code in LocaleWin
19095         https://bugs.webkit.org/show_bug.cgi?id=101329
19096
19097         Reviewed by Kentaro Hara.
19098
19099         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
19100         similar jobs with different code. We can merge them into one function.
19101
19102         As for the date format conversion, we have tokenized a format string and
19103         stored token objects into a vector. We skip token object generation and
19104         generate a LDML-compliant pattern string during parsing.
19105
19106         No new tests. This should make no behavior changes and
19107         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
19108
19109         * platform/text/win/LocaleWin.cpp:
19110         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
19111         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
19112         convertWindowsTimeFormatToLDML.
19113         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
19114         (WebCore::convertWindowsDateTimeFormat):
19115         Renamed from parseDateFormat, and supports time format symbols.
19116         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
19117         (WebCore::LocaleWin::monthFormat): Ditto.
19118         (WebCore::LocaleWin::timeFormat): Ditto.
19119         (WebCore::LocaleWin::shortTimeFormat): Ditto.
19120         * platform/text/win/LocaleWin.h:
19121         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
19122
19123 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
19124
19125         Unreviewed, rolling out r133428 and r133749
19126         https://bugs.webkit.org/show_bug.cgi?id=101533
19127
19128         These patches might cause memory regression.
19129
19130         * WebCore.exp.in:
19131         * dom/Element.cpp:
19132         (WebCore::Element::shadowPseudoId):
19133         (WebCore):
19134         (WebCore::Element::setShadowPseudoId):
19135         * dom/Element.h:
19136         (Element):
19137         * dom/ElementRareData.cpp:
19138         (WebCore::ElementRareData::reportMemoryUsage):
19139         * dom/ElementRareData.h:
19140         (ElementRareData):
19141         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
19142         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
19143         * html/ColorInputType.cpp:
19144         (WebCore::ColorInputType::createShadowSubtree):
19145         * html/HTMLTextAreaElement.cpp:
19146         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
19147         * html/RangeInputType.cpp:
19148         (WebCore::RangeInputType::createShadowSubtree):
19149         * html/TextFieldInputType.cpp:
19150         (WebCore::TextFieldInputType::createShadowSubtree):
19151         (WebCore::TextFieldInputType::updatePlaceholderText):
19152         * html/ValidationMessage.cpp:
19153         (WebCore::ValidationMessage::buildBubbleTree):
19154         * html/shadow/DateTimeEditElement.cpp:
19155         (WebCore::DateTimeEditBuilder::visitLiteral):
19156         (WebCore::DateTimeEditElement::DateTimeEditElement):
19157         * html/shadow/DateTimeFieldElement.cpp:
19158         (WebCore::DateTimeFieldElement::initialize):
19159         * html/shadow/DateTimeFieldElement.h:
19160         (DateTimeFieldElement):
19161         * html/shadow/PickerIndicatorElement.cpp:
19162         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
19163         * html/track/TextTrackCue.cpp:
19164         (WebCore::TextTrackCueBox::TextTrackCueBox):
19165         (WebCore::TextTrackCue::updateDisplayTree):
19166         * testing/Internals.cpp:
19167         (WebCore::Internals::setShadowPseudoId):
19168
19169 2012-11-07  Ryosuke Niwa  <rniwa@webkit.org>
19170
19171         Crash in WebCore::RenderLayer::normalFlowList
19172         https://bugs.webkit.org/show_bug.cgi?id=101528
19173
19174         Reviewed by Simon Fraser.
19175
19176         Make sure the layout is up to date before re-computing the caret rect.
19177         Avoid doing the layout when the selection is cleared since we can always stop
19178         the blink timer in that case.
19179
19180         Unfortunately, we haven't found any reproduction of this crash yet.
19181
19182         * editing/FrameSelection.cpp:
19183         (WebCore::isNonOrphanedCaret):
19184         (WebCore::FrameSelection::localCaretRect):
19185         (WebCore::FrameSelection::updateAppearance):
19186
19187 2012-11-07  Adam Barth  <abarth@webkit.org>
19188
19189         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19190         https://bugs.webkit.org/show_bug.cgi?id=101110
19191
19192         Reviewed by Kentaro Hara.
19193
19194         Hopefully the memory issues with this patch have been resolved by
19195         fixing bug 101525. This patch re-lands this patch again, hopefully for
19196         the last time.
19197
19198         * bindings/v8/DOMDataStore.cpp:
19199         (WebCore::DOMDataStore::weakCallback):
19200         * bindings/v8/DOMDataStore.h:
19201         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19202         (WebCore::DOMDataStore::getWrapperFromObject):
19203         (WebCore::DOMDataStore::setWrapperInObject):
19204
19205 2012-11-07  KyungTae Kim  <ktf.kim@samsung.com>
19206
19207         Seam occurred between pieces of ShadowBlur on floating point zoom
19208         https://bugs.webkit.org/show_bug.cgi?id=101435
19209
19210         Reviewed by Simon Fraser.
19211
19212         When paint Shadow that doesn't have blurred edge on floating point zoom,
19213         pixel seam (pixel cracks) occurred between pieces of the ShadowBlur because of unaligned clip rect.
19214         So, enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing)
19215         even if the unaligned clip rect occurred.
19216
19217
19218         * platform/graphics/ShadowBlur.cpp:
19219         (WebCore::ShadowBlur::calculateLayerBoundingRect):
19220
19221 2012-11-07  Tim Horton  <timothy_horton@apple.com>
19222
19223         Repaint issues with -webkit-svg-shadow used on a container
19224         https://bugs.webkit.org/show_bug.cgi?id=65643
19225         <rdar://problem/7600532>
19226
19227         Reviewed by Simon Fraser.
19228
19229         SVG renderer repaint rects are currently expanded only by the shadow of
19230         the renderer itself; however, the area they need to repaint can be larger
19231         than that, if their parents also have shadows. We need to take into account
19232         parent's shadows (respecting transforms, as well).
19233
19234         clippedOverflowRectForRepaint already recurses upwards through the render tree,
19235         and ends up with a rect in layout coordinates, so we manually apply the shadow
19236         at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
19237         us to get the raw repaint rect without the shadow baked-in).
19238
19239         repaintRectInLocalCoordinates now includes shadows from all parents.
19240
19241         Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
19242         shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
19243         We can just swap the order of these things to correct this.
19244
19245         Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg
19246
19247         * rendering/RenderObject.cpp:
19248         (WebCore::RenderObject::addChild): Mark the child being added as having an SVG shadow if it is being added as a child of an element that does.
19249         (WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
19250         * rendering/svg/RenderSVGImage.cpp:
19251         (WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
19252         * rendering/svg/RenderSVGImage.h:
19253         (WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19254         * rendering/svg/RenderSVGModelObject.cpp:
19255         (WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
19256         * rendering/svg/RenderSVGModelObject.h:
19257         (WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19258         (WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
19259         (WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
19260         * rendering/svg/RenderSVGRoot.cpp:
19261         (WebCore::RenderSVGRoot::RenderSVGRoot):
19262         (WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
19263         (WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
19264         * rendering/svg/RenderSVGRoot.h:
19265         (WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
19266         (WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
19267         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19268         * rendering/svg/RenderSVGShape.cpp:
19269         (WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
19270         * rendering/svg/RenderSVGShape.h:
19271         (WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19272         * rendering/svg/SVGRenderSupport.cpp:
19273         (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19274         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
19275         (WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
19276         (WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
19277         (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
19278         transforming the repaint rect back into local coordinates.
19279         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
19280         * rendering/svg/SVGRenderSupport.h:
19281
19282 2012-11-07  Anders Carlsson  <andersca@apple.com>
19283
19284         Add RemoteGraphicsLayer class
19285         https://bugs.webkit.org/show_bug.cgi?id=101535
19286
19287         Reviewed by Simon Fraser.
19288
19289         * WebCore.exp.in:
19290         Export GraphicsLayer symbols required by WebKit2.
19291
19292         * WebCore.xcodeproj/project.pbxproj:
19293         Make GraphicsLayerFactory.h a private header.
19294
19295 2012-11-07  Adam Barth  <abarth@webkit.org>
19296
19297         [V8] Don't leak <img> elements in content scripts
19298         https://bugs.webkit.org/show_bug.cgi?id=101525
19299
19300         Reviewed by Ojan Vafai.
19301
19302         I found the leak that was causing a problem for bug 101110. We weren't
19303         filling in the derefObjectFunction for HTMLImageElements (and
19304         potentially some other types of elements). That manifests today as a
19305         memory leak in content scripts (which use the derefObjectFunction for
19306         nodes) and caused a memory leak after bug 101110 because we started
19307         using the derefObjectFunction in the main world as well.
19308
19309         This patch adds ASSERTs so that we won't make this mistake in the future.
19310
19311         * bindings/scripts/CodeGeneratorV8.pm:
19312         (GenerateNamedConstructorCallback):
19313         * bindings/v8/DOMDataStore.cpp:
19314         (WebCore::DOMDataStore::weakCallback):
19315         * bindings/v8/DOMWrapperMap.h:
19316         (WebCore::DOMWrapperMap::defaultWeakCallback):
19317         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
19318         (WebCore):
19319
19320 2012-11-07  Alec Flett  <alecflett@chromium.org>
19321
19322         IndexedDB: Prepare for IDBBackingStore merge by renaming IDBLevelDBBackingStore.cpp
19323         https://bugs.webkit.org/show_bug.cgi?id=101486
19324
19325         Reviewed by Ojan Vafai.
19326
19327         Rename IDBLevelDBBackingStore.cpp to IDBBackingStore.cpp in
19328         preparation for merging these classes. This will make the merge
19329         diffs sane. See https://bugs.webkit.org/show_bug.cgi?id=101415
19330         for the final goal.
19331
19332         No new tests, this is is just a rename and minor style fix.
19333
19334         * CMakeLists.txt:
19335         * GNUmakefile.list.am:
19336         * Modules/indexeddb/IDBBackingStore.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp.
19337         * WebCore.gypi:
19338         * WebCore.xcodeproj/project.pbxproj:
19339
19340 2012-11-07  Adam Barth  <abarth@webkit.org>
19341
19342         [V8] Prepare DOMDataStore to be able to store ScriptWrappable wrappers inline
19343         https://bugs.webkit.org/show_bug.cgi?id=101523
19344
19345         Unreviewed. Technically this patch hasn't been reviewed, but it is part
19346         of a patch that was reviewed by Kentaro Hara.
19347
19348         Sadly, my patch for bug 101110 triggered the regression again. This
19349         patch is a smaller incremental step towards the patch in bug 101110. It
19350         doesn't make that much sense on its own, but it will help me isolate
19351         the source of the regression.
19352
19353         * bindings/v8/DOMDataStore.h:
19354         (WebCore::DOMDataStore::get):
19355         (DOMDataStore):
19356         (WebCore::DOMDataStore::set):
19357         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19358         (WebCore::DOMDataStore::getWrapperFromObject):
19359         (WebCore::DOMDataStore::setWrapperInObject):
19360
19361 2012-11-05  Ryosuke Niwa  <rniwa@webkit.org>
19362
19363         SimplifyMarkupCommand takes a disproportionally long time to run when there are many nodes to remove
19364         https://bugs.webkit.org/show_bug.cgi?id=101144
19365
19366         Reviewed by Enrica Casucci.
19367
19368         The bug was caused by attach() happening between each node removal. Since the command was trying
19369         to remove millions of node in some cases, attach()ing render objects for each node being reinserted
19370         imposed a huge runtime cost.
19371
19372         Fixed the bug by using lazy attach when removing nodes and avoiding calls to isContentEditable.
19373         Also remove all ancestors at once when they are direct child/parent of each other so that we don't
19374         remove an ancestor and then insert its child back only to remove it again in the next iteration.
19375
19376         No new tests since it doesn't change the asymptotic performance, and adding a new performance test for
19377         this specific case is not the worth the increase in the bot cycle time. I'll note that the email
19378         attached in the original radar bug (<rdar://problem/12179712>) took 100 seconds to open now only takes
19379         7 seconds to open on my MacPro.
19380
19381         * editing/AppendNodeCommand.cpp:
19382         (WebCore::AppendNodeCommand::doApply): Takes a flag indicating whether we should assume nodes are editable
19383         without calling isContentEditable or not.
19384         * editing/ApplyStyleCommand.cpp:
19385         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Update the style as later code requires render
19386         object.
19387         * editing/CompositeEditCommand.cpp:
19388         (WebCore::CompositeEditCommand::insertNodeBefore): Passes a flag to the command.
19389         (WebCore::CompositeEditCommand::removeNode): Ditto.
19390         (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
19391         * editing/CompositeEditCommand.h:
19392         (CompositeEditCommand):
19393         * editing/DeleteSelectionCommand.cpp:
19394         (WebCore::DeleteSelectionCommand::removeNode): Takes a flag indicating whether we should assume nodes are
19395         editable without calling isContentEditable or not.
19396         * editing/DeleteSelectionCommand.h:
19397         (DeleteSelectionCommand):
19398         * editing/EditCommand.h:
19399         * editing/InsertIntoTextNodeCommand.cpp:
19400         (WebCore::InsertIntoTextNodeCommand::doApply): Update the layout when password echo is enabled since
19401         we need to have render objects for echoing.
19402         * editing/InsertNodeBeforeCommand.cpp:
19403         (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Ditto.
19404         (WebCore::InsertNodeBeforeCommand::doApply): Ditto; also always use lazy attach.
19405         (WebCore::InsertNodeBeforeCommand::doUnapply):
19406         * editing/InsertNodeBeforeCommand.h:
19407         (WebCore::InsertNodeBeforeCommand::create):
19408         (InsertNodeBeforeCommand):
19409         * editing/RemoveNodeCommand.cpp:
19410         (WebCore::RemoveNodeCommand::RemoveNodeCommand): Ditto about the flag.
19411         (WebCore::RemoveNodeCommand::doApply):
19412         * editing/RemoveNodeCommand.h:
19413         (WebCore::RemoveNodeCommand::create):
19414         (RemoveNodeCommand):
19415         * editing/RemoveNodePreservingChildrenCommand.cpp:
19416         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): Ditto.
19417         (WebCore::RemoveNodePreservingChildrenCommand::doApply):
19418         * editing/RemoveNodePreservingChildrenCommand.h:
19419         (WebCore::RemoveNodePreservingChildrenCommand::create):
19420         (RemoveNodePreservingChildrenCommand):
19421         * editing/SimplifyMarkupCommand.cpp:
19422         (WebCore::SimplifyMarkupCommand::doApply):
19423         (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Added to optimize removals of multiple
19424         ancestors.
19425         * editing/SimplifyMarkupCommand.h:
19426         (SimplifyMarkupCommand):
19427
19428 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
19429
19430         Unreviewed, rolling out r133810.
19431         http://trac.webkit.org/changeset/133810
19432         https://bugs.webkit.org/show_bug.cgi?id=101520
19433
19434         This patch made ws_single_peak_r regress by 15% (Requested by
19435         abarth on #webkit).
19436
19437         * bindings/v8/DOMDataStore.cpp:
19438         (WebCore::DOMDataStore::weakCallback):
19439         * bindings/v8/DOMDataStore.h:
19440         (WebCore::DOMDataStore::get):
19441         (WebCore::DOMDataStore::set):
19442         (DOMDataStore):
19443
19444 2012-11-07  Elliott Sprehn  <esprehn@chromium.org>
19445
19446         Clean up confused use of Document::renderer and renderView
19447         https://bugs.webkit.org/show_bug.cgi?id=101484
19448
19449         Reviewed by Ojan Vafai.
19450
19451         Document::renderer and Document::renderView are the same thing, but it seems
19452         people don't always realize it and check if document()->renderer() is a RenderView.
19453
19454         This patch cleans up usage of document()->renderer() and document()->renderView() and
19455         simplifies the code that was written without realizing they were the same thing.
19456
19457         No new tests, this is just a refactor.
19458
19459         * accessibility/AccessibilityRenderObject.cpp:
19460         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): Lots of simplification.
19461         * dom/Element.cpp:
19462         (WebCore::Element::screenRect):
19463         (WebCore::Element::unregisterNamedFlowContentNode): Remove unneeded conditional.
19464         * editing/FrameSelection.cpp: Remove verbose casts.
19465         (WebCore::clearRenderViewSelection):
19466         (WebCore::FrameSelection::recomputeCaretRect):
19467         (WebCore::CaretBase::invalidateCaretRect):
19468         (WebCore::FrameSelection::focusedOrActiveStateChanged):
19469         * page/Frame.cpp:
19470         (WebCore::Frame::contentRenderer): Vastly simplified.
19471         * page/PrintContext.cpp: Remove verbose casts.
19472         (WebCore::PrintContext::computePageRects):
19473         (WebCore::PrintContext::computePageRectsWithPageSizeInternal):
19474         * page/wince/FrameWinCE.cpp:
19475         (WebCore::computePageRectsForFrame): Remove unreachable code.
19476         * rendering/RenderObject.cpp:
19477         (WebCore::RenderObject::maximalOutlineSize): Remove verbose cast.
19478
19479 2012-11-07  Adam Barth  <abarth@webkit.org>
19480
19481         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19482         https://bugs.webkit.org/show_bug.cgi?id=101110
19483
19484         Reviewed by Kentaro Hara.
19485
19486         This patch generalizes our support for storing wrappers in DOM objects
19487         to be usable for more than just nodes. After this patch, any object
19488         with a ScriptWrappable base class will have its wrapper stored inline
19489         in the object in the main world.
19490
19491         * bindings/v8/DOMDataStore.cpp:
19492         (WebCore::DOMDataStore::weakCallback):
19493         * bindings/v8/DOMDataStore.h:
19494         (WebCore::DOMDataStore::get):
19495         (WebCore::DOMDataStore::set):
19496
19497 2012-11-07  Tiancheng Jiang  <tijiang@rim.com>
19498
19499         [BlackBerry] Update BB10 form theme.
19500         https://bugs.webkit.org/show_bug.cgi?id=100760
19501
19502         Reviewed by Rob Buis.
19503
19504         RIM PR 236997
19505         Internally Reviewed by Jakob Petsovits.
19506
19507         Set font family to fix DRT test fast/forms/input-type-text-min-width.html
19508
19509         * platform/blackberry/RenderThemeBlackBerry.cpp:
19510         (WebCore::RenderThemeBlackBerry::defaultGUIFont):
19511         (WebCore):
19512         (WebCore::RenderThemeBlackBerry::systemFont):
19513
19514 2012-11-07  Beth Dakin  <bdakin@apple.com>
19515
19516         https://bugs.webkit.org/show_bug.cgi?id=101303
19517         Fixed position elements that are out of view still end up forcing 
19518         non-threaded scrolling
19519         -and corresponding-
19520         <rdar://problem/12642222>
19521
19522         Reviewed by Simon Fraser.
19523
19524         Re-name hasNonLayerFixedObjects() to 
19525         hasVisibleSlowRepaintFixedObjects() and make it virtual. 
19526         * page/scrolling/ScrollingCoordinator.cpp:
19527         (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects):
19528         (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
19529         * page/scrolling/ScrollingCoordinator.h:
19530         (ScrollingCoordinator):
19531
19532         Override hasVisibleSlowRepaintFixedObjects() to always return false. 
19533         We don't want to bother with the extra computation in the 
19534         ScrollingCoordinator implementation, though other ports might still 
19535         want it.
19536         * page/scrolling/mac/ScrollingCoordinatorMac.h:
19537         (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintFixedObjects):
19538         (ScrollingCoordinatorMac):
19539
19540         Make this function const so that we can call it from 
19541         requiresCompositingForPosition().
19542         * rendering/RenderLayerCompositor.cpp:
19543         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
19544
19545         Actually be thorough here and check if the fixed object has any 
19546         descendants that are visible in the view. If it does, then we do 
19547         want to composite the fixed object.
19548         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
19549         * rendering/RenderLayerCompositor.h:
19550
19551 2012-11-07  Roger Fong  <roger_fong@apple.com>
19552
19553         Unreviewed. Style fix following r133262.
19554
19555         * html/HTMLMediaElement.cpp:
19556         (WebCore::HTMLMediaElement::clearMediaPlayer):
19557         * html/HTMLMediaElement.h:
19558         (HTMLMediaElement):
19559
19560 2012-11-07  Adam Barth  <abarth@webkit.org>
19561
19562         [V8] DOMWrapperMap doesn't need to use virtual functions
19563         https://bugs.webkit.org/show_bug.cgi?id=101494
19564
19565         Reviewed by Kentaro Hara.
19566
19567         DOMWrapperMap has only one subclass. There's no reason to use virtual functions.
19568
19569         * bindings/v8/DOMDataStore.cpp:
19570         (WebCore::DOMDataStore::DOMDataStore):
19571         * bindings/v8/DOMWrapperMap.h:
19572         (WebCore::DOMWrapperMap::DOMWrapperMap):
19573         (WebCore::DOMWrapperMap::get):
19574         (WebCore::DOMWrapperMap::set):
19575         (WebCore::DOMWrapperMap::clear):
19576         (WebCore::DOMWrapperMap::reportMemoryUsage):
19577         (WebCore::DOMWrapperMap::remove):
19578         (WebCore::DOMWrapperMap::defaultWeakCallback):
19579         * bindings/v8/V8NPObject.cpp:
19580         (WebCore::staticNPObjectMap):
19581
19582 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19583
19584         [CSS Shaders] Remove the dependency on CustomFilterValidatedProgram from CustomFilterRenderer
19585         https://bugs.webkit.org/show_bug.cgi?id=101071
19586
19587         Reviewed by Dean Jackson.
19588
19589         I've removed the need to get a CustomFilterValidatedProgram from FilterEffectRenderer. It was only
19590         used to delay the compilation of the shader until it was really needed. Instead, the FilterEffectRenderer
19591         will directly get the compiled shader in the constructor. The callers that still want to avoid 
19592         compiling the shader until it is really needed can use the setCompiledProgram to inject the shader
19593         at a later time, before painting.
19594
19595         No new tests, the change is covered by the css3/filters/custom/ tests.
19596
19597         * platform/graphics/filters/CustomFilterConstants.h:
19598         * platform/graphics/filters/CustomFilterProgramInfo.h:
19599         * platform/graphics/filters/CustomFilterRenderer.cpp:
19600         (WebCore::CustomFilterRenderer::create):
19601         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
19602         (WebCore::CustomFilterRenderer::premultipliedAlpha):
19603         (WebCore::CustomFilterRenderer::setCompiledProgram):
19604         (WebCore):
19605         (WebCore::CustomFilterRenderer::prepareForDrawing):
19606         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
19607         * platform/graphics/filters/CustomFilterRenderer.h:
19608         (WebCore):
19609         (CustomFilterRenderer):
19610         (WebCore::CustomFilterRenderer::compiledProgram):
19611         * platform/graphics/filters/FECustomFilter.cpp:
19612         (WebCore::FECustomFilter::FECustomFilter):
19613         (WebCore::FECustomFilter::prepareForDrawing):
19614         * platform/graphics/filters/FECustomFilter.h:
19615         (FECustomFilter):
19616
19617 2012-11-07  Adam Barth  <abarth@webkit.org>
19618
19619         [V8] IntrusiveDOMWrapperMap is no longer needed and can be deleted
19620         https://bugs.webkit.org/show_bug.cgi?id=101493
19621
19622         Reviewed by Kentaro Hara.
19623
19624         This patch is another incremental step towards landing the patch in bug
19625         101110. In this patch, we delete IntrusiveDOMWrapperMap, which is no
19626         longer needed.
19627
19628         * WebCore.gypi:
19629         * bindings/v8/DOMDataStore.cpp:
19630         (WebCore::DOMDataStore::DOMDataStore):
19631         (WebCore::DOMDataStore::~DOMDataStore):
19632         (WebCore::DOMDataStore::reportMemoryUsage):
19633         (WebCore::DOMDataStore::weakCallback):
19634         (WebCore):
19635         * bindings/v8/DOMDataStore.h:
19636         (WebCore::DOMDataStore::get):
19637         (WebCore::DOMDataStore::set):
19638         (DOMDataStore):
19639         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
19640         * bindings/v8/V8GCController.cpp:
19641
19642 2012-11-07  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
19643
19644         [AC] glXChooseFBConfig() and glXGetVisualFromFBConfig() return values are leaking in GraphicsSurface
19645         https://bugs.webkit.org/show_bug.cgi?id=101475
19646
19647         Reviewed by Kenneth Rohde Christiansen.
19648
19649         Free the memory returned by glXChooseFBConfig and glXGetVisualFromFBConfig
19650         using XFree to avoid memory leaks.
19651
19652         No tests. No change in behavior.
19653
19654         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
19655         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
19656         (WebCore::GraphicsSurfacePrivate::createSurface):
19657
19658 2012-11-07  Fady Samuel  <fsamuel@chromium.org>
19659
19660         Autoresize should work even if turned on while the page is loading.
19661         https://bugs.webkit.org/show_bug.cgi?id=101380
19662
19663         Reviewed by David Levin.
19664
19665         Autoresize does not work in cases where it is turned on while loading.
19666         This patch addresses this by allowing autoSize to complete if it's turned on
19667         while loading and doing a final pass after loading.
19668
19669         * loader/FrameLoader.cpp:
19670         (WebCore::FrameLoader::checkCompleted):
19671         Adjust to call renamed function.
19672         * page/FrameView.cpp:
19673         (WebCore::FrameView::handleLoadCompleted):
19674         Rename function to encompass its expanded responsibilities (which include doing the final auto size after the load is completed).
19675         (WebCore::FrameView::autoSizeIfEnabled):
19676         Allow the size to shrink if autosize is adjusted while the page is loading.
19677         * page/FrameView.h:
19678         (FrameView):
19679         Renamed 'checkFlushDeferredRepaintsAfterLoadComplete' to 'handleLoadComplete'
19680
19681 2012-11-07  Philip Rogers  <pdr@google.com>
19682
19683         Skip SVG repaint tracking when parent container transforms
19684         https://bugs.webkit.org/show_bug.cgi?id=101177
19685
19686         Reviewed by Eric Seidel.
19687
19688         This patch skips child repaint rect checks when a parent container is transformed, leading
19689         to a 75% increase on the RoboHornet SVG benchmark:
19690             http://www.robohornet.org/#et=svg  (average of 2 runs)
19691             Before patch: 161.6ms
19692             After patch: 38.5ms
19693
19694         SVG transforms are relative to the local container which makes calculating an absolute
19695         repaint rect expensive because it requires multiplying the local repaint rect by each
19696         parent container's local transform. See SVGRenderSupport::computeFloatRectForRepaint
19697         as an example of this calculation.
19698
19699         This patch takes advantage of SVG's container rules: when a parent container's transform
19700         changes, all children must be repainted (there is no absolute positioning in SVG).
19701         SVGRenderSupport::checkForSVGRepaintDuringLayout has been added which checks for whether
19702         the parent transform changed before doing child repaint checks. A similar optimization is
19703         used in HTML (see RenderObject::checkForRepaintDuringLayout) where no repaint checking
19704         is done when the view is fully repainted.
19705
19706         This code is tested in existing tests.
19707
19708         * rendering/svg/RenderSVGContainer.cpp:
19709         (WebCore::RenderSVGContainer::layout):
19710         * rendering/svg/RenderSVGForeignObject.cpp:
19711         (WebCore::RenderSVGForeignObject::layout):
19712         * rendering/svg/RenderSVGImage.cpp:
19713         (WebCore::RenderSVGImage::layout):
19714         * rendering/svg/RenderSVGShape.cpp:
19715         (WebCore::RenderSVGShape::layout):
19716         * rendering/svg/RenderSVGText.cpp:
19717         (WebCore::RenderSVGText::layout):
19718         * rendering/svg/SVGRenderSupport.cpp:
19719         (WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
19720         (WebCore):
19721         * rendering/svg/SVGRenderSupport.h:
19722         (SVGRenderSupport):
19723
19724 2012-11-07  Chris Fleizach  <cfleizach@apple.com>
19725
19726         AX: Textfields don't get focus when navigated to from 'show all tabs' button
19727         https://bugs.webkit.org/show_bug.cgi?id=101369
19728
19729         Reviewed by Darin Adler.
19730
19731         When focus leaves a webpage, the webpage does not normally clear its focused node. When focus
19732         returns (through tab, or mouse click), then focus will be cleared and restored.
19733
19734         However, when focus is returned through accessibility means, focus is not cleared first, which
19735         means subsequent focus actions do nothing.
19736
19737         This fix will check if the focused node is the same as the node being focused, and if so, clear the focus first.
19738
19739         Making a layout test for this is not possible because it requires setting focus to something in the chrome, and then
19740         moving focus back to the webpage.
19741       
19742         * accessibility/AccessibilityRenderObject.cpp:
19743         (WebCore::AccessibilityRenderObject::setFocused):
19744
19745 2012-11-07  Adam Barth  <abarth@webkit.org>
19746
19747         [V8] We should hide the DOMWrapperMaps inside DOMDataStore
19748         https://bugs.webkit.org/show_bug.cgi?id=101430
19749
19750         Reviewed by Kentaro Hara.
19751
19752         This is yet another incremental step towards landing the patch in bug
19753         101110. In this patch, we hide the existence of DOMWrapperMaps inside
19754         DOMDataStore. In the process, we can remove V8DOMMap.cpp.
19755
19756         * UseV8.cmake:
19757         * WebCore.gypi:
19758         * bindings/v8/DOMDataStore.h:
19759         (WebCore::DOMDataStore::set):
19760         * bindings/v8/DOMWrapperWorld.h:
19761         * bindings/v8/ScriptProfiler.cpp:
19762         * bindings/v8/SerializedScriptValue.cpp:
19763         (WebCore::neuterBinding):
19764         * bindings/v8/V8DOMMap.cpp: Removed.
19765         * bindings/v8/V8DOMMap.h: Removed.
19766         * bindings/v8/V8DOMWindowShell.cpp:
19767         * bindings/v8/V8DOMWrapper.h:
19768         (WebCore::V8DOMWrapper::getCachedWrapper):
19769         (WebCore::V8DOMWrapper::setWrapperClass):
19770         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
19771         * bindings/v8/V8NPObject.cpp:
19772         * bindings/v8/WorkerContextExecutionProxy.cpp:
19773         * bindings/v8/WorkerScriptController.cpp:
19774
19775 2012-11-07  Varun Jain  <varunjain@chromium.org>
19776
19777         Add new gesture type, LongTap, which is basically the completion of a GestureLongPress
19778         https://bugs.webkit.org/show_bug.cgi?id=101385
19779
19780         Reviewed by Adam Barth.
19781
19782         Test: Only creating the new enum. No functionality change, hence no tests required.
19783
19784         * platform/PlatformEvent.h:
19785
19786 2012-11-05  Emil A Eklund  <eae@chromium.org>
19787
19788         Remove LayoutTypes abstraction
19789         https://bugs.webkit.org/show_bug.cgi?id=93050
19790
19791         Reviewed by Levi Weintraub.
19792
19793         Remove LayoutTypes abstraction and rename FractionalLayout* to
19794         Layout* now that all platforms use the FractionalLayout version
19795         (albeit with different fractions).
19796
19797         No new tests, no change in functionality.
19798
19799         * CMakeLists.txt:
19800         * GNUmakefile.list.am:
19801         * Target.pri:
19802         * WebCore.exp.in:
19803         * WebCore.gypi:
19804         * WebCore.vcproj/WebCore.vcproj:
19805         * WebCore.xcodeproj/project.pbxproj:
19806         * accessibility/AccessibilityNodeObject.cpp:
19807         * accessibility/AccessibilityNodeObject.h:
19808         * accessibility/AccessibilityObject.h:
19809         * accessibility/AccessibilityRenderObject.h:
19810         * css/LengthFunctions.cpp:
19811         * css/LengthFunctions.h:
19812         * dom/Document.h:
19813         * dom/DocumentMarkerController.h:
19814         * dom/ElementRareData.h:
19815         * dom/MouseRelatedEvent.h:
19816         * dom/Node.h:
19817         * dom/Touch.h:
19818         * editing/FrameSelection.cpp:
19819         * editing/FrameSelection.h:
19820         * editing/RenderedPosition.h:
19821         * html/HTMLAreaElement.h:
19822         * inspector/InspectorOverlay.h:
19823         * inspector/InspectorTimelineAgent.h:
19824         * inspector/TimelineRecordFactory.cpp:
19825         * inspector/TimelineRecordFactory.h:
19826         * loader/cache/CachedImage.h:
19827         * page/FocusController.h:
19828         * page/FrameView.h:
19829         * page/Page.h:
19830         * page/SpatialNavigation.cpp:
19831         * page/SpatialNavigation.h:
19832         * platform/FractionalLayoutUnit.h: Removed.
19833         * platform/LayoutUnit.h: Copied from Source/WebCore/platform/FractionalLayoutUnit.h.
19834         * platform/Length.h:
19835         * platform/PopupMenuClient.h:
19836         * platform/animation/AnimationUtilities.h:
19837         * platform/graphics/FloatPoint.cpp:
19838         * platform/graphics/FloatPoint.h:
19839         * platform/graphics/FloatRect.cpp:
19840         * platform/graphics/FloatRect.h:
19841         * platform/graphics/FloatSize.cpp:
19842         * platform/graphics/FloatSize.h:
19843         * platform/graphics/FractionalLayoutBoxExtent.cpp: Removed.
19844         * platform/graphics/FractionalLayoutBoxExtent.h: Removed.
19845         * platform/graphics/FractionalLayoutPoint.h: Removed.
19846         * platform/graphics/FractionalLayoutRect.cpp: Removed.
19847         * platform/graphics/FractionalLayoutRect.h: Removed.
19848         * platform/graphics/FractionalLayoutSize.h: Removed.
19849         * platform/graphics/GraphicsLayer.cpp:
19850         * platform/graphics/GraphicsLayerAnimation.cpp:
19851         * platform/graphics/IntRect.cpp:
19852         * platform/graphics/IntRect.h:
19853         * platform/graphics/LayoutBoxExtent.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp.
19854         * platform/graphics/LayoutBoxExtent.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h.
19855         * platform/graphics/LayoutPoint.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutPoint.h.
19856         * platform/graphics/LayoutRect.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.cpp.
19857         * platform/graphics/LayoutRect.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.h.
19858         * platform/graphics/LayoutSize.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutSize.h.
19859         * platform/graphics/MediaPlayer.h:
19860         * platform/graphics/filters/CustomFilterOperation.h:
19861         * platform/graphics/filters/CustomFilterParameterList.h:
19862         * platform/graphics/filters/FilterOperation.h:
19863         * platform/graphics/filters/FilterOperations.h:
19864         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
19865         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
19866         * platform/graphics/qt/FractionalLayoutPointQt.cpp: Removed.
19867         * platform/graphics/qt/FractionalLayoutRectQt.cpp: Removed.
19868         * platform/graphics/qt/FractionalLayoutSizeQt.cpp: Removed.
19869         * platform/graphics/qt/LayoutPointQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutPointQt.cpp.
19870         * platform/graphics/qt/LayoutRectQt.cpp: Added.
19871         * platform/graphics/qt/LayoutSizeQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutSizeQt.cpp.
19872         * platform/graphics/transforms/TransformOperations.h:
19873         * platform/graphics/transforms/TransformState.h:
19874         * platform/graphics/transforms/TransformationMatrix.cpp:
19875         * platform/graphics/transforms/TransformationMatrix.h:
19876         * rendering/AutoTableLayout.h:
19877         * rendering/ColumnInfo.h:
19878         * rendering/ExclusionShapeInsideInfo.h:
19879         * rendering/FilterEffectRenderer.h:
19880         * rendering/FixedTableLayout.h:
19881         * rendering/GapRects.h:
19882         * rendering/HitTestResult.h:
19883         * rendering/HitTestingTransformState.cpp:
19884         * rendering/HitTestingTransformState.h:
19885         * rendering/InlineFlowBox.cpp:
19886         * rendering/LayoutRepainter.cpp:
19887         * rendering/LayoutRepainter.h:
19888         * rendering/LayoutState.h:
19889         * rendering/LayoutTypes.h:
19890         * rendering/LayoutTypesInlineMethods.h:
19891         * rendering/PaintInfo.h:
19892         * rendering/RenderBlock.cpp:
19893         * rendering/RenderBlock.h:
19894         * rendering/RenderBlockLineLayout.cpp:
19895         * rendering/RenderBox.cpp:
19896         * rendering/RenderBox.h:
19897         * rendering/RenderBoxModelObject.cpp:
19898         * rendering/RenderBoxModelObject.h:
19899         * rendering/RenderDeprecatedFlexibleBox.cpp:
19900         * rendering/RenderFieldset.cpp:
19901         * rendering/RenderFlexibleBox.cpp:
19902         * rendering/RenderFlowThread.cpp:
19903         * rendering/RenderGeometryMap.h:
19904         * rendering/RenderImageResource.h:
19905         * rendering/RenderInline.cpp:
19906         * rendering/RenderLayer.cpp:
19907         * rendering/RenderLayerFilterInfo.h:
19908         * rendering/RenderLineBoxList.cpp:
19909         * rendering/RenderListMarker.cpp:
19910         * rendering/RenderMarquee.cpp:
19911         * rendering/RenderMenuList.h:
19912         * rendering/RenderMultiColumnBlock.cpp:
19913         * rendering/RenderMultiColumnSet.cpp:
19914         * rendering/RenderNamedFlowThread.cpp:
19915         * rendering/RenderObject.cpp:
19916         * rendering/RenderObject.h:
19917         * rendering/RenderOverflow.h:
19918         * rendering/RenderRegion.cpp:
19919         * rendering/RenderReplaced.cpp:
19920         * rendering/RenderTable.cpp:
19921         * rendering/RenderTable.h:
19922         * rendering/RenderText.cpp:
19923         * rendering/RenderThemeChromiumCommon.cpp:
19924         * rendering/RenderThemeChromiumCommon.h:
19925         * rendering/RenderTreeAsText.cpp:
19926         * rendering/RenderTreeAsText.h:
19927         * rendering/RenderView.h:
19928         * rendering/style/NinePieceImage.h:
19929         * rendering/style/RenderStyle.h:
19930         * rendering/style/ShadowData.cpp:
19931         * rendering/style/ShadowData.h:
19932         * rendering/style/StyleCachedImageSet.h:
19933         * rendering/style/StyleImage.h:
19934         * rendering/svg/SVGRenderSupport.h:
19935
19936 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19937
19938         CoordinatedGraphicsArgumentCoders should use ValidatedCustomFitlerOperation instead
19939         https://bugs.webkit.org/show_bug.cgi?id=100905
19940
19941         Reviewed by Noam Rosenthal.
19942
19943         Added getters for the validated shaders, so that platform code could extract them.
19944
19945         No new tests, just added two getters.
19946
19947         * platform/graphics/filters/CustomFilterValidatedProgram.h:
19948         (WebCore::CustomFilterValidatedProgram::validatedVertexShader):
19949         (WebCore::CustomFilterValidatedProgram::validatedFragmentShader):
19950         (CustomFilterValidatedProgram):
19951
19952 2012-11-07  Joshua Bell  <jsbell@chromium.org>
19953
19954         IndexedDB: Assertion failure with open() within upgradeneeded
19955         https://bugs.webkit.org/show_bug.cgi?id=96947
19956
19957         Reviewed by Dimitri Glazkov.
19958
19959         Postpone creation of the "pending second half open" until the version change
19960         transaction has started.
19961
19962         Test: storage/indexeddb/unblocked-version-changes.html
19963
19964         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
19965         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
19966         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
19967         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
19968         (IDBDatabaseBackendImpl):
19969         * Modules/indexeddb/IDBDatabaseCallbacks.h:
19970
19971 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19972
19973         [CSS Shaders] Add CustomFilterMeshBoxType to ValidatedCustomFilterOperation
19974         https://bugs.webkit.org/show_bug.cgi?id=100890
19975
19976         Reviewed by Dean Jackson.
19977
19978         Added the CustomFilterMeshBoxType parameter to the ValidatedCustomFilterOperation.
19979
19980         No new tests, this parameter is not used in the implementation yet.
19981
19982         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
19983         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
19984         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
19985         (WebCore::ValidatedCustomFilterOperation::create):
19986         (WebCore::ValidatedCustomFilterOperation::meshBoxType):
19987         (WebCore::ValidatedCustomFilterOperation::operator==):
19988         (ValidatedCustomFilterOperation):
19989         * rendering/FilterEffectRenderer.cpp:
19990         (WebCore::createCustomFilterEffect):
19991         * rendering/RenderLayer.cpp:
19992         (WebCore::RenderLayer::computeFilterOperations):
19993
19994 2012-11-07  Sergio Villar Senin  <svillar@igalia.com>
19995
19996         [Qt] Implement deleteCookie() for persistent storage
19997         https://bugs.webkit.org/show_bug.cgi?id=101272
19998
19999         Reviewed by Jocelyn Turcotte.
20000
20001         Individual cookies were never persistently cleared as the
20002         deleteCookie() virtual method was not implemented for persistent
20003         storage. That's why cookies were only deleted for the current
20004         session.
20005
20006         * platform/qt/CookieJarQt.cpp:
20007         (WebCore::SharedCookieJarQt::deleteCookie):
20008         (WebCore): added deleteCookie() implementation for persistent
20009         storage.
20010         * platform/qt/CookieJarQt.h:
20011         (SharedCookieJarQt):
20012
20013 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20014
20015         [Shadow] Style should update when 'pseudo' attribute is dynamically updated
20016         https://bugs.webkit.org/show_bug.cgi?id=100918
20017
20018         Reviewed by Dimitri Glazkov.
20019
20020         When 'pseudo' attribute is changed and its element is in ShadowTree, we enable the styleShouldRecalc flag.
20021
20022         It would be fast if we have a set of pseudo attribute style value in RuleFeatureSet,
20023         but it might consume a lot of memory.
20024
20025         Test: fast/dom/shadow/pseudo-attribute-dynamic.html
20026
20027         * dom/Element.cpp:
20028         (WebCore::Element::attributeChanged):
20029
20030 2012-11-07  Ulan Degenbaev  <ulan@chromium.org>
20031
20032         [V8] WebKit sends unnecessary low memory notification when running memory benchmarks
20033         https://bugs.webkit.org/show_bug.cgi?id=101474
20034
20035         Reviewed by Kentaro Hara.
20036
20037         Do not send low memory notification to V8 when most of memory usage
20038         comes from V8 heap and not DOM objects. In this case V8 can schedule GC
20039         itself more optimally.
20040
20041         * bindings/v8/V8GCController.cpp:
20042         (WebCore::V8GCController::checkMemoryUsage):
20043
20044 2012-11-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
20045
20046         [Qt] Open link in this window action
20047         https://bugs.webkit.org/show_bug.cgi?id=101226
20048
20049         Reviewed by Simon Hausmann.
20050
20051         Adds the action to the WebCore context-menu controller.
20052
20053         * page/ContextMenuController.cpp:
20054         (WebCore::ContextMenuController::contextMenuItemSelected):
20055         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
20056         * platform/ContextMenuItem.h:
20057         * platform/LocalizedStrings.h:
20058         * platform/qt/LocalizedStringsQt.cpp:
20059         (WebCore::contextMenuItemTagOpenLinkInThisWindow):
20060
20061 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20062
20063         Web Inspector: [Canvas] closure compiler fixes
20064         https://bugs.webkit.org/show_bug.cgi?id=101459
20065
20066         Reviewed by Pavel Feldman.
20067
20068         * inspector/InjectedScriptCanvasModuleSource.js:
20069         (.):
20070
20071 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
20072
20073         Unreviewed, rolling out r133712.
20074         http://trac.webkit.org/changeset/133712
20075         https://bugs.webkit.org/show_bug.cgi?id=101461
20076
20077         Broke fast/forms/time* tests on chromium-win. (Requested by
20078         mkwst on #webkit).
20079
20080         * platform/text/win/LocaleWin.cpp:
20081         (WebCore::DateFormatToken::DateFormatToken):
20082         (DateFormatToken):
20083         (WebCore):
20084         (WebCore::isEraSymbol):
20085         (WebCore::isYearSymbol):
20086         (WebCore::isMonthSymbol):
20087         (WebCore::isDaySymbol):
20088         (WebCore::commitLiteralToken):
20089         (WebCore::parseDateFormat):
20090         (WebCore::LocaleWin::ensureShortDateTokens):
20091         (WebCore::convertWindowsDateFormatToLDML):
20092         (WebCore::mapCharacterToDateTimeFieldType):
20093         (WebCore::convertWindowsTimeFormatToLDML):
20094         (WebCore::LocaleWin::dateFormat):
20095         (WebCore::LocaleWin::monthFormat):
20096         (WebCore::LocaleWin::timeFormat):
20097         (WebCore::LocaleWin::shortTimeFormat):
20098         * platform/text/win/LocaleWin.h:
20099         (LocaleWin):
20100
20101 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20102
20103         Web Inspector: [Regression] Editing formatted source should not be allowed.
20104         https://bugs.webkit.org/show_bug.cgi?id=101355
20105
20106         Reviewed by Pavel Feldman.
20107
20108         * inspector/front-end/JavaScriptSourceFrame.js:
20109         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
20110         * inspector/front-end/UISourceCodeFrame.js:
20111         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
20112
20113 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20114
20115         [Shadow] Use setPseudo() instead of setShadowPseudoId().
20116         https://bugs.webkit.org/show_bug.cgi?id=101306
20117
20118         Reviewed by Kent Tamura.
20119
20120         We would like to remove setShadowPseudoId() and use setPseudo() instead, since ShadowDOM spec now has
20121         'pseudo' attribute.
20122
20123         We change all setShadowPseudoId() invocation to setPseudo() invocation. Also, when AtomicString is not
20124         constructed with AtomicStringFromLiteral, we use it.
20125
20126         No new tests, refactoring.
20127
20128         * WebCore.exp.in:
20129         * dom/Element.cpp:
20130         * dom/Element.h:
20131         (Element):
20132         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
20133         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
20134         * html/ColorInputType.cpp:
20135         (WebCore::ColorInputType::createShadowSubtree):
20136         * html/HTMLTextAreaElement.cpp:
20137         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
20138         * html/RangeInputType.cpp:
20139         (WebCore::RangeInputType::createShadowSubtree):
20140         * html/TextFieldInputType.cpp:
20141         (WebCore::TextFieldInputType::createShadowSubtree):
20142         (WebCore::TextFieldInputType::updatePlaceholderText):
20143         * html/ValidationMessage.cpp:
20144         (WebCore::ValidationMessage::buildBubbleTree):
20145         * html/shadow/DateTimeEditElement.cpp:
20146         (WebCore::DateTimeEditBuilder::visitLiteral):
20147         (WebCore::DateTimeEditElement::DateTimeEditElement):
20148         * html/shadow/DateTimeFieldElement.cpp:
20149         (WebCore::DateTimeFieldElement::initialize):
20150         * html/shadow/DateTimeFieldElement.h:
20151         (DateTimeFieldElement):
20152         * html/shadow/PickerIndicatorElement.cpp:
20153         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
20154         * html/track/TextTrackCue.cpp:
20155         (WebCore::TextTrackCueBox::TextTrackCueBox):
20156         (WebCore::TextTrackCue::updateDisplayTree):
20157         * testing/Internals.cpp:
20158         (WebCore::Internals::setShadowPseudoId):
20159
20160 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20161
20162         Web Inspector: [Canvas] Save CanvasGradient objects state for a replay
20163         https://bugs.webkit.org/show_bug.cgi?id=101432
20164
20165         Reviewed by Pavel Feldman.
20166
20167         Save CanvasGradient resource state for a subsequent replay. The gradient's state is modified by the gradient.addColorStop() call.
20168
20169         Test: inspector/profiler/canvas2d/canvas2d-gradient-capturing.html
20170
20171         * inspector/InjectedScriptCanvasModuleSource.js:
20172         (.):
20173
20174 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20175
20176         Web Inspector: [Regression] Snippets evaluations should not appear in Sources tab of navigator.
20177         https://bugs.webkit.org/show_bug.cgi?id=101354
20178
20179         Reviewed by Pavel Feldman.
20180
20181         * inspector/front-end/DebuggerScriptMapping.js:
20182         * inspector/front-end/NetworkUISourceCodeProvider.js:
20183         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
20184         * inspector/front-end/Script.js:
20185         (WebInspector.Script.prototype.isSnippet):
20186         * inspector/front-end/ScriptSnippetModel.js:
20187         (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
20188
20189 2012-11-07  Dan Carney  <dcarney@google.com>
20190
20191         [V8] Cleanup V8DOMWrapper::getCachedWrapper
20192         https://bugs.webkit.org/show_bug.cgi?id=100853
20193
20194         Reviewed by Adam Barth.
20195
20196         Slight cleanup. Removed redundant branch.
20197
20198         No new tests. No change in functionality.
20199
20200         * bindings/v8/V8DOMWrapper.h:
20201         (WebCore::V8DOMWrapper::getCachedWrapper):
20202
20203 2012-11-07  Simon Hausmann  <simon.hausmann@digia.com>
20204
20205         [Qt] Unreviewed trivial build fix adapting to QtMultimedia API changes
20206
20207         The QtMultimedia namespace is now called QMultimedia and
20208         QtMultimedia::MetaData is now QMediaMetaData.
20209
20210         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
20211         (WebCore::MediaPlayerPrivateQt::supportsType):
20212         (WebCore::MediaPlayerPrivateQt::totalBytes):
20213
20214 2012-11-07  Christophe Dumez  <christophe.dumez@intel.com>
20215
20216         Add replaceWithLiteral() method to WTF::String
20217         https://bugs.webkit.org/show_bug.cgi?id=101257
20218
20219         Reviewed by Benjamin Poulain.
20220
20221         Substitute String::replace() calls by String::replaceWithLiteral() where
20222         adequate, for efficiency.
20223
20224         No new tests, no behavior change.
20225
20226         * dom/Node.cpp:
20227         (WebCore::Node::showNode):
20228         * editing/EditingStyle.cpp:
20229         (WebCore::StyleChange::extractTextStyles):
20230         * editing/MarkupAccumulator.cpp:
20231         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
20232         * html/HTMLAnchorElement.cpp:
20233         (WebCore::HTMLAnchorElement::setSearch):
20234         * loader/FormSubmission.cpp:
20235         (WebCore::appendMailtoPostFormDataToURL):
20236         * platform/network/soup/ProxyResolverSoup.cpp:
20237         (soupProxyResolverWkSetProperty):
20238         * plugins/PluginView.cpp:
20239         (WebCore::makeURL):
20240         * rendering/InlineTextBox.cpp:
20241         (WebCore::InlineTextBox::showBox):
20242         * xml/XSLTProcessor.cpp:
20243         (WebCore::transformTextStringToXHTMLDocumentString):
20244
20245 2012-11-07  Kenneth Rohde Christiansen  <kenneth@webkit.org>
20246
20247         Remove support for "desktop-width" in the viewport meta tag
20248         https://bugs.webkit.org/show_bug.cgi?id=101217
20249
20250         Reviewed by Gyuyoung Kim.
20251
20252         This has been removed from the CSS Device Adaptation spec, and
20253         should be safe to remove as it is not documented anywhere (neither
20254         in blog posts).
20255
20256         The viewport meta should only support the legacy features.
20257
20258         * dom/ViewportArguments.cpp:
20259         (WebCore::computeViewportAttributes):
20260         (WebCore::findSizeValue):
20261         (WebCore::findScaleValue):
20262         (WebCore::findUserScalableValue):
20263         * dom/ViewportArguments.h:
20264
20265 2012-11-07  Dominik Röttsches  <dominik.rottsches@intel.com>
20266
20267         [EFL] Fix execution of exif-orientation-image-document.html on EFL Wk2 bot
20268         https://bugs.webkit.org/show_bug.cgi?id=101343
20269
20270         Reviewed by Kenneth Rohde Christiansen.
20271
20272         Add Cairo to the list of backends that support shouldRespectImageOrientation.
20273
20274         No new tests, fixes exif-orientation-image-document.html.
20275
20276         * rendering/RenderObject.cpp:
20277         (WebCore::RenderObject::shouldRespectImageOrientation):
20278
20279 2012-11-06  Yury Semikhatsky  <yurys@chromium.org>
20280
20281         Console not displaying all properties of an Object once native Constructor overwritten
20282         https://bugs.webkit.org/show_bug.cgi?id=101320
20283
20284         Reviewed by Pavel Feldman.
20285
20286         Use Object instance from {}.constructor when formatting inspector messages in the
20287         injected script. Otherwise inspected page may overwrite Object value and break inspector.
20288
20289         Test: inspector/console/console-Object-overwritten.html
20290
20291         * inspector/InjectedScriptSource.js:
20292
20293 2012-11-06  Keishi Hattori  <keishi@webkit.org>
20294
20295         Implement month picking to calendar picker
20296         https://bugs.webkit.org/show_bug.cgi?id=101333
20297
20298         Reviewed by Kent Tamura.
20299
20300         This adds month picker mode to CalendarPicker.
20301
20302         No new tests. Tests will be added later when this feature is enabled in DRT.
20303
20304         * Resources/pagepopups/calendarPicker.css:
20305         (.month-mode .day): Remove rounded corners when in month mode.
20306         * Resources/pagepopups/calendarPicker.js:
20307         (Month.createFromToday): Creates month containing today.
20308         (CalendarPicker): Set this.selectionConstructor to Day or Month depending on the mode. Create DayTables or MonthPickerDaysTable depending on the mode.
20309         (CalendarPicker.prototype.handleToday):
20310         (CalendarPicker.prototype._layoutButtons):
20311         (DaysTable.prototype._renderMonth): Set element.dataset.monthValue for all date nodes.
20312         (DaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20313         (DaysTable.prototype.selectRange): Selects a day.
20314         (DaysTable.prototype.selectRangeAndShowEntireRange): Same as selectRange.
20315         (DaysTable.prototype._selectRangeContainingNode):
20316         (DaysTable.prototype._rangeForNode): Returns Day for node.
20317         (DaysTable.prototype.startDate): Start datetime of visible date range. This value is inclusive.
20318         (DaysTable.prototype.endDate): End datetime of visible date range. This value is exclusive.
20319         (DaysTable.prototype._handleKey):
20320         (MonthPickerDaysTable):
20321         (MonthPickerDaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20322         (MonthPickerDaysTable.prototype.selectRange): Selects month. If month is not visible, navigates to that month.
20323         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects month. Navigates to the month.
20324         (MonthPickerDaysTable.prototype._rangeForNode): Returns Month for node.
20325         (MonthPickerDaysTable.prototype._handleKey): Arrow keys simply move the selection forwards or backwards.
20326
20327 2012-11-06  Dan Beam  <dbeam@chromium.org>
20328
20329         Enable REQUEST_AUTOCOMPLETE for chromium port
20330         https://bugs.webkit.org/show_bug.cgi?id=101376
20331
20332         Reviewed by Adam Barth.
20333
20334         Added a runtime enabled feature to control whether HTMLFormElement#requestAutocomplete is visible from JavaScript.
20335
20336         * bindings/generic/RuntimeEnabledFeatures.cpp:
20337         (WebCore):
20338         * bindings/generic/RuntimeEnabledFeatures.h:
20339         (RuntimeEnabledFeatures):
20340
20341         Added a binding from RuntimeEnabledFeatures that triggers [V8EnabledAtRuntime=requestAutocomplete].
20342
20343         (WebCore::RuntimeEnabledFeatures::requestAutocompleteEnabled):
20344
20345         Added a getter to WebCore to ask whether the runtime flag requestAutocomplete is on.
20346
20347         (WebCore::RuntimeEnabledFeatures::setRequestAutocompleteEnabled):
20348
20349         Added a setter to WebCore to affect the runtime flag requestAutocomplete.
20350
20351         * html/HTMLFormElement.idl:
20352
20353         Wrapped commonly grouped features in an #if defined(ENABLED_REQUEST_AUTOCOMPLETE) block and added [V8EnableAtRuntime]
20354         so these features can be changed with a command line switch in the chromium port.
20355
20356 2012-11-06  Adam Barth  <abarth@webkit.org>
20357
20358         [V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
20359         https://bugs.webkit.org/show_bug.cgi?id=101422
20360
20361         Reviewed by Kentaro Hara.
20362
20363         This patch is another incremental step towards the patch in Bug 10110.
20364         In this step, we unify setJSWrapperForDOMObject and
20365         setJSWrapperForDOMNode.
20366
20367         * bindings/scripts/CodeGeneratorV8.pm:
20368         (GenerateHeader):
20369         (GenerateNormalAttrGetter):
20370         (GenerateConstructorCallback):
20371         (GenerateNamedConstructorCallback):
20372         (GenerateToV8Converters):
20373         * bindings/scripts/test/V8/V8Float64Array.h:
20374         (WebCore::V8Float64Array::wrap):
20375         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20376         (WebCore::V8TestActiveDOMObject::wrap):
20377         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20378         (WebCore::V8TestCustomNamedGetter::wrap):
20379         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20380         (WebCore::V8TestEventConstructor::wrap):
20381         * bindings/scripts/test/V8/V8TestEventTarget.h:
20382         (WebCore::V8TestEventTarget::wrap):
20383         * bindings/scripts/test/V8/V8TestException.h:
20384         (WebCore::V8TestException::wrap):
20385         * bindings/scripts/test/V8/V8TestInterface.h:
20386         (WebCore::V8TestInterface::wrap):
20387         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20388         (WebCore::V8TestMediaQueryListListener::wrap):
20389         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20390         (WebCore::V8TestNamedConstructor::wrap):
20391         * bindings/scripts/test/V8/V8TestNode.cpp:
20392         (WebCore::V8TestNode::constructorCallback):
20393         (WebCore::V8TestNode::wrapSlow):
20394         * bindings/scripts/test/V8/V8TestObj.cpp:
20395         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20396         * bindings/scripts/test/V8/V8TestObj.h:
20397         (WebCore::V8TestObj::wrap):
20398         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20399         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20400         * bindings/v8/DOMDataStore.cpp:
20401         (WebCore::DOMDataStore::current):
20402         * bindings/v8/DOMDataStore.h:
20403         (WebCore::DOMDataStore::get):
20404         (DOMDataStore):
20405         * bindings/v8/V8DOMWrapper.cpp:
20406         * bindings/v8/V8DOMWrapper.h:
20407         (V8DOMWrapper):
20408         (WebCore::V8DOMWrapper::setJSWrapperPrivate):
20409         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20410         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20411         (WebCore::v8HTMLImageElementConstructorCallback):
20412
20413 2012-11-06  Ken Buchanan  <kenrb@chromium.org>
20414
20415         Crash due to column span under button element
20416         https://bugs.webkit.org/show_bug.cgi?id=101402
20417
20418         Reviewed by Abhishek Arya.
20419
20420         When there is a column-spanning child of a RenderButton
20421         splitBlocks() must split the RenderButton as well as its
20422         only permitted direct child, the anonymous block referenced
20423         by m_inner. A crash was occurring because splitBlocks()
20424         calls addChildIgnoringAnonymousColumnBlocks() to add the
20425         cloned m_inner to the cloned RenderButton, which meant the
20426         m_inner for the cloned RenderButton was not being set even
20427         though a child was being added. This violates state
20428         assumptions in the RenderButton code.
20429
20430         This patch prevents any descendants of RenderButton from
20431         spanning columns. Also, it adds a precautionary check in
20432         RenderButton::removeChild() to mitigate problems if similar
20433         state problems are found in future.
20434
20435         * rendering/RenderBlock.cpp:
20436         (WebCore::RenderBlock::containingColumnsBlock):
20437         * rendering/RenderButton.cpp:
20438         (WebCore::RenderButton::removeChild):
20439
20440 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
20441
20442         [Shadow] Pseudo custom-elements should start with 'x-'.
20443         https://bugs.webkit.org/show_bug.cgi?id=100919
20444
20445         Reviewed by Dimitri Glazkov.
20446
20447         Pseuco custom-elements should start with 'x-'. 'Pseudo' starting with '-webkit-' should work
20448         only in UserAgent ShadowDOM. If it's used in Author ShadowDOM, it should not work.
20449
20450         Test: fast/dom/shadow/pseudo-attribute-rendering.html
20451
20452         * css/SelectorChecker.cpp:
20453         (WebCore::SelectorChecker::checkSelector): Added ShadowRoot type check.
20454
20455 2012-11-06  Chris Evans  <cevans@google.com>
20456
20457         Re-order variables in BidiRun and LayoutState
20458         https://bugs.webkit.org/show_bug.cgi?id=100173
20459
20460         Reviewed by Eric Seidel.
20461
20462         The variable re-ordering and use of bitfields for bools has two benefits:
20463         1) Size reduction. sizeof(BidiRun) goes down from 48 to 40 bytes on 64-bit. This is achieved by removing a bool member variable from BidiRun and packing it together with other bools in the BidiCharacterRun base class.
20464         2) Security improvement. We have a lot of use-after-free in the RenderObject hierarchy, and the RenderArena class protects us from a lot of trouble by ensuring that objects of arbitrary type cannot be overlayed on top of freed RenderObjects. This change additionally makes sure that non-virtual RenderArena allocated objects do not have member variables which fully overlap the freed vtable pointer. This leaves re-used vtable pointers always pointing to either a valid vtable or an invalid address due to the freelist high-bit poisoning.
20465
20466         This change is exclusively about size savings; it is performance neutral as you would expect, including on Parser/html5-full-render.html
20467
20468         * platform/text/BidiResolver.h:
20469         (WebCore::BidiCharacterRun::BidiCharacterRun): impact from re-ordering members.
20470         (BidiCharacterRun): provide an efficiently packed bit of storage for BidiRun subclass to use, and re-order members to place bools adjacent.
20471         * rendering/BidiRun.h:
20472         (WebCore::BidiRun::BidiRun): use base class' efficiently packed bit storage for m_hasHyphen.
20473         (BidiRun): m_hasHyphen is now stored in the base class.
20474         * rendering/LayoutState.cpp:
20475         (WebCore::LayoutState::LayoutState):
20476         * rendering/LayoutState.h:
20477         (WebCore::LayoutState::LayoutState): impact from re-ordering members.
20478         (LayoutState): re-order members to place bools adjacently.
20479
20480 2012-11-06  Kent Tamura  <tkent@chromium.org>
20481
20482         [Chromium-win] Refactor date/time format conversion code in LocaleWin
20483         https://bugs.webkit.org/show_bug.cgi?id=101329
20484
20485         Reviewed by Kentaro Hara.
20486
20487         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
20488         similar jobs with different code. We can merge them into one function.
20489
20490         As for the date format conversion, we have tokenized a format string and
20491         stored token objects into a vector. We skip token object generation and
20492         generate a LDML-compliant pattern string during parsing.
20493
20494         No new tests. This should make no behavior changes and
20495         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
20496
20497         * platform/text/win/LocaleWin.cpp:
20498         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
20499         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
20500         convertWindowsTimeFormatToLDML.
20501         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
20502         (WebCore::convertWindowsDateTimeFormat):
20503         Renamed from parseDateFormat, and supports time format symbols.
20504         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
20505         (WebCore::LocaleWin::monthFormat): Ditto.
20506         (WebCore::LocaleWin::timeFormat): Ditto.
20507         (WebCore::LocaleWin::shortTimeFormat): Ditto.
20508         * platform/text/win/LocaleWin.h:
20509         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
20510
20511 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20512
20513         Make Document::renderer faster by using the cached ptr for RenderView
20514         https://bugs.webkit.org/show_bug.cgi?id=101409
20515
20516         Reviewed by Eric Seidel.
20517
20518         In Bug 101277 I made Document::renderView() just return m_renderView instead
20519         of casting the result of renderer(). While this made renderView() cheaper it
20520         makes more sense to just make renderer() faster for Document pointers and
20521         go back to the out of line method in RenderView.h because lots of places in
20522         the code do document()->renderer().
20523
20524         No new tests, this is just a refactor.
20525
20526         * dom/Document.h:
20527         (WebCore::Document::renderer):
20528         * rendering/RenderView.h:
20529         (WebCore::Document::renderView):
20530
20531 2012-11-06  Adam Barth  <abarth@webkit.org>
20532
20533         [V8] neuterBinding should remember the type of its argument
20534         https://bugs.webkit.org/show_bug.cgi?id=101413
20535
20536         Reviewed by Kentaro Hara.
20537
20538         This is a small part of the patch in
20539         https://bugs.webkit.org/show_bug.cgi?id=101110 that we can land
20540         separately to try to tease out what is causing the memory regression.
20541
20542         * bindings/v8/SerializedScriptValue.cpp:
20543         (WebCore):
20544         (WebCore::neuterBinding):
20545
20546 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20547
20548         Clean up which storage cookie jar functions use
20549         https://bugs.webkit.org/show_bug.cgi?id=101395
20550
20551         Reviewed by Brady Eidson.
20552
20553         * WebCore.exp.in:
20554         * platform/mac/WebCoreSystemInterface.h:
20555         * platform/mac/WebCoreSystemInterface.mm:
20556         Updated for two new WKSI functions.
20557
20558         * platform/CookieJar.h: Added explanatory comments.
20559
20560         * platform/mac/CookieJar.mm:
20561         (WebCore::cookies): Removed fallback on NSHTTPCookieStorage, the WKSI function
20562         already implements it.
20563         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20564         (WebCore::setCookies): Ditto.
20565         (WebCore::cookiesEnabled): Ditto.
20566         (WebCore::getRawCookies): Ditto.
20567         (WebCore::deleteCookie): Ditto.
20568         (WebCore::getHostnamesWithCookies): This function used to look at NSHTTPCookieStorage
20569         exclusively. While it makes sense to bypass private storage session, default storage
20570         session (currently only used for testing on Mac) is never OK to bypass. Changed to
20571         use a WKSI function that supports both.
20572         (WebCore::deleteCookiesForHostname): Ditto.
20573         (WebCore::deleteAllCookies): Ditto.
20574
20575         * platform/network/cf/CookieJarCFNet.cpp:
20576         (WebCore::getHostnamesWithCookies):
20577         (WebCore::deleteCookiesForHostname):
20578         (WebCore::deleteAllCookies):
20579         Updated to match Foundation, so now these functions bypass private session.
20580
20581         * platform/network/cf/CookieStorageCFNet.cpp:
20582         (WebCore::currentCFHTTPCookieStorage): Updated a comment.
20583         (WebCore::defaultCFHTTPCookieStorage):  Added a function that returns cookie storage
20584         for non-private session (or null if that would be an NSHTTPCookieStorage).        
20585         (WebCore::startObservingCookieChanges): We do not want to observe private cookies
20586         here, and we certainly don't want a mismatch between start/stop due to private
20587         browsing mode changes.
20588         (WebCore::stopObservingCookieChanges): Ditto.
20589
20590         * platform/network/cf/CookieStorageCFNet.h: Added defaultCFHTTPCookieStorage().
20591
20592 2012-11-06  Huang Dongsung  <luxtella@company100.net>
20593
20594         Build fix. r133601 broke the Windows build.
20595         https://bugs.webkit.org/show_bug.cgi?id=101404
20596
20597         Reviewed by Noam Rosenthal.
20598
20599         Only static const integral data members can be initialized within a class in the
20600         Windows, so we initialize static const double date members out of the class.
20601
20602         * platform/graphics/texmap/TextureMapper.cpp:
20603         (BitmapTexturePool):
20604         (WebCore):
20605
20606 2012-11-06  Simon Fraser  <simon.fraser@apple.com>
20607
20608         -webkit-background-clip:text produces artifacts when applied to the body and the browser is resized
20609         https://bugs.webkit.org/show_bug.cgi?id=89287
20610
20611         Reviewed by Beth Dakin.
20612
20613         If the body had -webkit-background-clip: text, we'd fail to paint
20614         anything behind it, so would see garbage pixels.
20615         
20616         Fix by having RenderView::paintBoxDecorations() check for a background-clip of "text"
20617         on the renderer that paints the root background.
20618         
20619         Added some new pixel tests for combinations of html and body transform
20620         and backgrounds; earlier versions of the patch broke some of these tests.
20621
20622         Tests: fast/backgrounds/background-clip-text-on-body.html
20623                fast/backgrounds/transformed-body-background.html
20624                fast/backgrounds/transformed-body-html-background.html
20625                fast/backgrounds/transformed-html-body-background.html
20626
20627         * rendering/RenderView.cpp:
20628         (WebCore::rendererObscuresBackground): Broke up the single condition
20629         into early 'false' returns when possible. We need to also check whether
20630         the renderer that actually paints the background (which might be the body)
20631         will fill it; background-clip: text does not.
20632         (WebCore::RenderView::paintBoxDecorations): Rather than checking firstChild(),
20633         actually check the root renderer, so that we can reliably get to the renderer
20634         that mains the root background.
20635
20636 2012-11-06  Stephen White  <senorblanco@chromium.org>
20637
20638         Implement save and restore for a bunch of InternalSettings state
20639         https://bugs.webkit.org/show_bug.cgi?id=101394
20640
20641         Reviewed by Dirk Pranke.
20642
20643         In http://trac.webkit.org/changeset/133399, I resolved a bunch of 
20644         flaky tests by saving and restoring the InternalSettings state
20645         EnableCompositingForFixedPosition.  On a hunch, I git grepped for all
20646         internal settings state which is being set by layout tests but not
20647         saved and restored.  It turns out there about 15 calls.
20648
20649         This patch takes care of five of them, mostly compositing-related.
20650         The others I was either not sure about, or were already at least
20651         being reset to known values by the testing harness.
20652
20653         Hopefully this will alleviate some further test flakiness.
20654
20655         * testing/InternalSettings.cpp:
20656         * testing/InternalSettings.h:
20657
20658 2012-11-06  KyungTae Kim  <ktf.kim@samsung.com>
20659
20660         Fix build warning in RenderLayer.cpp caused by r133628
20661         https://bugs.webkit.org/show_bug.cgi?id=101401
20662
20663         Reviewed by Simon Fraser.
20664
20665         The static function WebCore::frameViewFromLayer is only used when USE(ACCELERATED_COMPOSITING),
20666         so define it only that case for removing -Wunused-function warning
20667
20668         * rendering/RenderLayer.cpp:
20669         (WebCore):
20670
20671 2012-11-06  Hans Muller  <hmuller@adobe.com>
20672
20673         [CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order
20674         https://bugs.webkit.org/show_bug.cgi?id=100763
20675
20676         Reviewed by Darin Adler.
20677
20678         The ExclusionPolygon's internal logic, notably getVertexIntersectionVertices(),
20679         assumes that ExclusionPolygonEdge vertices are stored in clockwise order.
20680         If this is not true, then we construct the polygon's edges in reverse.
20681
20682         To determine if the vertices are in clockwise order, we compare the slope
20683         of the line between the top,left vertex and its previous vertex, with the
20684         the slope of the line of vertices before and after the top,left vertex.
20685         If the slope of the latter is greater, then top,left vertex is located
20686         to its left, and the vertices are clockwise.
20687
20688         Test: fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html
20689
20690         * rendering/ExclusionPolygon.cpp:
20691         (WebCore::determinant): Used to decide if the min vertex is on the left side of the line that passes through its adjacent vertices.
20692         (WebCore::ExclusionPolygon::ExclusionPolygon): If the polygon's vertices are specified in counterclockwise order, construct the edges in reverse.
20693         (WebCore::appendIntervalX): Made this an inline since it was only defined as a function for the sake of clarity.
20694
20695 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
20696
20697         [BlackBerry] Update BB10 form theme.
20698         https://bugs.webkit.org/show_bug.cgi?id=100760
20699
20700         Reviewed by Rob Buis.
20701
20702         RIM PR 238123
20703         Internal Reviewed by Chris Hutten-Czapski
20704         BB10 selection theme use slice image function to draw selection button,
20705         any border-radius setting other than 0 will make the button corner
20706         clipped. Always set button border-radius: 0 for BB10 theme.
20707
20708         * css/themeBlackBerry.css:
20709         (select[size][multiple]):
20710         (select[size="1"]):
20711
20712 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20713
20714         Remove branch from inside RenderObject::view now that renderer() is more expensive
20715         https://bugs.webkit.org/show_bug.cgi?id=101277
20716
20717         Reviewed by Eric Seidel.
20718
20719         It was observed in Bug 100057 that calling renderer() repeatedly now that it has a branch
20720         can be a performance regression. Now that we no longer keep a separate pointer for rare data
20721         in Document, we can use that space for a pointer to the RenderView making RenderObject::view()
20722         faster and removing the branch.
20723
20724         This is a 1% improvement on Parser/html5-full-render.html
20725
20726         This also cleans up the code because it turns out we don't need to have RenderObject::view() in
20727         RenderView.h because we can just call Document::renderView() and not do toRenderView. This makes
20728         it easier to find this method as it exists in the right header file now.
20729
20730         No new tests, this is just a refactor.
20731
20732         * WebCore.exp.in: Remove export of Document::renderView since it's inline now.
20733         * dom/Document.cpp:
20734         (WebCore::Document::Document):
20735         (WebCore::Document::setRenderer):
20736         (WebCore):
20737         * dom/Document.h:
20738         (WebCore::Document::renderView):
20739         (Document):
20740         * rendering/RenderObject.h:
20741         (WebCore::RenderObject::view):
20742         * rendering/RenderView.h:
20743         (WebCore):
20744
20745 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20746
20747         Unreviewed, rolling out r133526.
20748         http://trac.webkit.org/changeset/133526
20749         https://bugs.webkit.org/show_bug.cgi?id=101388
20750
20751         May have caused 15% memory regression in Chromium (Requested
20752         by jsbell|gardener on #webkit).
20753
20754         * UseV8.cmake:
20755         * WebCore.gypi:
20756         * bindings/scripts/CodeGeneratorV8.pm:
20757         (GenerateHeader):
20758         (GenerateNormalAttrGetter):
20759         (GenerateConstructorCallback):
20760         (GenerateNamedConstructorCallback):
20761         (GenerateToV8Converters):
20762         (GetDomMapFunction):
20763         (GetDomMapName):
20764         * bindings/scripts/test/V8/V8Float64Array.h:
20765         (WebCore::V8Float64Array::wrap):
20766         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20767         (WebCore::V8TestActiveDOMObject::wrap):
20768         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20769         (WebCore::V8TestCustomNamedGetter::wrap):
20770         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20771         (WebCore::V8TestEventConstructor::wrap):
20772         * bindings/scripts/test/V8/V8TestEventTarget.h:
20773         (WebCore::V8TestEventTarget::wrap):
20774         * bindings/scripts/test/V8/V8TestException.h:
20775         (WebCore::V8TestException::wrap):
20776         * bindings/scripts/test/V8/V8TestInterface.h:
20777         (WebCore::V8TestInterface::wrap):
20778         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20779         (WebCore::V8TestMediaQueryListListener::wrap):
20780         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20781         (WebCore::V8TestNamedConstructor::wrap):
20782         * bindings/scripts/test/V8/V8TestNode.cpp:
20783         (WebCore::V8TestNode::constructorCallback):
20784         (WebCore::V8TestNode::wrapSlow):
20785         * bindings/scripts/test/V8/V8TestObj.cpp:
20786         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20787         * bindings/scripts/test/V8/V8TestObj.h:
20788         (WebCore::V8TestObj::wrap):
20789         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20790         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20791         * bindings/v8/DOMDataStore.cpp:
20792         (WebCore::DOMDataStore::DOMDataStore):
20793         (WebCore::DOMDataStore::~DOMDataStore):
20794         (WebCore::DOMDataStore::current):
20795         (WebCore::DOMDataStore::reportMemoryUsage):
20796         * bindings/v8/DOMDataStore.h:
20797         (WebCore::DOMDataStore::domNodeMap):
20798         (WebCore::DOMDataStore::domObjectMap):
20799         (DOMDataStore):
20800         * bindings/v8/DOMWrapperMap.h:
20801         (WebCore):
20802         (DOMWrapperMap):
20803         (WebCore::DOMWrapperMap::~DOMWrapperMap):
20804         (WebCore::DOMWrapperHashMap::remove):
20805         * bindings/v8/DOMWrapperWorld.h:
20806         * bindings/v8/IntrusiveDOMWrapperMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20807         (WebCore):
20808         (IntrusiveDOMWrapperMap):
20809         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
20810         * bindings/v8/ScriptProfiler.cpp:
20811         * bindings/v8/SerializedScriptValue.cpp:
20812         (WebCore::neuterBinding):
20813         * bindings/v8/V8DOMMap.cpp: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20814         (WebCore):
20815         (WebCore::getDOMNodeMap):
20816         (WebCore::getDOMObjectMap):
20817         * bindings/v8/V8DOMMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20818         (WebCore):
20819         * bindings/v8/V8DOMWindowShell.cpp:
20820         * bindings/v8/V8DOMWrapper.cpp:
20821         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
20822         (WebCore):
20823         * bindings/v8/V8DOMWrapper.h:
20824         (V8DOMWrapper):
20825         (WebCore::V8DOMWrapper::getCachedWrapper):
20826         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20827         * bindings/v8/V8GCController.cpp:
20828         * bindings/v8/V8NPObject.cpp:
20829         * bindings/v8/WorkerContextExecutionProxy.cpp:
20830         * bindings/v8/WorkerScriptController.cpp:
20831         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20832         (WebCore::v8HTMLImageElementConstructorCallback):
20833
20834 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20835
20836         Some cookie code cleanup
20837         https://bugs.webkit.org/show_bug.cgi?id=101375
20838
20839         Reviewed by Dan Bernstein.
20840
20841         * platform/CookieJar.h: Fixed style. Grouped functions by which storage they operate
20842         on in Mac port, but didn't add explanatory comments yet, because this is different
20843         in some ports.
20844
20845         * platform/mac/CookieJar.mm:
20846         (WebCore): Removed special code for isHTTPOnly, it's present in Foundation in all
20847         supported OS X versions.
20848         (WebCore::filterCookies): Use -isHTTPOnly directly.
20849         (WebCore::cookies): Get rid of a variable for URL, implicit conversion works just as well.
20850         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20851         (WebCore::setCookies): Assert that no more than one cookie was created from one
20852         Set-Cookie header, document.cookie can only be used to set one cookie at a time.
20853         (WebCore::getRawCookies): Removed useless local variables.
20854
20855         * platform/network/CookieStorage.h: Removed an unneeded include, clarified a comment.
20856
20857         * platform/network/HTTPHeaderMap.h: Added a FIXME.
20858
20859 2012-11-06  John Griggs  <jgriggs@rim.com>
20860
20861         Implement MediaPlayerPrivate::didLoadingProgress for BlackBerry platform
20862         https://bugs.webkit.org/show_bug.cgi?id=100378
20863
20864         Reviewed by Eric Carlson.
20865
20866         Implement this method for BlackBerry platform.
20867
20868         New test: LayoutTests/media/progress-events-generated-correctly.html
20869
20870         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
20871         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
20872         (WebCore::MediaPlayerPrivate::didLoadingProgress):
20873         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
20874         (MediaPlayerPrivate):
20875
20876 2012-11-06  Adam Barth  <abarth@webkit.org>
20877
20878         DOMImplementation should use ScriptWrappable
20879         https://bugs.webkit.org/show_bug.cgi?id=101279
20880
20881         Reviewed by Eric Seidel.
20882
20883         This patch makes DOMImplementation ScriptWrappable. Both the V8 and JSC
20884         bindings automatically detect the presence of this base class and use
20885         it to optimize getting and setting JavaScript wrappers.
20886
20887         This patch is a 23% progression on Bindings/document-implementation for
20888         the V8 bindings and a 69% progression for the JSC bindings.
20889
20890         * dom/DOMImplementation.h:
20891
20892 2012-11-06  Benjamin Poulain  <benjamin@webkit.org>
20893
20894         Speed up TransformationMatrix::multiply() on modern ARM
20895         https://bugs.webkit.org/show_bug.cgi?id=101084
20896
20897         Reviewed by Gavin Barraclough.
20898
20899         The main improvements are:
20900         -Store the full source matrix in the registers d16 to d31. This way we avoid going
20901          back and forth to memory to use the operands.
20902          Since the full matrix is in register, we can also directly modify the memory of m_matrix,
20903          we no longer need the temporary matrix memcopied at the end.
20904         -Use of LoadMultiple and StoreMultiple to load-store the matrix parameters.
20905         -Use Multiply-Accumulate instead of VMUL followed by VADD. This half the number of instruction.
20906         -On regular ARMv7, using a loop to reuse the same code for each row also improve the performance.
20907
20908         Depending on the hardware, the new code takes 20% to 42% less time than the basic implementation.
20909
20910         * platform/graphics/transforms/TransformationMatrix.cpp:
20911         (WebCore::TransformationMatrix::multiply):
20912         * platform/graphics/transforms/TransformationMatrix.h:
20913         (TransformationMatrix):
20914
20915 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20916
20917         Unreviewed, rolling out r133529 and r133562.
20918         http://trac.webkit.org/changeset/133529
20919         http://trac.webkit.org/changeset/133562
20920         https://bugs.webkit.org/show_bug.cgi?id=101371
20921
20922         Caused 15% memory regression on Chromium page cyclers
20923         (Requested by jsbell|gardener on #webkit).
20924
20925         * platform/text/LineBreakIteratorPoolICU.h:
20926         (WebCore::LineBreakIteratorPool::take):
20927         (WebCore::LineBreakIteratorPool::put):
20928         (LineBreakIteratorPool):
20929         * platform/text/TextBreakIterator.cpp:
20930         (WebCore::acquireLineBreakIterator):
20931         * platform/text/TextBreakIterator.h:
20932         (WebCore):
20933         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
20934         (WebCore::LazyLineBreakIterator::get):
20935         (WebCore::LazyLineBreakIterator::reset):
20936         (LazyLineBreakIterator):
20937         * platform/text/TextBreakIteratorICU.cpp:
20938         (WebCore::acquireLineBreakIterator):
20939         (WebCore::releaseLineBreakIterator):
20940         * platform/text/gtk/TextBreakIteratorGtk.cpp:
20941         (WebCore::setUpIterator):
20942         (WebCore::acquireLineBreakIterator):
20943         * platform/text/wince/TextBreakIteratorWinCE.cpp:
20944         (WebCore::acquireLineBreakIterator):
20945         * rendering/RenderBlockLineLayout.cpp:
20946         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
20947         * rendering/RenderText.cpp:
20948         (WebCore::RenderText::computePreferredLogicalWidths):
20949         * rendering/RenderText.h:
20950         (WebCore):
20951         * rendering/break_lines.cpp:
20952         (WebCore):
20953         (WebCore::isBreakableSpace):
20954         (WebCore::needsLineBreakIterator):
20955         (WebCore::nextBreakablePosition):
20956         (WebCore::nextBreakablePositionIgnoringNBSP):
20957         * rendering/break_lines.h:
20958         (WebCore):
20959         (WebCore::isBreakable):
20960
20961 2012-11-06  Peter Beverloo  <peter@chromium.org>
20962
20963         [Chromium] Enable the JavaScript i18n API for Android
20964         https://bugs.webkit.org/show_bug.cgi?id=101357
20965
20966         Reviewed by Adam Barth.
20967
20968         Remove the conditional dependency on the v8-i18n API. The library is now
20969         always available in a Chromium for Android checkout.
20970
20971         * WebCore.gyp/WebCore.gyp:
20972
20973 2012-11-06  Adam Barth  <abarth@webkit.org>
20974
20975         ScriptWrappable should work for more than just Node
20976         https://bugs.webkit.org/show_bug.cgi?id=101319
20977
20978         Reviewed by Eric Seidel.
20979
20980         This patch generalizes the inline cached wrapper code path to work with
20981         all subclasses of ScriptWrappable, not just Node.
20982
20983         * bindings/js/JSDOMBinding.h:
20984         (WebCore::setInlineCachedWrapper):
20985         (WebCore::getInlineCachedWrapper):
20986         (WebCore):
20987         (WebCore::clearInlineCachedWrapper):
20988         (WebCore::cacheWrapper):
20989         * bindings/js/JSNodeCustom.h:
20990
20991 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
20992
20993         [BlackBerry] Update BB10 form theme.
20994         https://bugs.webkit.org/show_bug.cgi?id=100760
20995
20996         Reviewed by Rob Buis.
20997
20998         Revert webkit/ce306dcc698199a6f7ce679daf0a30c25d3a3d43 slider theme
20999         change which break media control and vertical slider.
21000
21001         RIM PR 236993
21002         Internal Reviewed by Jeff Rogers.
21003
21004         * platform/blackberry/RenderThemeBlackBerry.cpp:
21005         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
21006         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
21007
21008 2012-11-06  Michael Saboff  <msaboff@apple.com>
21009
21010         canonicalizedTitle() shouldn't convert 8 bit title strings to 16 bit
21011         https://bugs.webkit.org/show_bug.cgi?id=101105
21012
21013         Reviewed by Darin Adler.
21014
21015         Turned canonicalizedTitle() into a templated function based on character type.
21016         Changed call in updateTitle() to check the bitness of the title string to call
21017         the right template flavor of canonicalizedTitle().
21018         Made supporting changes by adding displayBufferModifiedByEncoding(LChar*, ...)
21019         and made TextEncoding::displayBuffer() a templated function as well.
21020
21021         No new tests needed, as functionality is unchanged.
21022
21023         * dom/Document.cpp:
21024         (WebCore::canonicalizedTitle):
21025         (WebCore::Document::updateTitle):
21026         (WebCore::Document::displayBufferModifiedByEncodingInternal):
21027         * dom/Document.h:
21028         (WebCore::Document::displayBufferModifiedByEncoding):
21029         * platform/text/TextEncoding.h:
21030         (TextEncoding):
21031         (WebCore::TextEncoding::displayBuffer):
21032
21033 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21034
21035         Fix RenderGeometryMap assertion when layers are scrolled during layout
21036         https://bugs.webkit.org/show_bug.cgi?id=101292
21037
21038         Reviewed by Beth Dakin.
21039
21040         When we set RenderLayer scroll positions as part of layout, we don't want
21041         to update compositing layers right away. Updating compositing layers
21042         requires that the entire layer tree has been updated from renderers,
21043         so that the geometry of all RenderLayers can be trusted. When this state
21044         was violated, RenderGeometryMap asserts.
21045         
21046         Fix by bailing from updateCompositingLayersAfterScroll() if FrameView
21047         tells us that we're doing layout. A full update of the compositing layers
21048         will happen later anyway.
21049
21050         Test: compositing/geometry/geometry-map-scroll-during-layout-assertion.html
21051
21052         * rendering/RenderLayer.cpp:
21053         (WebCore::frameViewFromLayer):
21054         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
21055
21056 2012-11-06  Michael Saboff  <msaboff@apple.com>
21057
21058         quoteCSSString() always creates a 16 bit string
21059         https://bugs.webkit.org/show_bug.cgi?id=101004
21060
21061         Reviewed by Darin Adler.
21062
21063         Added a new templated helper based on character type from the logic of quoteCSSString() to process
21064         the argument string based on its native bitness.
21065
21066         Functionality covered by existing tests.
21067
21068         * css/CSSParser.cpp:
21069         (WebCore::quoteCSSStringInternal):
21070         (WebCore::quoteCSSString):
21071
21072 2012-11-06  Andras Becsi  <andras.becsi@digia.com>
21073
21074         [Qt][WK2] Fit-to-width broken on pages with viewport meta tag
21075         https://bugs.webkit.org/show_bug.cgi?id=99715
21076
21077         Reviewed by Jocelyn Turcotte.
21078
21079         Add a bool that indicates if the content had an explicit
21080         initial-scale in the viewport meta tag.
21081
21082         * dom/ViewportArguments.cpp:
21083         (WebCore::computeViewportAttributes):
21084         * dom/ViewportArguments.h:
21085         (ViewportAttributes):
21086
21087 2012-11-06  Mike West  <mkwst@chromium.org>
21088
21089         CSP 1.1: Tweak the script interface to match the spec.
21090         https://bugs.webkit.org/show_bug.cgi?id=101321
21091
21092         Reviewed by Adam Barth.
21093
21094        This patch brings WebKit in line with the changes made to the spec in
21095        https://dvcs.w3.org/hg/content-security-policy/rev/5a29424a37d4.
21096        Specifically, the following:
21097
21098        - Renamed 'document.SecurityPolicy' to 'document.securityPolicy'
21099        - Converted the following to read-only boolean attributes:
21100          - 'allowsEval'
21101          - 'allowsInlineScript'
21102          - 'allowsInlineStyle'
21103          - 'isActive'
21104
21105         These changes only have effect for ports with CSP_NEXT enabled.
21106
21107         Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinescript.html
21108                http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinestyle.html
21109
21110         * dom/Document.idl:
21111         * page/DOMSecurityPolicy.idl:
21112             Tweaking the IDL files to match the new definition of the
21113             functionlity in the spec.
21114
21115 2012-11-06  Andrey Lushnikov  <lushnikov@google.com>
21116
21117         Added console.clear() method
21118
21119         Web Inspector: add console.clear()
21120         https://bugs.webkit.org/show_bug.cgi?id=101021
21121
21122         Reviewed by Vsevolod Vlasov.
21123
21124         Adds native implementation of console.clear
21125
21126         Test: inspector/console/console-clear-function.html
21127
21128         * English.lproj/localizedStrings.js: Adds 'Console was cleared' string
21129         * inspector/ConsoleMessage.cpp:
21130         (WebCore::messageTypeValue): Adds ClearMessageType
21131         * inspector/Inspector.json:
21132         * inspector/InspectorConsoleAgent.cpp:
21133         (WebCore::InspectorConsoleAgent::addMessageToConsole):
21134         * inspector/front-end/ConsoleMessage.js:
21135         (WebInspector.ConsoleMessageImpl.prototype._formatMessage): Display strategy for "clear" message
21136         * inspector/front-end/ConsoleModel.js:
21137         * inspector/front-end/inspector.css:
21138         (.console-info): Adds style for the 'console was cleared' message
21139         * page/Console.cpp: backend binging for console.clear()
21140         (WebCore::Console::clear):
21141         (WebCore):
21142         * page/Console.h:
21143         (Console):
21144         * page/Console.idl: Adds 'clear' message to protocol
21145         * page/ConsoleTypes.h:
21146
21147 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21148
21149         Heap-buffer-overflow in WebCore::TextTrackCueList::add
21150         https://bugs.webkit.org/show_bug.cgi?id=101018
21151
21152         Reviewed by Eric Carlson.
21153
21154         Added an extra check to avoid using a negative array index when a cue
21155         is added to the beginning of the list.
21156
21157         Test case added to LayoutTests/media/track/track-add-remove-cue.html.
21158
21159         * html/track/TextTrackCueList.cpp:
21160         (WebCore::TextTrackCueList::add):
21161
21162 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21163
21164         Regression(r132681): Heap-use-after-free in WebCore::RenderTextTrackCue::layout
21165         https://bugs.webkit.org/show_bug.cgi?id=100981
21166
21167         Reviewed by Eric Carlson.
21168
21169         Fixing a TextTrackCue use after free bug. textTrackRemoveCues() needs to be called when
21170         an HTMLTrackElement is removed from an HTMLMediaElement so that references to
21171         TextTrackCues are removed from m_cueTree.
21172
21173         Test: media/track/track-remove-by-setting-innerHTML.html
21174
21175         * html/HTMLMediaElement.cpp:
21176         (WebCore::HTMLMediaElement::willRemoveTrack):
21177
21178 2012-10-23  Stephen White  <senorblanco@chromium.org>
21179
21180         [skia] Implement reference (url) filters on composited layers.
21181         https://bugs.webkit.org/show_bug.cgi?id=100142
21182
21183         Reviewed by James Robinson.
21184
21185         Covered by css3/filters/effect-reference-hw.html
21186
21187         * WebCore.gyp/WebCore.gyp:
21188         * WebCore.gypi:
21189         Add new files.
21190         * WebCore.xcodeproj/project.pbxproj:
21191         Mark FilterEffect.h as "private".
21192         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
21193         (WebCore::GraphicsLayerChromium::setFilters):
21194         Use the new SkImageFilter builder and setLayer() infrastructure, but
21195         only if there's a reference filter in the chain.
21196         * platform/graphics/filters/FEBlend.h:
21197         * platform/graphics/filters/FEColorMatrix.h:
21198         * platform/graphics/filters/FEGaussianBlur.h:
21199         * platform/graphics/filters/FELighting.h:
21200         * platform/graphics/filters/FEMorphology.h:
21201         * platform/graphics/filters/FilterEffect.h:
21202         (WebCore::FilterEffect::createImageFilter):
21203         Add createImageFilter() factory function for building SkImageFilters.
21204         * platform/graphics/filters/FilterOperation.h:
21205         (WebCore::FilterOperation::ReferenceFilterOperation::filterEffect):
21206         (WebCore::FilterOperation::ReferenceFilterOperation::setFilterEffect):
21207         Add a FilterEffect member to ReferenceFilterOperation, and accessors
21208         for it.
21209         * platform/graphics/filters/skia/FEBlendSkia.cpp:
21210         (WebCore::FEBlend::createImageFilter):
21211         Implement SkImageFilter building for FEBlend filter.
21212         * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
21213         (WebCore::createColorFilter):
21214         (WebCore::FEColorMatrix::platformApplySkia):
21215         Refactor creation of SkColorFilter from an FEColorMatrix filter.
21216         (WebCore::FEColorMatrix::createImageFilter):
21217         Implement SkImageFilter building for FEColorMatrix filter.
21218         * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
21219         (WebCore::FEGaussianBlur::createImageFilter):
21220         Implement SkImageFilter building for FEGaussianBlur filter.
21221         * platform/graphics/filters/skia/FELightingSkia.cpp:
21222         (WebCore::FELighting::createImageFilter):
21223         Implement SkImageFilter building for FELighting filters.
21224         * platform/graphics/filters/skia/FEMorphologySkia.cpp:
21225         (WebCore::FEMorphology::createImageFilter):
21226         Implement SkImageFilter building for FEMorphology filter.
21227         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp: Added.
21228         (WebCore::SkiaImageFilterBuilder::SkiaImageFilterBuilder):
21229         (WebCore::SkiaImageFilterBuilder::build):
21230         * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
21231         Implement new helper class for building an SkImageFilter DAG from
21232         a FilterEffect DAG.  Can also build from FilterOperations list.
21233         * rendering/FilterEffectRenderer.cpp:
21234         (WebCore::FilterEffectRenderer::build):
21235         When building FilterEffects from a reference filter, also store the
21236         generated DAG on the ReferenceFilterOperation itself.
21237         * rendering/RenderLayer.cpp:
21238         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
21239         Even when in composited mode, if there's a reference filter in the 
21240         chain, build the FilterEffect DAG from it.
21241
21242 2012-11-06  Max Feil  <mfeil@rim.com>
21243
21244         [BlackBerry] Automatically go fullscreen on video play
21245         https://bugs.webkit.org/show_bug.cgi?id=101100
21246
21247         Reviewed by Eric Carlson.
21248
21249         There is a requirement to have HTML5 video automatically enter
21250         fullscreen when a video starts playing (PR131774). This change
21251         implements this feature, with restrictions. The main restriction
21252         is adherence to WebKit's philosophy of only entering fullscreen
21253         due to a user gesture. This is important in order to avoid
21254         pop-up advertisements and other unwanted fullscreen content.
21255         One consequence of this is that video elements with the autoplay
21256         attribute will not automatically enter fullscreen.
21257
21258         Other caveats:
21259         - This feature applies only to "small screen" devices where
21260         automatically going fullscreen makes more sense.
21261         - Fullscreen will only be entered automatically when the
21262         video is played from the beginning (current time is zero).
21263         It is assumed that if the user is resuming play from a paused
21264         state and is not in fullscreen mode, then they exited fullscreen
21265         mode intentionally.
21266
21267         Test: platform/blackberry/media/video-automatic-fullscreen.html
21268
21269         * html/HTMLMediaElement.cpp:
21270         (WebCore::HTMLMediaElement::mediaPlayerEnterFullscreen):
21271         (WebCore):
21272         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreen):
21273         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted):
21274         * html/HTMLMediaElement.h:
21275         (HTMLMediaElement):
21276         * platform/graphics/MediaPlayer.h:
21277         (WebCore::MediaPlayerClient::mediaPlayerEnterFullscreen):
21278         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreen):
21279         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreenPermitted):
21280         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
21281         (WebCore::MediaPlayerPrivate::play):
21282         (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
21283         (WebCore::MediaPlayerPrivate::conditionallyGoFullscreenAfterPlay):
21284         (WebCore):
21285         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
21286         (MediaPlayerPrivate):
21287
21288 2012-11-06  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
21289
21290         [WK2][EFL][GTK] early return of checkSpellingOfString treats correct words as misspelled
21291         https://bugs.webkit.org/show_bug.cgi?id=101215
21292
21293         Reviewed by Gustavo Noronha Silva.
21294
21295         Save the misspelled location and length of the string to the default values (-1, 0)
21296         at the beginning of the checkSpellingOfString method.
21297         It assumes that the words are spelled correctly and early return of method doesn't
21298         cause assertions in findFirstMisspelling (WebCore/editing/TextCheckingHelper.cpp).
21299
21300         * platform/text/enchant/TextCheckerEnchant.cpp:
21301         (TextCheckerEnchant::checkSpellingOfString):
21302
21303 2012-11-06  Huang Dongsung  <luxtella@company100.net>
21304
21305         [TexMap] Remove unused textures in the texture pool.
21306         https://bugs.webkit.org/show_bug.cgi?id=100706
21307
21308         Reviewed by Noam Rosenthal.
21309
21310         Currently, we do not remove textures in the texture pool of
21311         TextureMapper. The texture pool is destroyed when TextureMapper is
21312         destroyed. It means the texture pool consumes texture memory until its
21313         destruction. This patch removes textures if the textures have been not
21314         used in 3 seconds as LayerTreeCoordinator manages UpdateAtlases.
21315
21316         Changing cache policy is not testable in layout tests.
21317
21318         * platform/graphics/texmap/TextureMapper.cpp:
21319         (WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry):
21320         (WebCore::BitmapTexturePoolEntry::markUsed):
21321         (WebCore::BitmapTexturePoolEntry::compareTimeLastUsed):
21322         (BitmapTexturePoolEntry):
21323         (WebCore):
21324         (BitmapTexturePool):
21325         (WebCore::BitmapTexturePool::BitmapTexturePool):
21326         (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
21327         (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
21328         (WebCore::BitmapTexturePool::acquireTexture):
21329         (WebCore::TextureMapper::acquireTextureFromPool):
21330         (WebCore::TextureMapper::TextureMapper):
21331         (WebCore::TextureMapper::~TextureMapper):
21332         * platform/graphics/texmap/TextureMapper.h:
21333         (WebCore):
21334         (TextureMapper):
21335
21336 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
21337
21338         Web Inspector: NMI instrument CachedMetadata. It uses ~300k on plus.google.com
21339         https://bugs.webkit.org/show_bug.cgi?id=101067
21340
21341         Reviewed by Yury Semikhatsky.
21342
21343         Plain vanilla instrumentation for CachedMetadata class.
21344
21345         * CMakeLists.txt:
21346         * GNUmakefile.list.am:
21347         * Target.pri:
21348         * WebCore.gypi:
21349         * WebCore.vcproj/WebCore.vcproj:
21350         * WebCore.xcodeproj/project.pbxproj:
21351         * loader/CachedMetadata.cpp: Added.
21352         (WebCore):
21353         (WebCore::CachedMetadata::reportMemoryUsage):
21354         * loader/CachedMetadata.h:
21355         (CachedMetadata):
21356
21357 2012-11-06  Alexei Filippov  <alph@chromium.org>
21358
21359         Web Inspector: report physical memory really committed for JS heap in NMI
21360         https://bugs.webkit.org/show_bug.cgi?id=101335
21361
21362         Some OSes (e.g. Linux) perform lazy commits of requested memory.
21363         Because of that the committed memory may not retain any physical
21364         memory until the very first access to the committed chunk.
21365         That led to JS heap reported more physical memory than was currently
21366         in use.
21367
21368         Reviewed by Vsevolod Vlasov.
21369
21370         * bindings/v8/ScriptGCEvent.cpp:
21371         (WebCore::ScriptGCEvent::getHeapSize):
21372
21373 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21374
21375         Web Inspector: Breakpoint is not removed when it was set in non-formatted mode and then removed while in formatted mode.
21376         https://bugs.webkit.org/show_bug.cgi?id=100595
21377
21378         Reviewed by Yury Semikhatsky.
21379
21380         Breakpoints in storage are now updated/removed by file name saved from primary location when they were created,
21381         not by the name returned by UISourceCode (as this one could change when UISourceCode is formatted).
21382         SourceFileId is now used across BreakpointManager to specify file name.
21383         And breakpointStorageId is now used to specify (fileName, lineNumber) pair.
21384
21385         * inspector/front-end/BreakpointManager.js:
21386         (WebInspector.BreakpointManager.sourceFileId):
21387         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
21388         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): Removed redundant check.
21389         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
21390         (WebInspector.BreakpointManager.Breakpoint):
21391         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
21392         (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
21393         (set WebInspector.BreakpointManager.Storage.Item):
21394
21395 2012-11-06  Keishi Hattori  <keishi@webkit.org>
21396
21397         The "Rect" class in WebCore/Resources/pagepopups/pickerCommon.js should be renamed
21398         https://bugs.webkit.org/show_bug.cgi?id=101304
21399
21400         Reviewed by Kent Tamura.
21401
21402         The name Rect conflicts with CSS Rect.
21403
21404         No new tests. Just renaming.
21405
21406         * Resources/pagepopups/pickerCommon.js:
21407         (Rectangle): Renamed from Rect.
21408         (Rectangle.prototype.toString):
21409         (Rectangle.intersection):
21410         (adjustWindowRect):
21411         (hideWindow):
21412
21413 2012-11-06  Kentaro Hara  <haraken@chromium.org>
21414
21415         Replace setDOMWrapper(wrapper, 0) with resetDOMWrapper(wrapper)
21416         https://bugs.webkit.org/show_bug.cgi?id=101190
21417
21418         Reviewed by Adam Barth.
21419
21420         To guarantee that we never stores NULL pointers to V8 internal
21421         fields, we want to insert ASSERT()s to setDOMWrapper().
21422         This patch replaces setDOMWrapper() that intentionally
21423         passes NULL pointers with clearDOMWrapper().
21424
21425         No tests. No change in behavior.
21426
21427         * bindings/v8/V8DOMWrapper.h:
21428         (V8DOMWrapper):
21429         (WebCore::V8DOMWrapper::clearDOMWrapper):
21430         * bindings/v8/V8NPObject.cpp:
21431         (WebCore::forgetV8ObjectForNPObject):
21432
21433 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21434
21435         Web Inspector: Displayed name/path of urls in network tab of dev tools is inconsistent
21436         https://bugs.webkit.org/show_bug.cgi?id=101064
21437
21438         Reviewed by Yury Semikhatsky.
21439
21440         Extracted some generic methods from ParsedURL displayName getters (about:blank and data url handlers).
21441         Implemented consistent name() and path() method on NetworkRequest based on ParsedURL.
21442         NetworkPanel now uses name() and path() methods on NetworkRequest to show requests and search for them.
21443
21444         Test: http/tests/inspector/network/request-name-path.html
21445
21446         * inspector/front-end/NetworkPanel.js:
21447         (WebInspector.NetworkLogView.prototype._matchRequest):
21448         (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
21449         (WebInspector.NetworkLogView.prototype.performFilter):
21450         (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
21451         (WebInspector.NetworkDataGridNode.NameComparator):
21452         * inspector/front-end/NetworkRequest.js:
21453         (WebInspector.NetworkRequest.prototype.set url):
21454         (WebInspector.NetworkRequest.prototype.name):
21455         (WebInspector.NetworkRequest.prototype.path):
21456         (WebInspector.NetworkRequest.prototype._parseNameAndPathFromURL):
21457         * inspector/front-end/ParsedURL.js:
21458         (WebInspector.ParsedURL):
21459         (WebInspector.ParsedURL.prototype.get displayName):
21460         (WebInspector.ParsedURL.prototype.dataURLDisplayName):
21461         (WebInspector.ParsedURL.prototype.isAboutBlank):
21462         (WebInspector.ParsedURL.prototype.isDataURL):
21463
21464 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
21465
21466         Web Inspector: make Spectrum and Popover WebInspector.Views in order to enable reuse
21467         https://bugs.webkit.org/show_bug.cgi?id=101200
21468
21469         Reviewed by Yury Semikhatsky.
21470
21471         - Split Spectrum and SpectrumPopoverHelper (first is a component, second is controller)
21472         - Made Popover a root view in order to enable lazy style loading for potential subviews (such as Spectrum)
21473         - Extracted spectrum's css into a separate file
21474
21475         * WebCore.gypi:
21476         * WebCore.vcproj/WebCore.vcproj:
21477         * inspector/front-end/DOMExtension.js:
21478         (Element.prototype.positionAt):
21479         (Size):
21480         (Element.prototype.measurePreferredSize):
21481         * inspector/front-end/HeapSnapshotView.js:
21482         (WebInspector.HeapSnapshotView.prototype.willHide):
21483         (WebInspector.HeapSnapshotView.prototype._helpClicked):
21484         * inspector/front-end/Popover.js:
21485         (WebInspector.Popover):
21486         (WebInspector.Popover.prototype.show):
21487         (WebInspector.Popover.prototype.showView):
21488         (WebInspector.Popover.prototype._innerShow):
21489         (WebInspector.Popover.prototype.hide):
21490         (WebInspector.Popover.prototype.dispose):
21491         (WebInspector.Popover.prototype._positionElement):
21492         * inspector/front-end/Spectrum.js:
21493         (WebInspector.Spectrum.alphaDrag):
21494         (WebInspector.Spectrum):
21495         (WebInspector.Spectrum.prototype.wasShown):
21496         (WebInspector.SpectrumPopupHelper):
21497         (WebInspector.SpectrumPopupHelper.prototype.spectrum):
21498         (WebInspector.SpectrumPopupHelper.prototype.toggle):
21499         (WebInspector.SpectrumPopupHelper.prototype.show):
21500         (WebInspector.SpectrumPopupHelper.prototype.reposition):
21501         (WebInspector.SpectrumPopupHelper.prototype.hide):
21502         (WebInspector.ColorSwatch):
21503         (WebInspector.ColorSwatch.prototype.setColorString):
21504         * inspector/front-end/StylesSidebarPane.js:
21505         (WebInspector.StylesSidebarPane):
21506         (WebInspector.StylesSidebarPane.prototype.update):
21507         (WebInspector.StylesSidebarPane.prototype.willHide):
21508         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
21509         * inspector/front-end/View.js:
21510         (WebInspector.View.prototype.measurePreferredSize):
21511         * inspector/front-end/WebKit.qrc:
21512         * inspector/front-end/elementsPanel.css:
21513         (.image-preview-container img):
21514         * inspector/front-end/inspector.css:
21515         (.swatch):
21516         (.swatch-inner):
21517         (.swatch-inner:hover):
21518         * inspector/front-end/spectrum.css: Added.
21519         (.spectrum-container):
21520         (.spectrum-top):
21521         (.spectrum-color):
21522         (.spectrum-display-value):
21523         (.spectrum-hue):
21524         (.spectrum-fill):
21525         (.spectrum-range-container):
21526         (.spectrum-range-container *):
21527         (.spectrum-range-container label):
21528         (.spectrum-range-container input):
21529         (.spectrum-dragger, .spectrum-slider):
21530         (.spectrum-sat):
21531         (.spectrum-val):
21532         (.spectrum-dragger):
21533         (.spectrum-slider):
21534         (.spectrum-container .swatch):
21535
21536 2012-11-06  Takashi Sakamoto  <tasak@google.com>
21537
21538         removeAttribute('style') not working in certain circumstances
21539         https://bugs.webkit.org/show_bug.cgi?id=99295
21540
21541         Reviewed by Ryosuke Niwa.
21542
21543         After web developers did style.XXXX=YYYY for some element, the inline
21544         style should be always removable by using "removeAttribute('style')".
21545         Currently it depends on whether web developers invokes
21546         getAttribute('style'), setAttribute('style), and so on. E.g. once they
21547         invoke getAttribute('style'), removeAttribute('style') works. This is
21548         very confusing behavior.
21549         Looking at Firefox browser, removeAttribute('style') always removes
21550         all inline styles.
21551
21552         Test: fast/css/remove-attribute-style.html
21553
21554         * css/StylePropertySet.cpp:
21555         (WebCore::StylePropertySet::clear):
21556         Added a new method to remove all style properties.
21557         (WebCore):
21558         * css/StylePropertySet.h:
21559         (StylePropertySet):
21560         * dom/Element.cpp:
21561         (WebCore::Element::removeAttribute):
21562         If 'style' is given but the element has no style attribute, the old
21563         code did nothing. However, if the element is styled element and has any
21564         inline styles, the inline styles should be removed. So invoke
21565         StyledElement::removeAllInlineStyleProperties and if any inline styles
21566         are removed, invoke style recalc, too.
21567         * dom/StyledElement.cpp:
21568         (WebCore::StyledElement::removeAllInlineStyleProperties):
21569         Added a new method to remove all inline style propeties. If any inline
21570         style is removed, invoke inlineStyleChanged() to force style recalc.
21571         (WebCore):
21572         * dom/StyledElement.h:
21573         (StyledElement):
21574
21575 2012-11-06  Alexei Filippov  <alph@chromium.org>
21576
21577         Web Inspector: dim size bar for expanded item in native memory snapshot grid
21578         https://bugs.webkit.org/show_bug.cgi?id=101062
21579
21580         Reviewed by Yury Semikhatsky.
21581
21582         * inspector/front-end/nativeMemoryProfiler.css:
21583         (.native-snapshot-view .data-grid .expanded div.size-bar):
21584
21585 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21586
21587         [Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing
21588         https://bugs.webkit.org/show_bug.cgi?id=100826
21589
21590         Reviewed by Hajime Morita.
21591
21592         We used isUnknownPseudoElement() for these 3 meanings: 1) the element is a custom pseudo-element (starting with 'x-'),
21593         2) the element is a webkit custom pseudo-element (starting with '-webkit-'), and 3) the element has an unknown type.
21594         We would like to distinguish them when parsing CSSSelector types. Also, we disable using (3) type for using
21595         shadowPseudoId.
21596
21597         In this patch, we allow using WebKitCustomPseudoElement in AuthorShadowRoot, and CustomPseudoElement in
21598         UAShadowRoot. However, we will disable them later.
21599
21600         Test: fast/dom/shadow/shadow-pseudo-id.html
21601
21602         * css/CSSGrammar.y.in: Now we can discard UNKNOWN type. It should not match anything.
21603         * css/CSSParser.cpp:
21604         (WebCore::CSSParser::updateSpecifiersWithElementName):
21605         (WebCore::CSSParser::updateSpecifiers):
21606         * css/CSSParserValues.h:
21607         (WebCore::CSSParserSelector::isCustomPseudoElement):
21608         (CSSParserSelector):
21609         * css/CSSSelector.cpp:
21610         (WebCore::CSSSelector::pseudoId):
21611         (WebCore::CSSSelector::parsePseudoType):
21612         (WebCore::CSSSelector::isCustomPseudoType): Returns true if the type is PseudoUserAgentCustomElement or PseudoWebKitCustomElement.
21613         (WebCore::CSSSelector::extractPseudoType):
21614         * css/CSSSelector.h:
21615         (CSSSelector):
21616         (WebCore::CSSSelector::isCustomPseudoElement):
21617         (WebCore):
21618         * css/CSSSelectorList.cpp:
21619         (WebCore::SelectorHasInvalidSelectorFunctor::operator()): We will reject all selectors which were judged as
21620         UNKNOWN before. i.e. It contians all three types for now.
21621         (WebCore::CSSSelectorList::hasInvalidSelector): Renamed.
21622         * css/CSSSelectorList.h:
21623         (CSSSelectorList):
21624         * css/RuleSet.cpp:
21625         (WebCore::RuleSet::addRule):
21626         * css/SelectorChecker.cpp:
21627         (WebCore::SelectorChecker::checkSelector):
21628         * dom/Element.cpp:
21629         (WebCore::Element::setShadowPseudoId):
21630         * dom/SelectorQuery.cpp:
21631         (WebCore::SelectorQueryCache::add):
21632
21633 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21634
21635         [Shadow] ShadowRoot should know the existence of elements having ElementShadow.
21636         https://bugs.webkit.org/show_bug.cgi?id=100922
21637
21638         Reviewed by Hajime Morita.
21639
21640         We count the elements having ElementShadow in ShadowRoot. This is a prepation patch for to solve Bug 100451.
21641         We have a count-up and count-down login in ShadowRoot::insertedInto and ShadowRoot::removedFrom.
21642
21643         For performance reason, we have a flag that an element should be unregistered in ShadowRoot.
21644
21645         Test: fast/dom/shadow/has-elementshadow.html
21646
21647         * dom/ShadowRoot.cpp:
21648         (WebCore::ShadowRoot::ShadowRoot):
21649         (WebCore::ShadowRoot::insertedInto): Count up the number of elements having ElementShadow. ElementShadow
21650         is created only when the oldest ShadowRoot is created, we only count up only when this ShadowRoot is oldest.
21651         (WebCore):
21652         (WebCore::ShadowRoot::removedFrom): Count down if we used this ShadowRoot for count up.
21653         * dom/ShadowRoot.h:
21654         (ShadowRoot):
21655         (WebCore::ShadowRoot::registerElementShadow):
21656         (WebCore::ShadowRoot::unregisterElementShadow):
21657         (WebCore::ShadowRoot::hasElementShadow):
21658         (WebCore::ShadowRoot::countElementShadow):
21659         * testing/Internals.cpp:
21660         (WebCore::Internals::countElementShadow):
21661         (WebCore):
21662         * testing/Internals.h:
21663         (Internals):
21664         * testing/Internals.idl:
21665
21666 2012-11-06  Pavel Feldman  <pfeldman@chromium.org>
21667
21668         Web Inspector: show "debugging session terminated" message when remote debuggign connection is closed unexpectedly.
21669         https://bugs.webkit.org/show_bug.cgi?id=101030
21670
21671         Reviewed by Vsevolod Vlasov.
21672
21673         * inspector/front-end/inspector.js:
21674         (WebInspector.loaded.WebInspector.socket.onclose):
21675         (WebInspector.loaded):
21676         (WebInspector.detached):
21677
21678 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
21679
21680         Web Inspector: [Overrides] Add Chrome for Android and Firefox for Android user agent strings
21681         https://bugs.webkit.org/show_bug.cgi?id=100666
21682
21683         Reviewed by Pavel Feldman.
21684
21685         * inspector/front-end/SettingsScreen.js:
21686         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
21687
21688 2012-11-02  Yury Semikhatsky  <yurys@chromium.org>
21689
21690         Web Inspector: JavaScript web workers debugging crashes
21691         https://bugs.webkit.org/show_bug.cgi?id=101065
21692
21693         Reviewed by Alexander Pavlov.
21694
21695         Clear m_pageInspector when page inspector instance is deleted.
21696         Disable worker inspection when front-end disconnects.
21697
21698         Test: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
21699
21700         * inspector/InspectorWorkerAgent.cpp:
21701         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): notify
21702         WorkerMessagingProxy so that it can clear pointer to the channel.
21703
21704 2012-11-06  Nikita Vasilyev  <me@elv1s.ru>
21705
21706         Web Inspector: Console: wrap long URLs
21707         https://bugs.webkit.org/show_bug.cgi?id=100970
21708
21709         Reviewed by Yury Semikhatsky.
21710
21711         * inspector/front-end/inspector.css:
21712         (.console-message-url):
21713
21714 2012-11-05  Keishi Hattori  <keishi@webkit.org>
21715
21716         Introduce Day class to calendar picker
21717         https://bugs.webkit.org/show_bug.cgi?id=101194
21718
21719         Reviewed by Kent Tamura.
21720
21721         Introducing Day class so day, week, and month can all be abstracted. To
21722         solve some of the complexity around which months to show, I made
21723         CalendarPicker in charge of it. This also made YearMonthController and
21724         DaysTable independent of each other.
21725
21726         No new tests. Covered by existing calendar-picker-*.html tests.
21727
21728         * Resources/pagepopups/calendarPicker.js:
21729         (createUTCDate): Allow negative month or date.
21730         (parseDateString): Will return Day or Month depending on string format.
21731         (Day): Represents a day.
21732         (Day.parse): Parse yyyy-mm-dd.
21733         (Day.createFromDate): Creates a Day that contains a datetime.
21734         (Day.createFromToday): Creates Day for today. A method with the same name will be added to Week and Month in the future.
21735         (Day.prototype.equals): Returns true if they are the same.
21736         (Day.prototype.previous): Returns the previous day.
21737         (Day.prototype.next): Returns the next day.
21738         (Day.prototype.startDate): Returns the datetime that is the start of this day.
21739         (Day.prototype.endDate): Returns the datetime that is the start of this day.
21740         (Day.prototype.valueOf): Returns the milliseconds since epoch.
21741         (Day.prototype.toString): Returns an ISO date string.
21742         (Month): Fix bug in calculating month from value.
21743         (Month.prototype.endDate): Use Day.Maximum.
21744         (CalendarPicker): Added _currentMonth. yearMonthController and daysTable can be private members now.
21745         (CalendarPicker.prototype._layout):
21746         (CalendarPicker.prototype.handleToday): Use Day.createFromToday.
21747         (CalendarPicker.prototype.shouldShowMonth): Returns true if the month should be shown.
21748         (CalendarPicker.prototype.showMonth): Shows the given month. If the month is out of the range of months that should be shown, we clamp the month and show that.
21749         (CalendarPicker.prototype.currentMonth): Returns the current month that is shown.
21750         (YearMonthController): Removed _currentMonth.
21751         (YearMonthController.prototype.attachTo):
21752         (YearMonthController.prototype.setMonth):
21753         (YearMonthController.prototype._handleYearMonthChange): Use CalendarPicker.showMonth
21754         (YearMonthController.prototype.moveRelatively):
21755         (DaysTable):
21756         (CalendarPicker.prototype._stepMismatch): Made private.
21757         (CalendarPicker.prototype._outOfRange): Made private.
21758         (CalendarPicker.prototype.isValidDate): Take Day or Month instead of milliseconds since epoch.
21759         (DaysTable.prototype._renderMonth):
21760         (DaysTable.prototype.navigateToMonth): Shows a given month. Can use animation and leave the selection position as is.
21761         (DaysTable.prototype.selectRange): Select a range.
21762         (DaysTable.prototype._maybeSetPreviousMonth):
21763         (DaysTable.prototype._maybeSetNextMonth):
21764         (DaysTable.prototype._handleKey):
21765         (CalendarPicker.prototype._handleBodyKeyDown):
21766
21767 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21768
21769         Unreviewed, Adding #if PLATFORM(CHROMIUM) for the fix of
21770         https://bugs.webkit.org/show_bug.cgi?id=101009
21771
21772         This fix requires the most recent version of harfbuzz-ng.
21773         EFL port uses version 0.9.2, which doesn't have the fix.
21774
21775         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21776         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21777
21778 2012-11-05  Glenn Adams  <glenn@skynav.com>
21779
21780         Ensure acquireLineBreakIterator signature consistency on non-ICU ports.
21781         https://bugs.webkit.org/show_bug.cgi?id=101281
21782
21783         Reviewed by Ryosuke Niwa.
21784
21785         Fix (newly) inconsistent signature for acquireLineBreakIterator for non-ICU ports
21786         caused by http://trac.webkit.org/changeset/133529.
21787
21788         See new tests added from https://bugs.webkit.org/show_bug.cgi?id=89235.
21789
21790         * platform/text/TextBreakIterator.cpp:
21791         (WebCore::acquireLineBreakIterator):
21792         * platform/text/gtk/TextBreakIteratorGtk.cpp:
21793         (WebCore::setUpIterator):
21794         (WebCore::acquireLineBreakIterator):
21795         * platform/text/wince/TextBreakIteratorWinCE.cpp:
21796         (WebCore::acquireLineBreakIterator):
21797
21798 2012-11-05  Hayato Ito  <hayato@chromium.org>
21799
21800         Use switch/case statements instead of if/elseif in CSSSelector.cpp
21801         https://bugs.webkit.org/show_bug.cgi?id=100470
21802
21803         Reviewed by Ryosuke Niwa.
21804
21805         Minor clean up. We can get compiler warnings if we use switch/case statements here.
21806
21807         No changes to functionality, so no new tests.
21808
21809         * css/CSSSelector.cpp:
21810         (WebCore::CSSSelector::selectorText):
21811
21812 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21813
21814         [Chromium] Unicode combining diacritical aren't always combined on Linux
21815         https://bugs.webkit.org/show_bug.cgi?id=101009
21816
21817         Reviewed by Kent Tamura.
21818
21819         Add a space character to harfbuzzBuffer as pre-context. This will prevent
21820         harfbuzz from inserting dotted-circle.
21821
21822         Test: fast/text/international/combining-marks-position.html
21823
21824         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21825         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21826
21827 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
21828
21829         LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
21830         https://bugs.webkit.org/show_bug.cgi?id=101201
21831
21832         Reviewed by Hajime Morita.
21833
21834         When we use a bit field for enum, Windows compiler seems returning some wrong value.
21835         We would like to avoid using a bit field for enum value.
21836
21837         * dom/ShadowRoot.cpp:
21838         (WebCore::ShadowRoot::create):
21839         * dom/ShadowRoot.h:
21840         (WebCore::ShadowRoot::type):
21841         (WebCore::ShadowRoot::setType):
21842         (ShadowRoot):
21843
21844 2012-11-05  Benjamin Poulain  <benjamin@webkit.org>
21845
21846         TransformOperationInfo's constructor is really slow
21847         https://bugs.webkit.org/show_bug.cgi?id=101143
21848
21849         Reviewed by Sam Weinig.
21850
21851         TransformOperationInfo() was slow for a few reasons:
21852         -The function used a lot of branches. The basic assumption is that the input
21853          is incorrect, thus every character is an opportunity to fail.
21854         -Every branch had to be tested in order. If the name was matching the last if()
21855          all the previous names had to be tested.
21856         -Since equalIgnoringCase() was used in every branch, it was forcing the case folding
21857          every time.
21858         -When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.
21859
21860         This can be fixed by either
21861         1) Compute the lowercase name, then match it to a HashMap.
21862         2) Write a tree to quickly reduce the number of branch needed.
21863
21864         The first solution is not viable because 16bits strings case folding
21865         remains an important bottleneck.
21866
21867         Instead, the code now splits the names on simple characteristics to
21868         match any name in a limited number of branches.
21869
21870         The assumption is the input is correct, so & is used instead of && to
21871         avoid branches in favor of conditional instructions.
21872
21873         * css/CSSParser.cpp:
21874         (WebCore::TransformOperationInfo::TransformOperationInfo):
21875
21876 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21877
21878         RenderGeometryMap asserts when loading http://en.softonic.com/mac
21879         https://bugs.webkit.org/show_bug.cgi?id=101284
21880         <rdar://problem/11540560>
21881
21882         Reviewed by Tim Horton.
21883
21884         When FrameView::layout() calls document->updateStyleIfNeeded(), we
21885         can be in a state where FrameView::needsLayout() is false. However,
21886         this is a bad time to update compositing layers, because we're about
21887         to do layout, which will require us to update them again soon anyway,
21888         and some RenderLayers may not have been sized or positioned yet.
21889         
21890         Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
21891         and toggling it around this call to updateStyleIfNeeded().
21892         Read this state in updateCompositingLayersAfterStyleChange(), which is
21893         now called unconditionally by recalcStyle(), but returns early
21894         if this flag is set, or layout is pending.
21895
21896         * dom/Document.cpp:
21897         (WebCore::Document::recalcStyle):
21898         * page/FrameView.cpp:
21899         (WebCore::FrameView::reset):
21900         (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
21901         (WebCore::FrameView::layout):
21902         * page/FrameView.h:
21903         (FrameView):
21904
21905 2012-11-05  Beth Dakin  <bdakin@apple.com>
21906
21907         https://bugs.webkit.org/show_bug.cgi?id=101275
21908         Clean up ScrollingConstraints.h
21909
21910         Reviewed by Simon Fraser.
21911
21912         This class cleans up ScrollingConstraints.h by removing the constructors since the 
21913         compiler will generate those constructors for us anyway. The patch also makes the 
21914         two override functions private.
21915         * page/scrolling/ScrollingConstraints.h:
21916         (ViewportConstraints):
21917         (FixedPositionViewportConstraints):
21918         (StickyPositionViewportConstraints):
21919
21920 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21921
21922         Make Document::updateStyleIfNeeded() non-virtual
21923         https://bugs.webkit.org/show_bug.cgi?id=101273
21924
21925         Reviewed by Eric Seidel.
21926
21927         Document::updateStyleIfNeeded() has been virtual like forever, but
21928         no-one ever overrides it, so make it non-virtual.
21929
21930         * dom/Document.h:
21931         (Document):
21932
21933 2012-11-05  Philip Rogers  <pdr@google.com>
21934
21935         Unblock SVG external references
21936         https://bugs.webkit.org/show_bug.cgi?id=100635
21937
21938         Reviewed by Adam Barth.
21939
21940         This patch reverts r132849 and r132869 because the potential XSS issue
21941         turned out to not be an issue after all.
21942
21943         Covered by existing tests, many of which are re-whitelisted with this patch.
21944
21945         * loader/cache/CachedResourceLoader.cpp:
21946         (WebCore::CachedResourceLoader::canRequest):
21947
21948 2012-11-05  Beth Dakin  <bdakin@apple.com>
21949
21950         https://bugs.webkit.org/show_bug.cgi?id=101001
21951         Pages with position:fixed elements should still be able to scroll on 
21952         the scrolling thread
21953         -and corresponding-
21954         <rdar://problem/10857315>
21955
21956         Reviewed by Simon Fraser.
21957
21958         This patch adds two new classes. ScrollingStateFixedNode is a class 
21959         to represent fixed nodes in the state tree, and 
21960         ScrollingTreeFixedNode represents fixed node in the scrolling tree 
21961         over on the scrolling thread.
21962         * WebCore.xcodeproj/project.pbxproj:
21963
21964         When we are (non-programatically) scrolling fixed objects on the 
21965         scrolling thread, we do not want to do any work here. 
21966         * page/FrameView.cpp:
21967         (WebCore::FrameView::updateFixedElementsAfterScrolling):
21968
21969         Whenever we sync the position of the main frame's layer, we have to 
21970         do the same for scrolling tree children.
21971         * page/scrolling/ScrollingCoordinator.cpp:
21972         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
21973
21974         New ScrollingNodeType -- FixedNode, yay! And two new functions 
21975         specific to dealing with FixedNodes.
21976         * page/scrolling/ScrollingCoordinator.h:
21977         (WebCore::ScrollingCoordinator::updateViewportConstrainedNode):
21978         (WebCore::ScrollingCoordinator::syncChildPositions):
21979
21980         This is the new class that represents fixed nodes in the state tree. 
21981         All of the changed properties are stored within 
21982         FixedPositionViewportConstraints.
21983         * page/scrolling/ScrollingStateFixedNode.cpp: Added.
21984         (WebCore):
21985         (WebCore::ScrollingStateFixedNode::create):
21986         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
21987         (WebCore::ScrollingStateFixedNode::~ScrollingStateFixedNode):
21988         (WebCore::ScrollingStateFixedNode::updateConstraints):
21989         (WebCore::ScrollingStateFixedNode::dumpProperties):
21990         * page/scrolling/ScrollingStateFixedNode.h: Added.
21991         (WebCore):
21992         (ScrollingStateFixedNode):
21993         (WebCore::ScrollingStateFixedNode::viewportConstraints):
21994         (WebCore::toScrollingStateFixedNode):
21995
21996         Make sure to create the right type of clone for each node.
21997         * page/scrolling/ScrollingStateNode.cpp:
21998         (WebCore::ScrollingStateNode::cloneAndReset):
21999
22000         Now that m_children may be anything other than null, I found this 
22001         bug. We encounter it when the parameter to removeChild is this and we 
22002         want to remove all of our children. In that case, this is obviously 
22003         not found in its own child array.
22004         (WebCore::ScrollingStateNode::removeChild):
22005
22006         ScrollingStateNode now caches the GraphicsLayer in addition to the 
22007         PlatformLayer. This will allow us to sync the GraphicsLayer position 
22008         at the appropriate times.
22009         * page/scrolling/ScrollingStateNode.h:
22010         (WebCore::ScrollingStateNode::isScrollingStateFixedNode):
22011         (WebCore::ScrollingStateNode::graphicsLayer):
22012         (ScrollingStateNode):
22013
22014         Handle fixed nodes.
22015         * page/scrolling/ScrollingTree.cpp:
22016         (WebCore::ScrollingTree::updateTreeFromStateNode):
22017
22018         New function parentScrollPositionDidChange() is called on children 
22019         when the parent has scrolled.
22020         * page/scrolling/ScrollingTreeNode.h:
22021         (ScrollingTreeNode):
22022         * page/scrolling/ScrollingTreeScrollingNode.h:
22023         (ScrollingTreeScrollingNode):
22024
22025         Return true for supportsFixedPositionLayers(). 
22026         * page/scrolling/mac/ScrollingCoordinatorMac.h:
22027         (ScrollingCoordinatorMac):
22028
22029         Handle fixed nodes.
22030         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
22031         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
22032
22033         Now that m_children can be non-null I caught this pre-existing bug 
22034         where we would come times remove a node without updating the HashMap. 
22035         This patch fixes that by consolidating the removal into one function.
22036         (WebCore::ScrollingCoordinatorMac::removeNode):
22037         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
22038         (WebCore::ScrollingCoordinatorMac::clearStateTree):
22039
22040         Update the GraphicsLayers to reflect the new position that the 
22041         Scrolling thread has moved the underlying CALayer to already.
22042         (WebCore::ScrollingCoordinatorMac::syncChildPositions):
22043
22044         Pass new constraints over to the appropriate state node.
22045         (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
22046
22047         Cache the GraphicsLayer in addition to the PlatformLayer.
22048         * page/scrolling/mac/ScrollingStateNodeMac.mm:
22049         (WebCore::ScrollingStateNode::setScrollLayer):
22050
22051         Here is the new class that represents fixed nodes over on the 
22052         scrolling thread. 
22053         * page/scrolling/mac/ScrollingTreeFixedNode.h: Added.
22054         (WebCore):
22055         (ScrollingTreeFixedNode):
22056         * page/scrolling/mac/ScrollingTreeFixedNode.mm: Added.
22057         (WebCore):
22058         (WebCore::ScrollingTreeFixedNode::create):
22059         (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
22060         (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
22061         (WebCore::ScrollingTreeFixedNode::update):
22062
22063         This is where the magic happens. re-position the fixed object when 
22064         its parent has scrolled so that it appears to have not moved at all.
22065         (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
22066
22067         Whenever we change the position of a scrolling layer, tell our 
22068         children.
22069         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
22070         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
22071
22072         Handle fixed nodes.
22073         * rendering/RenderLayerBacking.cpp:
22074         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
22075
22076         detachFromScrollingCoordinator() needs to be public so that it can be 
22077         called from RenderLayerCompositor for fixed nodes.
22078         * rendering/RenderLayerBacking.h:
22079         (RenderLayerBacking):
22080
22081         RenderLayerCompositor takes control of attaching and detaching fixed 
22082         nodes to/from the ScrollingCoordinator. 
22083         * rendering/RenderLayerCompositor.cpp:
22084         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
22085         (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
22086         (WebCore::RenderLayerCompositor::updateBacking):
22087         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
22088         (WebCore::RenderLayerCompositor::didMoveOnscreen):
22089         (WebCore::RenderLayerCompositor::willMoveOffscreen):
22090         (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
22091         (WebCore::isRootmostFixedOrStickyLayer):
22092         (WebCore):
22093         (WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
22094         (WebCore::RenderLayerCompositor::addViewportConstrainedLayer):
22095         (WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
22096         (WebCore::RenderLayerCompositor::computeViewportConstraints):
22097         (WebCore::nearestScrollingCoordinatorAncestor):
22098         (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
22099         (WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
22100         (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
22101         (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
22102         * rendering/RenderLayerCompositor.h:
22103         (WebCore):
22104         (RenderLayerCompositor):
22105
22106 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
22107
22108         Cleaned up the Font class in preparation for optimizing kerning and ligatures
22109         https://bugs.webkit.org/show_bug.cgi?id=101258
22110
22111         Reviewed by Dan Bernstein.
22112
22113         * platform/graphics/Font.h:
22114         (WebCore::Font::typesettingFeatures):
22115         (WebCore::Font::computeTypesettingFeatures): Compute and cache our
22116         typesetting features instead of recomputing each time a client asks
22117         for them. This makes the class interface easier to use because
22118         "typesettingFeatures()" can appear in more than one expression without
22119         undue performance cost. This may also be a small speedup to code that
22120         calls typesettingFeatures() often for other reasons.
22121
22122         * platform/graphics/Font.cpp:
22123         (WebCore::Font::Font):
22124         (WebCore::Font::operator=):
22125         (WebCore::Font::update): Ditto.
22126
22127         (WebCore::Font::width): Unforked the width() function so all width-related
22128         interfaces can benefit from optimization without duplicate code.
22129
22130 2012-11-05  Peng Huang  <penghuang@google.com>
22131
22132         Webkit does not handle some media keys correctly On Linux gtk platform.
22133         https://bugs.webkit.org/show_bug.cgi?id=101221
22134
22135         Reviewed by Alexey Proskuryakov.
22136
22137         Add media keyboard support on Linux gtk platform.
22138
22139         * platform/chromium/KeyCodeConversionGtk.cpp:
22140         (WebCore::windowsKeyCodeForKeyEvent):
22141
22142 2012-11-05  Glenn Adams  <glenn@skynav.com>
22143
22144         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
22145         https://bugs.webkit.org/show_bug.cgi?id=89235
22146
22147         Reviewed by Eric Seidel.
22148
22149         See also wiki documentation at:
22150         [1] http://trac.webkit.org/wiki/LineBreaking
22151         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
22152
22153         Web exposed changes include:
22154         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
22155         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
22156         (3) See [2] above for details regarding interpretation.
22157
22158         Tests: css3/line-break/line-break-auto-centered.html
22159                css3/line-break/line-break-auto-half-kana.html
22160                css3/line-break/line-break-auto-hyphens.html
22161                css3/line-break/line-break-auto-inseparables.html
22162                css3/line-break/line-break-auto-iteration-marks.html
22163                css3/line-break/line-break-auto-postfixes.html
22164                css3/line-break/line-break-auto-prefixes.html
22165                css3/line-break/line-break-auto-sound-marks.html
22166                css3/line-break/line-break-loose-centered.html
22167                css3/line-break/line-break-loose-half-kana.html
22168                css3/line-break/line-break-loose-hyphens.html
22169                css3/line-break/line-break-loose-inseparables.html
22170                css3/line-break/line-break-loose-iteration-marks.html
22171                css3/line-break/line-break-loose-postfixes.html
22172                css3/line-break/line-break-loose-prefixes.html
22173                css3/line-break/line-break-loose-sound-marks.html
22174                css3/line-break/line-break-normal-centered.html
22175                css3/line-break/line-break-normal-half-kana.html
22176                css3/line-break/line-break-normal-hyphens.html
22177                css3/line-break/line-break-normal-inseparables.html
22178                css3/line-break/line-break-normal-iteration-marks.html
22179                css3/line-break/line-break-normal-postfixes.html
22180                css3/line-break/line-break-normal-prefixes.html
22181                css3/line-break/line-break-normal-sound-marks.html
22182                css3/line-break/line-break-strict-centered.html
22183                css3/line-break/line-break-strict-half-kana.html
22184                css3/line-break/line-break-strict-hyphens.html
22185                css3/line-break/line-break-strict-inseparables.html
22186                css3/line-break/line-break-strict-iteration-marks.html
22187                css3/line-break/line-break-strict-postfixes.html
22188                css3/line-break/line-break-strict-prefixes.html
22189                css3/line-break/line-break-strict-sound-marks.html
22190
22191         * platform/text/LineBreakIteratorPoolICU.h:
22192         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
22193         Add static function to construct ICU locale argument (also used as pool key) with additional
22194         break keyword.
22195         (WebCore::LineBreakIteratorPool::take):
22196         (WebCore::LineBreakIteratorPool::put):
22197         (LineBreakIteratorPool):
22198         Remove direct dependency from ICU library (and types), moving that dependency into
22199         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
22200         Update to take line break mode into account.
22201         Create (and cache) different break iterators depending on line break mode (in addition to locale),
22202         which entails expanding pool entry key format to optionally append "@break=" +
22203         "loose"|"normal"|"strict" keyword to locale string.
22204
22205         * platform/text/TextBreakIterator.h:
22206         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
22207         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
22208         (WebCore::LazyLineBreakIterator::get):
22209         (WebCore::LazyLineBreakIterator::reset):
22210         (LazyLineBreakIterator):
22211         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
22212         Add state member to indicate line break mode.
22213
22214         * platform/text/TextBreakIteratorICU.cpp:
22215         (WebCore::acquireLineBreakIterator):
22216         Use new line break mode when making iterator from pool.
22217         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
22218         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22219         (WebCore::releaseLineBreakIterator):
22220         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
22221         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22222         (WebCore::isCJKLocale):
22223         New functions for determining if CJK rules apply.
22224         (WebCore::openLineBreakIterator):
22225         New function for abstracting opening of ICU style line break iterator. This is now
22226         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22227         This function also takes into account the line break mode.
22228         (WebCore::closeLineBreakIterator):
22229         (WebCore::mapLineIteratorModeToRules):
22230         New function for abstracting closing of ICU style line break iterator. This is now
22231         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22232
22233         * rendering/RenderBlockLineLayout.cpp:
22234         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
22235         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
22236         Add looseMode local variable to prevent need for computing under isBreakable().
22237
22238         * rendering/RenderText.cpp:
22239         (WebCore::mapLineBreakToIteratorMode):
22240         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22241         and RenderBlock::LineBreaker::nextLineBreak.
22242         (WebCore::RenderText::computePreferredLogicalWidths):
22243         Ensure (lazy line) breakIterator is initialized for line break mode.
22244         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
22245
22246         * rendering/RenderText.h:
22247         (WebCore):
22248         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22249         and RenderBlock::LineBreaker::nextLineBreak.
22250
22251         * rendering/break_lines.cpp:
22252         (WebCore):
22253         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
22254         to include loose mode parameter.
22255         (WebCore::isBreakableSpace):
22256         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22257         accessor method on each invocation. Use new loose mode flavors off NBP functions.
22258         (WebCore::needsLineBreakIterator):
22259         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
22260         to prevent regression to non loose mode path.
22261         (WebCore::nextBreakablePosition):
22262         (WebCore::nextBreakablePositionIgnoringNBSP):
22263         Use new template parameter enums described above.
22264         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
22265         (WebCore::nextBreakablePositionLoose):
22266         Introduce two additional 'loose' mode flavors of NBP template expansions.
22267
22268         * rendering/break_lines.h:
22269         (WebCore):
22270         (WebCore::isBreakable):
22271         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22272         accessor method on each invocation.
22273
22274 2012-11-05  Adam Barth  <abarth@webkit.org>
22275
22276         webkitRegionLayoutUpdate is incorrectly named
22277         https://bugs.webkit.org/show_bug.cgi?id=100335
22278
22279         Reviewed by Ojan Vafai.
22280
22281         DOM event names are supposed to be lower case.
22282
22283         * dom/EventNames.h:
22284         (WebCore):
22285         * dom/WebKitNamedFlow.cpp:
22286         (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
22287
22288 2012-11-05  Adam Barth  <abarth@webkit.org>
22289
22290         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
22291         https://bugs.webkit.org/show_bug.cgi?id=101110
22292
22293         Reviewed by Kentaro Hara.
22294
22295         This patch generalizes our support for storing wrappers in DOM objects
22296         to be usable for more than just nodes. After this patch, any object
22297         with a ScriptWrappable base class will have its wrapper stored inline
22298         in the object in the main world.
22299
22300         To achieve this goal, this patch hides the details of how we map from
22301         objects to wrappers inside DOMDataStore and then removes the
22302         IntrusiveDOMWrapperMap class entirely. This approach lets us remove the
22303         DOMWrapperMap base class and make all of these functions non-virtual.
22304
22305         * UseV8.cmake:
22306         * WebCore.gypi:
22307             - Remove deleted files.
22308         * bindings/scripts/CodeGeneratorV8.pm:
22309         (GenerateHeader):
22310         (GenerateNormalAttrGetter):
22311         (GenerateConstructorCallback):
22312         (GenerateNamedConstructorCallback):
22313         (GenerateToV8Converters):
22314             - Rather than grabbing at the DOMWrapperMap directly, we now ask
22315               the DOMDataStore to do this work for us.
22316         * bindings/scripts/test/V8/V8Float64Array.h:
22317         (WebCore::V8Float64Array::wrap):
22318         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
22319         (WebCore::V8TestActiveDOMObject::wrap):
22320         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
22321         (WebCore::V8TestCustomNamedGetter::wrap):
22322         * bindings/scripts/test/V8/V8TestEventConstructor.h:
22323         (WebCore::V8TestEventConstructor::wrap):
22324         * bindings/scripts/test/V8/V8TestEventTarget.h:
22325         (WebCore::V8TestEventTarget::wrap):
22326         * bindings/scripts/test/V8/V8TestException.h:
22327         (WebCore::V8TestException::wrap):
22328         * bindings/scripts/test/V8/V8TestInterface.h:
22329         (WebCore::V8TestInterface::wrap):
22330         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
22331         (WebCore::V8TestMediaQueryListListener::wrap):
22332         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
22333         (WebCore::V8TestNamedConstructor::wrap):
22334         * bindings/scripts/test/V8/V8TestNode.cpp:
22335         (WebCore::V8TestNode::constructorCallback):
22336         (WebCore::V8TestNode::wrapSlow):
22337         * bindings/scripts/test/V8/V8TestObj.cpp:
22338         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
22339         * bindings/scripts/test/V8/V8TestObj.h:
22340         (WebCore::V8TestObj::wrap):
22341         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
22342         (WebCore::V8TestSerializedScriptValueInterface::wrap):
22343         * bindings/v8/DOMDataStore.cpp:
22344             - Updated run-bindings-test results.
22345         (WebCore::DOMDataStore::DOMDataStore):
22346         (WebCore::DOMDataStore::~DOMDataStore):
22347             - Simplify constructor and destructor now that there is only one
22348               hash map.
22349         (WebCore::DOMDataStore::current):
22350             - Now that V8DOMMap.cpp doesn't handle the null isolate case, we
22351               need to handle it here.
22352         (WebCore::DOMDataStore::reportMemoryUsage):
22353             - Simplfied now that there is only one wrapper map.
22354         (WebCore::DOMDataStore::weakCallback):
22355             - Moved from IntrusiveDOMWrapperMap.h
22356         * bindings/v8/DOMDataStore.h:
22357         (WebCore::DOMDataStore::get):
22358         (WebCore::DOMDataStore::set):
22359             - These functions now handle the intrusive case with a branch
22360               rather than with a virtual function call. In many cases, the
22361               branch can be optimized away by the compiler when the overloaded
22362               inline functions are inlined.
22363         (WebCore::DOMDataStore::wrapperIsStoredInObject):
22364             - Overloaded functions to determine whether to store the wrapper
22365               inside the object or in the hashmap.
22366         (WebCore::DOMDataStore::getWrapperFromObject):
22367         (WebCore::DOMDataStore::storeWrapperInObject):
22368             - Overloaded functions to get/set the wrapper from inside the
22369               object itself.
22370         * bindings/v8/DOMWrapperMap.h:
22371         (WebCore::DOMWrapperHashMap::get):
22372         (WebCore::DOMWrapperHashMap::set):
22373         (WebCore::DOMWrapperHashMap::clear):
22374         (WebCore::DOMWrapperHashMap::reportMemoryUsage):
22375         (WebCore::DOMWrapperHashMap::remove):
22376             - These functions are no longer virtual.
22377         * bindings/v8/DOMWrapperWorld.h:
22378         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
22379         * bindings/v8/ScriptProfiler.cpp:
22380         * bindings/v8/SerializedScriptValue.cpp:
22381         (WebCore::neuterBinding):
22382             - We need to keep the type information slightly longer so that we
22383               look in the right wrapper map.
22384         * bindings/v8/V8DOMMap.cpp: Removed.
22385         * bindings/v8/V8DOMMap.h: Removed.
22386         * bindings/v8/V8DOMWindowShell.cpp:
22387         * bindings/v8/V8DOMWrapper.cpp:
22388         * bindings/v8/V8DOMWrapper.h:
22389         (WebCore::V8DOMWrapper::getCachedWrapper):
22390             - Defer this work to the store.
22391         (WebCore::V8DOMWrapper::setWrapperClass):
22392             - An overloaded function to set the right wrapper class.
22393         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
22394             - This function is now general enough to handle ever kind of object.
22395         * bindings/v8/V8GCController.cpp:
22396         * bindings/v8/V8NPObject.cpp:
22397         * bindings/v8/WorkerContextExecutionProxy.cpp:
22398         * bindings/v8/WorkerScriptController.cpp:
22399         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
22400         (WebCore::v8HTMLImageElementConstructorCallback):
22401             - Call the more general function (instead of the now-deleted specialized function).
22402
22403 2012-11-05  Alexey Proskuryakov  <ap@apple.com>
22404
22405         Get rid of setCookieStoragePrivateBrowsingEnabled.
22406         https://bugs.webkit.org/show_bug.cgi?id=101247
22407
22408         Reviewed by Brady Eidson.
22409
22410         We were only doing anything here on Mac, and only because we couldn't know if
22411         sessions were in use. But sessions are always in use, and those obsolete changing
22412         cookie storage explicitly.
22413
22414         * platform/network/win/CookieStorageWin.cpp: Removed.
22415         * PlatformWinCE.cmake:
22416         * WebCore.gypi:
22417         No more CookieStorageWin.cpp with an empty implementation.
22418     
22419         * WebCore.exp.in:
22420         * platform/mac/WebCoreSystemInterface.h:
22421         * platform/mac/WebCoreSystemInterface.mm:
22422         We no longer need this WKSI function.
22423
22424         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled):
22425         Removed the only call to setCookieStoragePrivateBrowsingEnabled().
22426
22427         * platform/network/CookieStorage.h:
22428         * platform/network/cf/CookieStorageCFNet.cpp:
22429         * platform/network/curl/CookieJarCurl.cpp:
22430         * platform/network/soup/CookieStorageSoup.cpp:
22431         * platform/qt/TemporaryLinkStubsQt.cpp:
22432         Removed empty setCookieStoragePrivateBrowsingEnabled implementations.
22433
22434         * platform/network/mac/CookieStorageMac.mm: This function used to have a FIXME
22435         that we should observe private storage while in private browsing mode. I don't think
22436         that it was correct - Safari doesn't display content of private storage, and thus
22437         doesn't need to know about changes.
22438         The removal of this function has an effect on WebKit1 clients that enable private
22439         browsing. We used to globally change cookie storage, even for loads not initiated
22440         by WebKit. Now we match API description: "If private browsing is enabled, WebKit
22441         will not store information about sites the user visits."
22442
22443 2012-11-05  Florin Malita  <fmalita@chromium.org>
22444
22445         Crash when mixing layers, foreignObjects and SVG hidden containers
22446         https://bugs.webkit.org/show_bug.cgi?id=87297
22447
22448         Reviewed by Dirk Schulze.
22449
22450         Foreign objects may introduce content which requires layers, but layer creation is
22451         suppressed within RenderSVGHiddenContainer subtrees and this yields an inconsistent render
22452         tree state. This patch prevents foreignObject renderer instantiation under
22453         RenderSVGHiddenContainers.
22454
22455         Test: svg/foreignObject/foreign-object-defs-crash.svg
22456
22457         * svg/SVGForeignObjectElement.cpp:
22458         (WebCore::SVGForeignObjectElement::rendererIsNeeded):
22459         (WebCore):
22460         * svg/SVGForeignObjectElement.h:
22461         (SVGForeignObjectElement):
22462
22463 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22464
22465         Remove the unused m_fixedPositionedElements from RenderView
22466         https://bugs.webkit.org/show_bug.cgi?id=101251
22467
22468         Reviewed by Anders Carlsson.
22469
22470         m_fixedPositionedElements was completely unused. Remove it
22471         and the related typedef.
22472
22473         * rendering/RenderView.h:
22474         (RenderView):
22475
22476 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22477
22478         Fix layer borders to cleaning appear and disappear on switching
22479         https://bugs.webkit.org/show_bug.cgi?id=101136
22480
22481         Reviewed by Sam Weinig.
22482
22483         GraphicsLayers decided whether to show layer borders based
22484         on a callback through the GraphicsLayerClient. This made it
22485         hard to manage state, resulting in a failure to cleanly
22486         hide layers when toggled off via the preference.
22487         
22488         Changed the layer border and repaint counter visibility to be bits
22489         stored on GraphicsLayer just like other properties, with getters
22490         and setters. RenderLayerBacking now updates these debug
22491         indicators when we update other compositing layer properties.
22492         
22493         In GraphicsLayerCA, avoid calling updateDebugIndicators() explicitly
22494         in several places by setting the change flag DebugIndicatorsChanged
22495         for properties whose values affect the appearance of the debug border.
22496
22497         Removed the GraphicsLayerClient methods showDebugBorders() and
22498         showRepaintCounter() which are no longer required.
22499
22500         * platform/graphics/GraphicsLayer.cpp:
22501         (WebCore::GraphicsLayer::GraphicsLayer):
22502         (WebCore::GraphicsLayer::updateDebugIndicators):
22503         * platform/graphics/GraphicsLayer.h:
22504         (WebCore::GraphicsLayer::setShowDebugBorder):
22505         (WebCore::GraphicsLayer::isShowingDebugBorder):
22506         (WebCore::GraphicsLayer::setShowRepaintCounter):
22507         (WebCore::GraphicsLayer::isShowingRepaintCounter):
22508         (WebCore::GraphicsLayer::repaintCount):
22509         (WebCore::GraphicsLayer::incrementRepaintCount):
22510         * platform/graphics/GraphicsLayerClient.h:
22511         * platform/graphics/ca/GraphicsLayerCA.cpp:
22512         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
22513         (WebCore::GraphicsLayerCA::setMasksToBounds):
22514         (WebCore::GraphicsLayerCA::setDrawsContent):
22515         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
22516         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
22517         (WebCore::GraphicsLayerCA::updateMasksToBounds):
22518         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
22519         (WebCore::GraphicsLayerCA::updateDebugBorder):
22520         (WebCore::GraphicsLayerCA::setShowDebugBorder):
22521         (WebCore::GraphicsLayerCA::setShowRepaintCounter):
22522         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
22523         (WebCore::GraphicsLayerCA::setupContentsLayer):
22524         (WebCore::GraphicsLayerCA::cloneLayer):
22525         * platform/graphics/ca/GraphicsLayerCA.h:
22526         (GraphicsLayerCA):
22527         (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders):
22528         * rendering/RenderLayerBacking.cpp:
22529         (WebCore::RenderLayerBacking::updateDebugIndicators):
22530         * rendering/RenderLayerBacking.h:
22531         (RenderLayerBacking):
22532         * rendering/RenderLayerCompositor.cpp:
22533         (WebCore::RenderLayerCompositor::updateBacking):
22534         * rendering/RenderLayerCompositor.h:
22535         (RenderLayerCompositor):
22536
22537 2012-11-05  Genevieve Mak  <gmak@rim.com>
22538
22539         [BLACKBERRY] Update touch code to reflect touch refactor
22540         https://bugs.webkit.org/show_bug.cgi?id=101227
22541
22542         Reviewed by Rob Buis.
22543
22544         PR #2706785
22545         Reviewed Internally by: Mike Lattanzio
22546
22547         * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
22548         (WebCore::touchEventType):
22549         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
22550
22551 2012-11-05  Alok Priyadarshi  <alokp@chromium.org>
22552
22553         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
22554         https://bugs.webkit.org/show_bug.cgi?id=99083
22555
22556         Reviewed by Stephen White.
22557
22558         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
22559
22560         No new tests needed. This patch does not change anything functionally.
22561
22562         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
22563         (WebCore::GraphicsLayerChromium::setContentsOpaque):
22564         (WebCore::GraphicsLayerChromium::paint):
22565         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
22566         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
22567         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
22568         (OpaqueRectTrackingContentLayerDelegate):
22569
22570 2012-11-05  Stephen White  <senorblanco@chromium.org>
22571
22572         [chromium] Build fix after http://trac.webkit.org/changeset/133488.
22573         Removed a deleted file.  Unreviewed.
22574
22575         * WebCore.gypi:
22576
22577 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22578
22579         [V8] toV8(impl) should return null if impl is 0
22580         https://bugs.webkit.org/show_bug.cgi?id=101206
22581
22582         Reviewed by Adam Barth.
22583
22584         toV8(impl) should return null if impl is 0. However,
22585         V8HTMLCollection::toV8() does not have the null check.
22586         All other toV8()s return null.
22587
22588         No tests. I think there will be no call path that hits the change.
22589
22590         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
22591         (WebCore::toV8):
22592
22593 2012-11-05  David Barton  <dbarton@mathscribe.com>
22594
22595         Implement SimpleFontData::platformBoundsForGlyph on skia
22596         https://bugs.webkit.org/show_bug.cgi?id=101115
22597
22598         Reviewed by Eric Seidel.
22599
22600         The implementation is similar to SimpleFontData::platformWidthForGlyph on skia.
22601
22602         Tested by: fast/block/lineboxcontain/*glyphs*, mathml/presentation/*
22603
22604         * platform/graphics/skia/SimpleFontDataSkia.cpp:
22605         (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
22606
22607 2012-11-05  Andreas Kling  <kling@webkit.org>
22608
22609         Decouple Attr logic from ElementAttributeData.
22610         <http://webkit.org/b/101126>
22611
22612         Reviewed by Antti Koivisto.
22613
22614         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
22615         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
22616         can be shared by any number of Elements at a given time.
22617
22618         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
22619         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
22620
22621         * dom/Element.h:
22622         * dom/ElementAttributeData.h:
22623         * dom/Element.cpp:
22624         (WebCore::attrNodeListMap):
22625         (WebCore::attrNodeListForElement):
22626         (WebCore::ensureAttrNodeListForElement):
22627         (WebCore::removeAttrNodeListForElement):
22628         (WebCore::findAttrNodeInList):
22629         (WebCore::Element::~Element):
22630         (WebCore::Element::detachAttribute):
22631         (WebCore::Element::setAttributeNode):
22632         (WebCore::Element::removeAttributeInternal):
22633         (WebCore::Element::getAttributeNode):
22634         (WebCore::Element::getAttributeNodeNS):
22635         (WebCore::Element::normalizeAttributes):
22636         (WebCore::Element::attrIfExists):
22637         (WebCore::Element::ensureAttr):
22638         (WebCore::Element::detachAttrNodeFromElementWithValue):
22639         (WebCore::Element::detachAllAttrNodesFromElement):
22640         (WebCore::Element::cloneAttributesFromElement):
22641
22642             Move everything Attr-related into Element.cpp while simplifying some loops and remove
22643             conditions that are no longer needed as they used to depend on having an attributeData().
22644
22645         * dom/Node.h:
22646         (WebCore::Node::hasSyntheticAttrChildNodes):
22647         (WebCore::Node::setHasSyntheticAttrChildNodes):
22648
22649             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
22650
22651         * dom/Attr.cpp:
22652         (WebCore::Attr::detachFromElementWithValue):
22653
22654             Remove awkward indirection and let the call site deal with removing the Attr node from
22655             the Element's list of Attr nodes.
22656
22657         * dom/ElementAttributeData.cpp:
22658         (WebCore::ElementAttributeData::clearAttributes):
22659
22660             Remove now-unused Element* argument.
22661
22662 2012-11-05  Hans Muller  <hmuller@adobe.com>
22663
22664         [CSS Exclusions] Polygon edges should span colinear vertices
22665         https://bugs.webkit.org/show_bug.cgi?id=99343
22666
22667         Reviewed by Dirk Schulze.
22668
22669         ExclusionPolygonEdges now span coincident and collinear vertices. Currently
22670         pairs of vertices are only considered coincident if their coordinates are exactly
22671         equal. Similarly, a vertex is only considered collinear with an edge if the area
22672         of the triangle defined by the three vertices is exactly zero.  In the future it
22673         may be useful to relax the comparison with zero.
22674
22675         Tests: fast/exclusions/shape-inside/shape-inside-coincident-vertices.html
22676                fast/exclusions/shape-inside/shape-inside-collinear-vertices.html
22677
22678         * rendering/ExclusionPolygon.cpp:
22679         (WebCore::determinant): Used to measure collinearity.
22680         (WebCore):
22681         (WebCore::areCollinearPoints): True if three FloatPoint arguments are collinear per the test outlined above.
22682         (WebCore::areCoincidentPoints): True if the two FloatPoint arguments are equal.
22683         (WebCore::nextVertexIndex): The next vertex index in clockwise or counterclockwise order.
22684         (WebCore::ExclusionPolygon::findNextEdgeVertexIndex): Return the index of the next non-coincident, non-collinear vertex.
22685         (WebCore::ExclusionPolygon::ExclusionPolygon): Skip coincident and collinear vertices when building the list of edges.
22686         * rendering/ExclusionPolygon.h: Added private findNextEdgeVertexIndex() declaration.
22687
22688 2012-11-05  Christophe Dumez  <christophe.dumez@intel.com>
22689
22690         [EFL] Use POSIX implementation of SharedBuffer::createWithContentsOfFile()
22691         https://bugs.webkit.org/show_bug.cgi?id=101228
22692
22693         Reviewed by Kenneth Rohde Christiansen.
22694
22695         Get rid of EFL-specific implementation of SharedBuffer::createWithContentsOfFile()
22696         and reuse the POSIX one since it is pretty much the same.
22697
22698         No new tests, no behavior change.
22699
22700         * PlatformEfl.cmake:
22701         * platform/efl/SharedBufferEfl.cpp: Removed.
22702
22703 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22704
22705         Add a comment about a return value of IDBKey::toV8()
22706         https://bugs.webkit.org/show_bug.cgi?id=101212
22707
22708         Reviewed by Adam Barth.
22709
22710         Although all other toV8(impl) return null when impl is 0,
22711         IDBKey::toV8(impl) is expected to return undefined when impl is 0.
22712         This patch adds a comment about it.
22713
22714         No tests.
22715
22716         * bindings/js/JSIDBKeyCustom.cpp:
22717         (WebCore::toJS):
22718         * bindings/v8/custom/V8IDBKeyCustom.cpp:
22719         (WebCore::toV8):
22720
22721 2012-11-05  Dominik Röttsches  <dominik.rottsches@intel.com>
22722
22723         [Cairo] Make Cairo honor image orientation
22724         https://bugs.webkit.org/show_bug.cgi?id=101207
22725
22726         Reviewed by Kenneth Rohde Christiansen.
22727
22728         Implement transformed image drawing in BitmapImageCairo, similar
22729         as it was done for Skia in bug 100179, r132384.
22730         The image drawing code needs to transform the graphics context
22731         depending on exif orientation in order for this to work.
22732
22733         No new tests, covered by fast/images/exif-* which are passing now.
22734
22735         * platform/graphics/BitmapImage.h: Enable draw function which respects image orientation for Cairo.
22736         * platform/graphics/cairo/BitmapImageCairo.cpp:
22737         (WebCore::BitmapImage::draw): Apply ImageOrientation's transformFromDefault() transformation to context.
22738         (WebCore):
22739
22740 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22741
22742         [V8] Dispose() and Clear() should be always coupled for safety
22743         https://bugs.webkit.org/show_bug.cgi?id=101191
22744
22745         Reviewed by Adam Barth.
22746
22747         Clear() is not mandatory. However, to avoid misusing already
22748         disposed wrappers, Clear() should be always called just
22749         after Dispose().
22750
22751         No tests. No change in behavior.
22752
22753         * bindings/v8/DOMWrapperMap.h:
22754         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
22755         * bindings/v8/IntrusiveDOMWrapperMap.h:
22756         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
22757         * bindings/v8/NPV8Object.cpp:
22758         (WebCore::freeV8NPObject):
22759         * bindings/v8/ScheduledAction.cpp:
22760         (WebCore::ScheduledAction::~ScheduledAction):
22761         * bindings/v8/V8NPObject.cpp:
22762         (WebCore::V8NPTemplateMap::dispose):
22763         (WebCore::weakNPObjectCallback):
22764         (WebCore::forgetV8ObjectForNPObject):
22765         * bindings/v8/V8PerContextData.cpp:
22766         (WebCore::V8PerContextData::dispose):
22767         * bindings/v8/V8ValueCache.cpp:
22768         (WebCore::cachedStringCallback):
22769         (WebCore::IntegerCache::~IntegerCache):
22770         * bindings/v8/custom/V8InjectedScriptManager.cpp:
22771         (WebCore::WeakReferenceCallback):
22772
22773 2012-11-05  Hans Muller  <hmuller@adobe.com>
22774
22775         [CSS Exclusions] Layout of the first shape-inside line can be incorrect
22776         https://bugs.webkit.org/show_bug.cgi?id=100996
22777
22778         Reviewed by Dirk Schulze.
22779
22780         Made the conversion from floating point top/bottom logical shape bounds coordinates
22781         LayoutUnits explicit and corrected the case where the top value was truncated.  A
22782         float logicalTop value is converted to LayoutUnit with fromFloatCeil() to ensure
22783         that the LayoutUnit value is within the shape.
22784         
22785         Test: fast/exclusions/shape-inside/shape-inside-shape-logical-top.html
22786
22787         * rendering/ExclusionShapeInsideInfo.h:
22788         (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Redefined this method in terms of shapeLogicalBoundsY,Max().
22789         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):  Ditto.
22790         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):  Ditto.
22791         (ExclusionShapeInsideInfo):
22792         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsY): Explicit conversion from floating point shape coordinates to LayoutUnits.
22793         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsMaxY): Ditto.
22794
22795 2012-11-05  Antti Koivisto  <antti@apple.com>
22796
22797         Protect against resource deletion during iteration in MemoryCache::pruneDeadResourcesToSize
22798         https://bugs.webkit.org/show_bug.cgi?id=101211
22799
22800         Reviewed by Andreas Kling.
22801         
22802         Some crashes have been seen under MemoryCache::pruneDeadResourcesToSize. A possible cause is that
22803         destroyDecodedData() call ends up evicting the resource pointed by 'previous' pointer during iteration
22804         and deleting the object. This looks in principle possible via stylesheets and SVG images.
22805         
22806         Speculative fix, no repro, no obvious way to construct a test.
22807
22808         * loader/cache/MemoryCache.cpp:
22809         (WebCore::MemoryCache::pruneDeadResourcesToSize):
22810         
22811             Use CachedResourceHandle to protect the 'previous' pointer during iteration. Check if the
22812             resource has been kicked out from the cache during destroyDecodedData() and stop iterating
22813             if has (as it may die when CachedResourceHandle releases it).
22814             The 'current' pointer is not protected as the resource it points to is allowed to die.
22815             
22816 2012-11-05  Andrey Adaikin  <aandrey@chromium.org>
22817
22818         Web Inspector: Fix jscompiler cast syntax
22819         https://bugs.webkit.org/show_bug.cgi?id=101066
22820
22821         Reviewed by Pavel Feldman.
22822
22823         Casts should be in the form of "/** @type {TypeName} */ (expr)" instead of "/** @type {TypeName} */ expr".
22824
22825         * inspector/InjectedScriptCanvasModuleSource.js:
22826         (.):
22827         * inspector/InjectedScriptSource.js:
22828         (.):
22829         * inspector/front-end/ApplicationCacheModel.js:
22830         (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
22831         (WebInspector.ApplicationCacheModel.prototype._frameDetached):
22832         * inspector/front-end/AuditLauncherView.js:
22833         (WebInspector.AuditLauncherView.prototype._onRequestStarted):
22834         (WebInspector.AuditLauncherView.prototype._onRequestFinished):
22835         * inspector/front-end/BreakpointManager.js:
22836         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
22837         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
22838         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
22839         (WebInspector.BreakpointManager.prototype._breakpointResolved):
22840         (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
22841         (WebInspector.BreakpointManager.Storage):
22842         * inspector/front-end/BreakpointsSidebarPane.js:
22843         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
22844         * inspector/front-end/CSSNamedFlowCollectionsView.js:
22845         (WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
22846         (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
22847         (WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
22848         (WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
22849         * inspector/front-end/CSSSelectorProfileView.js:
22850         (WebInspector.CSSProfileHeader.prototype.createView):
22851         * inspector/front-end/CSSStyleModel.js:
22852         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
22853         (WebInspector.CSSStyleDeclaration.parseComputedStylePayload):
22854         * inspector/front-end/CompilerScriptMapping.js:
22855         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
22856         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
22857         * inspector/front-end/ConsoleView.js:
22858         (WebInspector.ConsoleView.prototype._frameAdded):
22859         (WebInspector.ConsoleView.prototype._frameRemoved):
22860         * inspector/front-end/DOMAgent.js:
22861         (WebInspector.DOMDocument):
22862         * inspector/front-end/DebuggerModel.js:
22863         (WebInspector.DebuggerModel.prototype.didSetBreakpoint):
22864         (WebInspector.DebuggerModel.prototype.setBreakpointByURL):
22865         (WebInspector.DebuggerModel.prototype.):
22866         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
22867         (WebInspector.DebuggerModel.CallFrame.prototype.get location):
22868         * inspector/front-end/DebuggerScriptMapping.js:
22869         (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
22870         * inspector/front-end/DirectoryContentView.js:
22871         (WebInspector.DirectoryContentView.prototype._sort):
22872         * inspector/front-end/ElementsPanel.js:
22873         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
22874         * inspector/front-end/ElementsPanelDescriptor.js:
22875         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
22876         * inspector/front-end/ElementsTreeOutline.js:
22877         (.get node):
22878         * inspector/front-end/ExtensionServer.js:
22879         (WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
22880         (WebInspector.ExtensionServer.prototype._handleOpenURL):
22881         (WebInspector.ExtensionServer.prototype._onGetResourceContent):
22882         (WebInspector.ExtensionServer.prototype._onSetResourceContent):
22883         (WebInspector.ExtensionServer.prototype._notifyResourceAdded):
22884         (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
22885         (WebInspector.ExtensionServer.prototype._notifyRequestFinished):
22886         * inspector/front-end/FileContentView.js:
22887         (WebInspector.FileContentView.prototype._metadataReceived):
22888         (WebInspector.FileContentView.FileContentProvider.prototype.requestContent):
22889         * inspector/front-end/FileSystemModel.js:
22890         (WebInspector.FileSystemModel.prototype._frameAdded):
22891         (WebInspector.FileSystemModel.prototype._frameNavigated):
22892         (WebInspector.FileSystemModel.prototype._frameDetached):
22893         * inspector/front-end/FileSystemView.js:
22894         (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
22895         (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
22896         * inspector/front-end/HandlerRegistry.js:
22897         (WebInspector.HandlerRegistry.prototype._appendHrefItems):
22898         * inspector/front-end/HeapSnapshotLoader.js:
22899         (WebInspector.HeapSnapshotLoader.prototype.write):
22900         * inspector/front-end/HeapSnapshotView.js:
22901         (WebInspector.HeapSnapshotView.prototype._changeBase):
22902         (WebInspector.HeapProfileHeader.prototype.load):
22903         (WebInspector.HeapProfileHeader.prototype._snapshotReceived):
22904         * inspector/front-end/IndexedDBModel.js:
22905         (WebInspector.IndexedDBModel.prototype._frameNavigated):
22906         (WebInspector.IndexedDBModel.prototype._frameDetached):
22907         * inspector/front-end/IndexedDBViews.js:
22908         (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
22909         * inspector/front-end/JavaScriptSourceFrame.js:
22910         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
22911         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
22912         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
22913         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
22914         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageRemoved):
22915         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
22916         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
22917         * inspector/front-end/MemoryStatistics.js:
22918         (WebInspector.MemoryStatistics.prototype.show):
22919         * inspector/front-end/NavigatorView.js:
22920         (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
22921         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
22922         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
22923         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
22924         * inspector/front-end/NetworkLog.js:
22925         (WebInspector.NetworkLog.prototype._onRequestStarted):
22926         * inspector/front-end/NetworkManager.js:
22927         (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
22928         * inspector/front-end/NetworkPanel.js:
22929         (WebInspector.NetworkLogView.prototype._onRequestUpdated):
22930         (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
22931         (WebInspector.NetworkPanel.prototype.reveal):
22932         (WebInspector.NetworkPanel.prototype.appendApplicableItems):
22933         * inspector/front-end/NetworkUISourceCodeProvider.js:
22934         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
22935         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
22936         * inspector/front-end/ObjectPopoverHelper.js:
22937         (WebInspector.ObjectPopoverHelper.prototype.):
22938         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
22939         * inspector/front-end/PresentationConsoleMessageHelper.js:
22940         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
22941         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
22942         * inspector/front-end/ProfilesPanel.js:
22943         * inspector/front-end/ResourceScriptMapping.js:
22944         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
22945         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
22946         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
22947         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
22948         * inspector/front-end/ResourceTreeModel.js:
22949         (WebInspector.ResourceTreeModel.prototype._onRequestFinished):
22950         (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
22951         * inspector/front-end/ResourcesPanel.js:
22952         (WebInspector.ResourcesPanel.prototype._databaseAdded):
22953         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
22954         (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
22955         (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
22956         (WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
22957         (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
22958         (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
22959         (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
22960         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext):
22961         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious):
22962         * inspector/front-end/RevisionHistoryView.js:
22963         (WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
22964         * inspector/front-end/SASSSourceMapping.js:
22965         (rawLocationToUILocation):
22966         * inspector/front-end/ScopeChainSidebarPane.js:
22967         (WebInspector.ScopeChainSidebarPane.prototype.update):
22968         * inspector/front-end/Script.js:
22969         (WebInspector.Script.Location.prototype.uiLocation):
22970         * inspector/front-end/ScriptFormatter.js:
22971         (WebInspector.ScriptFormatter.prototype.get _worker):
22972         * inspector/front-end/ScriptsPanel.js:
22973         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
22974         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
22975         (WebInspector.ScriptsPanel.prototype._editorClosed):
22976         (WebInspector.ScriptsPanel.prototype._editorSelected):
22977         (WebInspector.ScriptsPanel.prototype._scriptSelected):
22978         (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
22979         (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
22980         (WebInspector.ScriptsPanel.prototype.replaceAllWith):
22981         (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
22982         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
22983         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
22984         * inspector/front-end/ScriptsPanelDescriptor.js:
22985         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
22986         * inspector/front-end/StylesSourceMapping.js:
22987         (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
22988         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
22989         * inspector/front-end/TabbedEditorContainer.js:
22990         (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
22991         (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
22992         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
22993         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
22994         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
22995         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
22996         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
22997         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
22998         * inspector/front-end/TimelineModel.js:
22999         (WebInspector.TimelineModelLoader.prototype.write):
23000         * inspector/front-end/UISourceCodeFrame.js:
23001         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
23002         * inspector/front-end/Workspace.js:
23003         (WebInspector.WorkspaceController.prototype._frameAdded):
23004         (WebInspector.Project.prototype._fileAdded):
23005         (WebInspector.Project.prototype._fileRemoved):
23006
23007 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
23008
23009         Web Inspector: render message bubbles in CodeMirror experiment.
23010         https://bugs.webkit.org/show_bug.cgi?id=101164
23011
23012         Reviewed by Vsevolod Vlasov.
23013
23014         It sounds like addLineWidget just makes it happen.
23015
23016         * inspector/front-end/CodeMirrorTextEditor.js:
23017         (WebInspector.CodeMirrorTextEditor):
23018         (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
23019         (WebInspector.CodeMirrorTextEditor.prototype.get if):
23020         (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
23021         (WebInspector.CodeMirrorTextEditor.prototype._change):
23022         * inspector/front-end/DefaultTextEditor.js:
23023         (.preventDefaultOnMouseUp):
23024         * inspector/front-end/PresentationConsoleMessageHelper.js:
23025         (WebInspector.PresentationConsoleMessageHelper):
23026         * inspector/front-end/cm/cmdevtools.css:
23027         (.CodeMirror .webkit-html-message-bubble):
23028         (.CodeMirror .webkit-html-message-bubble img):
23029         (.CodeMirror .webkit-html-warning-message):
23030         (.CodeMirror .webkit-html-error-message):
23031
23032 2012-11-05  Thiago Marcos P. Santos  <thiago.santos@intel.com>
23033
23034         Validate CSS Device Adaptation properties and resolve shorthands
23035         https://bugs.webkit.org/show_bug.cgi?id=95962
23036
23037         Reviewed by Alexis Menard.
23038
23039         Add the missing keywords and properties for the viewport at-rule.
23040         Note that we have to mark that we are inside a viewport scope because
23041         some properties are not validated as they would be inside a style
23042         rule. As an example, the semantics of CSSPropertyWidth are completely
23043         different: on a viewport rule, it stands for a shorthand for the
23044         minimum and maximum width.
23045
23046         Test: css3/device-adapt/viewport-properties-validation.html
23047
23048         * css/CSSComputedStyleDeclaration.cpp:
23049         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
23050         * css/CSSParser.cpp:
23051         (WebCore::CSSParser::parseValue):
23052         (WebCore):
23053         (WebCore::CSSParser::parseViewportProperty):
23054         (WebCore::CSSParser::parseViewportShorthand):
23055         * css/CSSParser.h:
23056         * css/CSSProperty.cpp:
23057         (WebCore::CSSProperty::isInheritedProperty):
23058         * css/CSSPropertyNames.in:
23059         * css/CSSValueKeywords.in:
23060
23061 2012-11-05  Sheriff Bot  <webkit.review.bot@gmail.com>
23062
23063         Unreviewed, rolling out r133286, r133385, and r133394.
23064         http://trac.webkit.org/changeset/133286
23065         http://trac.webkit.org/changeset/133385
23066         http://trac.webkit.org/changeset/133394
23067         https://bugs.webkit.org/show_bug.cgi?id=101198
23068
23069         Broke image placement on some web sites. (Requested by kling
23070         on #webkit).
23071
23072         * css/StyleResolver.cpp:
23073         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
23074         (WebCore::StyleResolver::matchAllRules):
23075         (WebCore::StyleResolver::canShareStyleWithElement):
23076         * dom/Attr.cpp:
23077         (WebCore::Attr::detachFromElementWithValue):
23078         * dom/Element.cpp:
23079         (WebCore::Element::~Element):
23080         (WebCore::Element::detachAttribute):
23081         (WebCore::Element::getAttribute):
23082         (WebCore::Element::setAttributeNode):
23083         (WebCore::Element::removeAttributeInternal):
23084         (WebCore::Element::getAttributeNode):
23085         (WebCore::Element::getAttributeNodeNS):
23086         (WebCore::Element::normalizeAttributes):
23087         (WebCore::Element::attrIfExists):
23088         (WebCore::Element::ensureAttr):
23089         (WebCore::Element::cloneAttributesFromElement):
23090         * dom/Element.h:
23091         (Element):
23092         (WebCore::Element::updateInvalidAttributes):
23093         * dom/ElementAttributeData.cpp:
23094         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
23095         (WebCore):
23096         (WebCore::attrListMap):
23097         (WebCore::attrListForElement):
23098         (WebCore::ensureAttrListForElement):
23099         (WebCore::removeAttrListForElement):
23100         (WebCore::findAttrInList):
23101         (WebCore::ElementAttributeData::attrIfExists):
23102         (WebCore::ElementAttributeData::ensureAttr):
23103         (WebCore::ElementAttributeData::setAttr):
23104         (WebCore::ElementAttributeData::removeAttr):
23105         (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
23106         (WebCore::ElementAttributeData::reportMemoryUsage):
23107         (WebCore::ElementAttributeData::cloneDataFrom):
23108         (WebCore::ElementAttributeData::clearAttributes):
23109         (WebCore::ElementAttributeData::getAttributeNode):
23110         * dom/ElementAttributeData.h:
23111         (WebCore):
23112         (WebCore::ElementAttributeData::attributeStyle):
23113         (WebCore::ElementAttributeData::setAttributeStyle):
23114         (ElementAttributeData):
23115         (WebCore::ElementAttributeData::ElementAttributeData):
23116         * dom/Node.h:
23117         (WebCore):
23118         (WebCore::Node::hasAttrList):
23119         (WebCore::Node::attributeStyleDirty):
23120         (WebCore::Node::setAttributeStyleDirty):
23121         (WebCore::Node::clearAttributeStyleDirty):
23122         (Node):
23123         (WebCore::Node::setHasAttrList):
23124         (WebCore::Node::clearHasAttrList):
23125         (WebCore::Node::isStyleAttributeValid):
23126         (WebCore::Node::setIsStyleAttributeValid):
23127         (WebCore::Node::clearIsStyleAttributeValid):
23128         * dom/StyledElement.cpp:
23129         (WebCore::StyledElement::updateStyleAttribute):
23130         (WebCore::StyledElement::attributeChanged):
23131         (WebCore::StyledElement::styleAttributeChanged):
23132         (WebCore::StyledElement::inlineStyleChanged):
23133         (WebCore::StyledElement::updateAttributeStyle):
23134         * dom/StyledElement.h:
23135         (StyledElement):
23136         (WebCore::StyledElement::invalidateStyleAttribute):
23137         (WebCore::StyledElement::attributeStyle):
23138         * inspector/InspectorCSSAgent.cpp:
23139         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
23140
23141 2012-11-05  Simon Hausmann  <simon.hausmann@digia.com>
23142
23143         Unreviewed trivial Qt build fix.
23144
23145         Surround imports from QtGui by QT_{BEGIN,END}_NAMESPACE to fix namespaced
23146         builds.
23147
23148         * platform/graphics/qt/GraphicsContextQt.cpp:
23149         * platform/graphics/qt/ImageQt.cpp:
23150
23151 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
23152
23153         [Shadow] ShadowRoot type is not set correctly.
23154         https://bugs.webkit.org/show_bug.cgi?id=101188
23155
23156         Reviewed by Hajime Morita.
23157
23158         ShadowRoot type is not set correctly in Release build. We have had to remove #ifndef block.
23159
23160         Test: fast/dom/shadow/shadowroot-type.html
23161
23162         * dom/ShadowRoot.cpp:
23163         (WebCore::ShadowRoot::create):
23164         * testing/Internals.cpp:
23165         (WebCore::Internals::shadowRootType):
23166         (WebCore):
23167         * testing/Internals.h:
23168         (Internals):
23169         * testing/Internals.idl:
23170
23171 2012-11-05  Kent Tamura  <tkent@chromium.org>
23172
23173         BaseChooserOnlyDateAndTimeInputType should implement DateTimeChooserClient
23174         https://bugs.webkit.org/show_bug.cgi?id=101038
23175
23176         Reviewed by Hajime Morita.
23177
23178         Add DateTimeChooserClient behavior to BaseChooserOnlyDateAndTimeInputType.
23179         It means that date/time input elements without
23180         ENABLE_INPUT_MULTIPLE_FIELDS_UI can open date/time choosers by
23181         DOMActivate event.
23182
23183         This patch doesn't change behavior yet because Chromimum-Android port
23184         intercepts user events and doesn't deliver them to date/time input
23185         elements. <http://crbug.com/159381>
23186
23187         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23188         Add DateTimeChooserClient behavior. The code is similar to
23189         PickerIndicatorElement.
23190         (WebCore::BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType):
23191         Closes DateTimeChooser.
23192         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23193         Open DateTimeChooser if
23194          - The element is not disabled,
23195          - The element is not read-only,
23196          - The element has a renderer,
23197          - This event is created by a user gesture, and
23198          - The element has no DateTimeChooser.
23199         (WebCore::BaseChooserOnlyDateAndTimeInputType::detach):
23200         Closes DateTimeChooser.
23201         (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
23202         Set a string value coming from a chooser to the input element.
23203         (WebCore::BaseChooserOnlyDateAndTimeInputType::didEndChooser):
23204         Clear m_dateTimeChooser when the chooser was closed.
23205         (WebCore::BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser):
23206         Requests to close the chooser.
23207         * html/BaseChooserOnlyDateAndTimeInputType.h:
23208         (BaseChooserOnlyDateAndTimeInputType):
23209          - Implement DateTimeChooserClient
23210          - Add closeDateTimeChooser helper function.
23211          - Add detach override.
23212          - Add m_dateTimeChooser.
23213         * html/HTMLInputElement.cpp:
23214         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
23215         Added. The code is moved from PickerIndicatorElement.cpp in order to
23216         share it with BaseChooserOnlyDateAndTimeInputType.
23217         * html/HTMLInputElement.h:
23218         (HTMLInputElement): Declare setupDateTimeChooserParameters.
23219         * html/shadow/PickerIndicatorElement.cpp:
23220         (WebCore::PickerIndicatorElement::openPopup):
23221         Move some code to HTMLInputElement::setupDateTimeChooserParameters.
23222
23223 2012-11-04  Julien Chaffraix  <jchaffraix@webkit.org>
23224
23225         Fix the collapsing border code to handle mixed directionality at the row level
23226         https://bugs.webkit.org/show_bug.cgi?id=101060
23227
23228         Reviewed by Ojan Vafai.
23229
23230         After bug 87900, we support mixed directionality at the row-group level. For coherency
23231         - as the underlying code didn't support it - we were artificially ignoring 'direction'
23232         below the row-group. This change relaxes the restriction and patches the collapsing
23233         borders code to query the right style and border.
23234
23235         Tests: fast/table/border-collapsing/table-ltr-rows-mixed-direction.html
23236                fast/table/border-collapsing/table-rtl-row-mixed-direction.html
23237
23238         * rendering/RenderTable.cpp:
23239         (WebCore::RenderTable::tableStartBorderAdjoiningCell):
23240         (WebCore::RenderTable::tableEndBorderAdjoiningCell):
23241         Changed to query the row's direction.
23242
23243         * rendering/RenderTableCell.cpp:
23244         (WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
23245         (WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
23246         Added 2 helper functions. They determine if a specific cell's border
23247         adjoins the table. This code is required as the last cell's end border
23248         can be resolved against the start border.
23249
23250         (WebCore::RenderTableCell::computeCollapsedStartBorder):
23251         (WebCore::RenderTableCell::computeCollapsedEndBorder):
23252         Updated these functions now that being the start / end column doesn't mean
23253         that we have to resolve against the row / row-group / table's border.
23254
23255         * rendering/RenderTableCell.h:
23256         (WebCore::RenderTableCell::styleForCellFlow):
23257         Updated to return the row's style.
23258
23259         * rendering/RenderTableRow.cpp:
23260         (WebCore::RenderTableRow::borderAdjoiningStartCell):
23261         (WebCore::RenderTableRow::borderAdjoiningEndCell):
23262         * rendering/RenderTableSection.cpp:
23263         (WebCore::RenderTableSection::borderAdjoiningStartCell):
23264         (WebCore::RenderTableSection::borderAdjoiningEndCell):
23265         Updated these functions to work with mixed directionality.
23266
23267         * rendering/RenderTableSection.cpp:
23268         (WebCore::RenderTableSection::setLogicalPositionForCell):
23269         Changed this function to use the section's direction. This is wrong and should be changed
23270         once we properly fix the collapsing border code.
23271
23272         (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
23273         Added a FIXME.
23274
23275         * rendering/style/CollapsedBorderValue.h:
23276         (WebCore::CollapsedBorderValue::width):
23277         This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
23278         'border-style: off | hidden' should have a 0 width). This is covered by our existing tests (among others by
23279         fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html).
23280
23281 2012-11-04  Andrey Adaikin  <aandrey@chromium.org>
23282
23283         Web Inspector: [Canvas] do not blow up the capturing log
23284         https://bugs.webkit.org/show_bug.cgi?id=100752
23285
23286         Reviewed by Pavel Feldman.
23287
23288         Clear obsolete calls in the canvas 2D capturing log in runtime.
23289         Now we store in the log only minimum number of calls that are necessary to replay a
23290         canvas 2D context. To achieve that we find in runtime those calls in the log that no
23291         longer contribute to the final context state and remove them.
23292         These are the rules according which we find and remove such calls:
23293         - all PATH methods between a clip() call and beginPath() call can be removed
23294         - all MATRIX methods before a restore() or setTransform() call but after any PATH or corresponding save() method
23295         - all consecutive save() + restore() calls
23296
23297         Tests: inspector/profiler/canvas2d/canvas2d-api-changes.html
23298                inspector/profiler/canvas2d/canvas2d-profiler-capturing-basics.html
23299
23300         * inspector/InjectedScriptCanvasModuleSource.js:
23301         (.):
23302
23303 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23304
23305         [Shadow] ShadowRoot should have a method to return ShadowRootType.
23306         https://bugs.webkit.org/show_bug.cgi?id=101178
23307
23308         Reviewed by Hajime Morita.
23309
23310         When we style PseudoCustomElement, we have to know ShadowRootType.
23311         We would like to expose a method to get ShadowRootType also in Release mode.
23312
23313         This is a preparation patch for Bug 101170.
23314
23315         * dom/ShadowRoot.h:
23316         (ShadowRoot):
23317
23318 2012-11-04  Keishi Hattori  <keishi@webkit.org>
23319
23320         Introduce Month class to calendar picker
23321         https://bugs.webkit.org/show_bug.cgi?id=101024
23322
23323         Reviewed by Kent Tamura.
23324
23325         Month class needs to be introduced to implement a month picker. This
23326         patch just introduces the Month class into the calendar picker without
23327         changing the current behavior.
23328
23329         No new tests. Covered by existing calendar-picker-*.html tests.
23330
23331         * Resources/pagepopups/calendarPicker.js:
23332         (Month.prototype.toLocaleString): Returns a localized month string.
23333         (Month): Takes a Month object, number representing the month, or year and month numbers.
23334         (Month.parse): Returns a new Month from an ISO month string.
23335         (Month.createFromDate): Returns a new Month containing the given datetime.
23336         (Month.prototype.equals): Returns true if the given month is the same.
23337         (Month.prototype.previous): Returns the previous month.
23338         (Month.prototype.next): Returns the next month.
23339         (Month.prototype.startDate): Returns a datetime that is the start of this month. The value is inclusive.
23340         (Month.prototype.endDate): Returns a datetime that is the end of this month. The value is exclusive.
23341         (Month.prototype.valueOf): Returns a number representing the month.
23342         (Month.prototype.toString): Returns an ISO month string.
23343         (YearMonthController): Use Month object.
23344         (YearMonthController.prototype.attachTo): Year 275760 ends in September so use the year before to measure the label width.
23345         (YearMonthController.prototype.setMonth): Take a month object.
23346         (YearMonthController.prototype._redraw): Use ISO month string for element.dataset.value.
23347         (YearMonthController.prototype._handleYearMonthChange):
23348         (YearMonthController.prototype.moveRelatively):
23349         (DaysTable): Use Month object.
23350         (DaysTable.prototype._renderMonth): Take a month object. Testing for isNaN is moved up to fix a bug when showing September, 275760.
23351         (DaysTable.prototype._navigateToMonth): Take a month object.
23352         (DaysTable.prototype._navigateToMonthWithAnimation): Take a month object.
23353         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Take a month object.
23354         (DaysTable.prototype.selectDate):
23355         (DaysTable.prototype._maybeSetPreviousMonth): Use Month object to calculate the previous month.
23356         (DaysTable.prototype._maybeSetNextMonth): Use Month object to calculate the next month.
23357
23358 2012-11-04  Halton Huo  <halton.huo@intel.com>
23359
23360         [EFL] Use _LIBRARIES instead of _LIBRARY
23361         https://bugs.webkit.org/show_bug.cgi?id=101042
23362
23363         Reviewed by Gyuyoung Kim.
23364
23365         In CMake Find files, _LIBRARY is intended for internal use, should
23366         use _LIBRARIES instead.
23367
23368         * PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}
23369
23370 2012-11-04  MORITA Hajime  <morrita@google.com>
23371
23372         Shadow DOM should be able to be disabled per context.
23373         https://bugs.webkit.org/show_bug.cgi?id=101173
23374
23375         Reviewed by Dimitri Glazkov.
23376
23377         This change pulls back relevant bits from r131549. Note that if
23378         the the port enables runtime Shadow DOM flag, this can cause slow
23379         down on some Chromium page cycler test cases (which r131549
23380         attempted to fix).
23381
23382         This change is temporal and the flags should be switched back from
23383         ContextFeatures to RuntimeEnabledFeatures once it gains sufficent
23384         stability.
23385
23386         * dom/ContextFeatures.cpp:
23387         (WebCore::ContextFeatures::shadowDOMEnabled):
23388         (WebCore):
23389         * dom/ContextFeatures.h:
23390         * dom/Position.cpp:
23391         (WebCore::Position::Position):
23392         (WebCore::Position::findParent):
23393         * dom/TreeScope.cpp:
23394         (WebCore::TreeScope::getSelection):
23395         * html/HTMLTagNames.in:
23396         * html/shadow/HTMLContentElement.cpp:
23397         (WebCore::HTMLContentElement::contentTagName):
23398         * page/DOMWindow.idl:
23399
23400 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23401
23402         [Shadow] Implement custom pseudo-elements styling
23403         https://bugs.webkit.org/show_bug.cgi?id=100812
23404
23405         Reviewed by Hajime Morita.
23406
23407         Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.
23408
23409         Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
23410         and use pseudo()/setPseudo() instead (Bug 101171).
23411
23412         Test: fast/dom/shadow/styling-pseudo-attribute.html
23413
23414         * dom/Element.cpp:
23415         (WebCore::Element::shadowPseudoId):
23416         (WebCore::Element::setShadowPseudoId):
23417         * dom/ElementRareData.cpp:
23418         (WebCore::ElementRareData::reportMemoryUsage):
23419         * dom/ElementRareData.h:
23420         (ElementRareData):
23421
23422 2012-11-04  Kent Tamura  <tkent@chromium.org>
23423
23424         BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior
23425         https://bugs.webkit.org/show_bug.cgi?id=101039
23426
23427         Reviewed by Hajime Morita.
23428
23429         Add BaseClickableWithKeyInputType behavior to
23430         BaseChooserOnlyDateAndTimeInputType. It means date/time input types
23431         without ENABLE_INPUT_MULTIPLE_FIELDS_UI receive DOMActivate events by
23432         pressing space or enter key. They're going to open a date/time chooser
23433         by DOMActive event.
23434
23435         Because BaseChooserOnlyDateAndTimeInputType inherits from
23436         BaseDateAndTimeInputType, it can't inherit
23437         BaseClickableWithKeyInputType. So, this patch adds static helper
23438         functions to BaseClickableWithKeyInputType, and
23439         BaseChooserOnlyDateAndTimeInputType uses them.
23440
23441         This patch doesn't change behavior yet because Chromimum-Android port
23442         intercepts user events and doesn't deliver them to date/time input
23443         elements.
23444
23445         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23446         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23447         Add an empty implementation with a FIXME comment.
23448         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
23449         Add BaseClickableWithKeyInputType behavior by a helper function.
23450         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent): Ditto.
23451         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent): Ditto.
23452         (WebCore::BaseChooserOnlyDateAndTimeInputType::accessKeyAction): Ditto.
23453         * html/BaseChooserOnlyDateAndTimeInputType.h:
23454         (BaseChooserOnlyDateAndTimeInputType): Add function declarations.
23455         * html/BaseClickableWithKeyInputType.cpp:
23456         Add static helper functions, and existing member functions use them.
23457         * html/BaseClickableWithKeyInputType.h:
23458         (BaseClickableWithKeyInputType): Add declarations of the helper functions.
23459         * html/InputType.h:
23460         (InputType): Make dispatchSimulatedClickIfActive public because it is
23461         called from a helper function.
23462
23463 2012-11-04  Sheriff Bot  <webkit.review.bot@gmail.com>
23464
23465         Unreviewed, rolling out r133416.
23466         http://trac.webkit.org/changeset/133416
23467         https://bugs.webkit.org/show_bug.cgi?id=101169
23468
23469         Broke world selection by right click (Requested by rniwa on
23470         #webkit).
23471
23472         * page/EventHandler.cpp:
23473         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
23474         (WebCore::EventHandler::sendContextMenuEvent):
23475
23476 2012-11-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
23477
23478         Missing ASCIILiteral in a place of accessibility
23479         https://bugs.webkit.org/show_bug.cgi?id=101160
23480
23481         Reviewed by Darin Adler.
23482
23483         ASCIILiteral usage is being missed in a spot of accessibliity.
23484
23485         * accessibility/AccessibilityMediaControls.cpp:
23486         (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
23487
23488 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23489
23490         [Qt][WK2] setPlatformStrategies always asserts after r132744
23491         https://bugs.webkit.org/show_bug.cgi?id=100838
23492
23493         Reviewed by Simon Hausmann.
23494
23495         Reland with build fixes.
23496
23497         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23498         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23499         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23500         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23501         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23502         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23503         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23504         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23505         in non production mode.
23506
23507         Basically covered by all tests.
23508
23509         * Target.pri:
23510         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23511         initializeTestFonts uses it.
23512         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23513         is also under that.
23514         (WebKit):
23515         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23516         without calling initializeWebCoreQt.
23517         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23518         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23519         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23520         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23521         the job even if we would stop clearing all caches between tests. Also moved the call to
23522         QFontDatabase::removeAllApplicationFonts from callers to here.
23523         * platform/qt/QtTestSupport.h:
23524         (WebKit):
23525         (QtTestSupport):
23526
23527 2012-11-04  Florin Malita  <fmalita@chromium.org>
23528
23529         Color-profile property triggers assert
23530         https://bugs.webkit.org/show_bug.cgi?id=101080
23531
23532         Reviewed by Dirk Schulze.
23533
23534         CSSPropertyColorProfile is not handled in StyleResolver::applySVGProperty(), triggering the
23535         unimplemented property assert. Adding a stub entry to avoid that.
23536
23537         Test: svg/css/color-profile-crash.html
23538
23539         * css/SVGCSSStyleSelector.cpp:
23540         (WebCore::StyleResolver::applySVGProperty):
23541
23542 2012-11-04  Kaustubh Atrawalkar  <kaustubh@motorola.com>
23543
23544         Unable to copy text on disabled input fields on long press gesture
23545         https://bugs.webkit.org/show_bug.cgi?id=99698
23546
23547         Reviewed by Ryosuke Niwa.
23548
23549         Text from disabled input/text should be allowed to select. Replaced isContentEditable()
23550         with canStartSelection()
23551
23552         Test: fast/events/touch/gesture/disabled-input-text-selection.html
23553
23554         * page/EventHandler.cpp:
23555         (WebCore::EventHandler::handleGestureLongPress):
23556
23557 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23558
23559         Unreviewed, rolling out r133403, r133404, and r133409.
23560         http://trac.webkit.org/changeset/133403
23561         http://trac.webkit.org/changeset/133404
23562         http://trac.webkit.org/changeset/133409
23563         https://bugs.webkit.org/show_bug.cgi?id=101158
23564
23565         "Broke tests" (Requested by kbalazs on #webkit).
23566
23567         * Target.pri:
23568         * WebCore.pri:
23569         * platform/qt/QtTestSupport.h: Removed.
23570
23571 2012-11-03  Alexey Proskuryakov  <ap@apple.com>
23572
23573         Get rid of USE(CFURLSTORAGESESSIONS)
23574         https://bugs.webkit.org/show_bug.cgi?id=101131
23575
23576         Reviewed by Sam Weinig.
23577
23578         This is always enabled on CFNetwork based platforms.
23579
23580         * WebCore.exp.in:
23581         * page/Settings.cpp:
23582         (WebCore::Settings::setPrivateBrowsingEnabled):
23583         * platform/mac/CookieJar.mm:
23584         (WebCore::cookies):
23585         (WebCore::cookieRequestHeaderFieldValue):
23586         (WebCore::setCookies):
23587         (WebCore::cookiesEnabled):
23588         (WebCore::getRawCookies):
23589         (WebCore::deleteCookie):
23590         * platform/network/ResourceHandle.h:
23591         (ResourceHandle):
23592         * platform/network/cf/CookieStorageCFNet.cpp:
23593         (WebCore):
23594         (WebCore::currentCFHTTPCookieStorage):
23595         * platform/network/cf/CookieStorageCFNet.h:
23596         * platform/network/cf/ResourceHandleCFNet.cpp:
23597         (WebCore::willSendRequest):
23598         (WebCore::makeFinalRequest):
23599         (WebCore::ResourceHandle::willSendRequest):
23600         (WebCore):
23601         * platform/network/cf/ResourceRequest.h:
23602         (ResourceRequest):
23603         * platform/network/cf/ResourceRequestCFNet.cpp:
23604         (WebCore::ResourceRequest::doUpdatePlatformRequest):
23605         (WebCore):
23606         * platform/network/mac/CookieStorageMac.mm:
23607         (WebCore::setCookieStoragePrivateBrowsingEnabled):
23608         * platform/network/mac/ResourceHandleMac.mm:
23609         (WebCore::shouldRelaxThirdPartyCookiePolicy):
23610         (WebCore::ResourceHandle::createNSURLConnection):
23611         (WebCore::ResourceHandle::willSendRequest):
23612         (WebCore):
23613         * platform/network/mac/ResourceRequestMac.mm:
23614         (WebCore):
23615         (WebCore::ResourceRequest::setStorageSession):
23616
23617 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23618
23619         [Qt][WK2] setPlatformStrategies always asserts after r132744
23620         https://bugs.webkit.org/show_bug.cgi?id=100838
23621
23622         Reviewed by Simon Hausmann.
23623
23624         Reland with build fix.
23625
23626         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23627         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23628         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23629         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23630         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23631         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23632         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23633         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23634         in non production mode.
23635
23636         Basically covered by all tests.
23637
23638         * Target.pri:
23639         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23640         initializeTestFonts uses it.
23641         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23642         is also under that.
23643         (WebKit):
23644         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23645         without calling initializeWebCoreQt.
23646         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23647         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23648         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23649         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23650         the job even if we would stop clearing all caches between tests. Also moved the call to
23651         QFontDatabase::removeAllApplicationFonts from callers to here.
23652         * platform/qt/QtTestSupport.h:
23653         (WebKit):
23654         (QtTestSupport):
23655
23656 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23657
23658         Unreviewed, rolling out r133397.
23659         http://trac.webkit.org/changeset/133397
23660         https://bugs.webkit.org/show_bug.cgi?id=101155
23661
23662         "Broke Qt. No way to force the damn bots to do a clean build.
23663         I'm giving up." (Requested by kbalazs on #webkit).
23664
23665         * Target.pri:
23666         * WebCore.pri:
23667         * platform/qt/QtTestSupport.h: Removed.
23668
23669 2012-11-03  Stephen White  <senorblanco@chromium.org>
23670
23671         Speculative fix to eliminate flakiness in
23672         css3/filters/blur-filter-page-scroll-self.html
23673         https://bugs.webkit.org/show_bug.cgi?id=91620.
23674         Suspicion is that a prior test is setting
23675         window.internals.settings.setEnableCompositingForFixedPosition(true),
23676         causing this test to be intermittely run on the GPU, giving different
23677         pixel results depending on test order.
23678
23679         Reviewed by Jochen Eisinger.
23680
23681         Covered by css3/filters/blur-filter-page-scroll-self.html
23682
23683         * testing/InternalSettings.cpp:
23684         (WebCore::InternalSettings::Backup::Backup):
23685         (WebCore::InternalSettings::Backup::restoreTo):
23686         * testing/InternalSettings.h:
23687         (Backup):
23688
23689 2012-11-03  Mark Rowe  <mrowe@apple.com>
23690
23691         REGRESSION (r132858): Crash below -[DOMElement setClassName:] when called with a nil string
23692
23693         Reviewed by Anders Carlsson.
23694
23695         The changes in r132858 introduced an overload of AtomicString::add for CFStrings. However, the overload
23696         that was introduced is not null safe.
23697
23698         * platform/text/cf/AtomicStringCF.cpp:
23699         (WTF::AtomicString::add): Handle a null string by returning a null StringImpl.
23700
23701 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23702
23703         [Qt][WK2] setPlatformStrategies always asserts after r132744
23704         https://bugs.webkit.org/show_bug.cgi?id=100838
23705
23706         Reviewed by Simon Hausmann.
23707
23708         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23709         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23710         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23711         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23712         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23713         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23714         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23715         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23716         in non production mode.
23717
23718         Basically covered by all tests.
23719
23720         * Target.pri:
23721         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23722         initializeTestFonts uses it.
23723         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23724         is also under that.
23725         (WebKit):
23726         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23727         without calling initializeWebCoreQt.
23728         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23729         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23730         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23731         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23732         the job even if we would stop clearing all caches between tests. Also moved the call to
23733         QFontDatabase::removeAllApplicationFonts from callers to here.
23734         * platform/qt/QtTestSupport.h:
23735         (WebKit):
23736         (QtTestSupport):
23737
23738 2012-11-03  Dan Beam  <dbeam@chromium.org>
23739
23740         Implement HTMLFormElement#requestAutocomplete and associated events
23741         https://bugs.webkit.org/show_bug.cgi?id=100557
23742
23743         Reviewed by Adam Barth.
23744
23745         Implements an initial version of the proposal for interactive autocomplete outlined in this email:
23746         http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
23747
23748         The goal of this patch is to allow web authors to call formElement.requestAutocomplete(); after subscribing for
23749         autocomplete/autocompleteerror events on formElement. If the form's [autocomplete] attribute is "off" an
23750         error will be dispatched. Otherwise, a request will be issued to the FrameLoaderClient.  At the moment, the
23751         implementation in Chrome (https://codereview.chromium.org/11270018/) will simply dispatch an error until the
23752         UI on Chrome's side is built. Both autocomplete and autocompleteerror events will be dispatched asynchronously
23753         after a small delay to behave consistently in all situations and implementations.
23754
23755         Currently this is behind the feature flag REQUEST_AUTOCOMPLETE, which is disabled.
23756
23757         Test: fast/forms/form-request-autocomplete.html
23758
23759         * dom/EventNames.h:
23760         (WebCore):
23761
23762         Added autocomplete and autocompleteerror events. The autocomplete event is dispatched after a user adds more
23763         information to a form using the future UI. This is not currently dispatched in any implementation (including Chrome)
23764         but will be in the future. The autocompleteerror event is dispatched when the form has [autocomplete="off"] on the
23765         node being asked for an interactive autocomplete. The user agent may also dispatch this event if it doesn't implement
23766         this API but has turned on the feature flag, can't currently show an autocomplete UI (e.g. running headlessly or in
23767         an HTML notification, security concerns, or any other reason it desires).
23768
23769         * html/HTMLAttributeNames.in:
23770
23771         Added onautocomplete and onautocompleteerror attributes so they can be parsed when creating form elements and used
23772         as event listeners. For example:
23773
23774           <form onautocomplete="/* when autocomplete succeeds */" autocompleteerror="/* when autocomplete fails */">
23775
23776         * html/HTMLFormElement.cpp:
23777         (WebCore::HTMLFormElement::HTMLFormElement):
23778         (WebCore):
23779
23780         Added m_requestAutocompleteTimer (a timer that's used to dispatch events asynchronously) to the initializer list that
23781         triggers requestAutocompleteTimerFired when it times out.
23782
23783         (WebCore::HTMLFormElement::requestAutocomplete):
23784
23785         Called when HTMLFormElement#requestAutocomplete is called from JS (also see HTMLFormElement.idl) and decides whether
23786         to dispatch an error and exit early (in the case where autocomplete="off") or pass the request on to the
23787         FrameLoaderClient.
23788
23789         (WebCore::HTMLFormElement::finishRequestAutocomplete):
23790
23791         Called when the request for an interactive autocomplete is finished with either a success or error result. This
23792         causes an event to queue and fired after a 0 second delay. Events are owned by HTMLFormElement and reference the
23793         target element (this) until fired.
23794
23795         (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
23796
23797         Called when the event timer runs out to pump the queue of current events. Events are released on dispatch.
23798
23799         (WebCore::HTMLFormElement::parseAttribute):
23800
23801         Encountering onautocomplete or onautocompleteerror attributes while parsing HTMLFormElements now adds event listeners
23802         for autocomplete an autocompleteerror events (respectively) to dispatch the value of the attribute as a script.
23803
23804         * html/HTMLFormElement.h:
23805         (HTMLFormElement):
23806
23807         Added various methods and data members as required by the implementation.
23808
23809         * html/HTMLFormElement.idl:
23810
23811         Added the method requestAutocomplete and associated DOM event handler attributes (onautocomplete/onautocompleteerror)
23812         to HTMLFormElement's public DOM API (unprefixed, as per Ian Hickson's advice). All are require the Conditional
23813         REQUEST_AUTOCOMPLETE to be enabled to be activated.
23814
23815         * loader/EmptyClients.cpp:
23816         (WebCore):
23817         (WebCore::EmptyFrameLoaderClient::didRequestAutocomplete):
23818
23819         Added noop implementation for FrameLoader::didRequestAutocomplete.
23820
23821         * loader/EmptyClients.h:
23822         (EmptyFrameLoaderClient):
23823
23824         Added FrameLoader::didRequestAutocomplete to EmptyFrameLoaderClient interface.
23825
23826         * loader/FrameLoaderClient.h:
23827         (FrameLoaderClient):
23828
23829         Added noop implementation to FrameLoaderClient interface (which is implemented chromium's FrameLoaderLoaderImpl.cpp).
23830
23831 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23832
23833         Web Inspector: %d, %i, and %f log formatters have same result
23834         https://bugs.webkit.org/show_bug.cgi?id=101148
23835
23836         Reviewed by Alexander Pavlov.
23837
23838         Added separate formatters for %f, %i, %d and %s.
23839
23840         Test: inspector/console/console-message-format.html
23841
23842         * inspector/front-end/ConsoleMessage.js:
23843         (WebInspector.ConsoleMessageImpl.prototype.stringFormatter):
23844         (WebInspector.ConsoleMessageImpl.prototype.floatFormatter):
23845         (WebInspector.ConsoleMessageImpl.prototype.integerFormatter):
23846
23847 2012-11-03  Andreas Kling  <kling@webkit.org>
23848
23849         Decouple Attr logic from ElementAttributeData.
23850         <http://webkit.org/b/101126>
23851
23852         Reviewed by Antti Koivisto.
23853
23854         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
23855         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
23856         can be shared by any number of Elements at a given time.
23857
23858         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
23859         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
23860
23861         * dom/Element.h:
23862         * dom/ElementAttributeData.h:
23863         * dom/Element.cpp:
23864         (WebCore::attrNodeListMap):
23865         (WebCore::attrNodeListForElement):
23866         (WebCore::ensureAttrNodeListForElement):
23867         (WebCore::removeAttrNodeListForElement):
23868         (WebCore::findAttrNodeInList):
23869         (WebCore::Element::~Element):
23870         (WebCore::Element::detachAttribute):
23871         (WebCore::Element::setAttributeNode):
23872         (WebCore::Element::removeAttributeInternal):
23873         (WebCore::Element::getAttributeNode):
23874         (WebCore::Element::getAttributeNodeNS):
23875         (WebCore::Element::normalizeAttributes):
23876         (WebCore::Element::attrIfExists):
23877         (WebCore::Element::ensureAttr):
23878         (WebCore::Element::detachAttrNodeFromElementWithValue):
23879         (WebCore::Element::detachAllAttrNodesFromElement):
23880         (WebCore::Element::cloneAttributesFromElement):
23881
23882             Move everything Attr-related into Element.cpp while simplifying some loops and remove
23883             conditions that are no longer needed as they used to depend on having an attributeData().
23884
23885         * dom/Node.h:
23886         (WebCore::Node::hasSyntheticAttrChildNodes):
23887         (WebCore::Node::setHasSyntheticAttrChildNodes):
23888
23889             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
23890
23891         * dom/Attr.cpp:
23892         (WebCore::Attr::detachFromElementWithValue):
23893
23894             Remove awkward indirection and let the call site deal with removing the Attr node from
23895             the Element's list of Attr nodes.
23896
23897         * dom/ElementAttributeData.cpp:
23898         (WebCore::ElementAttributeData::clearAttributes):
23899
23900             Remove now-unused Element* argument.
23901
23902 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23903
23904         REGRESSION (r132014-r132047): Webkit Inspector Window docking broken
23905         https://bugs.webkit.org/show_bug.cgi?id=101125
23906
23907         Reviewed by Vsevolod Vlasov.
23908
23909         Added "bottom" as default docked state.
23910
23911         * inspector/front-end/DockController.js:
23912         (WebInspector.DockController):
23913
23914 2012-11-02  Shinya Kawanaka  <shinyak@chromium.org>
23915
23916         [Shadow] ShadowRoot should be able to know the existence of <content>
23917         https://bugs.webkit.org/show_bug.cgi?id=100921
23918
23919         Reviewed by Dimitri Glazkov.
23920
23921         When <content> is inserted into or removed from a shadow subtree, ShadowRoot counts the number of <content>.
23922         It provides O(1) method to check the existence of <content>.
23923
23924         This is necessary when we implement a fast checking path for distribution invalidation when an element attribute
23925         is changed. Larger context is explained in Bug 100451.
23926
23927         Test: fast/dom/shadow/has-content-elements.html
23928
23929         * dom/ShadowRoot.cpp:
23930         (WebCore::ShadowRoot::ShadowRoot):
23931         (WebCore::ShadowRoot::hasInsertionPoint): Since we track both <content> and <shadow>, we don't need to traverse
23932         all the descendants of ShadowRoot anymore.
23933         * dom/ShadowRoot.h:
23934         (WebCore::ShadowRoot::registerContentElement):
23935         (WebCore::ShadowRoot::unregisterContentElement):
23936         (WebCore::ShadowRoot::hasContentElement):
23937         (ShadowRoot):
23938         * html/shadow/HTMLContentElement.cpp:
23939         (WebCore::HTMLContentElement::HTMLContentElement):
23940         (WebCore::HTMLContentElement::insertedInto): When <content> is inserted into ShadowDOM subtree,
23941         we notify it to the ShadowRoot. Note that only active <content> element is counted.
23942         (WebCore):
23943         (WebCore::HTMLContentElement::removedFrom):
23944         * html/shadow/HTMLContentElement.h:
23945         (HTMLContentElement):
23946         * testing/Internals.cpp:
23947         (WebCore::Internals::hasContentElement):
23948         (WebCore):
23949         * testing/Internals.h:
23950         (Internals):
23951         * testing/Internals.idl:
23952
23953 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
23954
23955         sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle
23956         https://bugs.webkit.org/show_bug.cgi?id=99990
23957
23958         Reviewed by Darin Adler.
23959
23960         Move initialization code for sCurrentPaintTimeStamp to the below of early returns,
23961         because it was not reset after early return.
23962
23963         * page/FrameView.cpp:
23964         (WebCore::FrameView::paintContents):
23965
23966 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
23967
23968         Fix build warning in PluginView.cpp on release build
23969         https://bugs.webkit.org/show_bug.cgi?id=101049
23970
23971         Reviewed by Kentaro Hara.
23972
23973         The protocol, host, port parameters are not used when LOG_DISABLED
23974         Use UNUSED_PARAM macro for removing -Wunused-parameter warning
23975
23976         * plugins/PluginView.cpp:
23977         (WebCore::PluginView::getAuthenticationInfo):
23978
23979 2012-10-25  Martin Robinson  <mrobinson@igalia.com>
23980
23981         [GTK] Move soup authentication from GtkAuthenticationDialog to WebCore
23982         https://bugs.webkit.org/show_bug.cgi?id=99914
23983
23984         Reviewed by Carlos Garcia Campos.
23985
23986         Move the actual soup authentication code from the GtkAuthenticationDialog to ResourceHandleSoup.
23987         This allows a more generic implementation of authentication, for example, one where a WebKit2
23988         client can completely handle authentication.
23989
23990         No new tests. This does not change behavior.
23991
23992         * platform/gtk/GtkAuthenticationDialog.cpp: Remove references to the SoupPasswordManager, which
23993         is going away in the next release of Gnome. Instead we always assume that the authentication backend has
23994         support for remembering passwords and pass that information along with the answer to the authentication
23995         request.
23996
23997         The rest of the changes to this class can be summarized as:
23998         1. Getting the information from the AuthenticationChallenge instead of directly from the libsoup
23999            objects.
24000         2. Using the AuthenticationClient to accomplish the authentication instead of talking to libsoup
24001            directly.
24002         * platform/gtk/GtkAuthenticationDialog.h:
24003         (GtkAuthenticationDialog): Remove members which are no longer used.
24004         * platform/network/ResourceHandle.h:
24005         (ResourceHandle): ResourceHandleSoup now implements the entire AuthenticationClient interface.
24006         * platform/network/soup/ResourceHandleSoup.cpp:
24007         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge): Don't handle authentication
24008         for synchronous handles.
24009         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Now set the current challenge on
24010         the internal data structure.
24011         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added.
24012         (WebCore::ResourceHandle::receivedCredential): Added.
24013         (WebCore::ResourceHandle::receivedCancellation): Added.
24014         (WebCore::authenicateCallback): Pass the handle as the authentication client.
24015
24016 2012-11-02  Benjamin Poulain  <bpoulain@apple.com>
24017
24018         Improve CSSParser::setupParser() since the prefix/suffix are literals
24019         https://bugs.webkit.org/show_bug.cgi?id=101107
24020
24021         Reviewed by Andreas Kling.
24022
24023         * css/CSSParser.cpp:
24024         (WebCore::CSSParser::setupParser):
24025         * css/CSSParser.h:
24026         (CSSParser):
24027         (WebCore::CSSParser::setupParser):
24028         CSSParser::setupParser() is only used with literals prefix and suffix. We do not have
24029         to compute the length at runtime, we can direclty encode it in the binary.
24030
24031 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24032
24033         Unreviewed, rolling out r133375.
24034         http://trac.webkit.org/changeset/133375
24035         https://bugs.webkit.org/show_bug.cgi?id=101138
24036
24037         Caused 3 tests to fail on Mac (Requested by aboxhall-laptop on
24038         #webkit).
24039
24040         * platform/text/LineBreakIteratorPoolICU.h:
24041         (WebCore::LineBreakIteratorPool::take):
24042         (WebCore::LineBreakIteratorPool::put):
24043         (LineBreakIteratorPool):
24044         * platform/text/TextBreakIterator.h:
24045         (WebCore):
24046         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24047         (WebCore::LazyLineBreakIterator::get):
24048         (WebCore::LazyLineBreakIterator::reset):
24049         (LazyLineBreakIterator):
24050         * platform/text/TextBreakIteratorICU.cpp:
24051         (WebCore::acquireLineBreakIterator):
24052         (WebCore::releaseLineBreakIterator):
24053         * rendering/RenderBlockLineLayout.cpp:
24054         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24055         * rendering/RenderText.cpp:
24056         (WebCore::RenderText::computePreferredLogicalWidths):
24057         * rendering/RenderText.h:
24058         (WebCore):
24059         * rendering/break_lines.cpp:
24060         (WebCore):
24061         (WebCore::isBreakableSpace):
24062         (WebCore::needsLineBreakIterator):
24063         (WebCore::nextBreakablePosition):
24064         (WebCore::nextBreakablePositionIgnoringNBSP):
24065         * rendering/break_lines.h:
24066         (WebCore):
24067         (WebCore::isBreakable):
24068
24069 2012-11-02  Andreas Kling  <kling@webkit.org>
24070
24071         Cut overgrown ElementAttributeData bitfield.
24072         <http://webkit.org/b/101129>
24073
24074         Reviewed by Anders Carlsson.
24075
24076         Make sure the ElementAttributeData bitfield fits into 32 bits. Added a compile-time assertion
24077         to guard against future bloatage.
24078
24079         * dom/ElementAttributeData.cpp:
24080         (SameSizeAsElementAttributeData):
24081         * dom/ElementAttributeData.h:
24082         (ElementAttributeData):
24083
24084 2012-11-02  Michael Saboff  <msaboff@apple.com>
24085
24086         Crash calling is8Bit() in visitedLinkHash()
24087         https://bugs.webkit.org/show_bug.cgi?id=101119
24088
24089         Reviewed by Filip Pizlo.
24090
24091         Added an isEmpty() check to AttributeURL and KURL.
24092
24093         * platform/LinkHash.cpp:
24094         (WebCore::visitedLinkHash):
24095
24096 2012-11-02  Glenn Adams  <glenn@skynav.com>
24097
24098         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
24099         https://bugs.webkit.org/show_bug.cgi?id=89235
24100
24101         Reviewed by Eric Seidel.
24102
24103         See also wiki documentation at:
24104         [1] http://trac.webkit.org/wiki/LineBreaking
24105         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
24106
24107         Web exposed changes include:
24108         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
24109         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
24110         (3) See [2] above for details regarding interpretation.
24111
24112         Tests: css3/line-break/line-break-auto-centered.html
24113                css3/line-break/line-break-auto-half-kana.html
24114                css3/line-break/line-break-auto-hyphens.html
24115                css3/line-break/line-break-auto-inseparables.html
24116                css3/line-break/line-break-auto-iteration-marks.html
24117                css3/line-break/line-break-auto-postfixes.html
24118                css3/line-break/line-break-auto-prefixes.html
24119                css3/line-break/line-break-auto-sound-marks.html
24120                css3/line-break/line-break-loose-centered.html
24121                css3/line-break/line-break-loose-half-kana.html
24122                css3/line-break/line-break-loose-hyphens.html
24123                css3/line-break/line-break-loose-inseparables.html
24124                css3/line-break/line-break-loose-iteration-marks.html
24125                css3/line-break/line-break-loose-postfixes.html
24126                css3/line-break/line-break-loose-prefixes.html
24127                css3/line-break/line-break-loose-sound-marks.html
24128                css3/line-break/line-break-normal-centered.html
24129                css3/line-break/line-break-normal-half-kana.html
24130                css3/line-break/line-break-normal-hyphens.html
24131                css3/line-break/line-break-normal-inseparables.html
24132                css3/line-break/line-break-normal-iteration-marks.html
24133                css3/line-break/line-break-normal-postfixes.html
24134                css3/line-break/line-break-normal-prefixes.html
24135                css3/line-break/line-break-normal-sound-marks.html
24136                css3/line-break/line-break-strict-centered.html
24137                css3/line-break/line-break-strict-half-kana.html
24138                css3/line-break/line-break-strict-hyphens.html
24139                css3/line-break/line-break-strict-inseparables.html
24140                css3/line-break/line-break-strict-iteration-marks.html
24141                css3/line-break/line-break-strict-postfixes.html
24142                css3/line-break/line-break-strict-prefixes.html
24143                css3/line-break/line-break-strict-sound-marks.html
24144
24145         * platform/text/LineBreakIteratorPoolICU.h:
24146         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
24147         Add static function to construct ICU locale argument (also used as pool key) with additional
24148         break keyword.
24149         (WebCore::LineBreakIteratorPool::take):
24150         (WebCore::LineBreakIteratorPool::put):
24151         (LineBreakIteratorPool):
24152         Remove direct dependency from ICU library (and types), moving that dependency into
24153         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
24154         Update to take line break mode into account.
24155         Create (and cache) different break iterators depending on line break mode (in addition to locale),
24156         which entails expanding pool entry key format to optionally append "@break=" +
24157         "loose"|"normal"|"strict" keyword to locale string.
24158
24159         * platform/text/TextBreakIterator.h:
24160         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24161         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
24162         (WebCore::LazyLineBreakIterator::get):
24163         (WebCore::LazyLineBreakIterator::reset):
24164         (LazyLineBreakIterator):
24165         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
24166         Add state member to indicate line break mode.
24167
24168         * platform/text/TextBreakIteratorICU.cpp:
24169         (WebCore::acquireLineBreakIterator):
24170         Use new line break mode when making iterator from pool.
24171         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
24172         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24173         (WebCore::releaseLineBreakIterator):
24174         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
24175         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24176         (WebCore::isCJKLocale):
24177         New functions for determining if CJK rules apply.
24178         (WebCore::openLineBreakIterator):
24179         New function for abstracting opening of ICU style line break iterator. This is now
24180         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24181         This function also takes into account the line break mode.
24182         (WebCore::closeLineBreakIterator):
24183         (WebCore::mapLineIteratorModeToRules):
24184         New function for abstracting closing of ICU style line break iterator. This is now
24185         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24186
24187         * rendering/RenderBlockLineLayout.cpp:
24188         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24189         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
24190         Add looseMode local variable to prevent need for computing under isBreakable().
24191
24192         * rendering/RenderText.cpp:
24193         (WebCore::mapLineBreakToIteratorMode):
24194         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24195         and RenderBlock::LineBreaker::nextLineBreak.
24196         (WebCore::RenderText::computePreferredLogicalWidths):
24197         Ensure (lazy line) breakIterator is initialized for line break mode.
24198         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
24199
24200         * rendering/RenderText.h:
24201         (WebCore):
24202         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24203         and RenderBlock::LineBreaker::nextLineBreak.
24204
24205         * rendering/break_lines.cpp:
24206         (WebCore):
24207         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
24208         to include loose mode parameter.
24209         (WebCore::isBreakableSpace):
24210         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24211         accessor method on each invocation. Use new loose mode flavors off NBP functions.
24212         (WebCore::needsLineBreakIterator):
24213         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
24214         to prevent regression to non loose mode path.
24215         (WebCore::nextBreakablePosition):
24216         (WebCore::nextBreakablePositionIgnoringNBSP):
24217         Use new template parameter enums described above.
24218         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
24219         (WebCore::nextBreakablePositionLoose):
24220         Introduce two additional 'loose' mode flavors of NBP template expansions.
24221
24222         * rendering/break_lines.h:
24223         (WebCore):
24224         (WebCore::isBreakable):
24225         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24226         accessor method on each invocation.
24227
24228 2012-11-02  Elliott Sprehn  <esprehn@chromium.org>
24229
24230         Replace NodeRareData hash map with a union on m_renderer
24231         https://bugs.webkit.org/show_bug.cgi?id=100057
24232
24233         Reviewed by Eric Seidel.
24234
24235         Use a union on Node::m_renderer between NodeRareData* and RenderObject*. This removes
24236         the overhead of accessing rare data and the memory from the map.
24237
24238         This is an 8% improvement on Bindings/get-elements-by-tag-name.html which tested
24239         document.getElementsByTagName and was previously optimized in Bug 90059 for a 5% 
24240         improvement. As this is better than even the special casing for document that was
24241         done in that bug, general node list access should see an even greater win.
24242
24243         This reduces the memory usage on nytimes.com by 250k per Bug 101052 by
24244         removing the rare data map overhead.
24245
24246         This is also a 15% improvement on Parser/textarea-parsing.html
24247
24248         By removing the performance overhead of rareData() this patch addresses the performance
24249         issues raised in Bugs 73853, 87034 and 89635.
24250
24251         I ran Parser/html5-full-render.html and there was no performance regression after
24252         tuning Text::recalcTextStyle and the refactor that was done in r132684.
24253
24254         No new tests, this is just a refactor.
24255
24256         * dom/Document.cpp:
24257         (WebCore::Document::Document):
24258         * dom/Document.h:
24259         (WebCore::Node::Node):
24260         * dom/Element.cpp:
24261         (WebCore::Element::elementRareData):
24262         * dom/Node.cpp:
24263         (WebCore::Node::rareData):
24264         (WebCore::Node::ensureRareData):
24265         (WebCore::Node::clearRareData):
24266         (WebCore::Node::renderBox):
24267         (WebCore::Node::renderBoxModelObject):
24268         (WebCore::Node::reportMemoryUsage):
24269         * dom/Node.h:
24270         (NodeRareDataBase):
24271           Base class for NodeRareData that knows about the renderer so we can
24272           inline the accesses in Node.h
24273         (WebCore::NodeRareDataBase::renderer):
24274         (WebCore::NodeRareDataBase::setRenderer):
24275         (WebCore::NodeRareDataBase::~NodeRareDataBase):
24276         (WebCore::NodeRareDataBase::NodeRareDataBase):
24277         (WebCore):
24278         (WebCore::Node::renderer):
24279         (WebCore::Node::setRenderer):
24280         (Node):
24281         * dom/NodeRareData.h:
24282         * dom/NodeRenderStyle.h:
24283         (WebCore::Node::renderStyle):
24284         * dom/Text.cpp:
24285         (WebCore::Text::recalcTextStyle):
24286           This method appears very hot in html5-full-render.html and accessing the
24287           renderer 4 times caused a 2% performance regression with this patch. I
24288           reduced it to 1 access and there's no longer any performance regression.
24289         * dom/WebCoreMemoryInstrumentation.cpp:
24290           Removed tracking of the rare data map memory usage as there is no longer
24291           a map to track.
24292         * dom/WebCoreMemoryInstrumentation.h:
24293         * inspector/InspectorMemoryAgent.cpp:
24294         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
24295
24296 2012-11-02  Alexey Proskuryakov  <ap@apple.com>
24297
24298         [Mac] ResourceHandle changes for network process
24299         https://bugs.webkit.org/show_bug.cgi?id=101111
24300
24301         Reviewed by Jessie Berlin.
24302
24303         With NSOperationQueue, we'll be getting NetworkProcess delegate method calls
24304         on secondary threads, and so we won't block other requests while consulting with WebProcess.
24305
24306         * platform/network/NetworkingContext.h:
24307         (WebCore::NetworkingContext::scheduledRunLoopPairs):
24308         (WebCore::NetworkingContext::scheduledOperationQueue):
24309         Add an ability to schedule on an NSOperationQueue. Now that scheduling on run loop
24310         is not a must, give scheduledRunLoopPairs() a default implementation.
24311
24312         * platform/network/mac/ResourceHandleMac.mm: Removed isInitializingConnection
24313         static. It was only used to catch a long obsolete bug with debug logging, and
24314         cannot work with multiple threads.
24315         (WebCore::ResourceHandle::start): Scedule on a operation queue if applicable.
24316         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed a
24317         check that used isInitializingConnection.
24318
24319 2012-11-02  Chris Rogers  <crogers@google.com>
24320
24321         Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion
24322         https://bugs.webkit.org/show_bug.cgi?id=100885
24323
24324         Reviewed by Kenneth Russell.
24325
24326         AudioParamTimeline needs to use double-precision for time-values to avoid drift and precision issues.
24327
24328         Covered by existing tests.
24329
24330         * Modules/webaudio/AudioParam.cpp:
24331         (WebCore::AudioParam::calculateTimelineValues):
24332         * Modules/webaudio/AudioParamTimeline.cpp:
24333         (WebCore::AudioParamTimeline::valueForContextTime):
24334         (WebCore::AudioParamTimeline::valuesForTimeRange):
24335         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
24336         * Modules/webaudio/AudioParamTimeline.h:
24337         (AudioParamTimeline):
24338
24339 2012-11-02  Stephen Chenney  <schenney@chromium.org>
24340
24341         Reduce redundant code in SimpleFontData[platform]
24342         https://bugs.webkit.org/show_bug.cgi?id=97245
24343
24344         Reviewed by Eric Seidel.
24345
24346         Move duplicated code out of platform specific files and into the common file.
24347         This represents all of the methods in SimpleFontData that do not have genuine
24348         platform specific code.
24349
24350         No new tests because there is no change at all in the functionality.
24351
24352         * platform/graphics/SimpleFontData.cpp:
24353         (WebCore):
24354         (WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
24355         (WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
24356         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
24357         (WebCore): Removed common code.
24358         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
24359         (WebCore): Removed common code.
24360         * platform/graphics/mac/SimpleFontDataMac.mm:
24361         (WebCore): Removed common code.
24362         * platform/graphics/pango/SimpleFontDataPango.cpp:
24363         (WebCore): Removed common code.
24364         * platform/graphics/qt/SimpleFontDataQt.cpp:
24365         (WebCore): Removed common code.
24366         * platform/graphics/skia/SimpleFontDataSkia.cpp:
24367         (WebCore): Removed common code.
24368         * platform/graphics/win/SimpleFontDataWin.cpp:
24369         (WebCore): Removed common code.
24370         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
24371         (WebCore): Removed common code.
24372         * platform/graphics/wx/SimpleFontDataWx.cpp:
24373         (WebCore): Removed common code.
24374
24375 2012-11-02  Adam Barth  <abarth@webkit.org>
24376
24377         memory-instrumentation-cached-images.html is crashing
24378         https://bugs.webkit.org/show_bug.cgi?id=101103
24379
24380         Unreviewed.
24381
24382         Restore code deleted in http://trac.webkit.org/changeset/133331.
24383
24384         * bindings/v8/IntrusiveDOMWrapperMap.h:
24385
24386 2012-11-02  Simon Fraser  <simon.fraser@apple.com>
24387
24388         Enable SUBPIXEL_LAYOUT on Mac
24389         https://bugs.webkit.org/show_bug.cgi?id=101076
24390
24391         Reviewed by Dave Hyatt.
24392
24393         Define ENABLE_SUBPIXEL_LAYOUT and include it in FEATURE_DEFINES.
24394
24395         * Configurations/FeatureDefines.xcconfig:
24396
24397 2012-11-02  Lianghui Chen  <liachen@rim.com>
24398
24399         [BlackBerry] ResourceHandle::cancel() in ResourceHandleBlackBerry should setClient to null.
24400         https://bugs.webkit.org/show_bug.cgi?id=101082
24401
24402         Internal PR: 235410.
24403         Patch suggested by George Staikos, prepared by Lyon Chen.
24404         Reviewed by Yong Li.
24405
24406         ResourceHandle::cancel() should call setClient(0) to close the window
24407         during which it has been cancelled but its client is still there and can
24408         be called.
24409
24410         No new tests as it's a code improvement without obvious bug.
24411
24412         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
24413         (WebCore::ResourceHandle::cancel):
24414
24415 2012-11-02  Anders Carlsson  <andersca@apple.com>
24416
24417         Add a PluginInactive plug-in unavailability reason
24418         https://bugs.webkit.org/show_bug.cgi?id=101089
24419
24420         Reviewed by Sam Weinig.
24421
24422         This is to be used by Mac WebKit and WebKit2 shortly.
24423
24424         * English.lproj/Localizable.strings:
24425         * platform/LocalizedStrings.cpp:
24426         (WebCore::inactivePluginText):
24427         (WebCore):
24428         * platform/LocalizedStrings.h:
24429         (WebCore):
24430         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
24431         (WebCore::inactivePluginText):
24432         (WebCore):
24433         * platform/efl/LocalizedStringsEfl.cpp:
24434         (WebCore::inactivePluginText):
24435         (WebCore):
24436         * platform/gtk/LocalizedStringsGtk.cpp:
24437         (WebCore::inactivePluginText):
24438         (WebCore):
24439         * platform/qt/LocalizedStringsQt.cpp:
24440         (WebCore::inactivePluginText):
24441         (WebCore):
24442         * rendering/RenderEmbeddedObject.cpp:
24443         (WebCore::unavailablePluginReplacementText):
24444         * rendering/RenderEmbeddedObject.h:
24445
24446 2012-11-02  Rob Buis  <rbuis@rim.com>
24447
24448         [CMAKE] Remove QNX specific section
24449         https://bugs.webkit.org/show_bug.cgi?id=101063
24450
24451         Reviewed by Daniel Bates.
24452
24453         We do not need the QNX section anymore, so also remove the FEATURE_DEFINES_CSS variable as it
24454         equals FEATURE_DEFINES_WITH_SPACE_SEPARATOR.
24455
24456         * CMakeLists.txt:
24457
24458 2012-11-02  Michael Saboff  <msaboff@apple.com>
24459
24460         visitedHashLink() converts 8 bit URLs and attributes to 16 bits.
24461         https://bugs.webkit.org/show_bug.cgi?id=101014
24462
24463         Reviewed by Geoffrey Garen.
24464
24465         Converted most of the static methods to templated based on character type.  Changed visitedHashLink to 
24466         check bitness of both the base URL and attribute.  If both are 8 bit, then we process using the LChar
24467         version of the templated methods.  Otherwise we use the 16 bit flavor.
24468
24469         Changes covered by existing tests.
24470
24471         * platform/LinkHash.cpp:
24472         (WebCore::findSlashDotDotSlash):
24473         (WebCore::findSlashSlash):
24474         (WebCore::findSlashDotSlash):
24475         (WebCore::containsColonSlashSlash):
24476         (WebCore::squeezeOutNullCharacters):
24477         (WebCore::cleanSlashDotDotSlashes):
24478         (WebCore::mergeDoubleSlashes):
24479         (WebCore::cleanSlashDotSlashes):
24480         (WebCore::cleanPath):
24481         (WebCore::matchLetter):
24482         (WebCore::needsTrailingSlash):
24483         (WebCore::visitedURLInline):
24484         (WebCore::visitedURL):
24485         (WebCore::visitedLinkHash):
24486
24487 2012-11-02  Ian Vollick  <vollick@chromium.org>
24488
24489         Support invalidation tracking for composited layers
24490         https://bugs.webkit.org/show_bug.cgi?id=97801
24491
24492         Reviewed by Simon Fraser.
24493
24494         GraphicsLayers now store invalidated rects and can include them in
24495         the layer tree dump.
24496
24497         Test: compositing/repaint/invalidations-on-composited-layers.html
24498
24499         * WebCore.exp.in:
24500           Exports FrameView::resetTrackedRepaints()
24501         * page/FrameView.cpp:
24502         (WebCore::FrameView::setTracksRepaints):
24503           Notifies each compositor that we are starting/stopping repaints.
24504         (WebCore::FrameView::resetTrackedRepaints):
24505           Moved implementation to the cpp file.
24506         * platform/graphics/GraphicsLayer.cpp:
24507         (WebCore::GraphicsLayer::~GraphicsLayer):
24508           Clears the repaint rects associated with this layer.
24509         (WebCore::GraphicsLayer::resetTrackedRepaints):
24510           Clears the repaint rects associated with this layer.
24511           Note that the repaint rects are stored in a statically allocated
24512           HashMap to avoid using space on the graphics layers.
24513         (WebCore::GraphicsLayer::addRepaintRect):
24514           Adds a repaint rect to list associated with this layer in the
24515           hash map mentioned above.
24516         (WebCore::GraphicsLayer::dumpProperties):
24517           This has been modified to include the repaint rects in the dump
24518           if they've been requested.
24519         * platform/graphics/GraphicsLayerClient.h:
24520         (WebCore::GraphicsLayerClient::isTrackingRepaints):
24521           This is how graphics layers check if repaint tracking is happening.
24522           Returns false by default.
24523         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
24524         (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
24525         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
24526         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
24527           These now call GraphicsLayer::addRepaintRect as necessary.
24528         * platform/graphics/ca/GraphicsLayerCA.cpp:
24529         (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
24530           Now calls GraphicsLayer::addRepaintRect as necessary.
24531         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
24532         (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
24533         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
24534         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
24535           These now call GraphicsLayer::addRepaintRect as necessary.
24536         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
24537         (WebCore::GraphicsLayerClutter::setNeedsDisplay):
24538         (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect):
24539           These now call GraphicsLayer::addRepaintRect as necessary.
24540         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
24541         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
24542         (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
24543         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
24544           These now call GraphicsLayer::addRepaintRect as necessary.
24545         * rendering/RenderLayerBacking.cpp:
24546         (WebCore::RenderLayerBacking::isTrackingRepaints):
24547           Required since this is a GraphicsLayerClient.
24548         * rendering/RenderLayerCompositor.cpp:
24549         (WebCore::RenderLayerCompositor::layerTreeAsText):
24550           Now accepts a flag to include the repaint rects in the layer tree
24551           dump.
24552         (WebCore::resetTrackedRepaintRectsRecursive):
24553           Clears the repaint rects on all graphics layers.
24554         (WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
24555           Clears the repaint rects on all graphics layers.
24556         (WebCore::RenderLayerCompositor::isTrackingRepaints):
24557           Required since this is a GraphicsLayerClient.
24558         * testing/Internals.cpp:
24559         (WebCore::Internals::layerTreeAsText):
24560         * testing/Internals.h:
24561         * testing/Internals.idl:
24562           The internals changes plumb the new flag for including the repaint
24563           rects in the layer tree dump.
24564
24565 2012-11-02  Adam Barth  <abarth@webkit.org>
24566
24567         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
24568         https://bugs.webkit.org/show_bug.cgi?id=100973
24569
24570         Reviewed by Stephen White.
24571
24572         This is the first step towards using intrusive DOM wrapper maps more
24573         widely in WebCore (see
24574         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
24575         for more context).
24576
24577         * bindings/v8/DOMDataStore.cpp:
24578         (WebCore::DOMDataStore::DOMDataStore):
24579         * bindings/v8/IntrusiveDOMWrapperMap.h:
24580         (WebCore):
24581         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
24582
24583 2012-11-02  Adam Barth  <abarth@webkit.org>
24584
24585         ASSERT in RenderLayer::hitTestContents can fire
24586         https://bugs.webkit.org/show_bug.cgi?id=99656
24587
24588         Reviewed by Eric Seidel.
24589
24590         The issue is that updateHitTestResult and addNodeToRectBasedTestResult
24591         are using two different nodes. Since they aren't consistent, we violate
24592         assertions about only setting the inner node if we're doing a
24593         rect-based hit test. This patch makes the two consistent.
24594
24595         Test: fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html
24596
24597         * rendering/RenderBlock.cpp:
24598         (WebCore::RenderBlock::nodeForHitTest):
24599         (WebCore):
24600         (WebCore::RenderBlock::nodeAtPoint):
24601         (WebCore::RenderBlock::updateHitTestResult):
24602         * rendering/RenderBlock.h:
24603         (RenderBlock):
24604
24605 2012-11-02  Mike West  <mkwst@chromium.org>
24606
24607         Prefer 'Content-Security-Policy' to 'X-WebKit-CSP'.
24608         https://bugs.webkit.org/show_bug.cgi?id=101043
24609
24610         Reviewed by Adam Barth.
24611
24612         The canonical 'Content-Security-Policy' header landed in 133095, but we
24613         missed a few tests while updating to the new hotness. We also should
24614         start using the canonical header for the inspector.
24615
24616         This patch should have no visible change; tests should continue to pass
24617         with the new header, just as they did with the old header.
24618
24619         * inspector/front-end/inspector.html:
24620
24621 2012-11-02  Adam Barth  <abarth@webkit.org>
24622
24623         ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
24624         https://bugs.webkit.org/show_bug.cgi?id=100711
24625
24626         Reviewed by Eric Seidel.
24627
24628         No one is actively working on ENABLE(UNDO_MANAGER). There are some
24629         tricky lifetime issues in the UndoManager API that are complicating
24630         ongoing work to improve the interaction between WebCore and the garbage
24631         collector. Rather than leave this code in a broken state, we should
24632         remove it for the time being. We can always restore it from the svn
24633         history when there is an active owner for this code.
24634
24635         * CMakeLists.txt:
24636         * Configurations/FeatureDefines.xcconfig:
24637         * DerivedSources.cpp:
24638         * DerivedSources.make:
24639         * DerivedSources.pri:
24640         * GNUmakefile.features.am:
24641         * GNUmakefile.list.am:
24642         * Target.pri:
24643         * UseJSC.cmake:
24644         * UseV8.cmake:
24645         * WebCore.gypi:
24646         * WebCore.vcproj/WebCore.vcproj:
24647         * WebCore.xcodeproj/project.pbxproj:
24648         * bindings/js/DOMTransaction.cpp: Removed.
24649         * bindings/js/DOMTransaction.h: Removed.
24650         * bindings/js/JSBindingsAllInOne.cpp:
24651         * bindings/js/JSUndoManagerCustom.cpp: Removed.
24652         * bindings/v8/DOMTransaction.cpp: Removed.
24653         * bindings/v8/DOMTransaction.h: Removed.
24654         * bindings/v8/V8HiddenPropertyName.h:
24655         (WebCore):
24656         * bindings/v8/custom/V8DOMTransactionCustom.cpp: Removed.
24657         * bindings/v8/custom/V8UndoManagerCustom.cpp: Removed.
24658         * css/PropertySetCSSStyleDeclaration.cpp:
24659         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
24660         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
24661         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
24662         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
24663         * dom/CharacterData.cpp:
24664         (WebCore::CharacterData::setDataAndUpdate):
24665         * dom/ContainerNode.cpp:
24666         (WebCore::willRemoveChild):
24667         (WebCore::willRemoveChildren):
24668         (WebCore::updateTreeAfterInsertion):
24669         * dom/Document.cpp:
24670         (WebCore::Document::Document):
24671         * dom/Document.h:
24672         (WebCore):
24673         (Document):
24674         * dom/Document.idl:
24675         * dom/Element.cpp:
24676         (WebCore::Element::willModifyAttribute):
24677         * editing/CompositeEditCommand.h:
24678         * editing/DOMTransaction.idl: Removed.
24679         * editing/DOMTransactionStep.cpp: Removed.
24680         * editing/DOMTransactionStep.h: Removed.
24681         * editing/Editor.cpp:
24682         (WebCore::Editor::appliedEditing):
24683         (WebCore::Editor::unappliedEditing):
24684         (WebCore::Editor::reappliedEditing):
24685         (WebCore::Editor::canUndo):
24686         (WebCore::Editor::undo):
24687         (WebCore::Editor::canRedo):
24688         (WebCore::Editor::redo):
24689         * editing/UndoManager.cpp: Removed.
24690         * editing/UndoManager.h: Removed.
24691         * editing/UndoManager.idl: Removed.
24692         * editing/UndoStep.h:
24693         (UndoStep):
24694
24695 2012-11-02  Mike West  <mkwst@chromium.org>
24696
24697         Measure the usage of the various CSP headers.
24698         https://bugs.webkit.org/show_bug.cgi?id=100974
24699
24700         Reviewed by Adam Barth.
24701
24702         Currently, we're collecting metrics regarding usage of the
24703         'X-WebKit-CSP' and 'X-WebKit-CSP-Report-Only' HTTP headers. We've
24704         recently added support for the canonical 'Content-Security-Policy'
24705         and 'Content-Security-Policy-Report-Only' headers. This patch adds
24706         those headers explicitly into the metrics, giving insight into uptake
24707         of the unprefixed header, and into usage of pure reporting vs.
24708         enforcement.
24709
24710         No visible functionality should change; all Content Security Policy
24711         tests should continue to pass.
24712
24713         * page/ContentSecurityPolicy.cpp:
24714         (WebCore::ContentSecurityPolicy::didReceiveHeader):
24715             Convert the CSP header type into a FeatureObserver::Feature, and
24716             observe it.
24717         * page/FeatureObserver.h:
24718             Add three new values to the enum to cover the new header types.
24719
24720 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24721
24722         Fix silly mistake from http://trac.webkit.org/changeset/133315.
24723         Forgot to remove the "!".
24724
24725         * css/StyleResolver.cpp:
24726         (WebCore::StyleResolver::canShareStyleWithElement):
24727
24728 2012-11-02  Tom Sepez  <tsepez@chromium.org>
24729
24730         Support X-XSS-Protection: report=URL header syntax in XSSAuditor.
24731         https://bugs.webkit.org/show_bug.cgi?id=100892
24732
24733         Reviewed by Adam Barth.
24734
24735         This patch adds a security feature which allows a violation report to be sent back
24736         to a site when the XSSAuditor detects a reflected XSS against it.  It uses the same
24737         reporting mechanism as for CSP violation reports.
24738
24739         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-5.html
24740                http/tests/security/xssAuditor/malformed-xss-protection-header-6.html
24741                http/tests/security/xssAuditor/malformed-xss-protection-header-7.html
24742                http/tests/security/xssAuditor/malformed-xss-protection-header-8.html
24743                http/tests/security/xssAuditor/malformed-xss-protection-header-9.html
24744                http/tests/security/xssAuditor/report-script-tag.html
24745                http/tests/security/xssAuditor/xss-protection-parsing-03.html
24746                http/tests/security/xssAuditor/xss-protection-parsing-04.html
24747
24748         * html/parser/XSSAuditor.cpp:
24749         (WebCore::XSSAuditor::XSSAuditor):
24750         (WebCore::XSSAuditor::init):
24751         (WebCore::XSSAuditor::filterToken):
24752         Invoke Ping loader's violation reporting, if requested, when a reflected
24753         XSS is detected.
24754         
24755         * html/parser/XSSAuditor.h:
24756         XSSAuditor class need to store the report URL as well as the undigested versions
24757         of the request URL and request body for reporting.
24758
24759         * loader/MixedContentChecker.cpp:
24760         (WebCore):
24761         * loader/MixedContentChecker.h:
24762         (MixedContentChecker):
24763         Make isMixedContent() method public.
24764
24765         * loader/PingLoader.cpp:
24766         (WebCore::PingLoader::sendViolationReport):
24767         * loader/PingLoader.h:
24768         (PingLoader):
24769         * page/ContentSecurityPolicy.cpp:
24770         (WebCore::ContentSecurityPolicy::reportViolation):
24771         Renamed reportContentSecurityPolicyViolation() method to sendViolationReport(),
24772         since this is now used to send more than just CSP violations.
24773         
24774         * platform/network/HTTPParsers.cpp:
24775         (WebCore):
24776         (WebCore::skipEquals):
24777         (WebCore::skipValue):
24778         (WebCore::parseXSSProtectionHeader):
24779         * platform/network/HTTPParsers.h:
24780         Parse and return report= directive in X-XSS-Protection header.
24781         
24782 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24783
24784         Unreviewed, rolling out r133313.
24785         http://trac.webkit.org/changeset/133313
24786         https://bugs.webkit.org/show_bug.cgi?id=101078
24787
24788         "A lot of tests hit the ASSERTs introduced by this patch"
24789         (Requested by haraken on #webkit).
24790
24791         * bindings/v8/V8DOMWrapper.h:
24792         (WebCore::V8DOMWrapper::setDOMWrapper):
24793
24794 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24795
24796         Unreviewed, rolling out r132913.
24797         http://trac.webkit.org/changeset/132913
24798         https://bugs.webkit.org/show_bug.cgi?id=91850
24799
24800         Caused performance regressions.
24801         See https://bugs.webkit.org/show_bug.cgi?id=100872 for details.
24802
24803         * bindings/v8/V8PerIsolateData.cpp:
24804         (WebCore::V8PerIsolateData::visitExternalStrings):
24805         * bindings/v8/V8StringResource.cpp:
24806         (StringTraits):
24807         (WebCore::v8StringToWebCoreString):
24808         * bindings/v8/V8ValueCache.cpp:
24809         (WebCore::makeExternalString):
24810         (WebCore::WebCoreStringResource::visitStrings):
24811         * bindings/v8/V8ValueCache.h:
24812         (WebCore::WebCoreStringResource::WebCoreStringResource):
24813         (WebCore::WebCoreStringResource::~WebCoreStringResource):
24814         (WebCore::WebCoreStringResource::data):
24815         (WebCoreStringResource):
24816         (WebCore::WebCoreStringResource::length):
24817         (WebCore::WebCoreStringResource::atomicString):
24818         (WebCore::WebCoreStringResource::toStringResource):
24819
24820 2012-11-02  Martin Robinson  <mrobinson@igalia.com>
24821
24822         [GTK] Remove dependency on SoupPasswordManager
24823         https://bugs.webkit.org/show_bug.cgi?id=100775
24824
24825         Reviewed by Carlos Garcia Campos.
24826
24827         Remember passwords using libsecret instead of SoupPasswordManager. We accomplish this using
24828         a new class, CredentialBackingStore. CredentialBackingStore will soon be the thing that backs
24829         CredentialStoreGtk. The name is based on the name of a similar class from the BlackBerry port.
24830
24831         No new tests. This does not change behavior.
24832
24833         * GNUmakefile.am: Add libsecret flags to the build and the new directory to the include list.
24834         * GNUmakefile.list.am: Add new files to the source list.
24835         * platform/gtk/GRefPtrGtk.cpp: Add support for SecretValue to GRefPtrGtk.
24836         * platform/gtk/GtkAuthenticationDialog.cpp: Replace interaction with SoupPasswordManger with
24837         interaction with the CredentialBackingStore. Remove all conditional SoupPasswordManager guards.
24838         * platform/gtk/GtkAuthenticationDialog.h: Ditto.
24839         * platform/network/gtk/CredentialBackingStore.cpp: Added.
24840         * platform/network/gtk/CredentialBackingStore.h: Added.
24841
24842 2012-11-02  Jinwoo Song  <jinwoo7.song@samsung.com>
24843
24844         Fix build warning [-Wswitch]
24845         https://bugs.webkit.org/show_bug.cgi?id=101029
24846
24847         Reviewed by Alexey Proskuryakov.
24848
24849         Fix build warning message: enumeration value ‘Viewport’ not handled in switch [-Wswitch]
24850         in Source/WebCore/css/StyleSheetContents.cpp.
24851         Add case statement for 'Viewport' with the CSS_DEVICE_ADAPTATION macro.
24852
24853         * css/StyleSheetContents.cpp:
24854         (WebCore::childRulesHaveFailedOrCanceledSubresources):
24855
24856 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24857
24858         Move m_element checks out of canShareStyle into locateSharedStyle
24859         https://bugs.webkit.org/show_bug.cgi?id=101070
24860
24861         Reviewed by Darin Adler.
24862
24863         Can shareStyleWithElement is called for each sibling as we look for a
24864         shareElement. locateSharedStyle is called once for the element we're
24865         trying to find a style for. Checks that only depend on the latter
24866         element should, thus be in locateSharedStyle.
24867
24868         No new tests. There should be no change in behavior, except possibly
24869         a performance improvement in some cases.
24870
24871         * css/StyleResolver.cpp:
24872         (WebCore::StyleResolver::canShareStyleWithElement):
24873         (WebCore::StyleResolver::locateSharedStyle):
24874
24875 2012-11-02  Kentaro Hara  <haraken@chromium.org>
24876
24877         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
24878         https://bugs.webkit.org/show_bug.cgi?id=101054
24879
24880         Reviewed by Adam Barth.
24881
24882         I'm investigating a Chromium crash bug:
24883         http://code.google.com/p/chromium/issues/detail?id=155942
24884
24885         I've not yet identified the root cause (because I can't reproduce
24886         the crash), but it looks like we are storing NULL pointers to
24887         V8 internal fields. Just in case, we can add an ASSERT() to
24888         guarantee that NULL pointers are never stored. (Also I'm hoping
24889         that this ASSERT() will give me more debug information.)
24890
24891         No tests. No change in behavior.
24892
24893         * bindings/v8/V8DOMWrapper.h:
24894         (WebCore::V8DOMWrapper::setDOMWrapper):
24895
24896 2012-11-02  Kevin Ellis  <kevers@chromium.org>
24897
24898         Imrpove scoring in touch adjustment to address bias towards smaller targets.
24899         https://bugs.webkit.org/show_bug.cgi?id=101046
24900
24901         Reviewed by Antonio Gomes.
24902
24903         Update the touch overlap score for touch adjustmetn to normalize
24904         with respect to the maximum possible overlap rather than the size
24905         of the target element.  This change enables good overlap scores for
24906         small and large targets alike.  Prior to the patch it was not possible
24907         to get a good overlap score for a sufficiently larget target.
24908
24909         Covered by existing tests, which have been updated to reflect the
24910         intended behavior.
24911
24912         * page/TouchAdjustment.cpp:
24913         (WebCore::TouchAdjustment::hybridDistanceFunction):
24914
24915 2012-11-02  Mike West  <mkwst@chromium.org>
24916
24917         Web Inspector: Repeated errors are rendered incorrectly: link is not floating to the right.
24918         https://bugs.webkit.org/show_bug.cgi?id=101032
24919
24920         Reviewed by Yury Semikhatsky.
24921
24922         https://bugs.webkit.org/show_bug.cgi?id=100525 incorrectly added
24923         '-webkit-flex: 1' only to the list generated for errors in the console.
24924         It should have been added to normal warning text as well. This patch
24925         fixes the problem.
24926
24927         * inspector/front-end/inspector.css:
24928         (.repeated-message .outline-disclosure, .repeated-message > .console-message-text):
24929
24930 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
24931
24932         Web Inspector: Timeline: show popup for CPU bars.
24933         https://bugs.webkit.org/show_bug.cgi?id=100951
24934
24935         Reviewed by Pavel Feldman.
24936
24937         Each CPU bar can represent a combination of several shorter messages.
24938         We should show information about combined messages - start time,
24939         total duration, CPU time, message count.
24940
24941         * English.lproj/localizedStrings.js: Added "Message Count" string.
24942         * inspector/front-end/TimelinePanel.js:
24943         (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
24944         Supply elements with underlying info.
24945         * inspector/front-end/TimelinePresentationModel.js:
24946         (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
24947         Added.
24948
24949 2012-11-02  Alexei Filippov  <alph@chromium.org>
24950
24951         Web Inspector: Network panel grid UI is misaligned after r132888
24952         https://bugs.webkit.org/show_bug.cgi?id=101050
24953
24954         Rollback the change to basic data grid css and move it to the native memory
24955         snapshot datagrid css.
24956
24957         Reviewed by Alexander Pavlov.
24958
24959         * inspector/front-end/dataGrid.css:
24960         (.data-grid td):
24961         * inspector/front-end/nativeMemoryProfiler.css:
24962         (.native-snapshot-view .data-grid td):
24963
24964 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24965
24966         Unreviewed, rolling out r133303.
24967         http://trac.webkit.org/changeset/133303
24968         https://bugs.webkit.org/show_bug.cgi?id=101068
24969
24970         "Broke qt wk2 build (seems like bots fails to rerun qmake if
24971         needed)" (Requested by kbalazs on #webkit).
24972
24973         * Target.pri:
24974         * WebCore.pri:
24975         * platform/PlatformStrategies.cpp:
24976         (WebCore):
24977         * platform/qt/QtTestSupport.h: Removed.
24978
24979 2012-11-02  Balazs Kelemen  <kbalazs@webkit.org>
24980
24981         [Qt][WK2] setPlatformStrategies always asserts after r132744
24982         https://bugs.webkit.org/show_bug.cgi?id=100838
24983
24984         Reviewed by Simon Hausmann.
24985
24986         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
24987         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
24988         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
24989         code. In order to keep the behavior, this patch adds exported helpers to WebCore
24990         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
24991         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
24992         add it to the WebKit1 API for the time being, but my goal was to move in the direction
24993         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
24994         in non production mode.
24995
24996         Basically covered by all tests.
24997
24998         * Target.pri:
24999         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
25000         initializeTestFonts uses it.
25001         * platform/PlatformStrategies.cpp:
25002         (WebCore): Zero initialize the global static variable as it is expected by the functions
25003         below. It is a side fix. It seems like it has not been shown on debug WebKit2 bots because
25004         common runtime environments tend to zero initialize statics by default - but I don't think
25005         we should rely on that.
25006         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
25007         is also under that.
25008         (WebKit):
25009         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
25010         without calling initializeWebCoreQt.
25011         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
25012         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
25013         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
25014         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
25015         the job even if we would stop clearing all caches between tests. Also moved the call to
25016         QFontDatabase::removeAllApplicationFonts from callers to here.
25017         * platform/qt/QtTestSupport.h:
25018         (WebKit):
25019         (QtTestSupport):
25020
25021 2012-11-02  Kent Tamura  <tkent@chromium.org>
25022
25023         Optimize DateTimeFormat::quoteAndAppendLiteral output
25024         https://bugs.webkit.org/show_bug.cgi?id=101040
25025
25026         Reviewed by Kentaro Hara.
25027
25028         In LDML date format pattern, only ASCII alphabet and quote have special
25029         roles. So we don't need to quote the input string if it doesn't contain
25030         them.
25031
25032         No new tests. Updated WebKit/chromium/tests/LocaleWinTest.cpp
25033
25034         * platform/text/DateTimeFormat.cpp:
25035         (WebCore::isASCIIAlphabetOrQuote): A helper to check special characters.
25036         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
25037         Append the input string as is if it has no special character.
25038
25039 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
25040
25041         Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
25042         https://bugs.webkit.org/show_bug.cgi?id=101052
25043
25044         Reviewed by Yury Semikhatsky.
25045
25046         I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
25047         MemoryAgent can visit it but instrumentation for these containers report no objectType.
25048         It means that addRootObject method needs to accept objectType property as an argument.
25049         Otherwise I would have had to create a proxy class with proper objectType.
25050
25051         * dom/WebCoreMemoryInstrumentation.cpp:
25052         (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
25053         (WebCore):
25054         * dom/WebCoreMemoryInstrumentation.h:
25055         (WebCoreMemoryInstrumentation):
25056         (WebCore):
25057         * inspector/InspectorMemoryAgent.cpp:
25058         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
25059
25060 2012-11-02  Michael Brüning  <michael.bruning@digia.com>
25061
25062         [Qt][WK2] ASSERT hit for every mouse click
25063         https://bugs.webkit.org/show_bug.cgi?id=100607
25064
25065         Reviewed by Jocelyn Turcotte.
25066
25067         Changed the logic of absolutePathForRenderer to use the first highlight box as the mid box 
25068         by uniting the two in case the mid box is empty. This allows the first box to be merged with
25069         the last box should they intersect, and thereby prevents an ASSERT in addHighlightRect that is
25070         triggered by two intersecting boxes being passed to addHighlightRect as separate ones.
25071
25072         Also, this patch removes some superfluous checks for LayoutRect::isEmpty, which is being checked
25073         in LayoutRect::intersects already.
25074
25075         No new tests, but added manual test: ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html
25076
25077         * page/GestureTapHighlighter.cpp:
25078
25079 2012-11-02  Arpita Bahuguna  <arpitabahuguna@gmail.com>
25080
25081         Regression r130057: Improper preferred width calculation when an inline replaced object, wrapped in an inline flow, follows some text.
25082         https://bugs.webkit.org/show_bug.cgi?id=99442
25083
25084         Reviewed by Levi Weintraub.
25085
25086         Extra width is displayed after an inline replaced object that follows some
25087         text (not ending in a whitespace) within an inline-block. This is due to
25088         the end width (endMin) of the text object being carried forward (via inlineMin)
25089         and added onto the next line containing the inline replaced object.
25090
25091         This was caused as a regression to, or rather became apparent post the fix
25092         http://trac.webkit.org/changeset/130057 which fixed the block's preferred
25093         width when a renderInline with width contained an inline replaced object.
25094
25095         Test: fast/block/block-with-inline-replaced-child-following-text.html
25096
25097         * rendering/RenderBlock.cpp:
25098         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
25099         Introduced another flag (shouldBreakLineAfterText) which is set when
25100         our current Text line (object) does not end in a whitespace, thereby
25101         implying that there could be more text following, for which the end width
25102         needs to be carried forward onto the next line.
25103
25104         In case the following object instead turns out to be an Inline Replaced
25105         object, we should terminate our previous line and reset this extra width.
25106         This is now being handled by checking for the shouldBreakLineAfterText
25107         flag while processing Inline Replaced objects.
25108
25109         Once set, shouldBreakLineAfterText shall be reset only if we get another
25110         Text object that ends in a whitespace, signifying the termination of
25111         that text line. For all other cases, we persist with this flag through
25112         the block's inline contents.
25113
25114 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
25115
25116         Web Inspector: Console: remove obsolete ctrl-shift-m shortcut
25117         https://bugs.webkit.org/show_bug.cgi?id=101036
25118
25119         Reviewed by Pavel Feldman.
25120
25121         Ctrl-shift-m on console dumps MemoryAgent.getDOMNodeCount
25122         This functionality seems to be obsolete.
25123
25124         * inspector/front-end/ConsoleView.js: Removed shortcut and function.
25125
25126 2012-11-02  Stephen Chenney  <schenney@chromium.org>
25127
25128         SVG classes cause layering violations in platform Font code
25129         https://bugs.webkit.org/show_bug.cgi?id=98513
25130
25131         Reviewed by Eric Seidel.
25132
25133         Add a contained class to save and restore GlpyhPage state in FontFallbackList.
25134         This allows us to remove the layering violation, and several methods, that
25135         previously existed to support SVGTextRunRenderingContext.
25136
25137         No new tests because no change at all in functionality.
25138
25139         * platform/graphics/FontFallbackList.h:
25140         (FontFallbackList):
25141         (GlyphPagesStateSaver): New state save and restore class
25142         (WebCore::FontFallbackList::GlyphPagesStateSaver::GlyphPagesStateSaver): Save GlyphPage state
25143         (WebCore::FontFallbackList::GlyphPagesStateSaver::~GlyphPagesStateSaver): Restore GlyphPage state
25144         * rendering/svg/SVGTextRunRenderingContext.cpp:
25145         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Shift to usage of the new class.
25146
25147 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25148
25149         Web Inspector: Fix compilation errors
25150         https://bugs.webkit.org/show_bug.cgi?id=101027
25151
25152         Reviewed by Yury Semikhatsky.
25153
25154         * inspector/InjectedScriptSource.js:
25155         (.):
25156         * inspector/front-end/NativeMemorySnapshotView.js:
25157         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
25158
25159 2012-11-02  Andreas Kling  <kling@webkit.org>
25160
25161         Only resolve attribute-derived style once per shared ElementAttributeData.
25162         <http://webkit.org/b/100990>
25163
25164         Reviewed by Antti Koivisto.
25165
25166         Track the serialization of the "style" attribute, and the dirtiness of the presentation attribute style
25167         on ElementAttributeData instead of in Node flags.
25168
25169         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
25170         since the state is no longer per-Element.
25171
25172         I've left the presentation attribute cache in there for now, since it covers two additional cases:
25173
25174             - Elements with the same attributes in different order.
25175             - Elements with the same presentation attributes, but with differing non-presentation attributes.
25176
25177         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
25178
25179         * dom/Node.h:
25180         * dom/ElementAttributeData.h:
25181         (WebCore::ElementAttributeData::presentationAttributeStyle):
25182         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
25183         (WebCore::ElementAttributeData::styleAttributeIsDirty):
25184         (WebCore::ElementAttributeData::setStyleAttributeIsDirty):
25185         (WebCore::ElementAttributeData::presentationAttributeStyleIsDirty):
25186         (WebCore::ElementAttributeData::setPresentationAttributeStyleIsDirty):
25187         (ElementAttributeData):
25188         (WebCore::ElementAttributeData::ElementAttributeData):
25189         * dom/Element.cpp:
25190         (WebCore::Element::getAttribute):
25191         * dom/Element.h:
25192         (WebCore::Element::styleAttributeIsDirty):
25193         (WebCore::Element::updateInvalidAttributes):
25194         * dom/StyledElement.cpp:
25195         (WebCore::StyledElement::updateStyleAttribute):
25196         (WebCore::StyledElement::attributeChanged):
25197         (WebCore::StyledElement::styleAttributeChanged):
25198         (WebCore::StyledElement::inlineStyleChanged):
25199         * dom/StyledElement.h:
25200         (WebCore::StyledElement::invalidateStyleAttribute):
25201
25202             Move the "attribute style dirty" and "style attribute valid" node flags to ElementAttributeData
25203             and change them to both use dirty semantics.
25204
25205         * dom/ElementAttributeData.cpp:
25206         (WebCore::ElementAttributeData::cloneDataFrom):
25207
25208             Share the presentation attribute style between cloned elements initially.
25209
25210         * dom/StyledElement.h:
25211         (WebCore::StyledElement::presentationAttributeStyle):
25212         * css/StyleResolver.cpp:
25213         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
25214         (WebCore::StyleResolver::matchAllRules):
25215         (WebCore::StyleResolver::canShareStyleWithElement):
25216         * dom/ElementAttributeData.cpp:
25217         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
25218         (WebCore::ElementAttributeData::reportMemoryUsage):
25219         * inspector/InspectorCSSAgent.cpp:
25220         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
25221
25222             Renamed StyledElement::attributeStyle() to presentationAttributeStyle(). The old name was too
25223             easily confused with "style attribute".
25224
25225         * dom/StyledElement.cpp:
25226         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
25227
25228             Renamed from updateAttributeStyle().
25229
25230 2012-11-01  Kent Tamura  <tkent@chromium.org>
25231
25232         Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
25233         https://bugs.webkit.org/show_bug.cgi?id=101007
25234
25235         Reviewed by Kentaro Hara.
25236
25237         ChromeClient::openDateTimeChooser and Locale::formatDateTime are
25238         necessary if one of date/time input types is enabled and even if
25239         ENABLE_INPUT_MULTIPLE_FIELDS_UI is disabled. So they should be wrapped
25240         with ENABLE(DATE_AND_TIME_INPUT_TYPES).
25241
25242         The following clases are used only for ChromeClient::openDateTimeChooser.
25243         They should be wrapped with the same flag.
25244           - class DateTimeChooser
25245           - class DateTiemChooserClient
25246
25247         The following classes/functions are used for
25248         Locale::formatDateTime. They should be wrapped with the same flag.
25249           - Locale::dateFormat
25250           - Locale::monthFormat
25251           - Locale::timeFormat
25252           - Locale::shortTimeFormat
25253           - Locale::monthLabels
25254           - Locale::shortMonthLabels
25255           - Locale::standAloneMonthLabels
25256           - Locale::shortStandAloneMonthLabels
25257           - class DateTimeFormat
25258
25259         Also, we change the meaning of ENABLE_CALENDAR_PICKER. It meant
25260          1) <input> supports calendar picker UI, and
25261          2) WebCore/Resources/pagepopups/ is used for the calendar UI implementation.
25262         Now ENABLE_CALENDAR_PICKER means only 2.
25263
25264         No new tests because of no behavior changes.
25265
25266         * html/BaseDateAndTimeInputType.h: This is necessary only if date/time
25267         input types are enabled because this is a common super class of
25268         date/time InputType classes.
25269         * html/BaseDateAndTimeInputType.cpp: Ditto.
25270         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Ditto.
25271         * html/BaseChooserOnlyDateAndTimeInputType.h: Ditto.
25272
25273         * page/ChromeClient.h: Change the flag for openDateTimeChooser, and add a comment.
25274         * loader/EmptyClients.cpp: Follow the openDateTimeChooser flag change.
25275         * loader/EmptyClients.h: Ditto.
25276         * platform/DateTimeChooser.h:
25277         This is needed only if ChromeClient::openDateTimeChooser is available.
25278         * platform/DateTimeChooserClient.h: Ditto.
25279
25280         * platform/LocalizedStrings.h:
25281         weekFormatInLDML is necessary if ENABLE(INPUT_TYPE_WEEK) regardless of
25282         ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25283
25284         * platform/text/PlatformLocale.h:
25285         Change the condition for Locale::formatDateTime and the code used by
25286         Locale::formatDateTime.
25287         * platform/text/PlatformLocale.cpp:
25288         (WebCore::Locale::formatDateTime):
25289         This is necessary even if !ENABLE(INPUT_MULTIPLE_FIELDS_UI), to produce
25290         localized representations of date/time values.
25291         * platform/text/LocaleICU.cpp:
25292         Change the condition for the code used by Locale::formatDateTime.
25293         * platform/text/LocaleICU.h: Ditto.
25294         * platform/text/LocaleNone.cpp: Ditto.
25295         * platform/text/mac/LocaleMac.h: Ditto.
25296         * platform/text/mac/LocaleMac.mm: Ditto.
25297         * platform/text/win/LocaleWin.cpp: Ditto.
25298         * platform/text/win/LocaleWin.h: Ditto.
25299         * platform/text/DateTimeFormat.cpp: Ditto.
25300         * platform/text/DateTimeFormat.h: Ditto.
25301
25302         * html/BaseMultipleFieldsDateAndTimeInputType.h:
25303         Remove some #if-#endif for a picker indicator element because
25304         ENABLE_CALENDAR_PICKER meaning is changed.
25305         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
25306
25307         * html/shadow/PickerIndicatorElement.cpp: CALENDAR_PICKER ->
25308         INPUT_MULTIPLE_FIELDS_UI because ENABLE_CALENDAR_PICKER meaning is changed.
25309         * html/shadow/PickerIndicatorElement.h: Ditto.
25310         * rendering/RenderDetailsMarker.cpp: Ditto.
25311         * rendering/RenderDetailsMarker.h: Ditto.
25312         * rendering/RenderTheme.h: Ditto.
25313         * rendering/RenderThemeChromiumCommon.cpp: Ditto.
25314         * rendering/RenderThemeChromiumCommon.h: Ditto.
25315         * rendering/RenderThemeChromiumMac.h: Ditto.
25316         * rendering/RenderThemeChromiumSkia.h: Ditto.
25317
25318 2012-11-02  Zeno Albisser  <zeno@webkit.org>
25319
25320         [Qt] Revert QCocoaNativeInterface workaround from r131720.
25321         https://bugs.webkit.org/show_bug.cgi?id=100842
25322
25323         Reviewed by Simon Hausmann.
25324
25325         After updating Qt5 on the buildbots, the workaround
25326         introduced in r131720 is not needed anymore.
25327
25328         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
25329         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
25330
25331 2012-11-02  Kent Tamura  <tkent@chromium.org>
25332
25333         Add a common base class for date/time input types without inline editing behavior
25334         https://bugs.webkit.org/show_bug.cgi?id=101031
25335
25336         Reviewed by Hajime Morita.
25337
25338         Add BaseChooserOnlyDateAndTimeInputType class, which will support
25339         DateTimeChooserClient, and date/time input types inherit it if
25340         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25341
25342         No new tests. This doesn't change any behavior.
25343
25344         * CMakeLists.txt: Add BaseChooserOnlyDateAndTimeInputType.{cpp,h}.
25345         * GNUmakefile.list.am: Ditto.
25346         * Target.pri: Ditto.
25347         * WebCore.gypi: Ditto.
25348         * WebCore.xcodeproj/project.pbxproj: Ditto.
25349         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Added.
25350         * html/BaseChooserOnlyDateAndTimeInputType.h: Added.
25351
25352         * html/DateInputType.h: Inherit BaseChooserOnlyDateAndTimeInputType if
25353         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25354         * html/DateTimeInputType.h: Ditto.
25355         * html/DateTimeLocalInputType.h: Ditto.
25356         * html/MonthInputType.h: Ditto.
25357         * html/TimeInputType.h: Ditto.
25358         * html/WeekInputType.h: Ditto.
25359
25360 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25361
25362         Web Inspector: [JSC] implement WorkerScriptDebugServer
25363         https://bugs.webkit.org/show_bug.cgi?id=99801
25364
25365         Reviewed by Yury Semikhatsky.
25366
25367         To implement Worker Inspector for JSC.
25368         The virtual function "runEventLoopWhilePaused" is defined, since there are different ways to block
25369         the JS running in worker-context and normal page-context.
25370         The function "isContentScript" now is virtual because the original invoked functions are useless
25371         and cause problem in worker-context.
25372         In function "WebCore::WorkerScriptController::attachDebugger", we invoke "initScriptIfNeeded" to
25373         ensure the JSGloblalObject exist in the case of attaching Debugger before executing the worker
25374         JS code (Pause on start).
25375
25376         No new test case.
25377
25378         * bindings/js/PageScriptDebugServer.cpp:
25379         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
25380         (WebCore):
25381         * bindings/js/PageScriptDebugServer.h:
25382         (PageScriptDebugServer):
25383         * bindings/js/ScriptDebugServer.cpp:
25384         (WebCore::ScriptDebugServer::isContentScript):
25385         (WebCore::ScriptDebugServer::pauseIfNeeded):
25386         * bindings/js/ScriptDebugServer.h:
25387         (JSC):
25388         (ScriptDebugServer):
25389         * bindings/js/WorkerScriptController.cpp:
25390         (WebCore::WorkerScriptController::attachDebugger):
25391         (WebCore):
25392         (WebCore::WorkerScriptController::detachDebugger):
25393         * bindings/js/WorkerScriptController.h:
25394         (WorkerScriptController):
25395         * bindings/js/WorkerScriptDebugServer.cpp:
25396         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
25397         (WebCore):
25398         (WebCore::WorkerScriptDebugServer::addListener):
25399         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
25400         (WebCore::WorkerScriptDebugServer::removeListener):
25401         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
25402         * bindings/js/WorkerScriptDebugServer.h:
25403         (WorkerScriptDebugServer):
25404         (WebCore::WorkerScriptDebugServer::getListenersForGlobalObject):
25405         (WebCore::WorkerScriptDebugServer::isContentScript):
25406
25407 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
25408
25409         Compilation warning in Node.cpp when USERSELECT_ALL is disabled
25410         https://bugs.webkit.org/show_bug.cgi?id=101025
25411
25412         Reviewed by Ryosuke Niwa.
25413
25414         The parameter 'treatment' is not used when USERSELECT_ALL is disabled. 
25415
25416         * dom/Node.cpp:
25417         (WebCore::Node::rendererIsEditable):
25418
25419 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
25420
25421         Web Inspector: Middle click closes an editor and pastes selection into current editor on Linux
25422         https://bugs.webkit.org/show_bug.cgi?id=100743
25423
25424         Reviewed by Alexander Pavlov.
25425
25426         Editor now consumes all middle mouse button mouse ups except for the ones in the main panel.
25427         TabbedPane now consumes all middle mouse button mouse ups as well.
25428         Navigator view does not pass focus anymore if element was selected with middle mouse button.
25429
25430         * inspector/front-end/DefaultTextEditor.js:
25431         (.preventDefaultOnMouseUp):
25432         (.consumeMouseUp):
25433         * inspector/front-end/NavigatorView.js:
25434         (WebInspector.NavigatorSourceTreeElement.prototype.ondblclick):
25435         * inspector/front-end/TabbedPane.js:
25436         (WebInspector.TabbedPane):
25437         (WebInspector.TabbedPane.prototype.onMouseUp):
25438         (WebInspector.TabbedPane.prototype.onMouseClick):
25439
25440 2012-11-01  Ilya Tikhonovsky  <loislo@chromium.org>
25441
25442         Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com
25443         https://bugs.webkit.org/show_bug.cgi?id=100866
25444
25445         Reviewed by Yury Semikhatsky.
25446
25447         Plain vanilla memory instrumentation code for HTMLInputElement which has a ElementShadow.
25448
25449         * CMakeLists.txt:
25450         * GNUmakefile.list.am:
25451         * Target.pri:
25452         * WebCore.gypi:
25453         * WebCore.vcproj/WebCore.vcproj:
25454         * dom/DocumentOrderedMap.cpp:
25455         (WebCore::DocumentOrderedMap::reportMemoryUsage):
25456         (WebCore):
25457         * dom/DocumentOrderedMap.h:
25458         (DocumentOrderedMap):
25459         * dom/Element.cpp:
25460         (WebCore::Element::reportMemoryUsage):
25461         (WebCore):
25462         * dom/Element.h:
25463         * dom/ElementRareData.cpp: Added.
25464         (WebCore):
25465         (WebCore::ElementRareData::reportMemoryUsage):
25466         * dom/ElementRareData.h:
25467         (ElementRareData):
25468         * dom/ElementShadow.cpp:
25469         (WebCore::ElementShadow::reportMemoryUsage):
25470         (WebCore):
25471         * dom/ElementShadow.h:
25472         (ElementShadow):
25473         * dom/Node.cpp:
25474         (WebCore::Node::reportMemoryUsage):
25475         * dom/NodeRareData.cpp: Added.
25476         (WebCore):
25477         (WebCore::NodeListsNodeData::reportMemoryUsage):
25478         (WebCore::NodeRareData::reportMemoryUsage):
25479         * dom/NodeRareData.h:
25480         (NodeListsNodeData):
25481         (NodeRareData):
25482         * dom/ShadowRoot.cpp:
25483         (WebCore):
25484         (WebCore::ShadowRoot::reportMemoryUsage):
25485         * dom/ShadowRoot.h:
25486         (ShadowRoot):
25487         * dom/TreeScope.cpp:
25488         (WebCore::TreeScope::reportMemoryUsage):
25489         (WebCore):
25490         * dom/TreeScope.h:
25491         (TreeScope):
25492         * html/HTMLFormControlElement.cpp:
25493         (WebCore::HTMLFormControlElement::reportMemoryUsage):
25494         (WebCore):
25495         * html/HTMLFormControlElement.h:
25496         (HTMLFormControlElement):
25497         * html/HTMLInputElement.cpp:
25498         (WebCore::HTMLInputElement::reportMemoryUsage):
25499         (WebCore):
25500         * html/HTMLInputElement.h:
25501         (HTMLInputElement):
25502         * html/HTMLTextFormControlElement.cpp:
25503         (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
25504         (WebCore):
25505         * html/HTMLTextFormControlElement.h:
25506         (HTMLTextFormControlElement):
25507
25508 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25509
25510         Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
25511         https://bugs.webkit.org/show_bug.cgi?id=97471
25512
25513         Reviewed by Pavel Feldman.
25514
25515         This patch is partly based on patch by Otto Derek Cheung <otcheung@rim.com>.
25516         Refactored CookieParser so that all cookies in front-end were WebInspector.Cookie object.
25517         Cookie table can now show Max-Age as well as Expires attribute of a cookie.
25518         Fixed expiresDate calculation.
25519         Removed getters from CookieParser for better compilation.
25520
25521         * English.lproj/localizedStrings.js:
25522         * inspector/front-end/AuditRules.js:
25523         (WebInspector.AuditRules.CookieRuleBase.prototype.mapResourceCookies):
25524         (WebInspector.AuditRules.CookieSizeRule.prototype._average):
25525         (WebInspector.AuditRules.CookieSizeRule.prototype._max):
25526         (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
25527         * inspector/front-end/CookieItemsView.js:
25528         (WebInspector.CookieItemsView.prototype._filterCookiesForDomain):
25529         * inspector/front-end/CookieParser.js:
25530         (WebInspector.CookieParser.prototype.cookies):
25531         (WebInspector.CookieParser.prototype._flushCookie):
25532         (WebInspector.CookieParser.prototype._addCookie):
25533         (WebInspector.Cookie.prototype.httpOnly):
25534         (WebInspector.Cookie.prototype.secure):
25535         (WebInspector.Cookie.prototype.session):
25536         (WebInspector.Cookie.prototype.path):
25537         (WebInspector.Cookie.prototype.domain):
25538         (WebInspector.Cookie.prototype.expires):
25539         (WebInspector.Cookie.prototype.maxAge):
25540         (WebInspector.Cookie.prototype.size):
25541         (WebInspector.Cookie.prototype.setSize):
25542         (WebInspector.Cookie.prototype.expiresDate):
25543         (WebInspector.Cookie.prototype.attributes):
25544         (WebInspector.Cookies.getCookiesAsync):
25545         (WebInspector.Cookies.buildCookiesFromString):
25546         (WebInspector.Cookies.buildCookieProtocolObject):
25547         (WebInspector.Cookies.cookieMatchesResourceURL):
25548         (WebInspector.Cookies.cookieDomainMatchesResourceDomain):
25549         * inspector/front-end/CookiesTable.js:
25550         (WebInspector.CookiesTable):
25551         (WebInspector.CookiesTable.prototype._totalSize):
25552         (WebInspector.CookiesTable.prototype._sortCookies.expiresCompare):
25553         (WebInspector.CookiesTable.prototype._sortCookies):
25554         (WebInspector.CookiesTable.prototype._createGridNode):
25555         * inspector/front-end/HAREntry.js:
25556         (WebInspector.HAREntry.prototype._buildCookie):
25557
25558 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
25559
25560         Memory instrumentation: do not call checkCountedObject with wrong pointers
25561         https://bugs.webkit.org/show_bug.cgi?id=100958
25562
25563         Reviewed by Alexander Pavlov.
25564
25565         Removed redundant call to checkCountedObject.
25566
25567         * inspector/MemoryInstrumentationImpl.cpp:
25568         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
25569
25570 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25571
25572         Web Inspector: a small defect in "WorkersSidebarPanel.js"
25573         https://bugs.webkit.org/show_bug.cgi?id=101022
25574
25575         Reviewed by Yury Semikhatsky.
25576
25577         In "autoattachToWorkersClicked", the "event.target.checked" doesn't alwyas valid, since the
25578         "event.target" might be a label.
25579
25580         The problem just causes an error report, doesn't effect function, so no new test case.
25581
25582         * inspector/front-end/WorkersSidebarPane.js:
25583         (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):
25584
25585 2012-11-01  Shinya Kawanaka  <shinyak@chromium.org>
25586
25587         [Shadow] Element should have getter and setter of attribute 'pseudo'
25588         https://bugs.webkit.org/show_bug.cgi?id=100831
25589
25590         Reviewed by Hajime Morita.
25591
25592         We expose 'pseudo' attribute in Element. When nothing is assigned to 'pseudo', it should return null.
25593
25594         Test: fast/dom/shadow/pseudo-attribute.html
25595
25596         * dom/Element.cpp:
25597         (WebCore::Element::pseudo):
25598         (WebCore):
25599         (WebCore::Element::setPseudo):
25600         * dom/Element.h:
25601         (Element):
25602         * dom/Element.idl:
25603         * html/HTMLAttributeNames.in:
25604
25605 2012-11-01  Roger Fong  <roger_fong@apple.com>
25606
25607         Build fix. http://trac.webkit.org/changeset/133252 broke the Windows build.
25608         https://bugs.webkit.org/show_bug.cgi?id=101008
25609
25610         Reviewed by fischman@chromium.org.
25611
25612         * html/HTMLMediaElement.cpp:
25613         (WebCore::HTMLMediaElement::clearMediaPlayer):
25614         * html/HTMLMediaElement.h:
25615         (HTMLMediaElement):
25616
25617 2012-11-01  Stephen White  <senorblanco@chromium.org>
25618
25619         Unreviewed, rolling out r133244.
25620         http://trac.webkit.org/changeset/133244
25621         https://bugs.webkit.org/show_bug.cgi?id=100973
25622
25623         Broke Chromium Mac (clang) builds.
25624
25625         * bindings/v8/DOMDataStore.cpp:
25626         (WebCore::DOMDataStore::DOMDataStore):
25627         * bindings/v8/IntrusiveDOMWrapperMap.h:
25628         (WebCore::DOMNodeWrapperMap::weakCallback):
25629
25630 2012-11-01  Ami Fischman  <fischman@chromium.org>
25631
25632         HTMLMediaPlayer should free m_player when src is set/changed
25633         https://bugs.webkit.org/show_bug.cgi?id=99647
25634
25635         Reviewed by Eric Carlson.
25636
25637         New ManualTest added; manual since leaking media players doesn't have layoutTestController-visible effects.
25638
25639         * html/HTMLMediaElement.cpp:
25640         (WebCore::HTMLMediaElement::parseAttribute): clearMediaPlayer() when src is set/changed
25641         (WebCore::HTMLMediaElement::userCancelledLoad): use new clearMediaPlayer() helper
25642         (WebCore::HTMLMediaElement::clearMediaPlayer): clear m_player and associated timers/flags
25643         (WebCore):
25644         (WebCore::HTMLMediaElement::createMediaPlayer): whitespace-only change
25645         * html/HTMLMediaElement.h: new method: createMediaPlayer().
25646         (HTMLMediaElement):
25647
25648 2012-11-01  Tom Sepez  <tsepez@chromium.org>
25649
25650         XSS blocker false positive when page contains <iframe src="">
25651         https://bugs.webkit.org/show_bug.cgi?id=93416
25652
25653         Reviewed by Adam Barth.
25654
25655         Treat src="" and src="about:blank" as safe resources even if they appear
25656         in the query parameters.
25657
25658         Tests: http/tests/security/xssAuditor/iframe-injection-allowed-2.html
25659                http/tests/security/xssAuditor/iframe-injection-allowed-3.html
25660                http/tests/security/xssAuditor/iframe-injection-allowed.html
25661
25662         * html/parser/XSSAuditor.cpp:
25663         (WebCore::XSSAuditor::isLikelySafeResource):
25664
25665 2012-11-01  Tien-Ren Chen  <trchen@chromium.org>
25666
25667         Fix assertion failure in RenderGeometryMap::absoluteRect when frame scale != 1.0
25668         https://bugs.webkit.org/show_bug.cgi?id=100912
25669
25670         Reviewed by Simon Fraser.
25671
25672         Frame scale will add transformation to RenderView, so fixed position doesn't
25673         get propagated up to the viewport by RenderGeometryMap. This is handled
25674         correctly in RenderView::mapLocalToContainer, causing the assertion to fail.
25675         This patch corrects RenderGeometryMap::mapToAbsolute to handle the RenderView
25676         transformation case.
25677
25678         A layout test is added to catch this issue. The test will crash debug build
25679         without this patch.
25680
25681         Test: compositing/geometry/fixed-position-composited-page-scale-scroll.html
25682
25683         * rendering/RenderGeometryMap.cpp:
25684         (WebCore::RenderGeometryMap::mapToAbsolute):
25685
25686 2012-11-01  Adam Barth  <abarth@webkit.org>
25687
25688         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
25689         https://bugs.webkit.org/show_bug.cgi?id=100973
25690
25691         Reviewed by Kentaro Hara.
25692
25693         This is the first step towards using intrusive DOM wrapper maps more
25694         widely in WebCore (see
25695         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
25696         for more context).
25697
25698         * bindings/v8/DOMDataStore.cpp:
25699         (WebCore::DOMDataStore::DOMDataStore):
25700         * bindings/v8/IntrusiveDOMWrapperMap.h:
25701         (WebCore):
25702         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
25703
25704 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25705
25706         [CSS Shaders] CustomFilterOperation should be converted to ValidatedCustomFilterOperation before using it
25707         https://bugs.webkit.org/show_bug.cgi?id=100533
25708
25709         Reviewed by Dean Jackson.
25710
25711         Added the code that converts a CustomFilterOperation to a ValidatedCustomFilterOperation.
25712         Both the software path and the composited one will use this operation instead. There will be
25713         no need to check the shader in platform code anymore.
25714
25715         No new tests, already covered by existing custom filter tests.
25716
25717         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
25718         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
25719         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
25720         (WebCore):
25721         (WebCore::ValidatedCustomFilterOperation::create):
25722         (ValidatedCustomFilterOperation):
25723         (WebCore::ValidatedCustomFilterOperation::validatedProgram):
25724         (WebCore::ValidatedCustomFilterOperation::parameters):
25725         (WebCore::ValidatedCustomFilterOperation::meshRows):
25726         (WebCore::ValidatedCustomFilterOperation::meshColumns):
25727         (WebCore::ValidatedCustomFilterOperation::meshType):
25728         (WebCore::ValidatedCustomFilterOperation::operator==):
25729         * rendering/FilterEffectRenderer.cpp:
25730         (WebCore::createCustomFilterEffect):
25731         (WebCore::FilterEffectRenderer::build):
25732         * rendering/RenderLayer.cpp:
25733         (WebCore::RenderLayer::ensureBacking):
25734         (WebCore::RenderLayer::clearBacking):
25735         (WebCore::RenderLayer::styleChanged): updateOrRemoveFilterClients needs to be called before the composited
25736         layer is updated. Otherwise the composited layer will never see a loaded filter in the first call.
25737         (WebCore):
25738         (WebCore::RenderLayer::isCSSCustomFilterEnabled):
25739         (WebCore::RenderLayer::computeFilterOperations):
25740         (WebCore::RenderLayer::updateOrRemoveFilterClients): Split updateOrRemoveFilterEffect into 2 functions.
25741         This one is supposed to add the clients needed to load network resources.
25742         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Figures out if a software fallback is needed 
25743         and creates a FilterEffectRenderer.
25744         * rendering/RenderLayer.h:
25745         (RenderLayer):
25746
25747 2012-11-01  Max Vujovic  <mvujovic@adobe.com>
25748
25749         [CSS Shaders] Get rid of internal tex coord attribute
25750         https://bugs.webkit.org/show_bug.cgi?id=94358
25751
25752         Reviewed by Dean Jackson.
25753
25754         Remove the internal css_a_texCoord attribute that WebKit added to shaders in order to
25755         sample the element texture by texture coordinate.
25756
25757         Now, the WebKit-added sampling code can leverage a_texCoord if the author defined it, or
25758         WebKit can add its own a_texCoord definition to the author's shader.
25759
25760         Note that vertex attributes are read-only in GLSL. Also, note that we already reject the
25761         shader if the author did not define a_texCoord with the correct type. Essentially, if
25762         a_texCoord exists in the author's validated shader, we are guaranteed that it's the correct
25763         type and that its value is unmodified.
25764
25765         Test: css3/filters/custom/custom-filter-a-tex-coord-optional.html
25766
25767         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
25768         (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
25769             Remove the references to m_internalTexCoordAttribLocation.
25770         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations): Ditto.
25771         * platform/graphics/filters/CustomFilterCompiledProgram.h: Ditto.
25772         * platform/graphics/filters/CustomFilterRenderer.cpp:
25773         (WebCore::CustomFilterRenderer::bindProgramAndBuffers): Ditto.
25774         (WebCore::CustomFilterRenderer::unbindVertexAttributes): Ditto.
25775         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
25776         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
25777             Pass the set of symbols found in the author's shaders to the rewriteMixVertexShader
25778             method.
25779         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
25780             If the author didn't define a_texCoord, add it to the end of the author's vertex 
25781             shader, but before the shader's new main function. As before, the new main function
25782             will pass the texture coordinate to the fragment shader via the css_v_texCoord varying.
25783         * platform/graphics/filters/CustomFilterValidatedProgram.h:
25784         (WebCore):
25785             Add a forward declaration for ANGLEShaderSymbol.
25786         (CustomFilterValidatedProgram):
25787             Update the method prototype for rewriteMixVertexShader.
25788
25789 2012-11-01  Chris Rogers  <crogers@google.com>
25790
25791         Ensure that AudioNode deletion is synchronized with a stable state of the rendering graph
25792         https://bugs.webkit.org/show_bug.cgi?id=100994
25793
25794         Reviewed by Kenneth Russell.
25795
25796         In some rare cases it has been observed that nodes are getting deleted in the main thread
25797         during an audio rendering quantum where the dirty inputs and outputs have not yet been cleaned
25798         via calls to handleDirtyAudioSummingJunctions() and handleDirtyAudioNodeOutputs().
25799         This was possible because nodes marked for deletion with markForDeletion() could be picked
25800         up in a subsequent call to deleteMarkedNodes() before the render quantum has finished and
25801         handlePostRenderTasks() has had a chance to reconcile these marked nodes and clean the dirty state.
25802         The solution is to manage the marked nodes in a separate vector which only gets copied to another
25803         vector truly eligible for deletion which is synchronized in handlePostRenderTasks().
25804
25805         * Modules/webaudio/AudioContext.cpp:
25806         (WebCore::AudioContext::markForDeletion):
25807         (WebCore::AudioContext::scheduleNodeDeletion):
25808         (WebCore::AudioContext::deleteMarkedNodes):
25809         * Modules/webaudio/AudioContext.h:
25810         (AudioContext):
25811
25812 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
25813
25814         Build fix after r133224 as suggested by Enrica.
25815         Confirmed the test failures go away on Chromium Mac locally.
25816
25817         * page/EventHandler.cpp:
25818         (WebCore::EventHandler::updateSelectionForMouseDrag):
25819
25820 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25821
25822         Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
25823
25824         Rubber-stamped by Joe Pecoraro.
25825
25826         All CFNetwork based platforms have this now, but not all use it at the moment.
25827
25828         * loader/ResourceLoader.h:
25829         * loader/SubresourceLoader.h:
25830         * loader/cf/SubresourceLoaderCF.cpp:
25831         * loader/mac/ResourceLoaderMac.mm:
25832         * platform/SharedBuffer.cpp:
25833         (WebCore::SharedBuffer::clear):
25834         (WebCore::SharedBuffer::buffer):
25835         (WebCore::SharedBuffer::getSomeData):
25836         * platform/SharedBuffer.h:
25837         * platform/cf/SharedBufferCF.cpp:
25838         * platform/network/ResourceHandle.h:
25839         * platform/network/ResourceHandleClient.h:
25840         (ResourceHandleClient):
25841         * platform/network/cf/ResourceHandleCFNet.cpp:
25842         (WebCore::willCacheResponse):
25843         (WebCore::ResourceHandle::createCFURLConnection):
25844         * platform/network/mac/ResourceHandleMac.mm:
25845
25846 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25847
25848         Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
25849         https://bugs.webkit.org/show_bug.cgi?id=100979
25850
25851         Reviewed by Joseph Pecoraro.
25852
25853         * loader/ResourceBuffer.cpp: (WebCore::ResourceBuffer::append):
25854         * loader/ResourceBuffer.h:
25855         Added a version of append() that takes CFDataRef, passing it directly to SharedBuffer.
25856
25857         * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::didReceiveDataArray):
25858         InspectorInstrumentation now takes a length. Unfortunately, we don't have encodedLength
25859         here, meaning that the results will likely be incorrect.
25860
25861         * platform/network/cf/ResourceHandleCFNet.cpp:
25862         (WebCore::willCacheResponse): Removed a version that needlessly used deprecated API.
25863         (WebCore::ResourceHandle::createCFURLConnection): This code assumed that
25864         HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) and USE(PROTECTION_SPACE_AUTH_CALLBACK) always
25865         come together. Changed to check for these separately.
25866
25867 2012-11-01  Rob Buis  <rbuis@rim.com>
25868
25869         [BlackBerry] Add more form validation strings
25870         https://bugs.webkit.org/show_bug.cgi?id=100978
25871
25872         Reviewed by Yong Li.
25873
25874         PR 210072
25875
25876         Implement these two methods properly.
25877
25878         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
25879         (WebCore::validationMessageRangeUnderflowText):
25880         (WebCore::validationMessageRangeOverflowText):
25881
25882 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25883
25884         [CSS Shaders] Move MeshBoxType out of CustomFilterOperation
25885         https://bugs.webkit.org/show_bug.cgi?id=100782
25886
25887         Reviewed by Dean Jackson.
25888
25889         Moved CustomFilter::MeshBoxType enum to the CustomFilterConstants.h file and renamed it to CustomFilterMeshBoxType. 
25890         This way we can reuse it without including the CustomFilterOperation file.
25891
25892         No new tests, just refactoring code.
25893
25894         * css/CSSPrimitiveValueMappings.h:
25895         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
25896         (WebCore::CSSPrimitiveValue::operator CustomFilterMeshBoxType):
25897         * css/StyleResolver.cpp:
25898         (WebCore::StyleResolver::createCustomFilterOperation):
25899         * platform/graphics/filters/CustomFilterArrayParameter.h: Adding AnimationUtilities.h for WebCore::blend, looks like
25900         CustomFilterOperation already included AnimationsUtilities.h indirectly.
25901         * platform/graphics/filters/CustomFilterConstants.h: Added CustomFilterMeshBoxType.
25902         * platform/graphics/filters/CustomFilterNumberParameter.h:
25903         * platform/graphics/filters/CustomFilterOperation.cpp:
25904         (WebCore::CustomFilterOperation::CustomFilterOperation):
25905         * platform/graphics/filters/CustomFilterOperation.h:
25906         (WebCore::CustomFilterOperation::create):
25907         (WebCore::CustomFilterOperation::meshBoxType):
25908         (CustomFilterOperation):
25909         * platform/graphics/filters/CustomFilterRenderer.cpp:
25910         (WebCore::CustomFilterRenderer::create):
25911         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
25912         * platform/graphics/filters/CustomFilterRenderer.h: Also removed the need to include CustomFilterOperation.h. Some other
25913         headers were needed to replace the files that were automatically incldued because of that file.
25914         (WebCore):
25915         (CustomFilterRenderer):
25916         * platform/graphics/filters/FECustomFilter.cpp:
25917         (WebCore::FECustomFilter::FECustomFilter):
25918         (WebCore::FECustomFilter::create):
25919         * platform/graphics/filters/FECustomFilter.h:
25920         (FECustomFilter):
25921
25922 2012-11-01  Enrica Casucci  <enrica@apple.com>
25923
25924         Part2 of: Extend -webkit-user-select with new value "all"
25925         <rdar://problem/10161404>
25926         https://bugs.webkit.org/show_bug.cgi?id=91912
25927
25928         Reviewed by Ryosuke Niwa.
25929
25930         The new value "all" for -webkit-user-select property gives content none-or-all selection option.
25931         The patch was originally prepared by Alice Cheng but the approach has been changed.
25932         The idea is to treat these elements like non editable, meaning that we should skip over them entirely
25933         when moving the cursor and a deletion should delete the element and all its descentants at once.
25934         The key change is in Node::rendererIsEditable where we now return false if the element style is
25935         userSelect: all. The other change is in the way we create the selection on mouse click and dragging
25936         over the element. In both cases we force the selection to extend over the entire element with
25937         the user-select: all attribute.
25938         This is currently enabled only for the Mac port.
25939
25940         Test: editing/selection/user-select-all-selection.html
25941
25942         * dom/Node.cpp: Added a parameter to isContentEditable to behave differently
25943         when called from JavaScript. Internally isContentEditable returns false on
25944         nodes with user-select: all style.
25945         (WebCore::Node::isContentEditable):
25946         (WebCore::Node::isContentRichlyEditable):
25947         (WebCore::Node::rendererIsEditable):
25948         (WebCore::Node::shouldUseInputMethod):
25949         (WebCore::Node::willRespondToMouseClickEvents):
25950         * dom/Node.h:
25951         (WebCore::Node::rendererIsEditable):
25952         (WebCore::Node::rendererIsRichlyEditable):
25953         * dom/Position.cpp:
25954         (WebCore::Position::nodeIsUserSelectAll): Added.
25955         (WebCore::Position::rootUserSelectAllForNode): Added.
25956         * dom/Position.h: Added static functions described above.
25957         * editing/ApplyStyleCommand.cpp:
25958         (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
25959         isContentEditable() call.
25960         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
25961         isContentEditable() call.
25962         * editing/DeleteFromTextNodeCommand.cpp:
25963         (WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
25964         isContentEditable() call.
25965         * editing/FrameSelection.cpp:
25966         (WebCore::adjustForwardPositionForUserSelectAll): New helper function.
25967         (WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
25968         (WebCore::FrameSelection::modifyExtendingRight):
25969         (WebCore::FrameSelection::modifyExtendingForward):
25970         (WebCore::FrameSelection::modifyExtendingLeft):
25971         (WebCore::FrameSelection::modifyExtendingBackward):
25972         (WebCore::FrameSelection::modify):
25973         (WebCore::CaretBase::invalidateCaretRect): Added parameter to
25974         isContentEditable() call.
25975         * editing/InsertNodeBeforeCommand.cpp:
25976         (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
25977         (WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
25978         * editing/RemoveNodeCommand.cpp:
25979         (WebCore::RemoveNodeCommand::doApply): Ditto.
25980         * editing/visible_units.cpp:
25981         (WebCore::startOfParagraph): We should not consider a paragraph break and element
25982         with user-select: all style, like we do at the border of editability.
25983         (WebCore::endOfParagraph): Ditto.
25984         * page/EventHandler.cpp:
25985         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
25986         around the element whose style is user-select: all.
25987         (WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
25988         * rendering/RootInlineBox.cpp:
25989         (WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
25990         If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
25991         we should return the selection state as SelectionBoth, assuming we went past the end selection.
25992         This avoids doing an incorrect gap filling for the selection highlighting.
25993
25994 2012-11-01  Alec Flett  <alecflett@chromium.org>
25995
25996         IndexedDB: Fix Windows build by re-adding a #include
25997         https://bugs.webkit.org/show_bug.cgi?id=100986
25998
25999         Reviewed by Stephen White.
26000
26001         Fix #include that broke windows.
26002
26003         * Modules/indexeddb/IDBCallbacks.h:
26004
26005 2012-11-01  David Barton  <dbarton@mathscribe.com>
26006
26007         REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
26008         https://bugs.webkit.org/show_bug.cgi?id=97390
26009
26010         Reviewed by Ojan Vafai.
26011
26012         In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
26013         in layout() will be the base's true height, without any flexbox stretching.
26014
26015         Tested by existing tests.
26016
26017         * rendering/mathml/RenderMathMLSubSup.cpp:
26018         (WebCore::RenderMathMLSubSup::fixAnonymousStyles):
26019         (WebCore::RenderMathMLSubSup::addChild):
26020         (WebCore::RenderMathMLSubSup::styleDidChange):
26021         * rendering/mathml/RenderMathMLSubSup.h:
26022         (RenderMathMLSubSup):
26023
26024 2012-11-01  Antti Koivisto  <antti@apple.com>
26025
26026         REGRESSION (r132941): attribute modification 10% performance regression
26027         https://bugs.webkit.org/show_bug.cgi?id=100873
26028
26029         Reviewed by Ojan Vafai.
26030
26031         Don't do the class change finding by mutating SpaceSplitString. It is slow. Instead use a bit vector
26032         to mark the unchanged classes
26033
26034         * css/StyleResolver.cpp:
26035         (WebCore):
26036         * css/StyleResolver.h:
26037         (WebCore::StyleResolver::hasSelectorForAttribute):
26038         (WebCore):
26039         (WebCore::StyleResolver::hasSelectorForClass):
26040         (WebCore::StyleResolver::hasSelectorForId):
26041         
26042             Inlined these and moved value validity testing to clients.
26043
26044         * dom/Element.cpp:
26045         (WebCore::checkNeedsStyleInvalidationForIdChange):
26046         (WebCore):
26047         (WebCore::Element::attributeChanged):
26048     
26049             Clean up id testing too.
26050
26051         (WebCore::checkNeedsStyleInvalidationForClassChange):
26052         
26053             Use bit vector for marking seen values. Avoids allocations and reffing.
26054
26055         (WebCore::Element::classAttributeChanged):
26056         
26057             Don't test if style is already invalid.
26058
26059 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
26060
26061         [Mac] Crash in Range::editingStartPosition
26062         https://bugs.webkit.org/show_bug.cgi?id=100972
26063
26064         Reviewed by Enrica Casucci.
26065
26066         Add a missing null pointer check. toNormalizedRange() can return null here, in which case the call to
26067         pastLastNode() will crash.
26068
26069         No new tests since determining the exact condition under which we go through the said code path and
26070         toNormalRange returns null is hard.
26071
26072         * editing/mac/EditorMac.mm:
26073         (WebCore::Editor::fontForSelection):
26074
26075 2012-11-01  Beth Dakin  <bdakin@apple.com>
26076
26077         https://bugs.webkit.org/show_bug.cgi?id=100917
26078         There should be a way to dump the scrolling tree from the layout tests
26079
26080         Reviewed by Simon Fraser.
26081
26082         New Internals call to dump the scrolling state tree as text. Calls through to the 
26083         ScrollingCoordinator.
26084         * testing/Internals.cpp:
26085         (WebCore::Internals::scrollingStateTreeAsText):
26086         (WebCore):
26087         * testing/Internals.h:
26088         * testing/Internals.idl:
26089         * WebCore.exp.in:
26090         * page/Page.cpp:
26091         (WebCore::Page::scrollingStateTreeAsText):
26092         (WebCore):
26093         * page/Page.h:
26094         (Page):
26095
26096         ScrollingCoordinator tells the rootStateNode to dump the tree as text.
26097         * page/scrolling/mac/ScrollingCoordinatorMac.h:
26098         (ScrollingCoordinatorMac):
26099         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
26100         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText):
26101         (WebCore):
26102         * page/scrolling/ScrollingCoordinator.cpp:
26103         (WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
26104         (WebCore):
26105         * page/scrolling/ScrollingCoordinator.h:
26106         (ScrollingCoordinator):
26107
26108         dumpNode() dumps generic stuff for each node, and dumpProperties will dump the 
26109         properties that are specific to different types of nodes.
26110         * page/scrolling/ScrollingStateNode.cpp:
26111         (WebCore::ScrollingStateNode::writeIndent):
26112         (WebCore):
26113         (WebCore::ScrollingStateNode::dumpNode):
26114         (WebCore::ScrollingStateNode::scrollingStateTreeAsText):
26115         * page/scrolling/ScrollingStateNode.h:
26116         (WebCore):
26117         (ScrollingStateNode):
26118         * page/scrolling/ScrollingStateScrollingNode.cpp:
26119         (WebCore::ScrollingStateScrollingNode::dumpProperties):
26120         (WebCore):
26121         * page/scrolling/ScrollingStateScrollingNode.h:
26122         (ScrollingStateScrollingNode):
26123
26124 2012-11-01  Kenneth Russell  <kbr@google.com>
26125
26126         Add RGB to supported destination formats of ImageBuffer::copyToPlatformTexture
26127         https://bugs.webkit.org/show_bug.cgi?id=100971
26128
26129         Reviewed by Stephen White.
26130
26131         The ImageBuffer::copyToPlatformTexture restriction added in
26132         r132965 was too restrictive. Allow RGB textures to prevent
26133         performance regressions.
26134
26135         * html/canvas/WebGLRenderingContext.cpp:
26136         (WebCore):
26137         (WebCore::WebGLRenderingContext::texImage2D):
26138         * platform/graphics/ImageBuffer.h:
26139         (ImageBuffer):
26140
26141 2012-11-01  Michael Matovsky  <mmatovsky@rim.com>
26142
26143         [BlackBerry] Web page view state should be preserved for pages loaded from page cache
26144         https://bugs.webkit.org/show_bug.cgi?id=100694
26145         Internal PR: 220488
26146
26147         Internally reviewed by Lianghui Chen, Joe Mason
26148         Reviewed by Rob Buis.
26149
26150         The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
26151         This requires web page view state to be saved in and restored from the corresponding page cache history item.
26152
26153         No new tests for platform specific internal change.
26154
26155         * history/blackberry/HistoryItemViewState.h:
26156         (HistoryItemViewState):
26157
26158 2012-11-01  Alec Flett  <alecflett@chromium.org>
26159
26160         IndexedDB: add methods to support id-based backend APIs
26161         https://bugs.webkit.org/show_bug.cgi?id=100425
26162
26163         Reviewed by Tony Chang.
26164
26165         First half of refactor involves adding a number of methods that
26166         are int64_t-based rather than String-based. As a part of this, the
26167         IDB*Metadata structs and the backend objectStore/index maps all
26168         use int64_t as keys, rather than String.
26169
26170         In addition, there were a number of cleanups that came out of the
26171         refactor:
26172
26173         - The list of object stores active in a transaction is now
26174           maintained by the frontend IDBTransaction rather than the backend
26175           IDBTransactionBackendImpl. This also had a simplifying rippling
26176           effect through other call signatures.
26177
26178         - I was able to remove an apparently old FIXME from
26179           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
26180
26181         - IDBObjectStoreBackendImpl's IndexWriter class got a little
26182           simpler since the id is now easily available in the
26183           IDBIndexMetadata.
26184
26185         - A number of methods got simpler in their int64_t versions,
26186           specifically dropping a number of ExceptionCodes.
26187
26188         There is also some glue code
26189         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
26190         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
26191
26192         No new tests, no new functionality as this is just a refactor.
26193
26194         * Modules/indexeddb/IDBDatabase.cpp:
26195         (WebCore::IDBDatabase::objectStoreNames):
26196         (WebCore::IDBDatabase::createObjectStore):
26197         (WebCore::IDBDatabase::deleteObjectStore):
26198         (WebCore::IDBDatabase::transaction):
26199         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
26200         (WebCore::IDBDatabaseBackendImpl::metadata):
26201         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
26202         (WebCore::IDBDatabaseBackendImpl::objectStore):
26203         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
26204         (WebCore):
26205         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26206         (WebCore::IDBDatabaseBackendImpl::transaction):
26207         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
26208         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
26209         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
26210         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
26211         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26212         (IDBDatabaseBackendImpl):
26213         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
26214         (IDBDatabaseBackendInterface):
26215         * Modules/indexeddb/IDBIndex.h:
26216         (WebCore::IDBIndex::id):
26217         (WebCore::IDBIndex::openKeyCursor):
26218         * Modules/indexeddb/IDBIndexBackendInterface.h:
26219         * Modules/indexeddb/IDBMetadata.h:
26220         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
26221         (IDBIndexMetadata):
26222         (IDBObjectStoreMetadata):
26223         (WebCore::IDBObjectStoreMetadata::containsIndex):
26224         (IDBDatabaseMetadata):
26225         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
26226         (WebCore::IDBDatabaseMetadata::containsObjectStore):
26227         * Modules/indexeddb/IDBObjectStore.cpp:
26228         (WebCore::IDBObjectStore::indexNames):
26229         (WebCore::IDBObjectStore::put):
26230         (WebCore::IDBObjectStore::createIndex):
26231         (WebCore::IDBObjectStore::index):
26232         (WebCore::IDBObjectStore::deleteIndex):
26233         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
26234         (WebCore::IDBObjectStoreBackendImpl::put):
26235         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
26236         (WebCore):
26237         (WebCore::makeIndexWriters):
26238         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
26239         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
26240         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
26241         (WebCore::IDBObjectStoreBackendImpl::putInternal):
26242         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
26243         (WebCore::IDBObjectStoreBackendImpl::createIndex):
26244         (WebCore::IDBObjectStoreBackendImpl::index):
26245         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
26246         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
26247         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
26248         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
26249         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
26250         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
26251         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
26252         (IDBObjectStoreBackendImpl):
26253         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
26254         * Modules/indexeddb/IDBOpenDBRequest.cpp:
26255         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
26256         * Modules/indexeddb/IDBRequest.cpp:
26257         (WebCore::IDBRequest::onSuccess):
26258         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
26259         * Modules/indexeddb/IDBTransaction.cpp:
26260         (WebCore::IDBTransaction::create):
26261         (WebCore::IDBTransaction::IDBTransaction):
26262         (WebCore::IDBTransaction::objectStore):
26263         * Modules/indexeddb/IDBTransaction.h:
26264         (IDBTransaction):
26265         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
26266         (WebCore::IDBTransactionBackendImpl::create):
26267         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
26268         (WebCore::IDBTransactionBackendImpl::objectStore):
26269         (WebCore):
26270         (WebCore::IDBTransactionBackendImpl::scheduleTask):
26271         * Modules/indexeddb/IDBTransactionBackendImpl.h:
26272         (IDBTransactionBackendImpl):
26273         * Modules/indexeddb/IDBTransactionBackendInterface.h:
26274
26275 2012-11-01  Adam Barth  <abarth@webkit.org>
26276
26277         [V8] The DOMWrapperVisitor abstraction is no longer needed
26278         https://bugs.webkit.org/show_bug.cgi?id=100965
26279
26280         Reviewed by Kentaro Hara.
26281
26282         This patch removes the DOMWrapperVisitor interface because it is no
26283         longer needed. As a consequence, DOMWrapperMaps no longer need to
26284         support enumeration, and we can move more DOM objects to use the faster
26285         intrusive wrappers.
26286
26287         There was one remaining user of DOMWrapperVisitor in the
26288         ScriptProfiler, which I've moved over to enumerating objects directly
26289         from V8, similar to a function above it in the same file.
26290
26291         * bindings/v8/DOMWrapperMap.h:
26292         (WebCore):
26293         (DOMWrapperMap):
26294         * bindings/v8/IntrusiveDOMWrapperMap.h:
26295         * bindings/v8/ScriptProfiler.cpp:
26296         (WebCore::ScriptProfiler::visitNodeWrappers):
26297         (WebCore::ScriptProfiler::visitExternalArrays):
26298
26299 2012-11-01  Mike West  <mkwst@chromium.org>
26300
26301         CSP 1.0: Warn when old-style directives encountered.
26302         https://bugs.webkit.org/show_bug.cgi?id=100883
26303
26304         Reviewed by Adam Barth.
26305
26306         In Mozilla's pre-W3C-spec implementation, a few directives are
26307         implemented that were either renamed, reworked, or removed from CSP 1.0.
26308         This patch adds special warning messages for three of those directives
26309         to set developer expectations correctly.
26310
26311         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated.html
26312
26313         * page/ContentSecurityPolicy.cpp:
26314         (WebCore::CSPDirectiveList::parseDirective):
26315         (WebCore::CSPDirectiveList::addDirective):
26316         (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
26317         * page/ContentSecurityPolicy.h:
26318             Rename 'reportUnrecognizedDirectives' to
26319             'reportUnsupportedDirectives', and teach it to give more descriptive
26320             error messages when encountering 'allow', 'options', and
26321             'policy-uri'.
26322
26323 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26324
26325         Web Inspector: Update CodeMirror to v3
26326         https://bugs.webkit.org/show_bug.cgi?id=99319
26327
26328         Reviewed by Vsevolod Vlasov.
26329
26330         Updated to ToT v3.
26331
26332         * inspector/front-end/CodeMirrorTextEditor.js:
26333         (WebInspector.CodeMirrorTextEditor):
26334         (WebInspector.CodeMirrorTextEditor.prototype._gutterClick):
26335         (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
26336         (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
26337         (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
26338         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
26339         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
26340         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
26341         (WebInspector.CodeMirrorTextEditor.prototype._change):
26342         * inspector/front-end/cm/cmdevtools.css:
26343         (.CodeMirror):
26344         (.CodeMirror-linenumber):
26345         (.cm-breakpoint):
26346         * inspector/front-end/cm/codemirror.css:
26347         (.CodeMirror):
26348         (.CodeMirror-scroll):
26349         (.CodeMirror-lines):
26350         (.CodeMirror pre):
26351         (.CodeMirror-scrollbar-filler):
26352         (.CodeMirror-gutters):
26353         (.CodeMirror-linenumbers):
26354         (.CodeMirror-linenumber):
26355         (.CodeMirror pre.CodeMirror-cursor):
26356         (.CodeMirror pre.CodeMirror-secondarycursor):
26357         (.cm-keymap-fat-cursor pre.CodeMirror-cursor):
26358         (.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id)):
26359         (.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite):
26360         (.cm-s-default .cm-keyword):
26361         (.cm-s-default .cm-atom):
26362         (.cm-s-default .cm-number):
26363         (.cm-s-default .cm-def):
26364         (.cm-s-default .cm-variable):
26365         (.cm-s-default .cm-variable-2):
26366         (.cm-s-default .cm-variable-3):
26367         (.cm-s-default .cm-property):
26368         (.cm-s-default .cm-operator):
26369         (.cm-s-default .cm-comment):
26370         (.cm-s-default .cm-string):
26371         (.cm-s-default .cm-string-2):
26372         (.cm-s-default .cm-meta):
26373         (.cm-s-default .cm-error):
26374         (.cm-s-default .cm-qualifier):
26375         (.cm-s-default .cm-builtin):
26376         (.cm-s-default .cm-bracket):
26377         (.cm-s-default .cm-tag):
26378         (.cm-s-default .cm-attribute):
26379         (.cm-s-default .cm-header):
26380         (.cm-s-default .cm-quote):
26381         (.cm-s-default .cm-hr):
26382         (.cm-s-default .cm-link):
26383         (.cm-header, .cm-strong):
26384         (.cm-em):
26385         (.cm-emstrong):
26386         (.cm-link):
26387         (.cm-invalidchar):
26388         (div.CodeMirror span.CodeMirror-matchingbracket):
26389         (div.CodeMirror span.CodeMirror-nonmatchingbracket):
26390         (.CodeMirror-sizer):
26391         (.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
26392         (.CodeMirror-vscrollbar):
26393         (.CodeMirror-hscrollbar):
26394         (.CodeMirror-gutter):
26395         (.CodeMirror-gutter-elt):
26396         (.CodeMirror-linebackground):
26397         (.CodeMirror-linewidget):
26398         (.CodeMirror-measure):
26399         (.CodeMirror-measure pre):
26400         (.CodeMirror-selected):
26401         (.CodeMirror-focused .CodeMirror-selected):
26402         (.CodeMirror span):
26403         * inspector/front-end/cm/codemirror.js:
26404         (window.CodeMirror.):
26405         (window.CodeMirror):
26406         * inspector/front-end/utilities.js:
26407
26408 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26409
26410         [BlackBerry] Update BB10 form theme.
26411         https://bugs.webkit.org/show_bug.cgi?id=100760
26412
26413         Reviewed by Rob Buis.
26414
26415         RIM PR 235194.
26416
26417         Check img pointer is null, if so, do early return.
26418
26419         * platform/blackberry/RenderThemeBlackBerry.cpp:
26420         (WebCore::drawControl):
26421         (WebCore::drawThreeSlice):
26422         (WebCore::drawNineSlice):
26423
26424 2012-11-01  Adam Barth  <abarth@webkit.org>
26425
26426         [V8] The V8DOMMap visitors are no longer needed
26427         https://bugs.webkit.org/show_bug.cgi?id=100963
26428
26429         Reviewed by Kentaro Hara.
26430
26431         This patch inlines visitAllDOMNodes into its one caller (and removes
26432         one layer of visitor adaptor abstraction).
26433
26434         * bindings/v8/ScriptProfiler.cpp:
26435         (WebCore::ScriptProfiler::visitNodeWrappers):
26436         * bindings/v8/V8DOMMap.cpp:
26437         * bindings/v8/V8DOMMap.h:
26438         (WebCore):
26439
26440 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26441
26442         [BlackBerry] Update BB10 form theme.
26443         https://bugs.webkit.org/show_bug.cgi?id=100760
26444
26445         Reviewed by Rob Buis.
26446
26447         RIM PR 235194.
26448
26449         Check img pointer is null, if so, do early return.
26450
26451         * platform/blackberry/RenderThemeBlackBerry.cpp:
26452         (WebCore::drawControl):
26453         (WebCore::drawThreeSlice):
26454         (WebCore::drawNineSlice):
26455
26456 2012-11-01  Adam Barth  <abarth@webkit.org>
26457
26458         Unreviewed. Build fix.
26459
26460         * bindings/v8/V8GCController.cpp:
26461
26462 2012-11-01  Christophe Dumez  <christophe.dumez@intel.com>
26463
26464         [EFL][WK2] Add Ewk_Auth_Request API
26465         https://bugs.webkit.org/show_bug.cgi?id=100858
26466
26467         Reviewed by Kenneth Rohde Christiansen.
26468
26469         Provide an AuthenticationClient for EFL port in WebCore so
26470         that we can handle authentication similarly to other ports
26471         of WebKit.
26472
26473         No new tests, no behavior change for layout tests.
26474
26475         * PlatformEfl.cmake: Add AuthenticationChallengeSoup.cpp to CMake.
26476         * loader/ResourceLoader.cpp:
26477         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
26478         * platform/network/ResourceHandle.h:
26479         (ResourceHandle): Have ResourceHandle subclass AuthenticationClient like
26480         most of the other ports.
26481         * platform/network/soup/AuthenticationChallengeSoup.cpp: Fix initialization
26482         of previousFailureCount member. It should be 1 if we are retrying
26483         authentication and 0 otherwise, not the opposite.
26484         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
26485         * platform/network/soup/ResourceHandleSoup.cpp: Provide implementation for EFL
26486         port of AuthenticationClient methods.
26487         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
26488         (WebCoreSynchronousLoader):
26489         (WebCore):
26490         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
26491         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
26492         (WebCore::ResourceHandle::receivedCredential):
26493         (WebCore::ResourceHandle::receivedCancellation):
26494         (WebCore::authenticateCallback):
26495         (WebCore::ResourceHandle::defaultSession):
26496
26497 2012-10-24  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
26498
26499         WebIconDatabase: Properly clean up on destruction
26500         https://bugs.webkit.org/show_bug.cgi?id=100237
26501
26502         Reviewed by Brady Eidson.
26503
26504         It's now possible that the IconDatabase gets destroyed since WebKit2
26505         isn't using it as a singleton.
26506
26507         Check that the database was properly closed rather than asserting that
26508         it won't get deleted.
26509
26510         * loader/icon/IconDatabase.cpp:
26511         (WebCore::IconDatabase::~IconDatabase):
26512
26513 2012-11-01  Alexei Filippov  <alph@chromium.org>
26514
26515         Web Inspector: make component subitems use parent color in native memory snapshots.
26516         https://bugs.webkit.org/show_bug.cgi?id=100876
26517
26518         A component subitems use the color of the component itself if the color
26519         is not explicitly specified for the subitem.
26520
26521         Reviewed by Yury Semikhatsky.
26522
26523         * inspector/front-end/NativeMemorySnapshotView.js:
26524         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
26525         (WebInspector.MemoryBlockViewProperties._initialize):
26526         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
26527
26528 2012-11-01  Emil A Eklund  <eae@chromium.org>
26529
26530         [subpixel] Change intrinsicSize to LayoutUnit
26531         https://bugs.webkit.org/show_bug.cgi?id=99104
26532
26533         Reviewed by Levi Weintraub.
26534
26535         Change RenderReplaced and intrinsicSize to LayoutUnit to avoid
26536         rounding problems when zooming/scaling. Also change imageSize to
26537         LayoutUnit as it can return a scaled size.
26538
26539         Test: fast/sub-pixel/tiled-canvas-elements.html
26540
26541         * html/ImageDocument.cpp:
26542         (WebCore::ImageDocumentParser::finish):
26543         * loader/cache/CachedImage.cpp:
26544         (WebCore::CachedImage::imageSizeForRenderer):
26545         * loader/cache/CachedImage.h:
26546         (CachedImage):
26547         * platform/graphics/FractionalLayoutSize.h:
26548         (FractionalLayoutSize):
26549         (WebCore::FractionalLayoutSize::scale):
26550         (WebCore::FractionalLayoutSize::clampToMinimumSize):
26551         * rendering/RenderBox.h:
26552         (WebCore::RenderBox::intrinsicSize):
26553         * rendering/RenderHTMLCanvas.cpp:
26554         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
26555         * rendering/RenderImage.cpp:
26556         (WebCore::RenderImage::imageChanged):
26557         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
26558         (WebCore::RenderImage::paintReplaced):
26559         (WebCore::RenderImage::minimumReplacedHeight):
26560         * rendering/RenderImage.h:
26561         (RenderImage):
26562         * rendering/RenderImageResource.h:
26563         (WebCore::RenderImageResource::imageSize):
26564         * rendering/RenderImageResourceStyleImage.h:
26565         * rendering/RenderReplaced.cpp:
26566         (WebCore::RenderReplaced::RenderReplaced):
26567         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
26568         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
26569         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
26570         * rendering/RenderReplaced.h:
26571         (RenderReplaced):
26572         (WebCore::RenderReplaced::minimumReplacedHeight):
26573         (WebCore::RenderReplaced::setIntrinsicSize):
26574         * rendering/RenderVideo.cpp:
26575         (WebCore::RenderVideo::updateIntrinsicSize):
26576         (WebCore::RenderVideo::calculateIntrinsicSize):
26577         (WebCore::RenderVideo::videoBox):
26578         (WebCore::RenderVideo::minimumReplacedHeight):
26579         * rendering/RenderVideo.h:
26580         (RenderVideo):
26581         * rendering/style/StyleCachedImage.cpp:
26582         (WebCore::StyleCachedImage::imageSize):
26583         * rendering/style/StyleCachedImage.h:
26584         (StyleCachedImage):
26585         * rendering/style/StyleCachedImageSet.cpp:
26586         (WebCore::StyleCachedImageSet::imageSize):
26587         * rendering/style/StyleCachedImageSet.h:
26588         (StyleCachedImageSet):
26589         * rendering/style/StyleGeneratedImage.cpp:
26590         (WebCore::StyleGeneratedImage::imageSize):
26591         (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
26592         * rendering/style/StyleGeneratedImage.h:
26593         (StyleGeneratedImage):
26594         * rendering/style/StyleImage.h:
26595         (StyleImage):
26596         * rendering/style/StylePendingImage.h:
26597
26598 2012-11-01  Adam Barth  <abarth@webkit.org>
26599
26600         [V8] Unify the V8GCController visitors
26601         https://bugs.webkit.org/show_bug.cgi?id=100897
26602
26603         Reviewed by Eric Seidel.
26604
26605         After this patch, we use a single visitor for all DOM wrappers,
26606         regardless of type. We also visit all the wrappers in one pass by
26607         calling v8::V8::VisitHandlesWithClassIds directly rather than via
26608         visitAllDOMNodes.
26609
26610         This patch also introduces a wrapper class ID for non-Node DOM objects.
26611         Previously, only DOM nodes had a class ID.
26612
26613         * bindings/v8/IntrusiveDOMWrapperMap.h:
26614         * bindings/v8/ScriptProfiler.cpp:
26615         (WebCore::retainedDOMInfo):
26616         (WebCore::ScriptProfiler::initialize):
26617         * bindings/v8/V8DOMMap.cpp:
26618         (WebCore::visitAllDOMNodes):
26619         * bindings/v8/V8DOMWrapper.cpp:
26620         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
26621         * bindings/v8/V8DOMWrapper.h:
26622         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
26623         * bindings/v8/V8GCController.cpp:
26624         (WebCore::GCHandleVisitor::notifyFinished):
26625         (GCHandleVisitor):
26626         (WebCore::V8GCController::majorGCPrologue):
26627         * bindings/v8/WrapperTypeInfo.h:
26628         (WebCore):
26629
26630 2012-11-01  Stephen White  <senorblanco@chromium.org>
26631
26632         Unreviewed, rolling out r133143.
26633         http://trac.webkit.org/changeset/133143
26634         https://bugs.webkit.org/show_bug.cgi?id=96894
26635
26636         Causing content_browsertests failures
26637
26638         * CMakeLists.txt:
26639         * GNUmakefile.list.am:
26640         * Target.pri:
26641         * WebCore.gypi:
26642         * WebCore.vcproj/WebCore.vcproj:
26643         * WebCore.xcodeproj/project.pbxproj:
26644         * dom/DeviceOrientationClient.h:
26645         (DeviceOrientationClient):
26646         * dom/DeviceOrientationController.cpp:
26647         (WebCore::DeviceOrientationController::DeviceOrientationController):
26648         (WebCore):
26649         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26650         (WebCore::DeviceOrientationController::timerFired):
26651         (WebCore::DeviceOrientationController::addListener):
26652         (WebCore::DeviceOrientationController::removeListener):
26653         (WebCore::DeviceOrientationController::removeAllListeners):
26654         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
26655         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
26656         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26657         (WebCore::DeviceOrientationController::supplementName):
26658         * dom/DeviceOrientationController.h:
26659         (WebCore):
26660         (DeviceOrientationController):
26661         (WebCore::DeviceOrientationController::isActive):
26662         (WebCore::DeviceOrientationController::client):
26663         (WebCore::DeviceOrientationController::from):
26664         * dom/Document.cpp:
26665         (WebCore::Document::suspendActiveDOMObjects):
26666         (WebCore::Document::resumeActiveDOMObjects):
26667         * loader/EmptyClients.h:
26668         (WebCore::EmptyDeviceOrientationClient::startUpdating):
26669         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
26670         * page/DOMWindow.cpp:
26671         (WebCore::DOMWindow::addEventListener):
26672         (WebCore::DOMWindow::removeEventListener):
26673         (WebCore::DOMWindow::removeAllEventListeners):
26674         * page/DeviceClient.h: Removed.
26675         * page/DeviceController.cpp: Removed.
26676         * page/DeviceController.h: Removed.
26677
26678 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26679
26680         [EFL][AC]Free GL resources allocated by GraphicsContext3DEfl.
26681         https://bugs.webkit.org/show_bug.cgi?id=100923.
26682
26683         Reviewed by Kenneth Rohde Christiansen.
26684
26685         GraphicsContext3DEfl creates FBO's, textures and render buffer's, but doesn't free them.
26686         This patch makes sure that GraphicsContext3dEfl frees all the GL resources allocated by it.
26687
26688         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
26689         (WebCore::GraphicsContext3D::~GraphicsContext3D):
26690
26691 2012-11-01  Andreas Kling  <kling@webkit.org>
26692
26693         Fix StylePropertySet/ElementAttributeData custom allocation in debug builds.
26694         <http://webkit.org/b/100753>
26695
26696         Unreviewed debug bot crash fix after r133138.
26697
26698         There's additional padding after StylePropertySet and ElementAttributeData
26699         in 64-bit debug builds since there are additional members in RefCountedBase.
26700         Use 'sizeof(ImmutableFoo) - sizeof(void*)' as the base size of ImmutableFoo.
26701
26702         * css/StylePropertySet.cpp:
26703         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26704         * dom/ElementAttributeData.cpp:
26705         (WebCore::sizeForImmutableElementAttributeDataWithAttributeCount):
26706         (WebCore::ElementAttributeData::createImmutable):
26707         (WebCore::ElementAttributeData::reportMemoryUsage):
26708
26709 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26710
26711         FEImage::m_document is never cleared. Why not?
26712         https://bugs.webkit.org/show_bug.cgi?id=99243
26713
26714         Reviewed by Dirk Schulze.
26715
26716         Adding a comment to explain why the failure to clear m_document is not a problem.
26717
26718         No new tests because no code change at all.
26719
26720         * svg/graphics/filters/SVGFEImage.h:
26721         (FEImage): Add a comment on the lifetime of m_document.
26722
26723 2012-11-01  Eugene Klyuchnikov  <eustas.bug@gmail.com>
26724
26725         Web Inspector: Timeline: make "addRecord" unambiguous
26726         https://bugs.webkit.org/show_bug.cgi?id=100761
26727
26728         Reviewed by Pavel Feldman.
26729
26730         TimelinePresentationModel.addRecord accepts two parameters:
26731         record and parentRecord. parentRecord is always root record.
26732         Make this explicit by removing parentRecord parameter.
26733
26734         * inspector/front-end/TimelinePanel.js: Removed parameter.
26735         * inspector/front-end/TimelinePresentationModel.js:
26736         (WebInspector.TimelinePresentationModel.prototype.addRecord):
26737         Used root recoed instead of parent record.
26738
26739 2012-11-01  Charles Wei  <charles.wei@torchmobile.com.cn>
26740
26741         [BlackBerry] Browser prematurely sends wrong credentials
26742         https://bugs.webkit.org/show_bug.cgi?id=100585
26743
26744         Reviewed by George Staikos.
26745
26746         Don't send credentials to the server before been challenged.
26747
26748         * platform/network/blackberry/NetworkManager.cpp:
26749         (WebCore::NetworkManager::startJob):
26750
26751 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26752
26753         SVG as an image may recreate the renderer on zoom
26754         https://bugs.webkit.org/show_bug.cgi?id=99508
26755
26756         Reviewed by Abhishek Arya.
26757
26758         The SVGImage code, when SVG is used in <img> tags, caches the renderer
26759         at the start of the painting method and re-uses the pointer at the end
26760         of the method. However, when the page is zoomed the renderer may be
26761         detached mid-method, thus leaving a stray pointer. The fix is to
26762         re-fetch the pointer after the zooms.
26763
26764         Test: svg/as-image/img-zoom-svg-stylesheet.html
26765
26766         * svg/graphics/SVGImage.cpp:
26767         (WebCore::SVGImage::drawSVGToImageBuffer): Re-fetch the renderer after
26768         the zoom operations.
26769
26770 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26771
26772         Web Inspector: introduce Inspector.detached message containing termination cause.
26773         https://bugs.webkit.org/show_bug.cgi?id=100948
26774
26775         Reviewed by Yury Semikhatsky.
26776
26777         Now protocol clients have more information to process connection termination.
26778
26779         * English.lproj/localizedStrings.js:
26780         * inspector/Inspector.json:
26781         * inspector/front-end/InspectorFrontendHostStub.js:
26782         (WebInspector.RemoteDebuggingTerminatedScreen):
26783         * inspector/front-end/inspector.js:
26784         (WebInspector.loaded.WebInspector.socket.onopen):
26785         (WebInspector.loaded):
26786         (WebInspector.detached):
26787
26788 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26789
26790         Web Inspector: Restoring breakpoints for formatted UISourceCode should be triggered by BreakpointManager, not ScriptsPanel.
26791         https://bugs.webkit.org/show_bug.cgi?id=100593
26792
26793         Reviewed by Pavel Feldman.
26794
26795         BreakpointManager now listen for FormattedChanged event and restores formatted breakpoints on it.
26796         Removed now redundant callback from UISourceCode.setFormatted().
26797
26798         * inspector/front-end/BreakpointManager.js:
26799         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
26800         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
26801         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
26802         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
26803         * inspector/front-end/ScriptsPanel.js:
26804         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
26805         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
26806         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
26807         * inspector/front-end/UISourceCode.js:
26808         (WebInspector.UISourceCode.prototype._fireContentAvailable):
26809         (WebInspector.UISourceCode.prototype.setFormatted.formattedChanged):
26810         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
26811         (WebInspector.UISourceCode.prototype.setFormatted):
26812
26813 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
26814
26815         Web Inspector: Output code evaluated in the console the same as console.log
26816         https://bugs.webkit.org/show_bug.cgi?id=100695
26817
26818         Reviewed by Pavel Feldman.
26819
26820         Added an option to return object preview from evaluation commands in the protocol.
26821         The option is used to generate preview for console eval results.
26822
26823         * inspector/InjectedScript.cpp:
26824         (WebCore::InjectedScript::evaluate):
26825         (WebCore::InjectedScript::callFunctionOn):
26826         (WebCore::InjectedScript::evaluateOnCallFrame):
26827         * inspector/InjectedScript.h:
26828         (InjectedScript):
26829         * inspector/InjectedScriptSource.js:
26830         (.):
26831         * inspector/Inspector.json:
26832         * inspector/InspectorDebuggerAgent.cpp:
26833         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
26834         * inspector/InspectorDebuggerAgent.h:
26835         (InspectorDebuggerAgent):
26836         * inspector/InspectorRuntimeAgent.cpp:
26837         (WebCore::InspectorRuntimeAgent::evaluate):
26838         (WebCore::InspectorRuntimeAgent::callFunctionOn):
26839         * inspector/InspectorRuntimeAgent.h:
26840         (InspectorRuntimeAgent):
26841         * inspector/front-end/ConsoleMessage.js:
26842         (WebInspector.ConsoleMessageImpl.prototype.useArrayPreviewInFormatter):
26843         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
26844         * inspector/front-end/ConsoleView.js:
26845         (WebInspector.ConsoleCommandResult.prototype.useArrayPreviewInFormatter):
26846         * inspector/front-end/DebuggerModel.js:
26847         (WebInspector.DebuggerModel.prototype.evaluateOnSelectedCallFrame):
26848         (WebInspector.DebuggerModel.CallFrame.prototype.evaluate):
26849         * inspector/front-end/ExtensionServer.js:
26850         (WebInspector.ExtensionServer.prototype.evaluate):
26851         * inspector/front-end/JavaScriptSourceFrame.js:
26852         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
26853         * inspector/front-end/RemoteObject.js:
26854         (WebInspector.RemoteObject.prototype.):
26855         (WebInspector.RemoteObject.prototype.callFunction):
26856         (WebInspector.RemoteObject.prototype.callFunctionJSON):
26857         * inspector/front-end/RuntimeModel.js:
26858         (WebInspector.RuntimeModel.prototype.evaluate):
26859         (WebInspector.RuntimeModel.prototype.evaluated):
26860         * inspector/front-end/WatchExpressionsSidebarPane.js:
26861         (WebInspector.WatchExpressionsSection.prototype.update):
26862
26863 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26864
26865         Web Inspector: Remove obsolete code from JavaScriptSourceFrame
26866         https://bugs.webkit.org/show_bug.cgi?id=100594
26867
26868         Reviewed by Yury Semikhatsky.
26869
26870         Removed obsolete WorkingCopyCommitted listener.
26871         Removed redundant code that removes breakpoints from _innerSetContent.
26872
26873         * inspector/front-end/JavaScriptSourceFrame.js:
26874         (WebInspector.JavaScriptSourceFrame):
26875         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
26876
26877 2012-11-01  Andreas Kling  <kling@webkit.org>
26878
26879         Update average StylePropertySet size estimation.
26880         <http://webkit.org/b/100940>
26881
26882         Reviewed by Antti Koivisto.
26883
26884         Use sizeForImmutableStylePropertySetWithPropertyCount(2) as the average StylePropertySet
26885         size to keep it in sync with the changed object memory layout.
26886
26887         * css/StylePropertySet.cpp:
26888         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26889         (WebCore::StylePropertySet::createImmutable):
26890         (WebCore::StylePropertySet::averageSizeInBytes):
26891         (WebCore::StylePropertySet::reportMemoryUsage):
26892
26893
26894 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26895
26896         [EFL][Qt][AC] Remove an unnecessary connection to X-Server.
26897         https://bugs.webkit.org/show_bug.cgi?id=100628.
26898
26899         Reviewed by Kenneth Rohde Christiansen.
26900
26901         With Changset: https://bugs.webkit.org/show_bug.cgi?id=100523
26902         GraphicsSurfacePrivate should always use the Display returned by offscreenwindow.
26903         However, in GraphicsSurfacePrivate constructor we call XOpenDisplay before asking
26904         display from offscreenwindow.
26905         This patch removes unnecessary call to XOpenDisplay made in GraphicsSurfacePrivate.
26906
26907         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
26908         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
26909
26910 2012-11-01  Mihnea Ovidenie  <mihnea@adobe.com>
26911
26912         [CSSRegions]Former auto-height regions should not ignore their defined height
26913         https://bugs.webkit.org/show_bug.cgi?id=100749
26914
26915         Reviewed by Julien Chaffraix.
26916
26917         When a region with height auto has its height defined, we should also clear the override logical content height.
26918         Otherwise, the region will use the wrong height when laying out content from the associated render flow thread.
26919
26920         Test: fast/regions/autoheight-definedheight-changenotdetected.html
26921
26922         * rendering/RenderRegion.cpp:
26923         (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
26924
26925 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
26926
26927         Memory instrumentation: do not report memory occupied by RenderObjects referenced from CSSImageGeneratorValue
26928         https://bugs.webkit.org/show_bug.cgi?id=100934
26929
26930         Reviewed by Alexander Pavlov.
26931
26932         * css/CSSImageGeneratorValue.cpp:
26933         (WTF): Skip rederences to RenderObjects from CSSImageGeneratorValue when collecting
26934         memory usage data.
26935
26936 2012-11-01  Kihong Kwon  <kihong.kwon@samsung.com>
26937
26938         Add DeviceController base-class to remove duplication of DeviceXXXControler
26939         https://bugs.webkit.org/show_bug.cgi?id=96894
26940
26941         Reviewed by Hajime Morita.
26942
26943         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
26944         And soon-to-be-added DeviceMotionController and ProximityController.
26945
26946         Covered by existing tests.
26947
26948         * CMakeLists.txt:
26949         * GNUmakefile.list.am:
26950         * Target.pri:
26951         * WebCore.gypi:
26952         * WebCore.vcproj/WebCore.vcproj:
26953         * WebCore.xcodeproj/project.pbxproj:
26954         * dom/DeviceOrientationClient.h:
26955         * dom/DeviceOrientationController.cpp:
26956         Remove member functions to move to DeviceController.
26957         - addListener(), removeListener(), removeAllListeners(), isActive()
26958         (WebCore::DeviceOrientationController::DeviceOrientationController):
26959         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26960         (WebCore::DeviceOrientationController::client):
26961         (WebCore::DeviceOrientationController::hasLastData):
26962         (WebCore::DeviceOrientationController::getLastEvent):
26963         (WebCore::DeviceOrientationController::from):
26964         (WebCore):
26965         * dom/DeviceOrientationController.h:
26966         (WebCore):
26967         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26968         (DeviceOrientationController):
26969         * dom/Document.cpp:
26970         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
26971         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
26972         (WebCore::Document::suspendActiveDOMObjects):
26973         (WebCore::Document::resumeActiveDOMObjects):
26974         * loader/EmptyClients.h:
26975         (EmptyDeviceClient):
26976         (WebCore::EmptyDeviceClient::startUpdating):
26977         (WebCore::EmptyDeviceClient::stopUpdating):
26978         (WebCore):
26979         * page/DOMWindow.cpp:
26980         (WebCore::DOMWindow::addEventListener):
26981         (WebCore::DOMWindow::removeEventListener):
26982         (WebCore::DOMWindow::removeAllEventListeners):
26983         * page/DeviceClient.h: Added.
26984         (WebCore):
26985         (DeviceClient):
26986         (WebCore::DeviceClient::~DeviceClient):
26987         * page/DeviceController.cpp: Added.
26988         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
26989         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
26990         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
26991         (WebCore):
26992         (WebCore::DeviceController::DeviceController):
26993         (WebCore::DeviceController::addDeviceEventListener):
26994         (WebCore::DeviceController::removeDeviceEventListener):
26995         (WebCore::DeviceController::removeAllDeviceEventListeners):
26996         (WebCore::DeviceController::dispatchDeviceEvent):
26997         (WebCore::DeviceController::fireDeviceEvent):
26998         * page/DeviceController.h: Added.
26999         (WebCore):
27000         (DeviceController):
27001         (WebCore::DeviceController::~DeviceController):
27002         (WebCore::DeviceController::isActive):
27003         (WebCore::DeviceController::client):
27004         (WebCore::DeviceController::hasLastData):
27005         (WebCore::DeviceController::getLastEvent):
27006
27007 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
27008
27009         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
27010         https://bugs.webkit.org/show_bug.cgi?id=100497
27011
27012         Reviewed by Alexander Pavlov.
27013
27014         Added memory reporting method to chromium implementation of ResourceRequest.
27015
27016         * platform/network/ResourceRequestBase.cpp:
27017         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
27018         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
27019         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
27020         in the descendant but ResourceRequestBase doesn't have any virtual methods
27021         and shouldn't be used directly(ResourceRequest should be used instead).
27022         * platform/network/ResourceRequestBase.h:
27023         (ResourceRequestBase):
27024         * platform/network/chromium/ResourceRequest.cpp:
27025         (WebCore::ResourceRequest::reportMemoryUsage):
27026         (WebCore):
27027         * platform/network/chromium/ResourceRequest.h:
27028         (ResourceRequest):
27029
27030 2012-11-01  Andreas Kling  <kling@webkit.org>
27031
27032         Pack immutable StylePropertySets harder on 64-bit.
27033         <http://webkit.org/b/100753>
27034         <rdar://problem/12599155>
27035
27036         Reviewed by Antti Koivisto.
27037
27038         Move away from using CSSProperty as internal storage for immutable StylePropertySets.
27039         Instead use two arrays, one for property metadata (ID, shorthand ID, !important, ...)
27040         and one for the CSSValue pointers. This saves 4 bytes per property on 64-bit.
27041
27042         Old object layout:
27043
27044             Ref count                   (4 bytes)
27045             Metadata                    (4 bytes)
27046             CSSProperty [N]             (16 bytes each)
27047
27048         New object layout:
27049
27050             Ref count                   (4 bytes)
27051             Metadata                    (4 bytes)
27052             CSSValue* [N]               (8 bytes each)
27053             StylePropertyMetadata [N]   (4 bytes each)
27054
27055         901kB progress on Membuster3 (22% overall reduction in StylePropertySet memory.)
27056
27057         The CSSProperty class sticks around for now, it's still used in mutable StylePropertySets
27058         and by the StylePropertySet constructors.
27059
27060         * css/CSSProperty.cpp:
27061         * css/CSSProperty.h:
27062         (CSSProperty):
27063         (WebCore::CSSProperty::CSSProperty):
27064         (WebCore::CSSProperty::id):
27065         (WebCore::CSSProperty::shorthandID):
27066         (WebCore::CSSProperty::isImportant):
27067         (WebCore::CSSProperty::metadata):
27068
27069             Break the bitfield from CSSProperty out into a StylePropertyMetadata class (actually a union.)
27070
27071         * css/StylePropertySet.cpp:
27072         (WebCore::immutableStylePropertySetSize):
27073
27074             Updated size calculation for immutable StylePropertySets, 1/4 smaller!
27075
27076         (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
27077         (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
27078         (WebCore::MutableStylePropertySet::MutableStylePropertySet):
27079         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
27080         (WebCore::StylePropertySet::reportMemoryUsage):
27081         (WebCore::StylePropertySet::PropertyReference::cssName):
27082         (WebCore::StylePropertySet::PropertyReference::cssText):
27083         * css/StylePropertySet.h:
27084         (WebCore::StylePropertySet::PropertyReference::id):
27085         (WebCore::StylePropertySet::PropertyReference::shorthandID):
27086         (WebCore::StylePropertySet::PropertyReference::isImportant):
27087         (WebCore::StylePropertySet::PropertyReference::isInherited):
27088         (WebCore::StylePropertySet::PropertyReference::isImplicit):
27089         (PropertyReference):
27090         (WebCore::StylePropertySet::PropertyReference::value):
27091         (WebCore::StylePropertySet::PropertyReference::toCSSProperty):
27092         (WebCore::StylePropertySet::PropertyReference::propertyMetadata):
27093         (WebCore::StylePropertySet::PropertyReference::propertyValue):
27094         (StylePropertySet):
27095         (ImmutableStylePropertySet):
27096         (WebCore::StylePropertySet::immutableValueArray):
27097         (WebCore::StylePropertySet::immutableMetadataArray):
27098
27099             Refactored internal storage for StylePropertySet.
27100
27101 2012-11-01  Kent Tamura  <tkent@chromium.org>
27102
27103         Remove unused Locale::parseDateTime
27104         https://bugs.webkit.org/show_bug.cgi?id=100910
27105
27106         Reviewed by Kentaro Hara.
27107
27108         For date/time input types, InputType::convertFromVisibleValue is never
27109         called. convertFromVisibleValue is called when an inner editable node is
27110         updated. However input elements don't have such editable nodes if
27111         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled, and a user can't edit the
27112         inner editable node otherwise because we open date/time pickers when a
27113         user try to change the field value.
27114
27115         We had used convertFromVisibleValue for input[type=date] with an old UI.
27116
27117         No new tests because of no behavior changes.
27118
27119         * html/BaseDateAndTimeInputType.cpp:
27120         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
27121         Remove Locale::parseDateTiem and put ASSERT_NOT_REACHED.
27122
27123         * platform/text/PlatformLocale.h: Remove parseDateTime.
27124
27125         * platform/text/LocaleICU.h: Remove parseDateTime and a bogus comment.
27126         * platform/text/LocaleICU.cpp: Remove parseDateTime.
27127
27128         * platform/text/LocaleNone.cpp: Remove parseDateTime.
27129
27130         * platform/text/mac/LocaleMac.h: Remove parseDateTime.
27131         * platform/text/mac/LocaleMac.mm: Ditto.
27132         * platform/text/win/LocaleWin.h:
27133         - Remove parseDateTime, its helpers, and m_baseYear.
27134         - Remove appendNumber, appendTwoDigitsNumber, appendFourDigitsNumber,
27135           and formatDate. They don't exist.
27136         * platform/text/win/LocaleWin.cpp:
27137         Remove the above functions.
27138         (WebCore::LocaleWin::LocaleWin): Remove m_baseYear iniitalization.
27139
27140 2012-10-31  Nate Chapin  <japhet@chromium.org>
27141
27142         Remove some CachedResource::Status's in favor of looking at CachedResource::m_error
27143         https://bugs.webkit.org/show_bug.cgi?id=100901
27144
27145         Reviewed by Adam Barth.
27146
27147         No new tests, refactor only.
27148
27149         * inspector/InspectorPageAgent.cpp:
27150         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
27151         * loader/DocumentThreadableLoader.cpp:
27152         (WebCore::DocumentThreadableLoader::notifyFinished):
27153         * loader/FrameLoader.cpp:
27154         (WebCore::FrameLoader::loadInSameDocument):
27155         * loader/SubresourceLoader.cpp:
27156         (WebCore::SubresourceLoader::didFail):
27157         (WebCore::SubresourceLoader::willCancel):
27158         * loader/cache/CachedResource.cpp:
27159         (WebCore::CachedResource::stopLoading):
27160         * loader/cache/CachedResource.h:
27161         (WebCore::CachedResource::wasCanceled):
27162         (WebCore::CachedResource::errorOccurred):
27163         (WebCore::CachedResource::loadFailedOrCanceled):
27164
27165 2012-10-31  Stephen White  <senorblanco@chromium.org>
27166
27167         Unreviewed, rolling out r133122.
27168         http://trac.webkit.org/changeset/133122
27169         https://bugs.webkit.org/show_bug.cgi?id=99083
27170
27171         Broke Chromium Win, Android, ChromeOS builds
27172
27173         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27174         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27175         (WebCore::GraphicsLayerChromium::paint):
27176         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27177         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27178         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27179         (OpaqueRectTrackingContentLayerDelegate):
27180
27181 2012-10-31  Takashi Sakamoto  <tasak@google.com>
27182
27183         [Refactoring] Move initial style setting for ProgressValueElement from attach method to createShadowSubtree method in HTMLProgressElement.
27184         https://bugs.webkit.org/show_bug.cgi?id=83664
27185
27186         Reviewed by Hajime Morita.
27187
27188         The original code updates inline style during attach(). However,
27189         the attach would be invoked from Element::recalcStyle()'s reattach().
27190         If updating inline styles during the reattach(), style related flags,
27191         i.e. childNeedsStyleRecalc, and needsStyleRecalc are cleared after the
27192         reattach(). So the inline styles are not updated in next
27193         setNeedsStyleRecalc, because ProgressValueElement has already had
27194         InlineStyleChange (existingChanegType == InlineStyleChange) and
27195         markAncestorsWithChildNeedsStyleRecalc is not invoked.
27196
27197         Test: fast/dom/HTMLProgressElement/progress-bar-set-value.html
27198
27199         * html/HTMLProgressElement.cpp:
27200         (WebCore::HTMLProgressElement::attach):
27201         Copied updateFromElement from didElementStateChange. If removing the
27202         update, indeterminate-progress-001.html and progress-element.html
27203         under fast/dom/HTMLProgressElement will fail. We still need attach()
27204         and updateFromElement. To remove the attach(), need more refactoring,
27205         i.e. investigating where attach() is invoked from and modifying all
27206         related codes.
27207         (WebCore::HTMLProgressElement::createShadowSubtree):
27208         Initialize m_value by indeterminate-position. The value is default
27209         value of progress element.
27210
27211 2012-10-31  Hayato Ito  <hayato@chromium.org>
27212
27213         Make resolveReprojection() defined in ComposedShadowTreeWalker.cpp callable from outside.
27214         https://bugs.webkit.org/show_bug.cgi?id=100832
27215
27216         Reviewed by Dimitri Glazkov.
27217
27218         InsertionPoint.h now defines resolveReprojection() so that it can be called from outside.
27219
27220         No new tests as no new functionality.
27221
27222         * dom/ComposedShadowTreeWalker.cpp:
27223         * html/shadow/InsertionPoint.h:
27224         (WebCore::shadowOfParentForDistribution):
27225         (WebCore):
27226         (WebCore::resolveReprojection):
27227
27228 2012-10-31  Alok Priyadarshi  <alokp@chromium.org>
27229
27230         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
27231         https://bugs.webkit.org/show_bug.cgi?id=99083
27232
27233         Reviewed by James Robinson.
27234
27235         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
27236
27237         No new tests needed. This patch does not change anything functionally.
27238
27239         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27240         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27241         (WebCore::GraphicsLayerChromium::paint):
27242         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27243         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27244         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27245         (OpaqueRectTrackingContentLayerDelegate):
27246
27247 2012-10-31  Chris Evans  <cevans@google.com>
27248
27249         RenderArena has a memory leak and poor efficiency
27250         https://bugs.webkit.org/show_bug.cgi?id=100893
27251
27252         Reviewed by Eric Seidel.
27253
27254         1) Avoid memory leak that persists for the Document lifetime by
27255         increasing recycled size buckets up to 1024. It was previously 400,
27256         and sizeof(RenderNamedFlowThread) / sizeof(RenderSVGText) both blew this
27257         quota. An assert was added to prevent this happening again.
27258
27259         2) Fix the size of the recyled size bucket array on 64-bit. We only
27260         need 8 byte granularity on 64-bit, but we had 4.
27261
27262         3) Try and pass power-of-two sizes to the underlying malloc() call, so
27263         that we're space efficient. We now take Arena metadata into account.
27264
27265         4) Double the default RenderArena size allocation to 8192 bytes. Even
27266         for a render of a trivial text file, 4096 bytes is not enough to prevent
27267         extra calls into the underlying malloc() for more arena pool.
27268
27269         * rendering/RenderArena.cpp:
27270         (WebCore::RenderArena::RenderArena): Adjust arena size so that we pass on the page-sized multiple to the underlying malloc() implementation.
27271         (WebCore::RenderArena::allocate):
27272         (WebCore::RenderArena::free): Assert that the allocation size is handled by our recycling buckets.
27273         * rendering/RenderArena.h:
27274         (WebCore): Maintain free buckets up to 1024 bytes to avoid memory leak.
27275         (RenderArena): Double the default allocation size and handle 64-bit systems more efficiently.
27276
27277 2012-10-31  Adam Barth  <abarth@webkit.org>
27278
27279         [V8] Garbage collection should use opaque roots rather than implicit references
27280         https://bugs.webkit.org/show_bug.cgi?id=100707
27281
27282         Reviewed by Kentaro Hara.
27283
27284         This patch replaces visitDOMWrapper with opaqueRootForGC. The
27285         former used to inform V8 of implicit relationships between wrapper
27286         objects on a per-wrapper basis. That meant that we needed to know which
27287         DOMDataStore a given wrapper was in during garbage collection.
27288
27289         After this patch, we now use object groups rather than implicit
27290         references to inform V8 of these relationships. That has two benefits:
27291
27292         1) We no longer need to know which DOMDataStore a wrapper belongs
27293            because we don't need to find the exact source wrapper for the
27294            implicit connection.
27295
27296         2) We can now handle more complicated implicit relationships, for
27297            example when some of the intervening objects haven't had their
27298            JavaScript wrappers created yet.
27299
27300         This patch also unlocks to paths of future development:
27301         A) Fixing the remaining failures in fast/dom/gc-9.html
27302         B) Enumerating DOM wrappers entirely from V8 rather than from the
27303            DOMWrapperMaps (so that we can move more object towards using
27304            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
27305
27306         * bindings/scripts/CodeGeneratorV8.pm:
27307         (NeedsCustomOpaqueRootForGC):
27308         (GenerateOpaqueRootForGC):
27309         (GenerateHeader):
27310         (GenerateImplementation):
27311         * bindings/v8/V8GCController.cpp:
27312         (ImplicitConnection):
27313         (WebCore::ImplicitConnection::ImplicitConnection):
27314         (WebCore::ImplicitConnection::root):
27315         (WebCore::ImplicitConnection::wrapper):
27316         (WebCore):
27317         (WebCore::operator<):
27318         (WrapperGrouper):
27319         (WebCore::WrapperGrouper::WrapperGrouper):
27320         (WebCore::WrapperGrouper::addToGroup):
27321         (WebCore::WrapperGrouper::keepAlive):
27322         (WebCore::WrapperGrouper::apply):
27323         (WebCore::ObjectVisitor::ObjectVisitor):
27324         (WebCore::ObjectVisitor::visitDOMWrapper):
27325         (ObjectVisitor):
27326         (WebCore::V8GCController::opaqueRootForGC):
27327         (WebCore::NodeVisitor::NodeVisitor):
27328         (WebCore::NodeVisitor::visitNodeWrapper):
27329         (NodeVisitor):
27330         (WebCore::V8GCController::majorGCPrologue):
27331         * bindings/v8/V8GCController.h:
27332         (WebCore):
27333         (V8GCController):
27334         * bindings/v8/WrapperTypeInfo.h:
27335         (WebCore):
27336         (WebCore::WrapperTypeInfo::opaqueRootForGC):
27337         (WrapperTypeInfo):
27338         * bindings/v8/custom/V8NodeListCustom.cpp:
27339         (WebCore::V8NodeList::opaqueRootForGC):
27340         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27341         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
27342
27343 2012-10-31  Stephen White  <senorblanco@chromium.org>
27344
27345         Unreviewed, rolling out r133107.
27346         http://trac.webkit.org/changeset/133107
27347         https://bugs.webkit.org/show_bug.cgi?id=100425
27348
27349         Broke compile on Chromium Win.
27350
27351         * Modules/indexeddb/IDBCallbacks.h:
27352         (IDBCallbacks):
27353         * Modules/indexeddb/IDBDatabase.cpp:
27354         (WebCore::IDBDatabase::objectStoreNames):
27355         (WebCore::IDBDatabase::createObjectStore):
27356         (WebCore::IDBDatabase::deleteObjectStore):
27357         (WebCore::IDBDatabase::transaction):
27358         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27359         (WebCore::IDBDatabaseBackendImpl::metadata):
27360         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27361         (WebCore::IDBDatabaseBackendImpl::objectStore):
27362         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27363         (WebCore::IDBDatabaseBackendImpl::transaction):
27364         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27365         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27366         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27367         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27368         (IDBDatabaseBackendImpl):
27369         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27370         (IDBDatabaseBackendInterface):
27371         * Modules/indexeddb/IDBFactory.cpp:
27372         * Modules/indexeddb/IDBFactory.h:
27373         * Modules/indexeddb/IDBIndex.h:
27374         (WebCore::IDBIndex::openKeyCursor):
27375         * Modules/indexeddb/IDBIndexBackendInterface.h:
27376         * Modules/indexeddb/IDBKeyPath.cpp:
27377         * Modules/indexeddb/IDBMetadata.h:
27378         (WebCore):
27379         (IDBDatabaseMetadata):
27380         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27381         (IDBObjectStoreMetadata):
27382         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27383         (IDBIndexMetadata):
27384         * Modules/indexeddb/IDBObjectStore.cpp:
27385         (WebCore::IDBObjectStore::indexNames):
27386         (WebCore::IDBObjectStore::put):
27387         (WebCore::IDBObjectStore::createIndex):
27388         (WebCore::IDBObjectStore::index):
27389         (WebCore::IDBObjectStore::deleteIndex):
27390         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27391         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27392         (WebCore):
27393         (WebCore::makeIndexWriters):
27394         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27395         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27396         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27397         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27398         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27399         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27400         (WebCore::IDBObjectStoreBackendImpl::index):
27401         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27402         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27403         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27404         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27405         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27406         (IDBObjectStoreBackendImpl):
27407         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27408         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27409         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27410         * Modules/indexeddb/IDBRequest.cpp:
27411         (WebCore::IDBRequest::onSuccess):
27412         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27413         * Modules/indexeddb/IDBTransaction.cpp:
27414         (WebCore::IDBTransaction::create):
27415         (WebCore::IDBTransaction::IDBTransaction):
27416         (WebCore::IDBTransaction::objectStore):
27417         * Modules/indexeddb/IDBTransaction.h:
27418         (IDBTransaction):
27419         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27420         (WebCore::IDBTransactionBackendImpl::create):
27421         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27422         (WebCore::IDBTransactionBackendImpl::objectStore):
27423         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27424         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27425         (IDBTransactionBackendImpl):
27426         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27427         * Modules/indexeddb/IDBTransactionCoordinator.h:
27428
27429 2012-10-31  Alec Flett  <alecflett@chromium.org>
27430
27431         IndexedDB: add methods to support id-based backend APIs
27432         https://bugs.webkit.org/show_bug.cgi?id=100425
27433
27434         Reviewed by Tony Chang.
27435
27436         First half of refactor involves adding a number of methods that
27437         are int64_t-based rather than String-based. As a part of this, the
27438         IDB*Metadata structs and the backend objectStore/index maps all
27439         use int64_t as keys, rather than String.
27440
27441         In addition, there were a number of cleanups that came out of the
27442         refactor:
27443
27444         - The list of object stores active in a transaction is now
27445           maintained by the frontend IDBTransaction rather than the backend
27446           IDBTransactionBackendImpl. This also had a simplifying rippling
27447           effect through other call signatures.
27448
27449         - I was able to remove an apparently old FIXME from
27450           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
27451
27452         - IDBObjectStoreBackendImpl's IndexWriter class got a little
27453           simpler since the id is now easily available in the
27454           IDBIndexMetadata.
27455
27456         - A number of methods got simpler in their int64_t versions,
27457           specifically dropping a number of ExceptionCodes.
27458
27459         There is also some glue code
27460         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
27461         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
27462
27463         No new tests, no new functionality as this is just a refactor.
27464
27465         * Modules/indexeddb/IDBDatabase.cpp:
27466         (WebCore::IDBDatabase::objectStoreNames):
27467         (WebCore::IDBDatabase::createObjectStore):
27468         (WebCore::IDBDatabase::deleteObjectStore):
27469         (WebCore::IDBDatabase::transaction):
27470         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27471         (WebCore::IDBDatabaseBackendImpl::metadata):
27472         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27473         (WebCore::IDBDatabaseBackendImpl::objectStore):
27474         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
27475         (WebCore):
27476         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27477         (WebCore::IDBDatabaseBackendImpl::transaction):
27478         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27479         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27480         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27481         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27482         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27483         (IDBDatabaseBackendImpl):
27484         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27485         (IDBDatabaseBackendInterface):
27486         * Modules/indexeddb/IDBIndex.h:
27487         (WebCore::IDBIndex::id):
27488         (WebCore::IDBIndex::openKeyCursor):
27489         * Modules/indexeddb/IDBIndexBackendInterface.h:
27490         * Modules/indexeddb/IDBMetadata.h:
27491         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27492         (IDBIndexMetadata):
27493         (IDBObjectStoreMetadata):
27494         (WebCore::IDBObjectStoreMetadata::containsIndex):
27495         (IDBDatabaseMetadata):
27496         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27497         (WebCore::IDBDatabaseMetadata::containsObjectStore):
27498         * Modules/indexeddb/IDBObjectStore.cpp:
27499         (WebCore::IDBObjectStore::indexNames):
27500         (WebCore::IDBObjectStore::put):
27501         (WebCore::IDBObjectStore::createIndex):
27502         (WebCore::IDBObjectStore::index):
27503         (WebCore::IDBObjectStore::deleteIndex):
27504         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27505         (WebCore::IDBObjectStoreBackendImpl::put):
27506         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27507         (WebCore):
27508         (WebCore::makeIndexWriters):
27509         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27510         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27511         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27512         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27513         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27514         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27515         (WebCore::IDBObjectStoreBackendImpl::index):
27516         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
27517         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
27518         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27519         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27520         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27521         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27522         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27523         (IDBObjectStoreBackendImpl):
27524         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27525         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27526         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27527         * Modules/indexeddb/IDBRequest.cpp:
27528         (WebCore::IDBRequest::onSuccess):
27529         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27530         * Modules/indexeddb/IDBTransaction.cpp:
27531         (WebCore::IDBTransaction::create):
27532         (WebCore::IDBTransaction::IDBTransaction):
27533         (WebCore::IDBTransaction::objectStore):
27534         * Modules/indexeddb/IDBTransaction.h:
27535         (IDBTransaction):
27536         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27537         (WebCore::IDBTransactionBackendImpl::create):
27538         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27539         (WebCore::IDBTransactionBackendImpl::objectStore):
27540         (WebCore):
27541         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27542         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27543         (IDBTransactionBackendImpl):
27544         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27545
27546 2012-10-30  Mark Lam  <mark.lam@apple.com>
27547
27548         A JSC printf (support for %J+s and %b).
27549         https://bugs.webkit.org/show_bug.cgi?id=100566.
27550
27551         Reviewed by Michael Saboff.
27552
27553         Added forwarding header for VMInspector.h.
27554
27555         No new tests needed for this.
27556
27557         * ForwardingHeaders/interpreter/VMInspector.h: Added.
27558
27559 2012-10-31  Chris Rogers  <crogers@google.com>
27560
27561         Implement optional arguments in AudioBufferSourceNode start() method
27562         https://bugs.webkit.org/show_bug.cgi?id=100894
27563
27564         Reviewed by Kenneth Russell.
27565
27566         The start() method should be able to take 1, 2, or 3 arguments, optionally supporting
27567         offset and duration.  Currently, only 1 and 3 arguments are supported.
27568
27569         Test: webaudio/audiobuffersource-start.html
27570
27571         * Modules/webaudio/AudioBufferSourceNode.cpp:
27572         (WebCore::AudioBufferSourceNode::renderFromBuffer):
27573         (WebCore::AudioBufferSourceNode::startGrain):
27574         (WebCore):
27575         * Modules/webaudio/AudioBufferSourceNode.h:
27576         (AudioBufferSourceNode):
27577         * Modules/webaudio/AudioBufferSourceNode.idl:
27578
27579 2012-10-31  Mike West  <mkwst@chromium.org>
27580
27581         Implement the canonical "Content-Security-Policy" header.
27582         https://bugs.webkit.org/show_bug.cgi?id=96765
27583
27584         Reviewed by Adam Barth.
27585
27586         The CSP 1.0 specification defines the "Content-Security-Policy" header
27587         as the canonical mechanism of defining a resource's security policy. Up
27588         through this patch, we've implemented the functionality behind a prefix
27589         in order to ensure compatibility with the standard once it's released as
27590         a recommendation. Both the specification and WebKit's implementation are
27591         far enough along in that process that it makes sense to support the
27592         unprefixed header for sites that wish to opt-in to CSP 1.0.
27593
27594         As discussed on public-webappsec[1], we'll keep the experimental 1.1
27595         features behind the prefixed header ('X-WebKit-CSP') until that standard
27596         is far enough along to justify moving them out to the canonical header.
27597
27598         This patch defines the 'Content-Security-Policy' header for all ports,
27599         just as the 'X-WebKit-CSP' header is currently supported on all ports.
27600         Ports that have not opted-in to the CSP_NEXT flag will see exactly the
27601         same behavior with both headers. Ports that have opted-in will see much
27602         of CSP 1.1's current definition on the prefixed header, and CSP 1.0 on
27603         the canonical header.
27604
27605         The functionality in this change is covered by the changes made to
27606         existing tests. No expectations changed, only the headers that are sent.
27607
27608         * dom/Document.cpp:
27609         (WebCore::Document::processHttpEquiv):
27610             Add canonical header support to 'meta' element definitions.
27611         * loader/FrameLoader.cpp:
27612         (WebCore::FrameLoader::didBeginDocument):
27613             Add canonical header support to FrameLoader.
27614         * page/ContentSecurityPolicy.cpp:
27615         (WebCore::CSPDirectiveList::headerType):
27616             The ContentSecurityPolicy::HeaderType enum now has four values:
27617             prefixed/report-only, unprefixed/report-only, prefixed/enforce, and
27618             unprefixed/enforce. Instead of creating logic to output the proper
27619             type based on internal flags, CSPDirectiveList now saves the value
27620             provided at creation time, and returns it via this method.
27621         (CSPDirectiveList):
27622         (WebCore::CSPDirectiveList::CSPDirectiveList):
27623             The constructor now accepts a type, which is stored on the object.
27624             It also stores a new internal variable, 'm_experimental', which
27625             defines whether or not experimental features ought to be available.
27626             These features are still locked behind the CSP_NEXT flag, but that
27627             might not be the case forever.
27628         (WebCore::CSPDirectiveList::create):
27629             The static constructor wrapper now passes the type into the real
27630             constructor, which also now handles setting its internal variables.
27631         (WebCore::CSPDirectiveList::parse):
27632             'parse()' is given the header, so it makes sense to store it here as
27633             well, rather than in the create wrapper.
27634         (WebCore::CSPDirectiveList::addDirective):
27635             1.1 directives remain locked behind CSP_NEXT, but now also require
27636             that 'm_experimental' is set, signaling usage of the prefixed header
27637             and an implicit opt-in to 1.1.
27638         * page/ContentSecurityPolicy.h:
27639             Added two new types to the HeaderTypes enum: PrefixedReportOnly, and
27640             PrefixedEnforcePolicy. These map to 'X-WebKitCSP-Report-Only' and
27641             'X-WebKit-CSP', respectively.
27642
27643 2012-10-31  Roger Fong  <roger_fong@apple.com>
27644
27645         Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.
27646         https://bugs.webkit.org/show_bug.cgi?id=100317
27647
27648         Reviewed by Sam Weinig.
27649
27650         The existing code determines which screen the popup menu "belongs" to by determining which screen the owning application's hwnd belongs to,
27651         where ownership is determined by how much of the hwnd is on which screen.
27652         To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
27653         To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
27654         However, since the drop down button is something that WebKit renders there is no hwnd.
27655
27656         To remedy this issue, we can temporarily move the popup menu's hwnd to match the position and size of the button,
27657         determine the correct screen, and then eventually move it back to the correct final position after the rest of 
27658         the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
27659         between the temporary and final positionings.
27660
27661         There's not really a good way of testing popup menus except manually, they're separate hwnds created outside of the WebView.
27662
27663         * platform/win/PopupMenuWin.cpp:
27664         (WebCore::monitorFromHwnd):
27665         (WebCore):
27666         (WebCore::PopupMenuWin::show):
27667         (WebCore::PopupMenuWin::calculatePositionAndSize):
27668
27669 2012-10-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
27670
27671         Added viewport at-rule to the CSS parser and tokenizer
27672         https://bugs.webkit.org/show_bug.cgi?id=95961
27673
27674         Reviewed by Kenneth Rohde Christiansen.
27675
27676         Add tokens and grammar rules to parse @-webkit-viewport blocks. Also add
27677         the newly parsed rule to the rule list.
27678
27679         This parser now implements the following part of the CSS Device Adaptation
27680         specification: http://www.w3.org/TR/css-device-adapt/#syntax
27681
27682         Test: css3/device-adapt/viewport-at-rule-parsing.html
27683
27684         * CMakeLists.txt:
27685         * GNUmakefile.list.am:
27686         * Target.pri:
27687         * WebCore.gypi:
27688         * WebCore.vcproj/WebCore.vcproj:
27689         * WebCore.xcodeproj/project.pbxproj:
27690         * css/CSSGrammar.y.in:
27691         * css/CSSParser.cpp:
27692         (WebCore::CSSParser::CSSParser):
27693         (WebCore::CSSParser::detectAtToken):
27694         (WebCore):
27695         (WebCore::CSSParser::createViewportRule):
27696         * css/CSSParser.h:
27697         (CSSParser):
27698         (WebCore::CSSParser::markViewportRuleBodyStart):
27699         (WebCore::CSSParser::markViewportRuleBodyEnd):
27700         (WebCore::CSSParser::inViewport):
27701
27702             These methods are needed by the next patch validating the properties.
27703             Some viewport properties are common to other rules but have different
27704             semantics, and accepts different keywords. The validation needs to be
27705             done in a different code path.
27706
27707         * css/CSSPropertySourceData.h:
27708         * css/CSSRule.cpp:
27709         (WebCore):
27710         (WebCore::CSSRule::cssText):
27711         (WebCore::CSSRule::destroy):
27712         (WebCore::CSSRule::reattach):
27713         (WebCore::CSSRule::reportMemoryUsage):
27714         * css/CSSRule.h:
27715         (CSSRule):
27716         (WebCore::CSSRule::isViewportRule):
27717         * css/StyleRule.cpp:
27718         (WebCore::StyleRuleBase::reportMemoryUsage):
27719         (WebCore::StyleRuleBase::destroy):
27720         (WebCore::StyleRuleBase::copy):
27721         (WebCore::StyleRuleBase::createCSSOMWrapper):
27722         (WebCore):
27723         (WebCore::StyleRuleViewport::StyleRuleViewport):
27724         (WebCore::StyleRuleViewport::~StyleRuleViewport):
27725         (WebCore::StyleRuleViewport::mutableProperties):
27726         (WebCore::StyleRuleViewport::setProperties):
27727         (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
27728         * css/StyleRule.h:
27729         (StyleRuleBase):
27730         (WebCore::StyleRuleBase::isViewportRule):
27731         (WebCore):
27732         (StyleRuleViewport):
27733         (WebCore::StyleRuleViewport::create):
27734         (WebCore::StyleRuleViewport::properties):
27735         (WebCore::StyleRuleViewport::copy):
27736         * css/WebKitCSSViewportRule.cpp: Added.
27737         (WebCore):
27738         (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
27739         (WebCore::WebKitCSSViewportRule::~WebKitCSSViewportRule):
27740         (WebCore::WebKitCSSViewportRule::style):
27741         (WebCore::WebKitCSSViewportRule::cssText):
27742         (WebCore::WebKitCSSViewportRule::reattach):
27743         (WebCore::WebKitCSSViewportRule::reportDescendantMemoryUsage):
27744         * css/WebKitCSSViewportRule.h: Added.
27745         (WebCore):
27746
27747 2012-10-31  Max Vujovic  <mvujovic@adobe.com>
27748
27749         [CSS Shaders] Validate types of built-in uniforms
27750         https://bugs.webkit.org/show_bug.cgi?id=98974
27751
27752         Reviewed by Dean Jackson.
27753
27754         Reject shaders which define built-in uniforms with the wrong type. For example, we reject a
27755         shader with the GLSL code "uniform float u_textureSize;" because u_textureSize should be a
27756         vec2, not a float.
27757
27758         Relevant Spec Section:
27759         https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables
27760
27761         Test: css3/filters/custom/invalid-custom-filter-uniform-types.html
27762
27763         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
27764         (WebCore):
27765         (WebCore::builtInUniformNameToTypeMap):
27766         (WebCore::validateSymbols):
27767
27768 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
27769
27770         Unreviewed, rolling out r133044.
27771         http://trac.webkit.org/changeset/133044
27772         https://bugs.webkit.org/show_bug.cgi?id=100888
27773
27774         Hits an ASSERT in the isolatedWorlds tests (Requested by
27775         abarth on #webkit).
27776
27777         * bindings/scripts/CodeGeneratorV8.pm:
27778         (NeedsToVisitDOMWrapper):
27779         (GenerateVisitDOMWrapper):
27780         (GenerateHeader):
27781         (GenerateImplementation):
27782         * bindings/v8/V8GCController.cpp:
27783         (WebCore::ObjectVisitor::ObjectVisitor):
27784         (WebCore::ObjectVisitor::visitDOMWrapper):
27785         (ObjectVisitor):
27786         (WebCore::rootForGC):
27787         (ImplicitConnection):
27788         (WebCore::ImplicitConnection::ImplicitConnection):
27789         (WebCore::ImplicitConnection::root):
27790         (WebCore::ImplicitConnection::wrapper):
27791         (WebCore):
27792         (WebCore::operator<):
27793         (WebCore::NodeVisitor::NodeVisitor):
27794         (WebCore::NodeVisitor::visitNodeWrapper):
27795         (NodeVisitor):
27796         (WebCore::NodeVisitor::applyGrouping):
27797         (WebCore::V8GCController::majorGCPrologue):
27798         * bindings/v8/V8GCController.h:
27799         (V8GCController):
27800         * bindings/v8/WrapperTypeInfo.h:
27801         (WebCore):
27802         (WebCore::WrapperTypeInfo::visitDOMWrapper):
27803         (WrapperTypeInfo):
27804         * bindings/v8/custom/V8NodeListCustom.cpp:
27805         (WebCore::V8NodeList::visitDOMWrapper):
27806         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27807         (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
27808
27809 2012-10-31  Philip Rogers  <pdr@google.com>
27810
27811         Cache animationMode() in SVG animations.
27812         https://bugs.webkit.org/show_bug.cgi?id=99694
27813
27814         Reviewed by Eric Seidel.
27815
27816         This patch caches animationMode() which accounted for 25% of the CPU time of a simple
27817         animation benchmark! This is the 3rd patch for WK99694.
27818
27819         Background: SVGAnimationElement contains most of the shared animation logic for <animate>,
27820         <set>, <animateColor>, <animateTransform>, and <animateMotion>. <animateMotion> is the only
27821         animation element that can depend on other elements in the page. For example:
27822         <path id="mypath" d="M0 0 L 100 100Z"/> <!-- note, can be animated! -->
27823         <rect x="0" y="0" width="100" height="100" fill="green">
27824             <animateMotion dur="6s" repeatCount="indefinite">
27825                 <mpath xlink:href="#mypath"/>
27826             </animateMotion>
27827         </rect>
27828         See: http://www.w3.org/TR/SVG/single-page.html#animate-AnimateMotionElement
27829
27830         animationMode depends on several properties of an animation element: the set tag, whether
27831         the animation has a path, and the "values", "to", and "by" attributes. animationMode() was
27832         a hot function for two reasons:
27833         1) hasAttribute(SVGNames::valuesAttr) is expensive because we are unable to use
27834            fastHasAttribute. This is cacheable by simply calculating the animationMode when the
27835            "values" attribute changes.
27836         2) In the <animateMotion> case, determining if a path is empty or changed is expensive.
27837            AnimateMotion can have a path attribute, or it can have <mpath> children that reference
27838            a (possibly non-existent) <path> element elsewhere in the page. Before this patch we did
27839            this path lookup on every animation loop in case something changed. After this patch we
27840            only update AnimateMotion's path when it changes.
27841
27842         A previous patch, http://trac.webkit.org/changeset/132847, laid the groundwork for tracking
27843         <path> changes in <mpath>. This patch adds <mpath> to our resource tracking infrastructure
27844         to track when target <path>s change, instead of looking this up every time.
27845
27846         This refactoring is covered by existing tests.
27847         svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg fails after this patch
27848         because our element dependency tracking has a bug with duplicate ids; see WK99893.
27849
27850         * svg/SVGAnimateMotionElement.cpp:
27851         (WebCore::SVGAnimateMotionElement::parseAttribute):
27852         (WebCore::SVGAnimateMotionElement::updateAnimationPath):
27853
27854             animationPath() has been changed to updateAnimationPath() and should only be called
27855             when the animation path (path attribute, or mpath's referenced path) has changed.
27856
27857         (WebCore::SVGAnimateMotionElement::buildTransformForProgress):
27858         (WebCore::SVGAnimateMotionElement::updateAnimationMode):
27859
27860             If an animationPath exists, we use PathAnimation, otherwise we fall back to the normal
27861             updateAnimationMode() codepath.
27862
27863         (WebCore):
27864         * svg/SVGAnimateMotionElement.h:
27865         (SVGAnimateMotionElement):
27866         * svg/SVGAnimationElement.cpp:
27867         (WebCore::SVGAnimationElement::SVGAnimationElement):
27868         (WebCore::SVGAnimationElement::isSupportedAttribute):
27869         (WebCore::SVGAnimationElement::parseAttribute):
27870
27871             The from, by, and to attributes have been added so that we can track when they change
27872             and update the animation mode. Similarly for when the values attribute changes.
27873
27874         (WebCore::SVGAnimationElement::updateAnimationMode):
27875         * svg/SVGAnimationElement.h:
27876         (WebCore::SVGAnimationElement::animationMode):
27877         (SVGAnimationElement):
27878         (WebCore::SVGAnimationElement::setAnimationMode):
27879         (WebCore::SVGAnimationElement::calculateDistance):
27880         * svg/SVGMPathElement.cpp:
27881         (WebCore::SVGMPathElement::buildPendingResource):
27882
27883             It would be nice to move all the duplicated buildPendingResource() logic into a central
27884             place (SVGURIReference?) but for now it is copied. This function is nearly identical to
27885             SVGFEImageElement::buildPendingResource.
27886
27887         (WebCore):
27888         (WebCore::SVGMPathElement::clearResourceReferences):
27889         (WebCore::SVGMPathElement::insertedInto):
27890         (WebCore::SVGMPathElement::removedFrom):
27891         (WebCore::SVGMPathElement::svgAttributeChanged):
27892         (WebCore::SVGMPathElement::targetPathChanged):
27893         (WebCore::SVGMPathElement::notifyParentOfPathChange):
27894         * svg/SVGMPathElement.h:
27895         (SVGMPathElement):
27896         * svg/SVGPathElement.cpp:
27897
27898             When a <path>'s path changes, we need to notify any dependent <mpath> elements. This is
27899             typically handled with RenderSVGResource::markForLayoutAndParentResourceInvalidation
27900             but for the special-case of <mpath> we only need to track when the path's "d" attribute
27901             changes so invalidateMPathDependencies() has been added.
27902
27903         (WebCore::SVGPathElement::svgAttributeChanged):
27904         (WebCore::SVGPathElement::invalidateMPathDependencies):
27905         (WebCore):
27906         (WebCore::SVGPathElement::insertedInto):
27907         (WebCore::SVGPathElement::removedFrom):
27908         * svg/SVGPathElement.h:
27909         (SVGPathElement):
27910         * svg/SVGSetElement.cpp:
27911         (WebCore::SVGSetElement::SVGSetElement):
27912         (WebCore::SVGSetElement::updateAnimationMode):
27913         (WebCore):
27914         * svg/SVGSetElement.h:
27915         (SVGSetElement):
27916         * svg/animation/SVGSMILElement.cpp:
27917         (WebCore::SVGSMILElement::isSupportedAttribute):
27918
27919 2012-10-31  Beth Dakin  <bdakin@apple.com>
27920
27921         https://bugs.webkit.org/show_bug.cgi?id=100879
27922         ScrollingStateNode::cloneAndResetNode() should not be virtual
27923
27924         Reviewed by Simon Fraser.
27925
27926         cloneAndResetNode() is currently pure virtual and implemented only 
27927         in ScrollingStateScrollingNode. However, all of the work that it 
27928         does at this time is stuff that a generic ScrollingStateNode could 
27929         do. We should move this implementation to the base class so that it 
27930         does not need to be duplicated for future node types.
27931
27932         This patch also re-names cloneAndResetNode() to cloneAndReset()
27933         and correspondingly re-names cloneAndResetChildNodes() to 
27934         cloneAndResetChildren(). 
27935
27936         Finally the patch also changes the copy constructors of both of these 
27937         classes to take a const reference instead of a pointer.
27938
27939         * page/scrolling/ScrollingStateNode.cpp:
27940         (WebCore::ScrollingStateNode::ScrollingStateNode):
27941         (WebCore::ScrollingStateNode::cloneAndReset):
27942         (WebCore):
27943         (WebCore::ScrollingStateNode::cloneAndResetChildren):
27944         * page/scrolling/ScrollingStateNode.h:
27945         (ScrollingStateNode):
27946         * page/scrolling/ScrollingStateScrollingNode.cpp:
27947         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
27948         (WebCore):
27949         * page/scrolling/ScrollingStateScrollingNode.h:
27950         (ScrollingStateScrollingNode):
27951         * page/scrolling/ScrollingStateTree.cpp:
27952         (WebCore::ScrollingStateTree::commit):
27953
27954 2012-10-31  Tom Sepez  <tsepez@chromium.org>
27955         
27956         Malformed X-XSS-Protection headers not reported.
27957         https://bugs.webkit.org/show_bug.cgi?id=100538
27958
27959         Reviewed by Adam Barth.
27960
27961         Re-writes X-XSS-Protection header parser to be more particular, and to
27962         return better information on error.
27963
27964         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-1.html
27965                http/tests/security/xssAuditor/malformed-xss-protection-header-2.html
27966                http/tests/security/xssAuditor/malformed-xss-protection-header-4.html
27967                http/tests/security/xssAuditor/xss-protection-parsing-02.html
27968
27969         * html/parser/XSSAuditor.cpp:
27970         (WebCore::XSSAuditor::init):
27971         Detect error return code and log console message with details
27972         * platform/network/HTTPParsers.cpp:
27973         (WebCore):
27974         (WebCore::skipWhiteSpace):
27975         Use safe less-than comparsion in case called with pos already out of range.
27976         (WebCore::skipToken):
27977         Fix comparison to properly reject substrings at end of input.  Prevent advancing
27978         returned position when match fails, so that this may someday be used to match
27979         optional tokens.
27980         (WebCore::parseXSSProtectionHeader):
27981         Return detailled error status. Avoid needless string copy.
27982         * platform/network/HTTPParsers.h:
27983         Add new error returns for x-xss-protection header parser.
27984         
27985 2012-10-31  Simon Fraser  <simon.fraser@apple.com>
27986
27987         REGRESSION (tile cache layers): bits of tiled layers are missing with certain 3D transforms
27988         https://bugs.webkit.org/show_bug.cgi?id=100808
27989         <rdar://problem/12562541>
27990
27991         Reviewed by Dean Jackson.
27992
27993         When projecting rects down into transformed layers, the projection can fail with severe
27994         3D rotations if the computed w component in TransformationMatrix::projectPoint() is negative.
27995         In this case we already clamp, but the fact that we clamped doesn't make it out to
27996         GraphicsLayerCA::computeVisibleRect() which resulted in incorrect visible rects being
27997         computed.
27998         
27999         Fix by propagating the fact that clamping occurred out of the TransformState functions
28000         which can clamp. In computeVisibleRect(), simply consider the entire layer bounds
28001         to be visible if clamping occurred.
28002
28003         Tests: compositing/tiling/rotated-tiled-clamped.html
28004                compositing/tiling/rotated-tiled-preserve3d-clamped.html
28005
28006         * platform/graphics/ca/GraphicsLayerCA.cpp:
28007         (WebCore::GraphicsLayerCA::computeVisibleRect): If either the applyTransform()
28008         or the state.mappedQuad() clamped, use our bounds as the visible rect.
28009         * platform/graphics/transforms/TransformState.cpp:
28010         (WebCore::TransformState::applyTransform): Pass out clamping state.
28011         (WebCore::TransformState::flatten): Ditto.
28012         (WebCore::TransformState::mappedPoint): Ditto.
28013         (WebCore::TransformState::mappedQuad): Ditto.
28014         (WebCore::TransformState::flattenWithTransform): Ditto. No need to initialize
28015         wasClamped, since this function is internal.
28016         * platform/graphics/transforms/TransformState.h:
28017         (TransformState):
28018         * platform/graphics/transforms/TransformationMatrix.cpp:
28019         (WebCore::TransformationMatrix::projectQuad): If any point projection clamped,
28020         set the flag to say we clamped.
28021         * platform/graphics/transforms/TransformationMatrix.h:
28022         (TransformationMatrix):
28023
28024 2012-10-31  Tiancheng Jiang  <tijiang@rim.com>
28025
28026         Change bubble message style to BB10 UX spec.
28027         https://bugs.webkit.org/show_bug.cgi?id=100862
28028
28029         Reviewed by Rob Buis.
28030
28031         RIM PR 198108
28032         Internal Reviewed by Otto Cheung.
28033         No new tests.
28034
28035         * css/themeBlackBerry.css:
28036         (::-webkit-validation-bubble-message): Added.
28037         (::-webkit-validation-bubble-arrow): Added.
28038         (::-webkit-validation-bubble-heading): Added.
28039
28040 2012-10-31  Mike West  <mkwst@chromium.org>
28041
28042         Prefer document->addConsoleMessage to document->domWindow->console->addMessage.
28043         https://bugs.webkit.org/show_bug.cgi?id=100850
28044
28045         Reviewed by Adam Barth.
28046
28047         For historical reasons, a few places in WebCore talk to Console directly
28048         via 'document()->domWindow()->console()->addMessage(...)'. This is more
28049         safely wrapped by calling 'addConsoleMessage' on the Document itself.
28050
28051         No visible functionality should change; we'll simply avoid potential
28052         null dereferences in the future.
28053
28054         * html/HTMLFormElement.cpp:
28055         (WebCore::HTMLFormElement::validateInteractively):
28056         * html/canvas/WebGLRenderingContext.cpp:
28057         (WebCore):
28058         (WebCore::WebGLRenderingContext::printWarningToConsole):
28059         * loader/FrameLoader.cpp:
28060         (WebCore::FrameLoader::reportLocalLoadFailed):
28061         * loader/MixedContentChecker.cpp:
28062         (WebCore::MixedContentChecker::logWarning):
28063         * loader/appcache/ApplicationCacheGroup.cpp:
28064         (WebCore::ApplicationCacheGroup::abort):
28065         (WebCore::ApplicationCacheGroup::didReceiveResponse):
28066         (WebCore::ApplicationCacheGroup::didFinishLoading):
28067         (WebCore::ApplicationCacheGroup::didFail):
28068         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
28069         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
28070         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
28071         * loader/cache/CachedResourceLoader.cpp:
28072         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
28073
28074 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28075
28076         Web Inspector: frame chooser does not work on subsequent inspector open.
28077         https://bugs.webkit.org/show_bug.cgi?id=100771
28078
28079         Reviewed by Yury Semikhatsky.
28080
28081         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28082         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28083         - Remove remains of the front-end reused signal from InspectorAgent
28084         - Send execution contexts post clear window object instead of post commit load.
28085
28086         * inspector/InspectorAgent.cpp:
28087         (WebCore::InspectorAgent::InspectorAgent):
28088         (WebCore::InspectorAgent::clearFrontend):
28089         (WebCore::InspectorAgent::didCommitLoad):
28090         * inspector/InspectorAgent.h:
28091         (InspectorAgent):
28092         * inspector/InspectorInstrumentation.cpp:
28093         (WebCore):
28094         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28095         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28096         * inspector/InspectorInstrumentation.h:
28097         (InspectorInstrumentation):
28098         * inspector/InspectorPageAgent.cpp:
28099         (WebCore::InspectorPageAgent::restore):
28100         * inspector/InspectorRuntimeAgent.cpp:
28101         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28102         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28103         (WebCore::InspectorRuntimeAgent::run):
28104         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28105         * inspector/InspectorRuntimeAgent.h:
28106         (InspectorRuntimeAgent):
28107         * inspector/InstrumentingAgents.h:
28108         (WebCore):
28109         (WebCore::InstrumentingAgents::InstrumentingAgents):
28110         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28111         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28112         (InstrumentingAgents):
28113         * inspector/PageRuntimeAgent.cpp:
28114         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28115         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28116         (WebCore::PageRuntimeAgent::setFrontend):
28117         (WebCore::PageRuntimeAgent::clearFrontend):
28118         (WebCore::PageRuntimeAgent::enable):
28119         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28120         * inspector/PageRuntimeAgent.h:
28121         (PageRuntimeAgent):
28122         * inspector/WorkerRuntimeAgent.cpp:
28123         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28124         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28125         (WebCore::WorkerRuntimeAgent::run):
28126         (WebCore):
28127         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28128         * inspector/WorkerRuntimeAgent.h:
28129         (WorkerRuntimeAgent):
28130
28131 2012-10-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>
28132
28133         [Qt][EFL][AC][WK2]TextureMapperLayer backing store contents are drawn upside down on screen.
28134         https://bugs.webkit.org/show_bug.cgi?id=100845.
28135
28136         Reviewed by Noam Rosenthal.
28137
28138         WebGL displays the Canvas with (0,0) being the bottom left corner.
28139         In GraphicsSurface::platformPaintToTextureMapper we don't set ShouldFlipTexture
28140         flag before painting to TextureMapper.
28141         It results in backing store contents being drawn upside down on screen.
28142         This patch enables ShouldFlipTexture flag when TextureMapperLayer renders 
28143         it's backing store contents into a TextureMapper.
28144
28145         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
28146         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
28147
28148 2012-10-31  Noam Rosenthal  <noam.rosenthal@nokia.com>
28149
28150         [Texmap] Enable filter animations in GraphicsLayerAnimation
28151         https://bugs.webkit.org/show_bug.cgi?id=100318
28152
28153         Reviewed by Kenneth Rohde Christiansen.
28154
28155         Use the same method of animating filters in WebCore to animate filters for TextureMapper.
28156         Added the appropriate methods to GraphicsLayerAnimation and TextureMapperLayer.
28157
28158         Tested by LayoutTests/css3/filters/filter-animation-hw.html and other tests.
28159
28160         * platform/graphics/GraphicsLayerAnimation.cpp:
28161         (WebCore):
28162         (WebCore::blendFunc):
28163         (WebCore::applyFilterAnimation):
28164         (WebCore::GraphicsLayerAnimation::applyInternal):
28165         * platform/graphics/GraphicsLayerAnimation.h:
28166         (Client):
28167         * platform/graphics/texmap/TextureMapperLayer.cpp:
28168         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
28169         (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
28170         (WebCore::TextureMapperLayer::paintRecursive):
28171         (WebCore::TextureMapperLayer::syncAnimations):
28172         * platform/graphics/texmap/TextureMapperLayer.h:
28173         (TextureMapperLayer):
28174         (WebCore::TextureMapperLayer::setFilters):
28175         (WebCore::TextureMapperLayer::setAnimatedFilters):
28176
28177 2012-10-31  Adam Barth  <abarth@webkit.org>
28178
28179         [V8] Garbage collection should use opaque roots rather than implicit references
28180         https://bugs.webkit.org/show_bug.cgi?id=100707
28181
28182         Reviewed by Kentaro Hara.
28183
28184         This patch replaces visitDOMWrapper with opaqueRootForGC. The
28185         former used to inform V8 of implicit relationships between wrapper
28186         objects on a per-wrapper basis. That meant that we needed to know which
28187         DOMDataStore a given wrapper was in during garbage collection.
28188
28189         After this patch, we now use object groups rather than implicit
28190         references to inform V8 of these relationships. That has two benefits:
28191
28192         1) We no longer need to know which DOMDataStore a wrapper belongs
28193            because we don't need to find the exact source wrapper for the
28194            implicit connection.
28195
28196         2) We can now handle more complicated implicit relationships, for
28197            example when some of the intervening objects haven't had their
28198            JavaScript wrappers created yet.
28199
28200         This patch also unlocks to paths of future development:
28201         A) Fixing the remaining failures in fast/dom/gc-9.html
28202         B) Enumerating DOM wrappers entirely from V8 rather than from the
28203            DOMWrapperMaps (so that we can move more object towards using
28204            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
28205
28206         * bindings/scripts/CodeGeneratorV8.pm:
28207         (NeedsCustomOpaqueRootForGC):
28208         (GenerateOpaqueRootForGC):
28209         (GenerateHeader):
28210         (GenerateImplementation):
28211         * bindings/v8/V8GCController.cpp:
28212         (ImplicitConnection):
28213         (WebCore::ImplicitConnection::ImplicitConnection):
28214         (WebCore::ImplicitConnection::root):
28215         (WebCore::ImplicitConnection::wrapper):
28216         (WebCore):
28217         (WebCore::operator<):
28218         (WrapperGrouper):
28219         (WebCore::WrapperGrouper::WrapperGrouper):
28220         (WebCore::WrapperGrouper::addToGroup):
28221         (WebCore::WrapperGrouper::keepAlive):
28222         (WebCore::WrapperGrouper::apply):
28223         (WebCore::ObjectVisitor::ObjectVisitor):
28224         (WebCore::ObjectVisitor::visitDOMWrapper):
28225         (ObjectVisitor):
28226         (WebCore::V8GCController::opaqueRootForGC):
28227         (WebCore::NodeVisitor::NodeVisitor):
28228         (WebCore::NodeVisitor::visitNodeWrapper):
28229         (NodeVisitor):
28230         (WebCore::V8GCController::majorGCPrologue):
28231         * bindings/v8/V8GCController.h:
28232         (WebCore):
28233         (V8GCController):
28234         * bindings/v8/WrapperTypeInfo.h:
28235         (WebCore):
28236         (WebCore::WrapperTypeInfo::opaqueRootForGC):
28237         (WrapperTypeInfo):
28238         * bindings/v8/custom/V8NodeListCustom.cpp:
28239         (WebCore::V8NodeList::opaqueRootForGC):
28240         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
28241         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
28242
28243 2012-10-31  Alexei Filippov  <alph@chromium.org>
28244
28245         Web Inspector: Add total node to native memory snapshot tree
28246         https://bugs.webkit.org/show_bug.cgi?id=100843
28247
28248         Reviewed by Yury Semikhatsky.
28249
28250         * inspector/front-end/NativeMemorySnapshotView.js:
28251         (WebInspector.NativeSnapshotDataGrid):
28252         (WebInspector.NativeSnapshotNode):
28253         (WebInspector.MemoryBlockViewProperties._initialize):
28254
28255 2012-10-31  Arpita Bahuguna  <arpitabahuguna@gmail.com>
28256
28257         Table with percentage column widths doesn't scale to fill the entire width of a table containing it
28258         https://bugs.webkit.org/show_bug.cgi?id=11645
28259
28260         Reviewed by Julien Chaffraix.
28261
28262         When the inner (or nested) table has auto width and column(s) with
28263         percent width, we should scale our column(s) to the width of the
28264         containing table (unless it has auto width).
28265
28266         Test: fast/table/scale-nested-percent-width-cols.html
28267
28268         * rendering/AutoTableLayout.cpp:
28269         (WebCore::shouldScaleColumns):
28270         If the containing table width was of percent type, we were disallowing
28271         our inner or nested table's column from scaling to the size of the parent
28272         table. We should prohibit the scaling of the nested table columns only
28273         if the parent table has auto width.
28274
28275 2012-10-31  Ian Vollick  <vollick@chromium.org>
28276
28277         Add support for text-based repaint testing
28278         https://bugs.webkit.org/show_bug.cgi?id=100584
28279
28280         Reviewed by Simon Fraser.
28281
28282         Allows tracked repaint rects to be dumped as text.
28283
28284         The following layout tests have been converted:
28285           fast/repaint/layer-full-repaint.html
28286           fast/repaint/overflow-flipped-writing-mode-table.html
28287
28288         * WebCore.exp.in:
28289           Exports for:
28290             FrameView::setTracksRepaints(bool)
28291             Frame::trackedRepaintRectsAsText() const
28292         * page/Frame.cpp:
28293         (WebCore::Frame::trackedRepaintRectsAsText):
28294           Returns a string containing information on all tracked repaint rects.
28295         * page/FrameView.cpp:
28296         (WebCore::FrameView::setTracksRepaints):
28297           Rather than calling m_trackedRepaintRects.clear() directly, I've
28298           called resetTrackedRepaints(). This will allow us to do more
28299           sophisticated resetting when we start tracking repaint rects for
28300           composited layers.
28301         (WebCore::FrameView::trackedRepaintRectsAsText):
28302           Provides the string returned by Frame::trackedRepaintRectsAsText.
28303         * testing/Internals.cpp:
28304         (WebCore::Internals::repaintRectsAsText):
28305           Returns Frame::trackedRepaintRectsAsText.
28306         (WebCore):
28307         (WebCore::Internals::startTrackingRepaints):
28308           Calls FrameView::setTracksRepaints(true)
28309         (WebCore::Internals::stopTrackingRepaints):
28310           Calls FrameView::setTracksRepaints(false)
28311         * testing/Internals.h:
28312         * testing/Internals.idl:
28313           Declarations for:
28314             repaintRectsAsText
28315             startTrackingRepaints
28316             stopTrackingRepaints
28317
28318 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28319
28320         Web Inspector: page crash when pausing in dedicated worker
28321         https://bugs.webkit.org/show_bug.cgi?id=100837
28322
28323         Reviewed by Pavel Feldman.
28324
28325         Pass debugger agent to InjectedScriptHost::init in case of workers.
28326
28327         Test: inspector-protocol/debugger-pause-dedicated-worker.html
28328
28329         * inspector/WorkerInspectorController.cpp:
28330         (WebCore::WorkerInspectorController::WorkerInspectorController):
28331
28332 2012-10-31  Zoltan Nyul  <zoltan.nyul@intel.com>
28333
28334         perspective-origin should ignore values with more then two lengths and use the default values
28335         https://bugs.webkit.org/show_bug.cgi?id=100835
28336
28337         Reviewed by Kenneth Rohde Christiansen.
28338
28339         Perspective-origin should ignore values with more then two lengths
28340         (http://www.w3.org/TR/css3-transforms/#perspective-origin) and use
28341         the default values instead of parsing it as an unlimited-length list,
28342         of which all but the first two values are ignored. This makes perspective-origin 
28343         behave similar to transform-origin which uses default value in this case,
28344         as well as firefox does the same.
28345
28346         Test: transforms/2d/computed-style-origin.html
28347
28348         * css/CSSParser.cpp:
28349         (WebCore::CSSParser::parsePerspectiveOrigin):
28350
28351 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28352
28353         Unreviewed, rolling out r133016.
28354         http://trac.webkit.org/changeset/133016
28355         https://bugs.webkit.org/show_bug.cgi?id=100856
28356
28357         broke compile-webkit on several bots (Requested by podivilov
28358         on #webkit).
28359
28360         * CMakeLists.txt:
28361         * GNUmakefile.list.am:
28362         * Target.pri:
28363         * WebCore.gypi:
28364         * WebCore.vcproj/WebCore.vcproj:
28365         * WebCore.xcodeproj/project.pbxproj:
28366         * dom/DeviceOrientationClient.h:
28367         (DeviceOrientationClient):
28368         * dom/DeviceOrientationController.cpp:
28369         (WebCore::DeviceOrientationController::DeviceOrientationController):
28370         (WebCore):
28371         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28372         (WebCore::DeviceOrientationController::timerFired):
28373         (WebCore::DeviceOrientationController::addListener):
28374         (WebCore::DeviceOrientationController::removeListener):
28375         (WebCore::DeviceOrientationController::removeAllListeners):
28376         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
28377         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
28378         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28379         (WebCore::DeviceOrientationController::supplementName):
28380         * dom/DeviceOrientationController.h:
28381         (WebCore):
28382         (DeviceOrientationController):
28383         (WebCore::DeviceOrientationController::isActive):
28384         (WebCore::DeviceOrientationController::client):
28385         (WebCore::DeviceOrientationController::from):
28386         * dom/Document.cpp:
28387         (WebCore::Document::suspendActiveDOMObjects):
28388         (WebCore::Document::resumeActiveDOMObjects):
28389         * loader/EmptyClients.h:
28390         (WebCore::EmptyDeviceOrientationClient::startUpdating):
28391         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
28392         * page/DOMWindow.cpp:
28393         (WebCore::DOMWindow::addEventListener):
28394         (WebCore::DOMWindow::removeEventListener):
28395         (WebCore::DOMWindow::removeAllEventListeners):
28396         * page/DeviceClient.h: Removed.
28397         * page/DeviceController.cpp: Removed.
28398         * page/DeviceController.h: Removed.
28399
28400 2012-10-31  Antti Koivisto  <antti@apple.com>
28401
28402         Remove stray calls to mutableAttributeData()
28403         https://bugs.webkit.org/show_bug.cgi?id=100849
28404
28405         Reviewed by Andreas Kling.
28406
28407         Changing the cached class attribute value does not require mutable attribute data.
28408
28409         * dom/Element.cpp:
28410         (WebCore::Element::classAttributeChanged):
28411         * dom/ElementAttributeData.h:
28412         (WebCore::ElementAttributeData::clearClass):
28413         
28414             Make const like setClass().
28415
28416 2012-10-31  Mike West  <mkwst@chromium.org>
28417
28418         X-Frame-Options console message should be associated with a request.
28419         https://bugs.webkit.org/show_bug.cgi?id=100735
28420
28421         Reviewed by Pavel Feldman.
28422
28423         In 99941, we added the possibility to tie console messages to requests,
28424         which enables automatic generation of stack traces, line numbers, etc.
28425         making the error simpler to diagnose for web developers. This patch
28426         uses the piping laid in that patch to improve the console message
28427         generated when a document is blocked by X-Frame-Options.
28428
28429         No new tests; the functionality is covered by changes to existing tests.
28430
28431         * dom/Document.cpp:
28432         (WebCore::Document::processHttpEquiv):
28433             Grab the request identifier from the currently active DocumentLoader
28434             and pass it into the console message.
28435         * loader/MainResourceLoader.cpp:
28436         (WebCore::MainResourceLoader::didReceiveResponse):
28437             Grab the request identifier from the MainResourceLoader, and pass it
28438             into the console message.
28439
28440 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28441
28442         Unreviewed, rolling out r133015.
28443         http://trac.webkit.org/changeset/133015
28444         https://bugs.webkit.org/show_bug.cgi?id=100847
28445
28446         broke Apple Win Debug compilation (Requested by podivilov on
28447         #webkit).
28448
28449         * inspector/InspectorAgent.cpp:
28450         (WebCore::InspectorAgent::InspectorAgent):
28451         (WebCore::InspectorAgent::clearFrontend):
28452         (WebCore::InspectorAgent::didCommitLoad):
28453         * inspector/InspectorAgent.h:
28454         (WebCore::InspectorAgent::didCommitLoadFired):
28455         (InspectorAgent):
28456         * inspector/InspectorInstrumentation.cpp:
28457         (WebCore):
28458         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28459         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28460         (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
28461         * inspector/InspectorInstrumentation.h:
28462         (InspectorInstrumentation):
28463         * inspector/InspectorPageAgent.cpp:
28464         (WebCore::InspectorPageAgent::restore):
28465         * inspector/InspectorRuntimeAgent.cpp:
28466         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28467         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28468         (WebCore::InspectorRuntimeAgent::run):
28469         (WebCore):
28470         (WebCore::InspectorRuntimeAgent::pauseWorkerContext):
28471         * inspector/InspectorRuntimeAgent.h:
28472         (InspectorRuntimeAgent):
28473         * inspector/InstrumentingAgents.h:
28474         (WebCore):
28475         (WebCore::InstrumentingAgents::InstrumentingAgents):
28476         (WebCore::InstrumentingAgents::inspectorRuntimeAgent):
28477         (WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
28478         (InstrumentingAgents):
28479         * inspector/PageRuntimeAgent.cpp:
28480         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28481         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28482         (WebCore::PageRuntimeAgent::setFrontend):
28483         (WebCore::PageRuntimeAgent::clearFrontend):
28484         (WebCore::PageRuntimeAgent::enable):
28485         (WebCore::PageRuntimeAgent::didClearWindowObject):
28486         * inspector/PageRuntimeAgent.h:
28487         (PageRuntimeAgent):
28488         * inspector/WorkerRuntimeAgent.cpp:
28489         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28490         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28491         * inspector/WorkerRuntimeAgent.h:
28492         (WorkerRuntimeAgent):
28493
28494 2012-10-31  Kihong Kwon  <kihong.kwon@samsung.com>
28495
28496         Add DeviceController base-class to remove duplication of DeviceXXXControler
28497         https://bugs.webkit.org/show_bug.cgi?id=96894
28498
28499         Reviewed by Hajime Morita.
28500
28501         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
28502         And soon-to-be-added DeviceMotionController and ProximityController.
28503
28504         Covered by existing tests.
28505
28506         * CMakeLists.txt:
28507         * GNUmakefile.list.am:
28508         * Target.pri:
28509         * WebCore.gypi:
28510         * WebCore.vcproj/WebCore.vcproj:
28511         * WebCore.xcodeproj/project.pbxproj:
28512         * dom/DeviceOrientationClient.h:
28513         * dom/DeviceOrientationController.cpp:
28514         Remove member functions to move to DeviceController.
28515         - addListener(), removeListener(), removeAllListeners(), isActive()
28516         (WebCore::DeviceOrientationController::DeviceOrientationController):
28517         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28518         (WebCore::DeviceOrientationController::client):
28519         (WebCore::DeviceOrientationController::hasLastData):
28520         (WebCore::DeviceOrientationController::getLastEvent):
28521         (WebCore::DeviceOrientationController::from):
28522         (WebCore):
28523         * dom/DeviceOrientationController.h:
28524         (WebCore):
28525         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28526         (DeviceOrientationController):
28527         * dom/Document.cpp:
28528         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
28529         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
28530         (WebCore::Document::suspendActiveDOMObjects):
28531         (WebCore::Document::resumeActiveDOMObjects):
28532         * loader/EmptyClients.h:
28533         (EmptyDeviceClient):
28534         (WebCore::EmptyDeviceClient::startUpdating):
28535         (WebCore::EmptyDeviceClient::stopUpdating):
28536         (WebCore):
28537         * page/DOMWindow.cpp:
28538         (WebCore::DOMWindow::addEventListener):
28539         (WebCore::DOMWindow::removeEventListener):
28540         (WebCore::DOMWindow::removeAllEventListeners):
28541         * page/DeviceClient.h: Added.
28542         (WebCore):
28543         (DeviceClient):
28544         (WebCore::DeviceClient::~DeviceClient):
28545         * page/DeviceController.cpp: Added.
28546         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
28547         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
28548         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
28549         (WebCore):
28550         (WebCore::DeviceController::DeviceController):
28551         (WebCore::DeviceController::addDeviceEventListener):
28552         (WebCore::DeviceController::removeDeviceEventListener):
28553         (WebCore::DeviceController::removeAllDeviceEventListeners):
28554         (WebCore::DeviceController::dispatchDeviceEvent):
28555         (WebCore::DeviceController::fireDeviceEvent):
28556         * page/DeviceController.h: Added.
28557         (WebCore):
28558         (DeviceController):
28559         (WebCore::DeviceController::~DeviceController):
28560         (WebCore::DeviceController::isActive):
28561         (WebCore::DeviceController::client):
28562         (WebCore::DeviceController::hasLastData):
28563         (WebCore::DeviceController::getLastEvent):
28564
28565 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28566
28567         Web Inspector: frame chooser does not work on subsequent inspector open.
28568         https://bugs.webkit.org/show_bug.cgi?id=100771
28569
28570         Reviewed by Yury Semikhatsky.
28571
28572         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28573         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28574         - Remove remains of the front-end reused signal from InspectorAgent
28575         - Send execution contexts post clear window object instead of post commit load.
28576
28577         * inspector/InspectorAgent.cpp:
28578         (WebCore::InspectorAgent::InspectorAgent):
28579         (WebCore::InspectorAgent::clearFrontend):
28580         (WebCore::InspectorAgent::didCommitLoad):
28581         * inspector/InspectorAgent.h:
28582         (InspectorAgent):
28583         * inspector/InspectorInstrumentation.cpp:
28584         (WebCore):
28585         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28586         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28587         * inspector/InspectorInstrumentation.h:
28588         (InspectorInstrumentation):
28589         * inspector/InspectorPageAgent.cpp:
28590         (WebCore::InspectorPageAgent::restore):
28591         * inspector/InspectorRuntimeAgent.cpp:
28592         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28593         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28594         (WebCore::InspectorRuntimeAgent::run):
28595         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28596         * inspector/InspectorRuntimeAgent.h:
28597         (InspectorRuntimeAgent):
28598         * inspector/InstrumentingAgents.h:
28599         (WebCore):
28600         (WebCore::InstrumentingAgents::InstrumentingAgents):
28601         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28602         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28603         (InstrumentingAgents):
28604         * inspector/PageRuntimeAgent.cpp:
28605         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28606         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28607         (WebCore::PageRuntimeAgent::setFrontend):
28608         (WebCore::PageRuntimeAgent::clearFrontend):
28609         (WebCore::PageRuntimeAgent::enable):
28610         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28611         * inspector/PageRuntimeAgent.h:
28612         (PageRuntimeAgent):
28613         * inspector/WorkerRuntimeAgent.cpp:
28614         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28615         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28616         (WebCore::WorkerRuntimeAgent::run):
28617         (WebCore):
28618         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28619         * inspector/WorkerRuntimeAgent.h:
28620         (WorkerRuntimeAgent):
28621
28622 2012-10-31  Keishi Hattori  <keishi@webkit.org>
28623
28624         Calendar picker can flicker when opened from the suggestion picker
28625         https://bugs.webkit.org/show_bug.cgi?id=100816
28626
28627         Reviewed by Kent Tamura.
28628
28629         Calendar picker was opening before the hiding completed.
28630
28631         No new tests. Added test to date-suggestion-picker-key-operations.html.
28632
28633         * Resources/pagepopups/pickerCommon.js: Added didHide event.
28634         * Resources/pagepopups/suggestionPicker.js:
28635         (SuggestionPicker.prototype.selectEntry): Use didHide event so we don't open the calendar picker prematurely.
28636         (SuggestionPicker._handleWindowDidHide): When the window finished hiding, open the calendar picker.
28637
28638 2012-10-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28639
28640         Reset binding test result after r132973
28641         https://bugs.webkit.org/show_bug.cgi?id=99178
28642
28643         Unreviewed gardening.
28644
28645         * bindings/scripts/test/JS/JSFloat64Array.cpp:
28646         (WebCore::getJSFloat64ArrayConstructorTable):
28647         (WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
28648         (WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):
28649
28650 2012-10-31  Mike West  <mkwst@chromium.org>
28651
28652         Script run from an isolated world should bypass a page's CSP.
28653         https://bugs.webkit.org/show_bug.cgi?id=97398
28654
28655         Reviewed by Adam Barth.
28656
28657         A page's Content Security Policy currently applies to all resources
28658         loaded, regardless of their source. That generally makes sense, but
28659         proves problematic when considering script run from an isolated
28660         world (Chrome extensions, for instance). These scripts should be allowed
28661         to inject resources into a page's DOM without eiher being restricted by
28662         the page's active CSP, or generating violation reports that spam the
28663         page owner.
28664
28665         Ideally, the isolated world could define its own Content Security Policy
28666         which should be applied to resources it loads. For the moment, this
28667         patch accepts a String that we can parse later on, but only uses it in
28668         a binary way. If a non-empty policy String is provided, we bypass the
28669         main world's CSP checks. If an empty String is provided, the main
28670         world's CSP checks remain active.
28671
28672         Test: http/tests/security/isolatedWorld/bypass-main-world-csp.html
28673
28674         (WebCore::isolatedWorldContentSecurityPolicies):
28675         (WebCore::DOMWrapperWorld::isolatedWorldHasContentSecurityPolicy):
28676         (WebCore::DOMWrapperWorld::setIsolatedWorldContentSecurityPolicy):
28677         (WebCore::DOMWrapperWorld::clearIsolatedWorldContentSecurityPolicy):
28678         * bindings/v8/DOMWrapperWorld.h:
28679         (DOMWrapperWorld):
28680             Mechanisms for setting and clearing Content Security Policies from
28681             isolated worlds; implemented in the same HashMappy way as
28682             SecurityOrigin.
28683         * bindings/v8/ScriptController.cpp:
28684         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
28685         (WebCore):
28686         * bindings/v8/ScriptController.h:
28687         (ScriptController):
28688             Adding a method to ScriptController to query the state of the
28689             current world's Content Security Policy. We'll drop this once we can
28690             apply a policy more directly, but for the moment it's necessary for
28691             the next bit.
28692         * loader/cache/CachedResourceLoader.cpp:
28693         (WebCore::CachedResourceLoader::canRequest):
28694             Check the new ScriptController method, and only perform CSP checks
28695             when loading resources if we're executing code from the main world,
28696             or an isolated world with no Content Security Policy set.
28697
28698 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28699
28700         Unreviewed, attempt to fix the release build by not exporting symbols that aren't defined there.
28701
28702         * WebCore.exp.in:
28703
28704 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28705
28706         Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
28707         https://bugs.webkit.org/show_bug.cgi?id=100824
28708
28709         Reviewed by Alexander Pavlov.
28710
28711         In many classes we have pointer to a client object. These references should be
28712         reported as weak pointers and the client's memory usage should be reported when
28713         the client is reached from its instrumented owner where we know exact type of
28714         the client. Otherwise we would need to add reportMemoryUsage to all client
28715         interfaces which places additional burden on the client implementers and blurs
28716         the instrumentation boundaries.
28717
28718         * inspector/InspectorController.cpp:
28719         (WebCore::InspectorController::reportMemoryUsage):
28720         * inspector/InspectorDebuggerAgent.cpp:
28721         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
28722         * inspector/InspectorMemoryAgent.cpp:
28723         (WebCore::InspectorMemoryAgent::reportMemoryUsage):
28724         * inspector/InspectorOverlay.cpp:
28725         (WebCore::InspectorOverlay::reportMemoryUsage):
28726         * inspector/InspectorResourceAgent.cpp:
28727         (WebCore::InspectorResourceAgent::reportMemoryUsage):
28728         * page/Page.cpp:
28729         (WebCore::Page::reportMemoryUsage):
28730
28731 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28732
28733         Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.
28734
28735         * WebCore.exp.in:
28736
28737 2012-10-31  Eric Seidel  <eric@webkit.org>
28738
28739         Add non-virtual firstChild/lastChild overrides to RenderBlock and RenderTableCol for a > 30% speedup on table from bug 100304
28740         https://bugs.webkit.org/show_bug.cgi?id=100306
28741
28742         Reviewed by Abhishek Arya.
28743
28744         Presumably this is a speedup for other rendering tests as well.  We use firstChild() all over
28745         the rendering code w/o considering that it makes a virtual function call.
28746         Originally I just fixed the one callsite which was showing up on the sample to
28747         use children()->firstChild() directly.  However after further thought, this
28748         broader solution seemed the better way to go.  The first patch was a 15% win for
28749         this large table, this broader solution was a 30%!? win.
28750
28751         The elephant in the room for this table is that we're walking the whole table
28752         for many nextColumn calls.  But that I will solve in a later bug.
28753
28754         * rendering/RenderBlock.h:
28755         (WebCore::RenderBlock::firstChild):
28756         (WebCore::RenderBlock::lastChild):
28757         (RenderBlock):
28758         * rendering/RenderObject.h:
28759         (RenderObject):
28760         * rendering/RenderTableCol.h:
28761         (WebCore::RenderTableCol::firstChild):
28762         (WebCore::RenderTableCol::lastChild):
28763         (RenderTableCol):
28764
28765 2012-10-31  Philippe Normand  <pnormand@igalia.com>
28766
28767         Spatialized panning renders incorrectly with USE_CONCATENATED_IMPULSE_RESPONSES
28768         https://bugs.webkit.org/show_bug.cgi?id=98294
28769
28770         Reviewed by Chris Rogers.
28771
28772         Regenerated the concatenated impulse responses file with
28773         elevations in increasing order per azimuth. In the previous
28774         version of this file the elevations for 315, 330 and 345 were
28775         concatenated at the wrong indexes.
28776
28777         * platform/audio/resources/Composite.wav:
28778
28779 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28780
28781         Full-page PDFPlugin should support inline form editing
28782         https://bugs.webkit.org/show_bug.cgi?id=100155
28783
28784         Reviewed by Dan Bernstein.
28785
28786         Add form controls corresponding to Text and Choice PDF annotations,
28787         allowing for single- and multi-line text input, and <option>-like input.
28788
28789         Currently, forms are only implemented for full-page PDF documents.
28790
28791         * WebCore.exp.in: Expose a variety of additional WebCore functionality to WebKit2.
28792         * WebCore.xcodeproj/project.pbxproj: Expose some more WebCore headers as private headers for use in WebKit2.
28793
28794 2012-10-30  Eric Seidel  <eric@webkit.org>
28795
28796         RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods
28797         https://bugs.webkit.org/show_bug.cgi?id=98800
28798
28799         Reviewed by Sam Weinig.
28800
28801         This patch brings our total RoboHornetPro time from 8.2 seconds to 5.3 seconds!
28802
28803         OverlapMap previously used Regions to track Layer bounds rects. 
28804         Unfortunately unioning a list of Regions is O(N^2)
28805         where N is the number of Shapes (in this case rects).
28806         This is because Shapes are immutable, so to union two shapes, we copy
28807         both Shapes' segment/span vectors into a single new Shape.
28808         Thus if we union a set of M Regions, each with 1 Shape, we'll end up copying
28809         the segments of the first Shape N times before we have the final Region/Shape
28810         and the second shape N-1 times. The sum of 1 to N is (N*(N-1))/2 aka order N^2.
28811         Fixing the N^2 algorithm covered by https://bugs.webkit.org/show_bug.cgi?id=100814.
28812
28813         For now we just avoid this O(N^2) by moving away from Region, since OverlapMap
28814         doesn't need it. We just collect a vector of the layer rects and hit-test that directly.
28815         Hit-testing the rect list is O(N), just like hit-testing the same information in a Region would be.
28816
28817         Even better for us is that the OverlapMap is never even used in RoboHornetPro.
28818         We just collect these rects to end up doing nothing with them. :)
28819
28820         * rendering/RenderLayerCompositor.cpp:
28821         (WebCore::RenderLayerCompositor::OverlapMap::add):
28822         (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
28823         (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
28824         (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
28825         (RenderLayerCompositor::OverlapMap):
28826
28827 2012-10-30  Beth Dakin  <bdakin@apple.com>
28828
28829         https://bugs.webkit.org/show_bug.cgi?id=100813
28830         ScrollingCoordinatorMac::stateNodeForID() should return a 
28831         ScrollingStateNode* instead of a ScrollingStateScrollingNode*
28832
28833         Reviewed by Sam Weinig.
28834
28835         ScrollingCoordinatorMac::stateNodeForID() should return a 
28836         ScrollingStateNode* instead of a ScrollingStateScrollingNode* so that 
28837         it can be used for other types of nodes once we add them.
28838         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28839         (ScrollingCoordinatorMac):
28840         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28841         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
28842         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
28843         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
28844         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
28845
28846 2012-10-30  Keishi Hattori  <keishi@webkit.org>
28847
28848         F4 inside <input type=time> should not open calendar picker
28849         https://bugs.webkit.org/show_bug.cgi?id=100730
28850
28851         Reviewed by Kent Tamura.
28852
28853         We lacked the check to see if the picker indicator is visible.
28854
28855         Test: fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html
28856
28857         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
28858         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Check if picker indicator is visible.
28859
28860 2012-10-30  Kent Tamura  <tkent@chromium.org>
28861
28862         Delaying 'change' and 'input' event dispatching during HTMLInputElement::setValue
28863         https://bugs.webkit.org/show_bug.cgi?id=100772
28864
28865         Reviewed by Abhishek Arya.
28866
28867         'change' and 'input' events are asynchronous and not
28868         cancelable. We can use ScopedEvent.
28869
28870         Test: fast/forms/range/range-type-change-onchange.html
28871
28872         * dom/Node.cpp:
28873         (WebCore::Node::dispatchChangeEvent): Use dispatchScopedEvent.
28874         (WebCore::Node::dispatchInputEvent): Ditto.
28875         * html/HTMLInputElement.cpp:
28876         (WebCore::HTMLInputElement::setValue):
28877         Make a scope to delay event dispatching.
28878         * html/RangeInputType.cpp:
28879         (WebCore::RangeInputType::handleKeydownEvent): Ditto.
28880
28881 2012-10-30  Simon Fraser  <simon.fraser@apple.com>
28882
28883         Fix issues with filters and reflections
28884         https://bugs.webkit.org/show_bug.cgi?id=100308
28885
28886         Reviewed by Dirk Schulze.
28887
28888         Composited filters were being applied to the wrong CALayer. The code used
28889         primaryLayer(), which may be a CATransformLayer (which filters cannot apply
28890         to; doing so causes console spew), or a CALayer that is used for reflection
28891         flattening, which again is the wrong layer.
28892
28893         Test: css3/filters/composited-reflected.html
28894
28895         * platform/graphics/ca/GraphicsLayerCA.cpp:
28896         (WebCore::GraphicsLayerCA::updateContentsVisibility): Replace .get()-> with ->
28897         (WebCore::GraphicsLayerCA::updateContentsOpaque): Ditto.
28898         (WebCore::GraphicsLayerCA::updateFilters): Apply filters to m_layer, not primaryLayer(),
28899         and use m_layerClones, not primaryLayerClones().
28900         (WebCore::GraphicsLayerCA::cloneLayer): When cloning a layer for reflections, copy filters
28901         from the source layer.
28902         * platform/graphics/ca/PlatformCALayer.h:
28903         (PlatformCALayer): Add a member function to copy filters from a supplied layer.
28904         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
28905         (PlatformCALayer::setFilters): Remove blank line.
28906         (PlatformCALayer::copyFiltersFrom): Copy CAFIlters from the given layer.
28907         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
28908         (PlatformCALayer::copyFiltersFrom): Stub; no filters on Windows.
28909
28910 2012-10-30  Beth Dakin  <bdakin@apple.com>
28911
28912         https://bugs.webkit.org/show_bug.cgi?id=100809
28913         ScrollingCoordinator::attachToStateTree() should take an enum 
28914         indicating what type of node to create
28915
28916         Reviewed by Simon Fraser.
28917
28918         New enum ScrollingNodeType will soon have other values, such as 
28919         FixedNode.
28920         * page/scrolling/ScrollingCoordinator.h:
28921         (WebCore::ScrollingCoordinator::attachToStateTree):
28922         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28923         (ScrollingCoordinatorMac):
28924
28925         This patch generalizes this function so that it can be used to create 
28926         different types of nodes and so that it is actually ready to create 
28927         child nodes. 
28928         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28929         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
28930
28931         The rootStateNode is always a ScrollingNode.
28932         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
28933
28934         For the time being, always create a ScrollingNode.
28935         * rendering/RenderLayerBacking.cpp:
28936         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
28937
28938 2012-10-30  Gregg Tavares  <gman@google.com>
28939
28940         Set the initial scissor box for WebGL
28941         https://bugs.webkit.org/show_bug.cgi?id=100804
28942
28943         Reviewed by Kenneth Russell.
28944
28945         The initial scissor box needs to be set for WebGL
28946
28947         No new tests as no new functionality.
28948
28949         * html/canvas/WebGLRenderingContext.cpp:
28950         (WebCore):
28951         (WebCore::WebGLRenderingContext::initializeNewContext):
28952
28953 2012-10-30  Charles Wei  <charles.wei@torchmobile.com.cn>
28954
28955         [BlackBerry] PurgeCredential should also purge the persisted credential store
28956         https://bugs.webkit.org/show_bug.cgi?id=100744
28957
28958         Reviewed by George Staikos.
28959
28960         When challenged by the server, we will check the credential in-memory and from the persistent storage.
28961         So the invalid credentials should also be purged from the persistent credential storage; Otherwise,
28962         it will be sent to the server next time been challenged, instead of prompting the user.
28963
28964         * platform/network/blackberry/NetworkJob.cpp:
28965         (WebCore::NetworkJob::purgeCredentials):
28966
28967 2012-10-30  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28968
28969         DOM URL is flaky when workers are used
28970         https://bugs.webkit.org/show_bug.cgi?id=99178
28971
28972         Reviewed by Geoffrey Garen.
28973
28974         Extend JSNoStaticTables to also avoid direct access of static tables in constructor objects.
28975
28976         Test: fast/workers/worker-domurl.html
28977
28978         * bindings/scripts/CodeGeneratorJS.pm:
28979         (constructorHashTableAccessor):
28980         (GenerateConstructorDefinition):
28981
28982 2012-10-30  Jae Hyun Park  <jae.park@company100.net>
28983
28984         Coordinated Graphics: Remove unused methods
28985         https://bugs.webkit.org/show_bug.cgi?id=100799
28986
28987         Reviewed by Noam Rosenthal.
28988
28989         Currently, there are several unused methods regarding Coordinated
28990         Graphics. This patch removes those unused methods.
28991
28992         No new tests (No change in behavior).
28993
28994         * platform/graphics/texmap/TextureMapperGL.cpp:
28995
28996 2012-10-30  Hans Muller  <hmuller@adobe.com>
28997
28998         [CSS Exclusions] Multiple segment polygon layout does not get all segments
28999         https://bugs.webkit.org/show_bug.cgi?id=100039
29000
29001         Reviewed by Dirk Schulze.
29002
29003         Corrected the algorithm for computing included polygon intervals for rectilinear polygons,
29004         and polygons with horizontal edges in general.
29005
29006         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html
29007                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html
29008
29009         * rendering/ExclusionPolygon.cpp: Removed some internal dead code related to the no-longer-used sortedEdgesMinY Vector.
29010         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize new ExclusionPolygonEdge edgeIndex field.
29011         (WebCore::getVertexIntersectionVertices): Return the previous, next, and target vertex indices for a vertex intersection.
29012         (WebCore::ExclusionPolygon::computeXIntersections): Refactored the core of this method to improve handling of horizontal edges.
29013         (WebCore::ExclusionPolygon::computeEdgeIntersections): Ignore zero-width edges.
29014         * rendering/ExclusionPolygon.h: Removed the rightVertexY() method, since it's no longer used.
29015         (WebCore::ExclusionPolygon::edgeAt): New method.
29016         (WebCore::ExclusionPolygon::numberOfEdges): New method.
29017         (ExclusionPolygon): Added support for retrieving edges.
29018         (WebCore::ExclusionPolygonEdge::vertex1): Use vertex1Index.
29019         (WebCore::ExclusionPolygonEdge::vertex2): Use vertex2Index.
29020         (ExclusionPolygonEdge): Renamed index1, index2 fields to vertex1Index, vertex2Index.
29021         (WebCore::ExclusionPolygonEdge::previousEdge): New method.
29022         (WebCore::ExclusionPolygonEdge::nextEdge): New method.
29023
29024 2012-10-30  Chris Evans  <cevans@google.com>
29025
29026         Improve performance of MaskPtr.
29027         https://bugs.webkit.org/show_bug.cgi?id=100790
29028
29029         Reviewed by Eric Seidel.
29030
29031         Calculate the mask once, and store it as a fast-access member variable.
29032         Also avoid unneccessary integer width expansion in index calculation.
29033         Parser/tiny-innerHTML.html has a high stddev.
29034         Best result I've seen pre-patch is 5.70 runs/s.
29035         Best result I've seen post-patch is 5.72 runs/s, but this is not statistically significant.
29036         MaskPtr is still showing as ~2% in the profile, so we're not sure we trust the profile symbolization at this time.
29037         MaskPtr is now reduced to a single inline instruction (was: 4) so this seems like a strict improvement worth landing.
29038
29039         * rendering/RenderArena.cpp:
29040         (MaskPtr): Use a passed-in mask for the mask operation.
29041         (WebCore::RenderArena::RenderArena): Calculate the mask and store it.
29042         (WebCore::RenderArena::allocate):
29043         (WebCore::RenderArena::free): Use stored mask and avoid unneccessary casts.
29044         * rendering/RenderArena.h:
29045         (RenderArena): Store the freelist mask as a member variable.
29046
29047 2012-10-30  Kenichi Ishibashi  <bashi@chromium.org>
29048
29049         local(Helvetica) in src descriptor prevent fallback
29050         https://bugs.webkit.org/show_bug.cgi?id=100446
29051
29052         Reviewed by Dan Bernstein.
29053
29054         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
29055         of font family names, so that if the family name specified in the font-family
29056         property is not available on the system, but the its alias is available,
29057         it will be used instead. This is appropriate for the font-family property,
29058         but not for font family names specified in the local() function of the src
29059         descriptor in a @font-face rule.
29060
29061         This patch disables the mechanism while checking src descriptor of @font-face.
29062
29063         No new tests. It's difficult to test the change because 'Helvetica' can
29064         be mapped any other font. For example, chromium DRT uses FontConfig to
29065         map Helvetica to Times New Roman. Other ports may map Helvetica to other
29066         fonts. We can't define the expected result.
29067
29068         * css/CSSFontFaceSource.cpp:
29069         (WebCore::CSSFontFaceSource::getFontData):
29070         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
29071         This disables aliasing font family names in FontCache.
29072
29073 2012-10-30  Beth Dakin  <bdakin@apple.com>
29074
29075         https://bugs.webkit.org/show_bug.cgi?id=100796
29076         Should add FixedPositionViewportConstraints to ScrollingConstraints.h
29077
29078         Reviewed by Simon Fraser.
29079
29080         ScrollingConstraints.h currently contains an abstract class called 
29081         ViewportConstraints that is intended to encapsulate data and logic 
29082         required to reposition elements whose layout depends on the viewport 
29083         rect (positions fixed and sticky), when scrolling and zooming. 
29084         However, at this time there is only a subclass for sticky. We should 
29085         add a sub-class for fixed. This is required to get pages with fixed 
29086         position elements scrolling on the scrolling thread.
29087
29088         * page/scrolling/ScrollingConstraints.cpp:
29089         (WebCore::FixedPositionViewportConstraints::layerPositionForViewportRect):
29090         (WebCore):
29091         * page/scrolling/ScrollingConstraints.h:
29092         (WebCore::ViewportConstraints::ViewportConstraints):
29093         (ViewportConstraints):
29094         (WebCore::ViewportConstraints::setAnchorEdges):
29095         (FixedPositionViewportConstraints):
29096         (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
29097         (WebCore::FixedPositionViewportConstraints::viewportRectAtLastLayout):
29098         (WebCore::FixedPositionViewportConstraints::setViewportRectAtLastLayout):
29099         (WebCore::FixedPositionViewportConstraints::layerPositionAtLastLayout):
29100         (WebCore::FixedPositionViewportConstraints::setLayerPositionAtLastLayout):
29101         (WebCore):
29102
29103 2012-10-30  Tiancheng Jiang  <tijiang@rim.com>
29104
29105         [BlackBerry] update form theme for BB10.
29106         https://bugs.webkit.org/show_bug.cgi?id=100760
29107
29108         Reviewed by Rob Buis.
29109
29110         RIM PR:222126
29111         Introduce slide function to paint new theme for the form controls.
29112
29113         No new tests.
29114
29115         * css/themeBlackBerry.css:
29116         (select):
29117         * platform/blackberry/RenderThemeBlackBerry.cpp:
29118         (WebCore):
29119         (WebCore::drawControl): Added.
29120         (WebCore::drawThreeSlice): Added.
29121         (WebCore::drawNineSlice): Added.
29122         (WebCore::loadImage): Added.
29123         (WebCore::RenderThemeBlackBerry::systemFont): Modified.
29124         (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField): Modified.
29125         (WebCore::RenderThemeBlackBerry::paintCheckbox): Modified.
29126         (WebCore::RenderThemeBlackBerry::paintRadio): Modified.
29127         (WebCore::RenderThemeBlackBerry::paintButton): Modified.
29128         (WebCore::RenderThemeBlackBerry::paintMenuList): Modified.
29129         (WebCore::RenderThemeBlackBerry::paintMenuListButton): Modified.
29130         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect): Modified.
29131         (WebCore::RenderThemeBlackBerry::paintSliderThumb): Modified.
29132         * platform/blackberry/RenderThemeBlackBerry.h:
29133         (RenderThemeBlackBerry):
29134
29135 2012-10-30  Rick Byers  <rbyers@chromium.org>
29136
29137         cssText for cursor property doesn't include hotspot
29138         https://bugs.webkit.org/show_bug.cgi?id=99530
29139
29140         Reviewed by Darin Adler.
29141
29142         Implement customCssText in CSSCursorImageValue to include the hotspot when present.
29143         Also explicitly track whether or not a hotspot was supplied in the parser,
29144         while still using the existing convention of (-1,-1) to denote no hotspot
29145         in the rest of the system.
29146
29147         Test: fast/css/cursor-parsing.html
29148
29149         * css/CSSCursorImageValue.cpp:
29150         (WebCore::CSSCursorImageValue::customCssText):
29151         * css/CSSCursorImageValue.h:
29152         (CSSCursorImageValue):
29153
29154 2012-10-30  Kenneth Russell  <kbr@google.com>
29155
29156         Temporarily restrict use of ImageBufferSkia::copyToPlatformTexture until bugs resolved
29157         https://bugs.webkit.org/show_bug.cgi?id=100714
29158
29159         Reviewed by Stephen White.
29160
29161         For the moment, only use ImageBuffer::copyToPlatformTexture when
29162         copying to RGBA/UNSIGNED_BYTE textures, and document restriction
29163         in header. Restriction will be lifted once the implementations
29164         (currently only Chromium has one) have been fixed; see bug 100715.
29165
29166         No new tests; manually ran WebGL conformance test
29167         tex-image-and-sub-image-2d-with-canvas-rgba5551.html on NVIDIA
29168         hardware on Mac OS.
29169
29170         * html/canvas/WebGLRenderingContext.cpp:
29171         (WebCore):
29172         (WebCore::WebGLRenderingContext::texImage2D):
29173         * platform/graphics/ImageBuffer.h:
29174         (ImageBuffer):
29175
29176 2012-10-30  Nico Weber  <thakis@chromium.org>
29177
29178         Fix potential overflow in jpeg exif reader. Found by aedla@google.com.
29179         https://bugs.webkit.org/show_bug.cgi?id=100320
29180
29181         Reviewed by Eric Seidel.
29182
29183         Adding more than 1 element past an array is undefined, so don't do it.
29184
29185         No test, since in practice ifd will just overflow and `end - ifd` will
29186         become much larget than 2 and the `if (end - ifd < 2)` a few lines
29187         down will catch that case.
29188
29189         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
29190         (WebCore::readImageOrientation):
29191
29192 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29193
29194         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29195         https://bugs.webkit.org/show_bug.cgi?id=100558
29196
29197         Reviewed by Dean Jackson.
29198
29199         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29200         but more is going to come in the following patches.
29201
29202         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29203         such operations for now.
29204         
29205         No new tests, there is no new functionality yet.
29206
29207         * CMakeLists.txt:
29208         * GNUmakefile.list.am:
29209         * Target.pri:
29210         * WebCore.gypi:
29211         * WebCore.vcproj/WebCore.vcproj:
29212         * WebCore.xcodeproj/project.pbxproj:
29213         * css/CSSComputedStyleDeclaration.cpp:
29214         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29215         * css/StyleResolver.cpp:
29216         (WebCore::StyleResolver::createFilterOperations):
29217         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29218         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29219         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29220         (PlatformCALayer::filtersCanBeComposited):
29221         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29222         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29223         * platform/graphics/filters/FilterOperation.h:
29224         * platform/graphics/filters/FilterOperations.cpp:
29225         (WebCore::FilterOperations::hasCustomFilter):
29226         (WebCore::FilterOperations::getOutsets):
29227         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29228         (WebCore):
29229         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29230         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29231         (WebCore::ValidatedCustomFilterOperation::blend):
29232         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29233         (WebCore):
29234         (ValidatedCustomFilterOperation):
29235         (WebCore::ValidatedCustomFilterOperation::create):
29236         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29237         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29238         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29239         (WebCore::ValidatedCustomFilterOperation::operator==):
29240
29241 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29242
29243         [Mac] Sync up FeatureDefine Configuration Files
29244         https://bugs.webkit.org/show_bug.cgi?id=100171
29245
29246         Reviewed by David Kilzer.
29247
29248         Follow up to better coordinate with iOS feature defines. Make:
29249
29250           - ENABLE_FILTERS always on
29251           - ENABLE_INPUT_* iphonesimulator values point to the iphoneos values
29252
29253         * Configurations/FeatureDefines.xcconfig:
29254
29255 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29256
29257         [Mac] Sync up FeatureDefine Configuration Files
29258         https://bugs.webkit.org/show_bug.cgi?id=100171
29259
29260         Reviewed by David Kilzer.
29261
29262         Ensure an identical FeatureDefine files across all projects. Changes:
29263
29264           - ENABLE_CSS_BOX_DECORATION_BREAK should be in all
29265           - ENABLE_PDFKIT_PLUGIN should be in all
29266           - ENABLE_RESOLUTION_MEDIA_QUERY should be in all
29267           - ENABLE_ENCRYPTED_MEDIA should be in all
29268           - ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING with corrected value
29269           - Some alphabetical ordering cleanup
29270
29271         * Configurations/FeatureDefines.xcconfig:
29272
29273 2012-10-30  Andreas Kling  <kling@webkit.org>
29274
29275         StylePropertySet: Convert more logic to use PropertyReference.
29276         <http://webkit.org/b/100779>
29277
29278         Reviewed by Antti Koivisto.
29279
29280         Rewrite more of the StylePropertySet logic to use PropertyReference instead of CSSProperty.
29281         This is cleanup before changing the internal storage layout of immutable StylePropertySet.
29282
29283         * css/CSSComputedStyleDeclaration.cpp:
29284         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
29285         * css/CSSComputedStyleDeclaration.h:
29286         * css/CSSStyleDeclaration.h:
29287         * css/PropertySetCSSStyleDeclaration.cpp:
29288         (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
29289         * css/PropertySetCSSStyleDeclaration.h:
29290         * css/StylePropertySet.cpp:
29291         (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
29292         (WebCore::StylePropertySet::fontValue):
29293         (WebCore::StylePropertySet::get4Values):
29294         (WebCore::StylePropertySet::getPropertyCSSValue):
29295         (WebCore::StylePropertySet::removeProperty):
29296         (WebCore::StylePropertySet::propertyIsImportant):
29297         (WebCore::StylePropertySet::getPropertyShorthand):
29298         (WebCore::StylePropertySet::isPropertyImplicit):
29299         (WebCore::StylePropertySet::setProperty):
29300         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
29301         (WebCore::StylePropertySet::findPropertyIndex):
29302         (WebCore::StylePropertySet::findMutableCSSPropertyWithID):
29303         (WebCore::StylePropertySet::propertyMatches):
29304         (WebCore::StylePropertySet::removeEquivalentProperties):
29305         * css/StylePropertySet.h:
29306         (WebCore::StylePropertySet::PropertyReference::shorthandID):
29307         (WebCore::StylePropertySet::PropertyReference::isImplicit):
29308
29309 2012-10-30  Eric Seidel  <eric@webkit.org>
29310
29311         Teach RenderTable how to use Vector::insert and Vector::append instead of its own custom memmove code
29312         https://bugs.webkit.org/show_bug.cgi?id=100428
29313
29314         Reviewed by Julien Chaffraix.
29315
29316         RenderTable is now like all other clients of Vector instead of being
29317         needlessly different. :)
29318
29319         insert, append and grow all use the same expandCapacity logic under the covers
29320         and Vector::insert uses TypeOperations::moveOverlapping which should use memmove
29321         by default for unknown types.
29322
29323         * rendering/RenderTable.cpp:
29324         (WebCore::RenderTable::splitColumn):
29325         (WebCore::RenderTable::appendColumn):
29326         * rendering/RenderTable.h:
29327         (WebCore::RenderTable::ColumnStruct::ColumnStruct):
29328
29329 2012-10-30  Vincent Scheib  <scheib@chromium.org>
29330
29331         Unreviewed, rolling out r132927.
29332         http://trac.webkit.org/changeset/132927
29333         https://bugs.webkit.org/show_bug.cgi?id=100558
29334
29335         Compile error on Chromium builders
29336
29337         * CMakeLists.txt:
29338         * GNUmakefile.list.am:
29339         * Target.pri:
29340         * WebCore.gypi:
29341         * WebCore.vcproj/WebCore.vcproj:
29342         * WebCore.xcodeproj/project.pbxproj:
29343         * css/CSSComputedStyleDeclaration.cpp:
29344         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29345         * css/StyleResolver.cpp:
29346         (WebCore::StyleResolver::createFilterOperations):
29347         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29348         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29349         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29350         (PlatformCALayer::filtersCanBeComposited):
29351         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29352         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29353         * platform/graphics/filters/FilterOperation.h:
29354         * platform/graphics/filters/FilterOperations.cpp:
29355         (WebCore::FilterOperations::hasCustomFilter):
29356         (WebCore::FilterOperations::getOutsets):
29357         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
29358         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
29359
29360 2012-10-30  W. James MacLean  <wjmaclean@chromium.org>
29361
29362         [chromium] Restrict link highlights to targets that display a hand-cursor
29363         https://bugs.webkit.org/show_bug.cgi?id=99862
29364
29365         Reviewed by James Robinson.
29366
29367         To avoid applying highlights to inappropriate targets, such as large divs with
29368         click handlers installed, test candidate targets and only highlight them if they
29369         would normally display a hand cursor on mouse over. This is a heuristic, but has
29370         been tested and found effective in practice.
29371
29372         This CL refactors EventHandler::selectCursor() to make the logic for determining
29373         if CURSOR_AUTO should resolve to CURSOR_POINTER available outside EventHandler.
29374
29375         Relies on existing cursor tests.
29376
29377         * page/EventHandler.cpp:
29378         (WebCore::EventHandler::useHandCursor):
29379         (WebCore):
29380         (WebCore::EventHandler::selectCursor):
29381         * page/EventHandler.h:
29382         (EventHandler):
29383
29384 2012-10-30  Rob Buis  <rbuis@rim.com>
29385
29386         [BlackBerry] Remove CookieDatabaseBackingStore::upgradeTableIfNeeded
29387         https://bugs.webkit.org/show_bug.cgi?id=100783
29388
29389         Reviewed by Yong Li.
29390
29391         PR 220513.
29392
29393         Remove CookieDatabaseBackingStore::upgradeTableIfNeeded, it was needed for backwards
29394         compatibility, but not needed anymore.
29395
29396         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
29397         (WebCore::CookieDatabaseBackingStore::invokeOpen):
29398         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
29399
29400 2012-10-30  Glenn Adams  <glenn@skynav.com>
29401
29402         [CSS] Expand -webkit-line-break value space
29403         https://bugs.webkit.org/show_bug.cgi?id=100739
29404
29405         Reviewed by Eric Seidel.
29406
29407         (1) expand -webkit-line-break to include new values defined by CSS3 Text [1], i.e., 'auto', 'strict', 'loose';
29408         (2) change default (initial) value for -webkit-line-break to 'auto' to match CSS3 Text;
29409         (3) rename enum EKHTMLLineBreak to LineBreak, renaming enum values appropriately;
29410
29411         New tests to be added when functionality of new values is added. No rendering behavior change at this time.
29412         Only externally visible change is default (initial) value returning 'auto' rather than 'normal', for which 3 existing
29413         tests that were sensitive to this value have been updated. Note that until the functionality for the new values is
29414         added, any actual use of the new values will be treated as the same as the pre-existing 'normal' value, i.e., the
29415         default semantics.
29416
29417         * css/CSSComputedStyleDeclaration.cpp:
29418         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
29419         Update from kthmlLineBreak() to lineBreak().
29420
29421         * css/CSSParser.cpp:
29422         (WebCore::isValidKeywordPropertyAndValue):
29423         Update values supported for CSSPropertyWebkitLineBreak.
29424
29425         * css/CSSPrimitiveValueMappings.h:
29426         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
29427         (WebCore::CSSPrimitiveValue::operator LineBreak):
29428         Update LineBreak enumeration values (previously EKHTMLLineBreak).
29429
29430         * css/CSSValueKeywords.in:
29431         Update keywords used for -webkit-line-break.
29432
29433         * css/StyleBuilder.cpp:
29434         (WebCore::StyleBuilder::StyleBuilder):
29435         Update names for line break style getter/setter.
29436
29437         * rendering/style/RenderStyle.cpp:
29438         (WebCore::RenderStyle::diff):
29439         Remove khtml prefix on line break related state.
29440
29441         * rendering/style/RenderStyle.h:
29442         Remove khtml prefix on line break related methods. Update to redefined LineBreak
29443         enumeration type.
29444
29445         * rendering/style/RenderStyleConstants.h:
29446         Rename EKHTMLLineBreak enumeration to LineBreak.
29447         Redefine LineBreak enumeration to include new CSS3 Text modes (auto, loose, strict) and
29448         use better names.
29449
29450         * rendering/style/StyleRareInheritedData.cpp:
29451         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
29452         (WebCore::StyleRareInheritedData::operator==):
29453         Remove khtml prefix on line break related state references.
29454
29455         * rendering/style/StyleRareInheritedData.h:
29456         (StyleRareInheritedData):
29457         Remove khtml prefix on line break related state. Widen field to 3 bits to support 8 values,
29458         of which 5 are now used.
29459
29460 2012-10-30  Antti Koivisto  <antti@apple.com>
29461
29462         Avoid unnecessary style recalcs on class attribute mutation
29463         https://bugs.webkit.org/show_bug.cgi?id=100776
29464
29465         Reviewed by Andreas Kling.
29466
29467         There is no need to invalidate element style on class attribute change if neither the added
29468         or removed classes featured in any active stylesheet.
29469
29470         * css/RuleFeature.cpp:
29471         (WebCore::RuleFeatureSet::add):
29472         (WebCore::RuleFeatureSet::clear):
29473         (WebCore::RuleFeatureSet::reportMemoryUsage):
29474         * css/RuleFeature.h:
29475         (RuleFeatureSet):
29476         * css/RuleSet.cpp:
29477         (WebCore::collectFeaturesFromSelector):
29478         
29479             Collect classes mentioned in CSS selectors the same way ids and attribute names are
29480             already collected.
29481
29482         * css/StyleResolver.cpp:
29483         (WebCore::StyleResolver::hasSelectorForClass):
29484         
29485             Add a method to test if a given class name is mentioned anywhere in stylehseets.
29486
29487         (WebCore):
29488         * css/StyleResolver.h:
29489         * css/StyleScopeResolver.h:
29490         (WebCore):
29491         * dom/Element.cpp:
29492         (WebCore::collectAddedAndRemovedClasses):
29493         (WebCore):
29494         (WebCore::Element::classAttributeChanged):
29495         
29496             Figure out which classes were added and removed. Test if they are present in any style
29497             rule and invalidate the style only if they are.
29498
29499         * dom/SpaceSplitString.cpp:
29500         (WebCore::SpaceSplitStringData::add):
29501         (WebCore::SpaceSplitStringData::remove):
29502         (WebCore::SpaceSplitString::add):
29503         (WebCore::SpaceSplitString::remove):
29504         
29505             Added bool return value to indicate if anything was actually removed. Reorganized 
29506             the code a bit to avoid unnecessary uniquing when nothing changes.
29507
29508         * dom/SpaceSplitString.h:
29509         (SpaceSplitStringData):
29510         (SpaceSplitString):
29511
29512 2012-10-30  Robert Hogan  <robert@webkit.org>
29513
29514         white-space: nowrap inline element beside a floated element wraps incorrectly without trailing textnode/newline
29515         https://bugs.webkit.org/show_bug.cgi?id=29648
29516
29517         Reviewed by Levi Weintraub.
29518
29519         A no-wrap child on a line inside an autowrap container should move to the next line if a float doesn't allow
29520         it to fit. This will happen if there is trailing space after the no-wrap child but not if it's the last renderer
29521         on the line. This is because nextLineBreak() is only interested in the white-space style of the current renderer 
29522         and the renderer's next sibling (if there is one) when deciding whether it needs to fit below any floats that
29523         push it beyond the edge of the container. There isn't any situation in which a no-wrap child shouldn't move 
29524         below a float on an auto-wrap line though, so this check always needs to respect the container's white-space style too.
29525
29526         Test: fast/text/whitespace/no-wrap-child-in-auto-wrap-container.html
29527
29528         * rendering/RenderBlockLineLayout.cpp:
29529         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
29530
29531 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29532
29533         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29534         https://bugs.webkit.org/show_bug.cgi?id=100558
29535
29536         Reviewed by Dean Jackson.
29537
29538         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29539         but more is going to come in the following patches.
29540
29541         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29542         such operations for now.
29543         
29544         No new tests, there is no new functionality yet.
29545
29546         * CMakeLists.txt:
29547         * GNUmakefile.list.am:
29548         * Target.pri:
29549         * WebCore.gypi:
29550         * WebCore.vcproj/WebCore.vcproj:
29551         * WebCore.xcodeproj/project.pbxproj:
29552         * css/CSSComputedStyleDeclaration.cpp:
29553         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29554         * css/StyleResolver.cpp:
29555         (WebCore::StyleResolver::createFilterOperations):
29556         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29557         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29558         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29559         (PlatformCALayer::filtersCanBeComposited):
29560         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29561         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29562         * platform/graphics/filters/FilterOperation.h:
29563         * platform/graphics/filters/FilterOperations.cpp:
29564         (WebCore::FilterOperations::hasCustomFilter):
29565         (WebCore::FilterOperations::getOutsets):
29566         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29567         (WebCore):
29568         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29569         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29570         (WebCore::ValidatedCustomFilterOperation::blend):
29571         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29572         (WebCore):
29573         (ValidatedCustomFilterOperation):
29574         (WebCore::ValidatedCustomFilterOperation::create):
29575         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29576         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29577         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29578         (WebCore::ValidatedCustomFilterOperation::operator==):
29579
29580 2012-10-29  Anders Carlsson  <andersca@apple.com>
29581
29582         Build WebKit as C++11 on Mac
29583         https://bugs.webkit.org/show_bug.cgi?id=100720
29584
29585         Reviewed by Daniel Bates.
29586
29587         * Configurations/Base.xcconfig:
29588         Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.
29589
29590         * platform/graphics/FontPlatformData.h:
29591         (WebCore::FontPlatformData::hash):
29592         * platform/graphics/cg/GraphicsContextCG.cpp:
29593         (WebCore::GraphicsContext::drawLine):
29594         (WebCore::GraphicsContext::strokeArc):
29595         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
29596         (WebCore::CustomFilterProgramInfo::hash):
29597         (WebCore::ProtectionSpaceHash::hash):
29598         * platform/network/cf/FormDataStreamCFNet.cpp:
29599         (WebCore::setHTTPBody):
29600         Add static_casts to prevent implicit type conversions in non-constant initializer lists.
29601         
29602         * platform/mac/ClipboardMac.mm:
29603         (WebCore::ClipboardMac::createDragImage):
29604         * platform/mac/CursorMac.mm:
29605         (WebCore::createNamedCursor):
29606         * platform/mac/ScrollViewMac.mm:
29607         (WebCore::ScrollView::platformSetContentsSize):
29608         Use NSMakePoint to prevent implicit type conversions in non-constant initializer lists.
29609
29610         * platform/mac/CookieJar.mm:
29611         (WebCore::cookiesEnabled):
29612         * platform/network/mac/ResourceHandleMac.mm:
29613         (WebCore::shouldRelaxThirdPartyCookiePolicy):
29614         Add explicit casts to NSHTTPCookieAcceptPolicy.
29615
29616         * platform/mac/WebCoreNSURLExtras.h:
29617         * platform/mac/WebCoreNSURLExtras.mm:
29618         (WebCore::URLByTruncatingOneCharacterBeforeComponent):
29619         (WebCore::dataForURLComponentType):
29620         * platform/network/ProtectionSpaceHash.h:
29621         Use CFIndex instead of CFURLComponentType, the enum can be mangled differently in some cases, and these
29622         functions are exported from WebCore.
29623
29624 2012-10-30  Dan Bernstein  <mitz@apple.com>
29625
29626         <rdar://problem/12395187> REGRESSION (r121299): OS X Text Replacement forces cursor out of text fields
29627         https://bugs.webkit.org/show_bug.cgi?id=100768
29628
29629         Reviewed by Anders Carlsson.
29630
29631         r121299 introduced code to restore the paragraph range by saving its length and start offset
29632         relative to the document. The latter was obtained by iterating over the range starting at
29633         the beginning of the document and ending at the beginning of the paragraph range. However,
29634         such a range could not be constructed if the paragraph range was contained in a shadow DOM,
29635         since a range must have both its endpoints within the same shadow tree (or not in a shadow
29636         tree).
29637
29638         Test: platform/mac/editing/spelling/autocorrection-in-textarea.html
29639
29640         * editing/Editor.cpp:
29641         (WebCore::Editor::markAndReplaceFor): Changed paragraphStartIndex to be relative to the
29642         root container of paragraphRange, using the same logic used by
29643         checkForDifferentRootContainer() in Range.cpp.
29644
29645 2012-10-30  Dan Carney  <dcarney@google.com>
29646
29647         Remove ensureAuxiliaryContext
29648         https://bugs.webkit.org/show_bug.cgi?id=99975
29649
29650         Reviewed by Adam Barth.
29651
29652         Removed auxilliaryContext as use if it is problematic in IDB.
29653
29654         No new tests. No change in functionality.
29655
29656         * Modules/indexeddb/IDBCursor.cpp:
29657         (WebCore::IDBCursor::update):
29658         (WebCore::IDBCursor::setValueReady):
29659         * Modules/indexeddb/IDBCursor.h:
29660         (IDBCursor):
29661         * Modules/indexeddb/IDBObjectStore.cpp:
29662         (WebCore::generateIndexKeysForValue):
29663         (WebCore::IDBObjectStore::put):
29664         (WebCore):
29665         * Modules/indexeddb/IDBRequest.cpp:
29666         (WebCore::IDBRequest::onSuccess):
29667         (WebCore::IDBRequest::dispatchEvent):
29668         * bindings/v8/IDBBindingUtilities.cpp:
29669         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
29670         (WebCore::deserializeIDBValue):
29671         (WebCore::injectIDBKeyIntoScriptValue):
29672         * bindings/v8/IDBBindingUtilities.h:
29673         (WebCore):
29674         * bindings/v8/V8Binding.cpp:
29675         (WebCore::toV8Context):
29676         (WebCore):
29677         * bindings/v8/V8Binding.h:
29678         (WebCore):
29679         * bindings/v8/V8PerIsolateData.cpp:
29680         (WebCore):
29681         * bindings/v8/V8PerIsolateData.h:
29682
29683 2012-10-30  Huang Dongsung  <luxtella@company100.net>
29684
29685         [CSS Shaders] Add CustomFilterRenderer to reuse this class by Accelerated Compositing.
29686         https://bugs.webkit.org/show_bug.cgi?id=98989
29687
29688         Reviewed by Dean Jackson.
29689
29690         Extract CustomFilterRenderer class from the rendering part of FECustomFilter.
29691         FECustomFilter now plays a role in extending FilterEffect and delegates
29692         rendering CSS Shaders to CustomFilterRenderer.
29693
29694         CustomFilterRenderer does not know Filter and FilterEffect. We can
29695         create a CustomFilterRenderer instance with only GraphicsContext3D and
29696         CustomFilterValidatedProgram. It means that Accelerated Compositing can
29697         create the CustomFilterRenderer instance if Accelerated Compositing has
29698         GraphicsContext3D and CustomFilterOperation, and it is already possible.
29699
29700         This patch prepares to enable CSS Shaders on Accelerated Compositing.
29701
29702         No new tests. Covered by css3/filters/custom
29703
29704         * CMakeLists.txt:
29705         * GNUmakefile.list.am:
29706         * Target.pri:
29707         * WebCore.gypi:
29708         * WebCore.vcproj/WebCore.vcproj:
29709         * WebCore.xcodeproj/project.pbxproj:
29710         * platform/graphics/filters/CustomFilterRenderer.cpp: Added.
29711         (WebCore):
29712         (WebCore::orthogonalProjectionMatrix):
29713         (WebCore::CustomFilterRenderer::create):
29714         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
29715         (WebCore::CustomFilterRenderer::~CustomFilterRenderer):
29716         (WebCore::CustomFilterRenderer::premultipliedAlpha):
29717         (WebCore::CustomFilterRenderer::programNeedsInputTexture):
29718         (WebCore::CustomFilterRenderer::draw):
29719         (WebCore::CustomFilterRenderer::prepareForDrawing):
29720         (WebCore::CustomFilterRenderer::initializeCompiledProgramIfNeeded):
29721         (WebCore::CustomFilterRenderer::initializeMeshIfNeeded):
29722         (WebCore::CustomFilterRenderer::bindVertexAttribute):
29723         (WebCore::CustomFilterRenderer::unbindVertexAttribute):
29724         (WebCore::CustomFilterRenderer::bindProgramArrayParameters):
29725         (WebCore::CustomFilterRenderer::bindProgramNumberParameters):
29726         (WebCore::CustomFilterRenderer::bindProgramTransformParameter):
29727         (WebCore::CustomFilterRenderer::bindProgramParameters):
29728         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
29729         (WebCore::CustomFilterRenderer::unbindVertexAttributes):
29730         * platform/graphics/filters/CustomFilterRenderer.h: Copied from Source/WebCore/platform/graphics/filters/FECustomFilter.h.
29731         (WebCore):
29732         (CustomFilterRenderer):
29733           CustomFilterRenderer renders custom filters in GPU using a
29734           GraphicsContext3D.
29735         * platform/graphics/filters/FECustomFilter.cpp:
29736         (WebCore::FECustomFilter::FECustomFilter):
29737         (WebCore::FECustomFilter::create):
29738         (WebCore::FECustomFilter::deleteRenderBuffers):
29739         (WebCore::FECustomFilter::drawFilterMesh):
29740         (WebCore::FECustomFilter::prepareForDrawing):
29741         (WebCore::FECustomFilter::applyShader):
29742         (WebCore::FECustomFilter::resolveMultisampleBuffer):
29743         (WebCore::FECustomFilter::resizeMultisampleBuffers):
29744         (WebCore::FECustomFilter::resizeContext):
29745         * platform/graphics/filters/FECustomFilter.h:
29746         (WebCore):
29747         (FECustomFilter):
29748         * rendering/FilterEffectRenderer.cpp:
29749         (WebCore::createCustomFilterEffect):
29750
29751 2012-10-30  Mike West  <mkwst@chromium.org>
29752
29753         Web Inspector: Associate console messages with the requests that caused them.
29754         https://bugs.webkit.org/show_bug.cgi?id=99941
29755
29756         Reviewed by Pavel Feldman.
29757
29758         The inspector currently supports the concept of a request's "initiator"
29759         in order to add context to console messages that are generated in
29760         response to a specific request. The initiator is used as the message's
29761         anchor link iff a requestID is present, and no stack trace is present.
29762
29763         Currently, this functionality is only exposed to three specific
29764         callsites: 'InspectorConsoleAgent::didFinishXHRLoading',
29765         'InspectorConsoleAgent::didReceiveResponse', and
29766         'InspectorConsoleAgent::didFailLoading'. This patch adds a generic
29767         mechanism to associate requests with console messages by passing the
29768         request's identifier through 'ScriptExecutionContext::addConsoleMessage'
29769         or 'Console::addMessage' when relevant.
29770
29771         This patch should have no visible changes. It just installs some new
29772         piping, and adjusts the three methods mentioned above to use it.
29773         Existing tests shouldn't break.
29774
29775         * dom/Document.cpp:
29776         (WebCore::Document::addMessage):
29777         * dom/Document.h:
29778         (Document):
29779             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29780             through to Console::addMessage.
29781         * dom/ScriptExecutionContext.cpp:
29782         (WebCore::ScriptExecutionContext::addConsoleMessage):
29783         * dom/ScriptExecutionContext.h:
29784         (ScriptExecutionContext):
29785             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29786             through to the subclass' addMessage method.
29787         * inspector/ConsoleMessage.cpp:
29788         (WebCore::ConsoleMessage::ConsoleMessage):
29789             Accept an unsigned long instead of a string, and move the conversion
29790             from WebCore request identifiers to Inspector request identifiers
29791             into ConsoleMessage.
29792         * inspector/ConsoleMessage.h:
29793         (ConsoleMessage):
29794             Add 'requestIdentifier' (defaulting to 0) to the
29795             ConsoleMessage constructor that accepts a ScriptCallStack (it was
29796             already part of the constructor that accepted a line number).
29797         * inspector/IdentifiersFactory.cpp:
29798         (WebCore::IdentifiersFactory::requestId):
29799             If the provided request identifier is 0, return an empty string.
29800             This simplifies the logic at the callsite.
29801         * inspector/InspectorConsoleAgent.cpp:
29802         (WebCore::InspectorConsoleAgent::addMessageToConsole):
29803             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29804             through to the 'ConsoleMessage' constructor after converting it to
29805             an internal identifier via 'IdentifiersFactor::requestId'.
29806         (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
29807         (WebCore::InspectorConsoleAgent::didReceiveResponse):
29808         (WebCore::InspectorConsoleAgent::didFailLoading):
29809             Use the new 'requestIdentifier' parameter on addMessageToConsole
29810             rather than replicating the behavior in each of these three methods.
29811         * inspector/InspectorConsoleAgent.h:
29812         (InspectorConsoleAgent):
29813             Add a 'requestIdentifier' parameter (defaulting to 0).
29814         * inspector/InspectorConsoleInstrumentation.h:
29815         (WebCore::InspectorInstrumentation::addMessageToConsole):
29816         * inspector/InspectorInstrumentation.cpp:
29817         (WebCore):
29818         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
29819         * inspector/InspectorInstrumentation.h:
29820         (InspectorInstrumentation):
29821             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29822             through to lower levels of the stack.
29823         * page/Console.cpp:
29824         (WebCore::Console::addMessage):
29825         * page/Console.h:
29826         (Console):
29827             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29828             through to 'InspectorInstrumentation::addMessageToConsole'.
29829         * workers/WorkerContext.cpp:
29830         (WebCore::WorkerContext::addMessage):
29831         (WebCore::WorkerContext::addMessageToWorkerConsole):
29832         * workers/WorkerContext.h:
29833         (WorkerContext):
29834             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29835             through to 'InspectorInstrumentation::addMessageToConsole'.
29836
29837 2012-10-29  Anders Carlsson  <andersca@apple.com>
29838
29839         String::createCFString should return a RetainPtr
29840         https://bugs.webkit.org/show_bug.cgi?id=100419
29841
29842         Reviewed by Andreas Kling.
29843
29844         Update callers of String::createCFString.
29845
29846         * bridge/objc/objc_runtime.mm:
29847         (JSC::Bindings::callObjCFallbackObject):
29848         * html/HTMLMediaElement.cpp:
29849         (WebCore::createFileURLForApplicationCacheResource):
29850         * loader/archive/cf/LegacyWebArchive.cpp:
29851         (WebCore::LegacyWebArchive::createPropertyListRepresentation):
29852         * platform/LocalizedStrings.cpp:
29853         (WebCore::formatLocalizedString):
29854         (WebCore::contextMenuItemTagLookUpInDictionary):
29855         (WebCore::keygenKeychainItemName):
29856         (WebCore::imageTitle):
29857         * platform/RuntimeApplicationChecks.cpp:
29858         (WebCore::mainBundleIsEqualTo):
29859         * platform/cf/FileSystemCF.cpp:
29860         (WebCore::fileSystemRepresentation):
29861         (WebCore::pathAsURL):
29862         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
29863         (PlatformCAAnimation::PlatformCAAnimation):
29864         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
29865         (resubmitAllAnimations):
29866         (PlatformCALayer::addAnimationForKey):
29867         (PlatformCALayer::removeAnimationForKey):
29868         (PlatformCALayer::setName):
29869         * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
29870         (PlatformCALayerWinInternal::updateTiles):
29871         * platform/graphics/cg/ImageBufferCG.cpp:
29872         (WebCore::utiFromMIMEType):
29873         * platform/graphics/cg/ImageSourceCGMac.mm:
29874         (WebCore::MIMETypeForImageSourceType):
29875         (WebCore::preferredExtensionForImageSourceType):
29876         * platform/mac/ClipboardMac.mm:
29877         (WebCore::cocoaTypeFromHTMLClipboardType):
29878         (WebCore::utiTypeFromCocoaType):
29879         * platform/mac/SSLKeyGeneratorMac.cpp:
29880         (WebCore::signedPublicKeyAndChallengeString):
29881         * platform/network/cf/AuthenticationCF.cpp:
29882         (WebCore::createCF):
29883         * platform/network/cf/CookieJarCFNet.cpp:
29884         (WebCore::setCookies):
29885         * platform/network/cf/DNSCFNet.cpp:
29886         (WebCore::DNSResolveQueue::platformResolve):
29887         * platform/network/cf/ResourceErrorCF.cpp:
29888         (WebCore::ResourceError::cfError):
29889         * platform/network/cf/ResourceHandleCFNet.cpp:
29890         (WebCore::setDefaultMIMEType):
29891         (WebCore::willSendRequest):
29892         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
29893         (WebCore::ResourceHandle::setPrivateBrowsingEnabled):
29894         * platform/network/cf/ResourceRequestCFNet.cpp:
29895         (WebCore::setHeaderFields):
29896         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29897         * platform/network/cf/ResourceResponseCFNet.cpp:
29898         (WebCore::ResourceResponse::cfURLResponse):
29899         * platform/network/cf/SocketStreamHandleCFNet.cpp:
29900         (WebCore::SocketStreamHandle::createStreams):
29901         (WebCore::SocketStreamHandle::addCONNECTCredentials):
29902         (WebCore::SocketStreamHandle::copyCFStreamDescription):
29903         * platform/network/mac/ResourceRequestMac.mm:
29904         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29905         * platform/network/mac/WebCoreURLResponse.mm:
29906         (WebCore::adjustMIMETypeIfNecessary):
29907         * platform/text/cf/HyphenationCF.cpp:
29908         (WebCore::::createValueForKey):
29909         * platform/text/cf/StringCF.cpp:
29910         (WTF::String::createCFString):
29911         * platform/text/cf/StringImplCF.cpp:
29912         (WTF::StringImpl::createCFString):
29913         * platform/text/mac/StringImplMac.mm:
29914         (WTF::StringImpl::operator NSString *):
29915         * platform/text/mac/TextCodecMac.cpp:
29916         (WebCore::TextCodecMac::encode):
29917         * platform/win/SearchPopupMenuWin.cpp:
29918         (WebCore::autosaveKey):
29919         (WebCore::SearchPopupMenuWin::saveRecentSearches):
29920
29921 2012-10-30  Chris Fleizach  <cfleizach@apple.com>
29922
29923         AX: Support embedded SVG objects in AX tree
29924         https://bugs.webkit.org/show_bug.cgi?id=97571
29925
29926         Reviewed by Tim Horton.
29927
29928         This patch allows an SVG image from another resource to be hooked into the AX
29929         hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto
29930         its native parent image. The SVGChromeClient is then used to connect to this SVG resource.
29931
29932         Test: accessibility/svg-remote-element.html
29933
29934         * CMakeLists.txt:
29935         * GNUmakefile.list.am:
29936         * WebCore.gypi:
29937         * WebCore.vcproj/WebCore.vcproj:
29938         * WebCore.xcodeproj/project.pbxproj:
29939         * accessibility/AXObjectCache.cpp:
29940         (WebCore::createFromRenderer):
29941         * accessibility/AccessibilityAllInOne.cpp:
29942         * accessibility/AccessibilityObject.h:
29943         (WebCore::AccessibilityObject::isAccessibilitySVGRoot):
29944         (AccessibilityObject):
29945         * accessibility/AccessibilityRenderObject.cpp:
29946         (WebCore::AccessibilityRenderObject::detach):
29947         (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement):
29948         (WebCore::AccessibilityRenderObject::boundingBoxRect):
29949         (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
29950         (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
29951         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
29952         (WebCore::AccessibilityRenderObject::isSVGImage):
29953         (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
29954         (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
29955         (WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
29956         (WebCore::AccessibilityRenderObject::addChildren):
29957         * accessibility/AccessibilityRenderObject.h:
29958         (AccessibilityRenderObject):
29959         * accessibility/AccessibilitySVGRoot.cpp: Added.
29960         (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
29961         (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot):
29962         (WebCore::AccessibilitySVGRoot::create):
29963         (WebCore::AccessibilitySVGRoot::parentObject):
29964         * accessibility/AccessibilitySVGRoot.h: Added.
29965         (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element.
29966         (WebCore::AccessibilitySVGRoot::setParent):
29967         (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot):
29968         (WebCore::toAccessibilitySVGRoot):
29969         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
29970         (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled 
29971         in a special manner.
29972         (createAccessibilityRoleMap):
29973         * loader/EmptyClients.h:
29974         (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding
29975         the accessibility bounding rect of elements.
29976         (WebCore::EmptyChromeClient::isEmptyChromeClient):
29977         * page/ChromeClient.h:
29978         (WebCore::ChromeClient::isEmptyChromeClient):
29979         (ChromeClient):
29980         * svg/graphics/SVGImage.cpp:
29981         * svg/graphics/SVGImageChromeClient.h: Added.
29982         (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image.
29983         (WebCore::SVGImageChromeClient::SVGImageChromeClient):
29984         (WebCore::SVGImageChromeClient::isSVGImageChromeClient):
29985         (WebCore::SVGImageChromeClient::image):
29986         (WebCore::SVGImageChromeClient::chromeDestroyed):
29987         (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
29988         (WebCore::toSVGImageChromeClient):
29989
29990 2012-10-30  Dan Carney  <dcarney@google.com>
29991
29992         add 7 bit strings capabilities to the v8 binding layer
29993         https://bugs.webkit.org/show_bug.cgi?id=91850
29994
29995         Reviewed by Adam Barth.
29996
29997         This change enables the v8 binding layer to make use of webkit's
29998         8 bit string capabilities. Using 8 bit strings leads to certain
29999         benchmark performance improvemnts as can be seen in
30000         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
30001
30002         No new tests. Test coverage already extensive.
30003
30004         * bindings/v8/V8PerIsolateData.cpp:
30005         (WebCore::V8PerIsolateData::visitExternalStrings):
30006         * bindings/v8/V8StringResource.cpp:
30007         (StringTraits):
30008         (WebCore::false):
30009         (WebCore):
30010         (WebCore::true):
30011         (WebCore::v8StringToWebCoreString):
30012         * bindings/v8/V8ValueCache.cpp:
30013         (WebCore::makeExternalString):
30014         (WebCore::WebCoreStringResourceBase::visitStrings):
30015         * bindings/v8/V8ValueCache.h:
30016         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
30017         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
30018         (WebCore::WebCoreStringResourceBase::atomicString):
30019         (WebCoreStringResourceBase):
30020         (WebCore::WebCoreStringResourceBase::memoryConsumption):
30021
30022 2012-10-30  Christophe Dumez  <christophe.dumez@intel.com>
30023
30024         [AC] Fix compilation warnings when enabling Accelerated Compositing
30025         https://bugs.webkit.org/show_bug.cgi?id=100741
30026
30027         Reviewed by Kenneth Rohde Christiansen.
30028
30029         Fix a few compilation warnings when building EFL port
30030         with accelerated compositing enabled.
30031
30032         No new tests, no behavior change.
30033
30034         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
30035         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
30036         (WebCore::resolveGLMethods):
30037         (WebCore::GraphicsSurface::platformCopyToGLTexture):
30038         (WebCore::GraphicsSurface::platformLock):
30039         * platform/graphics/texmap/TextureMapperGL.cpp:
30040         (WebCore::BitmapTextureGL::updateContents):
30041
30042 2012-10-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
30043
30044         [Qt] Animations jump when the page is suspended
30045         https://bugs.webkit.org/show_bug.cgi?id=100673
30046
30047         Reviewed by Kenneth Rohde Christiansen.
30048
30049         GraphicsLayerAnimations::pause() should accept time from start and not an offset.
30050
30051         We need to support the "freeze" API before this can be reliably tested.
30052         See https://bugs.webkit.org/show_bug.cgi?id=100703.
30053
30054         * platform/graphics/GraphicsLayerAnimation.cpp:
30055         (WebCore::GraphicsLayerAnimation::pause):
30056
30057 2012-10-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>
30058
30059         [Qt][EFL][AC] While Using WebGL, MiniBrowser segfaults on Refreshing the page.
30060         https://bugs.webkit.org/show_bug.cgi?id=100639.
30061
30062         Reviewed by Kenneth Rohde Christiansen.
30063
30064         TextureMapperSurfaceBackingStore can import textures from a GraphicSurface.
30065         In such cases GraphicsSurfaceGLX creates an XPixmap to read texture content
30066         from a given WindowId, but doesn't create any new window.
30067         However, OffScreenRootWindow always tries to unmap window (in its destructor) resulting in segfault.
30068         With this patch OffScreenRootWindow would check for a valid window before trying to unmap it.
30069
30070         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
30071         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
30072
30073 2012-10-30  Emil A Eklund  <eae@chromium.org>
30074
30075         [subixel] Change LineWidth::shrinkAvailableWidthForNewFloatIfNeeded to not pixel snap
30076         https://bugs.webkit.org/show_bug.cgi?id=100742
30077
30078         Reviewed by Levi Weintraub.
30079
30080         As we no longer pixel snap values when computing the current width for a
30081         line we should not do it in shrinkAvailableWidthForNewFloatIfNeeded
30082         either.
30083
30084         Test: fast/sub-pixel/float-wrap-zoom.html
30085
30086         * rendering/RenderBlockLineLayout.cpp:
30087         (WebCore::LineWidth::LineWidth): Remove unnecessary ifdef.
30088         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use float values instead of pixel snapped/floored values as the line width calculations uses floats.
30089
30090 2012-10-30  Max Vujovic  <mvujovic@adobe.com>
30091
30092         [CSS Shaders] Reject vertex shaders with custom attributes
30093         https://bugs.webkit.org/show_bug.cgi?id=98973
30094
30095         Reviewed by Dean Jackson.
30096
30097         Improved CSS Custom Filters shader validation. With this patch:
30098         (1) Shaders with custom attributes do not execute (e.g. attribute float my_attribute;).
30099         (2) Shaders with a_triangleCoord defined do not execute with an attached mesh.
30100
30101         Most of the changes are from renaming CustomFilterOperation::MeshType to
30102         CustomFilterMeshType, and moving the enumeration to CustomFilterConstants.h. This avoids
30103         pulling in CustomFilterOperation for classes that only care about the mesh type.
30104
30105         Note that in CSS Custom Filters, the a_triangleCoord attribute is only available in detached
30106         meshes. In detached meshes, no vertices are shared between triangles. Thus, each vertex
30107         belongs to a specific triangle, which a_triangleCoord identifies. In attached meshes,
30108         vertices can belong to many triangles, which a_triangleCoord cannot identify because it's
30109         only a vec3.
30110
30111         Tests:
30112         Add two new checks to the test file:
30113             css3/filters/custom/invalid-custom-filter-attribute-types.html
30114         Add two new shaders:
30115             css3/filters/resources/invalid-custom-attribute.vs
30116             css3/filters/resources/invalid-a-triangle-coord-with-attached-mesh.vs
30117
30118         * WebCore.xcodeproj/project.pbxproj:
30119             Update a broken reference to CustomFilterConstants.h in the Xcode project file.
30120         * css/CSSComputedStyleDeclaration.cpp:
30121         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
30122             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30123         * css/StyleResolver.cpp:
30124         (WebCore::StyleResolver::createCustomFilterOperation): Ditto.
30125         * platform/graphics/filters/CustomFilterConstants.h:
30126             Add CustomFilterMeshType enum to share across the Custom Filters codebase, so that we
30127             don't have to include CustomFilterOperation just to access the old
30128             CustomFilterOperation::MeshType enum.
30129         * platform/graphics/filters/CustomFilterMesh.cpp:
30130         (WebCore::CustomFilterMesh::CustomFilterMesh):
30131             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30132         * platform/graphics/filters/CustomFilterMesh.h:
30133         (WebCore::CustomFilterMesh::create): Ditto.
30134         (WebCore::CustomFilterMesh::meshType): Ditto.
30135         (CustomFilterMesh): Ditto.
30136         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Ditto.
30137         (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator): Ditto.
30138         (WebCore::CustomFilterMeshGenerator::dumpBuffers): Ditto.
30139         * platform/graphics/filters/CustomFilterMeshGenerator.h:
30140         (CustomFilterMeshGenerator): Ditto.
30141         (WebCore::CustomFilterMeshGenerator::floatsPerVertex): Ditto.
30142         (WebCore::CustomFilterMeshGenerator::verticesCount): Ditto.
30143         * platform/graphics/filters/CustomFilterOperation.cpp: 
30144         (WebCore::CustomFilterOperation::CustomFilterOperation): Ditto.
30145         * platform/graphics/filters/CustomFilterOperation.h:
30146         (WebCore::CustomFilterOperation::create): Ditto.
30147         (WebCore::CustomFilterOperation::meshType): Ditto.
30148         (CustomFilterOperation): Ditto.
30149         * platform/graphics/filters/CustomFilterProgram.cpp:
30150         (WebCore::CustomFilterProgram::CustomFilterProgram):
30151             Add a meshType constructor parameter because the program now needs to know the meshType
30152             to properly validate.
30153         (WebCore::CustomFilterProgram::programInfo):
30154             Pass meshType to CustomFilterProgram constructor.
30155         (WebCore::CustomFilterProgram::operator==):
30156             Check the meshType in the equals operator.
30157         * platform/graphics/filters/CustomFilterProgram.h:
30158             Make vertexShaderString() and fragmentShaderString() public so that we don't have to ask
30159             for a programInfo object just to get the shader strings in
30160             CoordinatedGraphicsArgumentCoders.cpp.
30161         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
30162         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
30163             Add a meshType constructor parameter.       
30164         (WebCore::CustomFilterProgramInfo::hash):
30165             Include the meshType in the validated program hash, since the same shader code can pass
30166             or fail validation based on the meshType.
30167         (WebCore::CustomFilterProgramInfo::operator==):
30168             Check the meshType in the equals operator.
30169         * platform/graphics/filters/CustomFilterProgramInfo.h:
30170         (CustomFilterProgramInfo):
30171             Update method prototype.
30172         (WebCore::CustomFilterProgramInfo::meshType):
30173             Add meshType getter.
30174         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
30175         (WebCore::CustomFilterValidatedProgram::validateSymbols):
30176             If the author defines attribute that is is not found in the built-in attribute map,
30177             reject the shader.
30178             If the author defines a_triangleCoord without a detached mesh type, reject the shader.
30179             Also, make this previously file-static function into a method of
30180             CustomFilterValidatedProgram because it now needs to access the m_meshType.
30181         * platform/graphics/filters/CustomFilterValidatedProgram.h:
30182         (CustomFilterValidatedProgram):
30183             Add a meshType constructor parameter because the program now needs to know the meshType
30184             to properly validate.
30185         * platform/graphics/filters/FECustomFilter.cpp:
30186         (WebCore::FECustomFilter::FECustomFilter):
30187             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30188         (WebCore::FECustomFilter::create): Ditto.
30189         (WebCore::FECustomFilter::bindProgramAndBuffers): Ditto.
30190         (WebCore::FECustomFilter::unbindVertexAttributes): Ditto.
30191         * platform/graphics/filters/FECustomFilter.h:
30192         (FECustomFilter): Ditto.
30193         * rendering/style/StyleCustomFilterProgram.h:
30194         (WebCore::StyleCustomFilterProgram::create):
30195             Add a meshType constructor parameter.
30196         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): Ditto.
30197
30198 2012-10-30  Andrey Lushnikov  <lushnikov@google.com>
30199
30200         Web Inspector: adds isOwnProperty to remote protocol
30201         https://bugs.webkit.org/show_bug.cgi?id=100664
30202
30203         Reviewed by Pavel Feldman.
30204
30205         Test: inspector/runtime/runtime-getProperties-isOwnProperty.html
30206
30207         Adds requested 'isOwn' property to the 'PropertyDescriptor' class of the
30208         remote debugging protocol. 
30209
30210         * inspector/InjectedScriptSource.js:
30211         (.):
30212         * inspector/Inspector.json:
30213
30214 2012-10-30  Zeno Albisser  <zeno@webkit.org>
30215
30216         [Qt][Win] BitmapTextureGL::updateContents() broken after r132019.
30217         https://bugs.webkit.org/show_bug.cgi?id=100680
30218
30219         When creating a temporary for swizzling the image data,
30220         the temporary will have the target size.
30221         Therefore no offset within the available image data
30222         shall be applied in this case.
30223
30224         Reviewed by Noam Rosenthal.
30225
30226         * platform/graphics/texmap/TextureMapperGL.cpp:
30227         (WebCore::BitmapTextureGL::updateContents):
30228
30229 2012-10-30  Kent Tamura  <tkent@chromium.org>
30230
30231         Remove unused code for old input[type=date] UI
30232         https://bugs.webkit.org/show_bug.cgi?id=100734
30233
30234         Reviewed by Hajime Morita.
30235
30236         The old input[type=date] UI used in Google Chrome 20-23 (text field with
30237         a fixed placeholder) was replaced with ENABLE_INPUT_MULTIPLE_FIELDS_UI.
30238
30239         No new tests because of no behavior changes.
30240
30241         * html/DateInputType.cpp: Remove ENABLE_INPUT_TYPE_DATE_LEGACY_UI code path.
30242         * html/DateInputType.h: Ditto.
30243
30244         * html/HTMLInputElement.cpp:
30245         (WebCore::HTMLInputElement::supportsPlaceholder):
30246         Remove fixed-placeholder feature.
30247         * html/HTMLInputElement.h:
30248         (HTMLInputElement): Ditto.
30249         * html/HTMLTextFormControlElement.h:
30250         (HTMLTextFormControlElement): isPlaceholderEmpty() is not needed to be virtual
30251         * html/InputType.cpp: Remove fixed-placeholder feature.
30252         * html/InputType.h: Ditto.
30253         * html/TextFieldInputType.cpp:
30254         (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
30255
30256         * platform/text/PlatformLocale.h:
30257         (Locale): Remove dateFormatText.
30258         * platform/text/LocaleICU.cpp: Ditto.
30259         * platform/text/LocaleICU.h: Ditto.
30260         * platform/text/LocaleNone.cpp: Ditto.
30261         * platform/text/mac/LocaleMac.h: Ditto.
30262         * platform/text/mac/LocaleMac.mm: Ditto.
30263         * platform/text/win/LocaleWin.cpp: Ditto.
30264         * platform/text/win/LocaleWin.h: Ditto.
30265         * platform/LocalizedStrings.h:
30266         (WebCore): Remove unused functions; calendarTodayText,
30267         calendarClearText, dateFormatYearText, dateFormatMonthText,
30268         dateFormatDayInMonthText
30269
30270 2012-10-30  Kent Tamura  <tkent@chromium.org>
30271
30272         Fix crash by calendar picker or suggestion picker
30273         https://bugs.webkit.org/show_bug.cgi?id=100728
30274
30275         Reviewed by Hajime Morita.
30276
30277         Change DateTimeChooser so that it is ref-coutned.
30278
30279         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html
30280
30281         * platform/DateTimeChooser.h: Made DateTimeChooser RefCounted.
30282         * page/ChromeClient.h:
30283         (ChromeClient): openDateTimeChooser should return PassRefPtr<DateTimeChooser>.
30284         * loader/EmptyClients.h:
30285         (EmptyChromeClient): Follow the above change.
30286         * loader/EmptyClients.cpp:
30287         (WebCore::EmptyChromeClient::openDateTimeChooser): Ditto.
30288
30289         * html/shadow/PickerIndicatorElement.h:
30290         (PickerIndicatorElement): Hold DateTimeChooser in RefPtr<DateTimeChooser>.
30291         * html/shadow/PickerIndicatorElement.cpp:
30292         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
30293         Remove unnecessary initialization.
30294
30295 2012-10-30  Eugene Klyuchnikov  <eustas.bug@gmail.com>
30296
30297         Web Inspector: Timeline: promote "cpu activity" out of experiment
30298         https://bugs.webkit.org/show_bug.cgi?id=100726
30299
30300         Reviewed by Pavel Feldman.
30301
30302         1. CPU actibity bars redesigned
30303         2. Experiment setting removed
30304         3. Feature setting added
30305
30306         * English.lproj/localizedStrings.js: Updated setting label.
30307         * inspector/front-end/Settings.js: Replaced experiment with setting.
30308         * inspector/front-end/SettingsScreen.js: Added new setting.
30309         * inspector/front-end/TimelinePanel.js: Update cpu bars appearance.
30310         * inspector/front-end/timelinePanel.css: Ditto.
30311
30312 2012-10-30  Michelangelo De Simone  <michelangelo@webkit.org>
30313
30314         [CSS Shaders] Change the default compositing mode and the default CSS value for <fragmentShader>
30315         https://bugs.webkit.org/show_bug.cgi?id=94020
30316
30317         Reviewed by Dean Jackson.
30318
30319         The default compositing mode has been changed from "normal source-over" to
30320         "normal source-atop". This applies to the default fragment shader that will
30321         kick in when there is no explicit fragment shader or mix function defined.
30322
30323         This has required to update all the existing tests; the dummy empty fragment
30324         shader has also been removed because not needed.
30325
30326         * css/CSSComputedStyleDeclaration.cpp:
30327         (WebCore::CSSComputedStyleDeclaration::valueForFilter): An existence check
30328         for the fragment shader has been added.
30329         * css/StyleResolver.cpp:
30330         (WebCore::StyleResolver::createCustomFilterOperation): The default program
30331         has been updated: PROGRAM_TYPE_BLENDS_TEXTURE (compositing enabled) now is
30332         the default.
30333         * platform/graphics/filters/CustomFilterProgramInfo.h:
30334         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
30335         New CustomFilterProgramMixSettings defaults to "source-atop" composite
30336         operator.
30337
30338 2012-10-30  Ádám Kallai  <kadam@inf.u-szeged.hu>
30339
30340         [Qt][Mac] Unreviewed build fix.
30341         https://bugs.webkit.org/show_bug.cgi?id=100727.
30342
30343         Speculative build fix after 132858. Include missing CoreFoundation/CoreFoundation.h header.
30344
30345         * platform/text/cf/AtomicStringCF.cpp:
30346
30347 2012-10-30  Gabor Rapcsanyi  <rgabor@webkit.org>
30348
30349         Optimize vclip for NEON in VectorMath
30350         https://bugs.webkit.org/show_bug.cgi?id=100737
30351
30352         Reviewed by Zoltan Herczeg.
30353
30354         Speed up vclip in VectorMath with NEON intrinsics.
30355
30356         * platform/audio/VectorMath.cpp:
30357         (WebCore::VectorMath::vclip):
30358
30359 2012-10-30  Alexandru Chiculita  <achicu@adobe.com>
30360
30361         [CSS Shaders] Software and composited filters should have a common path
30362         https://bugs.webkit.org/show_bug.cgi?id=100532
30363
30364         Reviewed by Dean Jackson.
30365
30366         Added computeFilterOperations as a common method between the software filters
30367         and hardware composited ones. The method rejects custom filters that are not
30368         loaded yet. In bug 100533 it will also convert the CustomFilterOperation to a 
30369         ValidatedCustomFilterOperation. That will help us keep the loading and verification 
30370         code for the custom filters common across all the ports.
30371
30372         No new tests, just refactoring existing code.
30373
30374         * rendering/RenderLayer.cpp:
30375         (WebCore::RenderLayer::computeFilterOperations):
30376         (WebCore):
30377         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
30378         * rendering/RenderLayer.h:
30379         (WebCore):
30380         (RenderLayer):
30381         * rendering/RenderLayerBacking.cpp:
30382         (WebCore::RenderLayerBacking::updateFilters):
30383
30384 2012-10-30  Alexei Filippov  <alph@chromium.org>
30385
30386         Web Inspector: Implement native memory snapshot grid view
30387         https://bugs.webkit.org/show_bug.cgi?id=100656
30388
30389         Native memory snapshots are now shown as an expandable tree form
30390         using the grid control.
30391
30392         Reviewed by Yury Semikhatsky.
30393
30394         * inspector/front-end/NativeMemorySnapshotView.js:
30395         (WebInspector.NativeMemorySnapshotView):
30396         (WebInspector.NativeSnapshotDataGrid):
30397         (WebInspector.NativeSnapshotNode):
30398         (WebInspector.NativeSnapshotNode.prototype.createCell):
30399         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
30400         (WebInspector.NativeSnapshotNode.prototype._populate):
30401         (WebInspector.MemoryBlockViewProperties._initialize):
30402         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
30403         * inspector/front-end/dataGrid.css:
30404         (.data-grid td):
30405         * inspector/front-end/nativeMemoryProfiler.css:
30406         (.memory-bar-chart-bar):
30407         (.native-snapshot-view):
30408         (.native-snapshot-view.visible):
30409         (.native-snapshot-view .data-grid):
30410         (.native-snapshot-view .data-grid table):
30411         (.native-snapshot-view .data-grid div.size-text):
30412         (.native-snapshot-view .data-grid div.size-bar):
30413         (.native-snapshot-view .data-grid div.percent-text):
30414
30415 2012-10-30  Zoltan Nyul  <zoltan.nyul@intel.com>
30416
30417         3d rotation with [0, 0, 0] direction vector should not be applied
30418         https://bugs.webkit.org/show_bug.cgi?id=100733
30419
30420         Reviewed by Levi Weintraub.
30421
30422         As stated in the specification (http://dev.w3.org/csswg/css3-3d-transforms/#transform-functions),
30423         a direction vector that cannot be normalized, such as [0, 0, 0], will cause the rotation to not be applied,
30424         but webkit applies it with [1, 0, 0] direction vector.
30425
30426         Test: transforms/3d/general/3dtransform-values.html
30427
30428         * platform/graphics/transforms/TransformationMatrix.cpp:
30429         (WebCore::TransformationMatrix::rotate3d):
30430
30431 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
30432
30433         Memory instrumentation: report actual object address for CachedResourceClients
30434         https://bugs.webkit.org/show_bug.cgi?id=100659
30435
30436         Reviewed by Alexander Pavlov.
30437
30438         Skipped pointers to objects that are not allocated on the heap directly.
30439
30440         To test this we need to compare addresses of objects traversed by the memory
30441         insrumentation with those allocated by the memory allocator. The latter set
30442         should include the former one.
30443
30444         * css/StyleResolver.cpp:
30445         (WTF): skip pointers to RuleData structures as they are stored by value in RuleSet
30446         objects and should not be reported separately.
30447         * loader/cache/CachedResource.cpp:
30448         (WTF): do not report memory occupied by CachedResourceClients as objects implementing
30449         the interface may have address which differ from CachedResourceClient*. The clients
30450         should be reachable from their instrumented owners where we know exact type of the
30451         clients and hence can figure correct address.
30452
30453 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org>
30454
30455         [Refatoring] Remove ElementShadow::insertionPointFor
30456         https://bugs.webkit.org/show_bug.cgi?id=100625
30457
30458         Reviewed by Hajime Morita.
30459
30460         Now that ElementShadow::insertionPointFor does not do any special things, and it's only used in
30461         ComposedShadowTreeWalker. So we can remove it.
30462
30463         No new tests, simple refactoring.
30464
30465         * dom/ComposedShadowTreeWalker.cpp:
30466         (WebCore::resolveReprojection):
30467         (WebCore::AncestorChainWalker::parent):
30468         * dom/ElementShadow.cpp:
30469         * dom/ElementShadow.h:
30470         (ElementShadow):
30471         * dom/ShadowRoot.h: ShadowRoot has insertionPointFor declaration, but we don't have any implementation.
30472         We should remove it.
30473
30474 2012-10-29  Andy Estes  <aestes@apple.com>
30475
30476         Fix a typo that caused SVG external resources to be blocked on
30477         platforms other than Chromium.
30478
30479         * loader/cache/CachedResourceLoader.cpp:
30480         (WebCore::CachedResourceLoader::canRequest):
30481
30482 2012-10-29  Keishi Hattori  <keishi@webkit.org>
30483
30484         NSLocale leaks in LocaleMac
30485         https://bugs.webkit.org/show_bug.cgi?id=97628
30486
30487         Reviewed by Kent Tamura.
30488
30489         We need to adopt the NSLocale object so it doesn't leak and
30490         determineLocale() should return a NSLocale without additional retain.
30491
30492         No new tests.
30493
30494         * platform/text/mac/LocaleMac.mm:
30495         (WebCore::determineLocale): Returns a RetainPtr<NSLocale>.
30496         (WebCore::Locale::create):
30497         (WebCore::LocaleMac::LocaleMac): m_locale should adopt the NSLocale object.
30498         (WebCore::LocaleMac::create): LocaleMac constructor takes NSLocale without additional retain.
30499
30500 2012-10-29  Charles Wei  <charles.wei@torchmobile.com.cn>
30501
30502         [BlackBerry] Disable redirect to data scheme for potential fishing.
30503         https://bugs.webkit.org/show_bug.cgi?id=100713
30504
30505         Reviewed by George Staikos.
30506
30507         We will disable redirect to data scheme to avoid potential security concern, 
30508         described in klevjers.com/papers/phishing.pdf.
30509
30510
30511         * platform/network/blackberry/NetworkJob.cpp:
30512         (WebCore::NetworkJob::handleRedirect):
30513
30514 2012-10-29  Vincent Scheib  <scheib@chromium.org>
30515
30516         Unreviewed, rolling out r132845.
30517         http://trac.webkit.org/changeset/132845
30518         https://bugs.webkit.org/show_bug.cgi?id=99975
30519
30520         Broke chromium builds, linker errors from
30521         IDBBindingUtilitiesTest
30522
30523         * Modules/indexeddb/IDBRequest.cpp:
30524         (WebCore::IDBRequest::IDBRequest):
30525         (WebCore::IDBRequest::onSuccess):
30526         (WebCore::IDBRequest::dispatchEvent):
30527         * Modules/indexeddb/IDBRequest.h:
30528         (IDBRequest):
30529         * bindings/v8/IDBBindingUtilities.cpp:
30530         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30531         (WebCore):
30532         (WebCore::deserializeIDBValue):
30533         (WebCore::injectIDBKeyIntoScriptValue):
30534         (WebCore::idbKeyToScriptValue):
30535         * bindings/v8/V8PerIsolateData.cpp:
30536         (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
30537         (WebCore):
30538         * bindings/v8/V8PerIsolateData.h:
30539         (V8PerIsolateData):
30540
30541 2012-10-29  Anders Carlsson  <andersca@apple.com>
30542
30543         Fix Windows build.
30544
30545         * platform/network/cf/ResourceRequestCFNet.cpp:
30546         (WebCore::setHeaderFields):
30547
30548 2012-10-28  Mark Rowe  <mrowe@apple.com>
30549
30550         Simplify Xcode configuration settings that used to vary between OS versions.
30551
30552         Reviewed by Dan Bernstein.
30553
30554         * Configurations/Base.xcconfig:
30555         * Configurations/DebugRelease.xcconfig:
30556         * Configurations/WebCore.xcconfig:
30557
30558 2012-10-28  Mark Rowe  <mrowe@apple.com>
30559
30560         Remove references to unsupported OS and Xcode versions.
30561
30562         Reviewed by Anders Carlsson.
30563
30564         * Configurations/Base.xcconfig:
30565         * Configurations/CompilerVersion.xcconfig: Removed.
30566         * Configurations/DebugRelease.xcconfig:
30567         * Configurations/Version.xcconfig:
30568         * Configurations/WebCore.xcconfig:
30569         * DerivedSources.make:
30570         * WebCore.xcodeproj/project.pbxproj:
30571
30572 2012-10-29  Anders Carlsson  <andersca@apple.com>
30573
30574         AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
30575         https://bugs.webkit.org/show_bug.cgi?id=100701
30576
30577         Reviewed by Dan Bernstein.
30578
30579         * WebCore.exp.in:
30580         Export AtomicString::add(CFStringRef).
30581
30582         * Target.pri:
30583         * WebCore.gypi:
30584         * WebCore.vcproj/WebCore.vcproj:
30585         * WebCore.xcodeproj/project.pbxproj:
30586         Add AtomicStringCF.cpp 
30587
30588         * platform/text/cf/AtomicStringCF.cpp: Added.
30589         (WTF::AtomicString::add):
30590         When trying to add the atomic string to the table, first try to get a Latin-1 pointer
30591         from the string. Second, try to get a Unicode pointer from the string.
30592         If that also fails, copy the string to a temporary unicode buffer and add it from there.
30593
30594         * platform/text/cf/HyphenationCF.cpp:
30595         (WebCore::::createValueForKey):
30596         Update for AtomicString::createCFString being removed.
30597
30598 2012-10-25  Stephen Chenney  <schenney@chromium.org>
30599
30600         feImage should not be allowed to self reference
30601         https://bugs.webkit.org/show_bug.cgi?id=94652
30602
30603         Reviewed by Eric Seidel.
30604
30605         Add cycle detection for SVG filter application, and also fix a problem
30606         with graphics context restore when filters are applied. This also
30607         converts the flags in FilterData to a state tracking system, as the
30608         number of flags was getting messy and only one flag is valid at any given time.
30609
30610         Test: svg/filters/feImage-self-and-other-referencing.html
30611
30612         * rendering/svg/RenderSVGResourceFilter.cpp: Convert to new FilterData
30613         state management and enable cycle detection.
30614         (WebCore):
30615         (WebCore::RenderSVGResourceFilter::removeClientFromCache): Change isBuilt and markedForRemoval flags to state enums.
30616         (WebCore::RenderSVGResourceFilter::applyResource): Change flags to state enums and detect cycles.
30617         (WebCore::RenderSVGResourceFilter::postApplyResource): Change flags to state and add handling
30618         for the various states.
30619         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Change isBuilt flag to state enums.
30620         * rendering/svg/RenderSVGResourceFilter.h:
30621         (WebCore::FilterData::FilterData):
30622         (FilterData): Convert to a state tracking system.
30623         * rendering/svg/RenderSVGRoot.cpp:
30624         (WebCore::RenderSVGRoot::paintReplaced): Add a block around the
30625         SVGRenderingContext so that it applies the filter and reverts the
30626         context before the calling method restores the context.
30627
30628 2012-10-29  Dan Bernstein  <mitz@apple.com>
30629
30630         <rdar://problem/12592716> REGRESSION (r132545): With full-page accelerated drawing, a
30631         reproducible hang occurs at <http://www.cbsnews.com/stories/2010/01/24/ftn/main6136386.shtml>.
30632
30633         Reviewed by Anders Carlsson.
30634
30635         Work around <rdar://problem/12584492> by limiting the scope of the fix for <http://webkit.org/b/100413>.
30636
30637         * platform/graphics/cg/GraphicsContextCG.cpp:
30638         (WebCore::GraphicsContext::clipOut): Reverted to using CGContextGetClipBoundingBox() rather
30639         than CGRectInfinite when the context is accelerated and has a transform that is not just
30640         a translation or a scale.
30641
30642 2012-10-29  Rob Buis  <rbuis@rim.com>
30643
30644         [BlackBerry] Simplify AuthenticationChallengeManager::instance
30645         https://bugs.webkit.org/show_bug.cgi?id=100614
30646
30647         Reviewed by Yong Li.
30648         Internally reviewed by Lyon Chen.
30649
30650         Use a standard Singleton pattern here, this makes sure we create lazily.
30651
30652         * platform/blackberry/AuthenticationChallengeManager.cpp:
30653         (WebCore):
30654         * platform/blackberry/AuthenticationChallengeManager.h:
30655         (AuthenticationChallengeManager):
30656
30657 2012-10-29  Adam Barth  <abarth@webkit.org>
30658
30659         Block SVG external references pending a security review
30660         https://bugs.webkit.org/show_bug.cgi?id=100635
30661
30662         Reviewed by Eric Seidel.
30663
30664         We need to do a security review of loading external SVG references
30665         before we're sure that it is safe.
30666
30667         * css/StyleResolver.cpp:
30668         (WebCore::StyleResolver::createFilterOperations):
30669         * loader/cache/CachedResourceLoader.cpp:
30670         (WebCore::CachedResourceLoader::canRequest):
30671
30672 2012-10-29  Joshua Bell  <jsbell@chromium.org>
30673
30674         IndexedDB: Crash on checking version of corrupt backing store
30675         https://bugs.webkit.org/show_bug.cgi?id=100692
30676
30677         Reviewed by Tony Chang.
30678
30679         If the backing store fails to open (due to corruption, non-writeable disk, etc)
30680         the subsequent schema version check dereferences a null pointer. Fix to only
30681         do the schema check if the database opened.
30682
30683         Chromium tests will be included with crrev.com/11196029
30684
30685         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
30686         (WebCore::IDBLevelDBBackingStore::open):
30687
30688 2012-10-29  Philip Rogers  <pdr@google.com>
30689
30690         Let SVGElements have pending resources.
30691         https://bugs.webkit.org/show_bug.cgi?id=99694
30692
30693         Reviewed by Eric Seidel.
30694
30695         Our SVG pending resource tracking is used for handling dynamic id changes. For example,
30696         if an SVG element references an id that is not yet in the document (or has been removed),
30697         the SVG element will be 'pending' an id. When styled elements are inserted into
30698         the document, buildPendingResourcesIfNeeded() is called to force any pending elements
30699         to resolve their dependencies. Only SVGStyledElement targets can be referenced using
30700         this infrastructure, and that is not changed with this patch.
30701
30702         Previously, only SVGStyledElements could have pending resources. Some examples of where
30703         this is violated are SVGAnimateElement and SVGMPathElement which are not a styled elements
30704         but which can have pending references (they can reference styled elements and
30705         paths, respectively). This patch changes the pending resource handling to allow
30706         any SVGElement to have pending resources.
30707
30708         This patch is only a refactoring of code in preparation for WK99694 and does not
30709         affect existing functionality or tests.
30710
30711         * svg/SVGDocumentExtensions.cpp:
30712         (WebCore::SVGDocumentExtensions::addPendingResource):
30713         (WebCore::SVGDocumentExtensions::isElementPendingResources):
30714         (WebCore::SVGDocumentExtensions::isElementPendingResource):
30715         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
30716         (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
30717         * svg/SVGDocumentExtensions.h:
30718         (WebCore):
30719         (SVGDocumentExtensions):
30720         * svg/SVGElement.cpp:
30721         (WebCore::SVGElement::~SVGElement):
30722         (WebCore::SVGElement::removedFrom):
30723         (WebCore::SVGElement::hasPendingResources):
30724         (WebCore):
30725         (WebCore::SVGElement::setHasPendingResources):
30726         (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
30727         * svg/SVGElement.h:
30728         (SVGElement):
30729         (WebCore::SVGElement::buildPendingResource):
30730         * svg/SVGStyledElement.cpp:
30731         (WebCore):
30732         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
30733         (WebCore::SVGStyledElement::removedFrom):
30734         * svg/SVGStyledElement.h:
30735         (SVGStyledElement):
30736         (WebCore::SVGStyledElement::selfHasRelativeLengths):
30737
30738 2012-10-29  Dan Carney  <dcarney@google.com>
30739
30740         Remove ensureAuxiliaryContext
30741         https://bugs.webkit.org/show_bug.cgi?id=99975
30742
30743         Reviewed by Adam Barth.
30744
30745         Removed auxilliaryContext as use if it is problematic in IDB.
30746
30747         No new tests. No change in functionality.
30748
30749         * Modules/indexeddb/IDBCursor.cpp:
30750         (WebCore::IDBCursor::update):
30751         (WebCore::IDBCursor::setValueReady):
30752         * Modules/indexeddb/IDBCursor.h:
30753         (IDBCursor):
30754         * Modules/indexeddb/IDBObjectStore.cpp:
30755         (WebCore::generateIndexKeysForValue):
30756         (WebCore::IDBObjectStore::put):
30757         (WebCore):
30758         * Modules/indexeddb/IDBRequest.cpp:
30759         (WebCore::IDBRequest::onSuccess):
30760         (WebCore::IDBRequest::dispatchEvent):
30761         * bindings/v8/IDBBindingUtilities.cpp:
30762         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30763         (WebCore::deserializeIDBValue):
30764         (WebCore::injectIDBKeyIntoScriptValue):
30765         * bindings/v8/IDBBindingUtilities.h:
30766         (WebCore):
30767         * bindings/v8/V8Binding.cpp:
30768         (WebCore::toV8Context):
30769         (WebCore):
30770         * bindings/v8/V8Binding.h:
30771         (WebCore):
30772         * bindings/v8/V8PerIsolateData.cpp:
30773         (WebCore):
30774         * bindings/v8/V8PerIsolateData.h:
30775
30776 2012-10-29  Alpha Lam  <hclam@chromium.org>
30777
30778         [skia] Handle mask box image.
30779         https://bugs.webkit.org/show_bug.cgi?id=100570
30780
30781         Reviewed by James Robinson.
30782
30783         When drawing an image with source rectangle it should intersect with image rectangle.
30784         This should be the case for drawing single image and tiling an image.
30785
30786         Test: fast/images/mask-box-image-crash.html
30787
30788         * platform/graphics/skia/ImageSkia.cpp:
30789         (WebCore::Image::drawPattern):
30790         (WebCore::BitmapImage::draw):
30791         (WebCore::BitmapImageSingleFrameSkia::draw):
30792
30793 2012-10-29  Eric Carlson  <eric.carlson@apple.com>
30794
30795         Support captions when PLUGIN_PROXY_FOR_VIDEO
30796         https://bugs.webkit.org/show_bug.cgi?id=100690
30797
30798         Reviewed by Simon Fraser.
30799
30800         When built with PLUGIN_PROXY_FOR_VIDEO, WebCore uses a plug-in for the media element's
30801         platform media engine. Update this code path so the shadow DOM elements used to display
30802         text tracks are created and configured correctly.
30803
30804         * html/HTMLMediaElement.cpp:
30805         (WebCore::HTMLMediaElement::configureMediaControls): Create media controls if necessary.
30806
30807         * rendering/RenderEmbeddedObject.cpp:
30808         (WebCore::RenderEmbeddedObject::layout): Set the position and size of the shadow DOM when the
30809             position of the embedded element changes.
30810         * rendering/RenderEmbeddedObject.h:
30811
30812 2012-10-29  Justin Novosad  <junov@google.com>
30813
30814         [Chromium] flickering observed when copying 2D canvas to webGL texture
30815         https://bugs.webkit.org/show_bug.cgi?id=100691
30816
30817         Reviewed by Stephen White.
30818
30819         Added a flush to the webgl context after texture upload from an image
30820         buffer to ensure proper graphics context synchronization with respect
30821         to subsequent changes to the source image.
30822
30823         Tests: fast/canvas/webgl/canvas-2d-webgl-texture.html
30824
30825         * platform/graphics/skia/ImageBufferSkia.cpp:
30826         (WebCore::ImageBuffer::copyToPlatformTexture):
30827
30828 2012-10-29  Glenn Adams  <glenn@skynav.com>
30829
30830         [CSSOM] Extraneous whitespace in CSSImportRule.cssText
30831         https://bugs.webkit.org/show_bug.cgi?id=100657
30832
30833         Reviewed by Simon Fraser.
30834
30835         Remove extraneous whitespace when serializing CSSImportRule.cssText when
30836         media list is empty.
30837
30838         Test: cssom/cssimportrule-media.html
30839
30840         * css/CSSImportRule.cpp:
30841         (WebCore::CSSImportRule::cssText):
30842         Don't append extra whitespace if mediaText is empty.
30843
30844 2012-10-29  Arnaud Renevier  <a.renevier@sisa.samsung.com>
30845
30846         webview not redrawn as needed when accelerated compositing is enabled.
30847         https://bugs.webkit.org/show_bug.cgi?id=99109
30848
30849         Reviewed by Martin Robinson.
30850
30851         GL shared display is not in the gtk loop and therefore, its events are
30852         not captured by gtk. So, we use gdk default instead.
30853
30854         No new tests, covered by existing tests.
30855
30856         * platform/gtk/RedirectedXCompositeWindow.cpp:
30857         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
30858         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
30859         (WebCore::RedirectedXCompositeWindow::resize):
30860
30861 2012-10-29  Pavel Feldman  <pfeldman@chromium.org>
30862
30863         Web Inspector: bind redo to Ctrl+Y on non-mac platforms
30864         https://bugs.webkit.org/show_bug.cgi?id=100685
30865
30866         Reviewed by Vsevolod Vlasov.
30867
30868         * inspector/front-end/DefaultTextEditor.js:
30869         (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
30870
30871 2012-10-29  Enrica Casucci  <enrica@apple.com>
30872
30873         Add ENABLE_USERSELECT_ALL feature flag.
30874         https://bugs.webkit.org/show_bug.cgi?id=100559
30875
30876         Reviewed by Eric Seidel.
30877
30878         * Configurations/FeatureDefines.xcconfig:
30879
30880 2012-10-29  Alexandru Chiculita  <achicu@adobe.com>
30881
30882         [CSS Shaders] Extract the CustomFilterParameterList to its own file
30883         https://bugs.webkit.org/show_bug.cgi?id=100548
30884
30885         Reviewed by Dean Jackson.
30886
30887         Moved all the CustomFilterParameterList related methods to their own file.
30888         Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
30889         so that we can add a different operator== and a blend method to it.
30890
30891         No new tests, just refactoring existing code.
30892
30893         * CMakeLists.txt:
30894         * GNUmakefile.list.am:
30895         * Target.pri:
30896         * WebCore.gypi:
30897         * WebCore.xcodeproj/project.pbxproj:
30898         * css/StyleResolver.h:
30899         * platform/graphics/filters/CustomFilterOperation.cpp:
30900         (WebCore::CustomFilterOperation::CustomFilterOperation):
30901         (WebCore::CustomFilterOperation::blend):
30902         * platform/graphics/filters/CustomFilterOperation.h:
30903         (WebCore):
30904         (WebCore::CustomFilterOperation::operator==):
30905         * platform/graphics/filters/CustomFilterParameterList.cpp: Added.
30906         (WebCore):
30907         (WebCore::CustomFilterParameterList::operator==):
30908         (WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
30909         (WebCore::CustomFilterParameterList::blend):
30910         * platform/graphics/filters/CustomFilterParameterList.h: Added.
30911         (WebCore):
30912         (CustomFilterParameterList):
30913
30914 2012-10-29  Brady Eidson  <beidson@apple.com>
30915
30916         Try to fix 32-bit builds after my incompletely tested m_identifier change.
30917
30918         Not reviewed.
30919
30920         * loader/ResourceLoader.h:
30921         (WebCore::ResourceLoader::identifier): Revert my "unsigned long" -> "uint64_t" change in two places.
30922
30923 2012-10-29  Csaba Osztrogonác  <ossy@webkit.org>
30924
30925         [Qt] Text with zero font size renders as X px sometimes, causing fast/text/zero-font-size-2.html to fail
30926         https://bugs.webkit.org/show_bug.cgi?id=100115
30927
30928         Reviewed by Noam Rosenthal.
30929
30930         * platform/graphics/qt/FontQt.cpp:
30931         (WebCore::Font::drawGlyphs):
30932
30933 2012-10-29  Huang Dongsung  <luxtella@company100.net>
30934
30935         [TexMap] Make GraphicsLayerAnimation choose a proper timing function.
30936         https://bugs.webkit.org/show_bug.cgi?id=100623
30937
30938         Reviewed by Noam Rosenthal.
30939
30940         Currently, GraphicsLayerAnimation chooses a timing function in the wrong
30941         way. Other GraphicsLayers choose a timing function in the similar way to
30942         GraphicsLayerCA::timingFunctionForAnimationValue(). The way consists of
30943         the following steps.
30944         1. Try to query the timing function of the current keyframe animation value.
30945         2. If the timing function of #1 is null, try to query the timing function of Animation.
30946         3. If the timing function of #2 is null, return CubicBezierTimingFunction::defaultTimingFunction().
30947
30948         This patch makes GraphicsLayerAnimation choose a timing function in the same way
30949         to other implementations.
30950
30951         Covered by existing animations tests.
30952
30953         * platform/graphics/GraphicsLayerAnimation.cpp:
30954         (WebCore::timingFunctionForAnimationValue):
30955         (WebCore::GraphicsLayerAnimation::apply):
30956
30957 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
30958
30959         Web Inspector: Toolbar overflow appears outside window
30960         https://bugs.webkit.org/show_bug.cgi?id=100663
30961
30962         Reviewed by Pavel Feldman.
30963
30964         Since the search bar was removed from the toolbar, the overflow menu appears too far
30965         to the right, and is unreadable. Fixed this by aligning it relative to the right side
30966         of the window, rather than the left.
30967
30968         * inspector/front-end/Toolbar.js:
30969         (WebInspector.ToolbarDropdown.prototype.show):
30970         * inspector/front-end/inspector.css:
30971         (#toolbar-dropdown .toolbar-label):
30972
30973 2012-10-29  Michelangelo De Simone  <michelangelo@webkit.org>
30974
30975         [CSS Shaders] Implement CustomFilterArrayParameter::blend
30976         https://bugs.webkit.org/show_bug.cgi?id=96437
30977
30978         Reviewed by Dean Jackson.
30979
30980         This patch adds the missing code to blend values within
30981         an array() when using Custom Filters.
30982
30983         Test: css3/filters/custom/custom-filter-array-blending.html
30984
30985         * platform/graphics/filters/CustomFilterArrayParameter.h:
30986         (WebCore::CustomFilterArrayParameter::blend):
30987
30988 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
30989
30990         Web Inspector: Drag and drop a URL in inspector is not working as expected
30991         https://bugs.webkit.org/show_bug.cgi?id=100527
30992
30993         Reviewed by Yury Semikhatsky.
30994
30995         Inhibit custom dragstart handling when the active element is A.
30996
30997         * inspector/front-end/ElementsTreeOutline.js:
30998         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
30999
31000 2012-10-29  Mike West  <mkwst@chromium.org>
31001
31002         Web Inspector: Error/warning count is one pixel off.
31003         https://bugs.webkit.org/show_bug.cgi?id=100660
31004
31005         Reviewed by Pavel Feldman.
31006
31007         The error/warning count div had a top padding of 6. That was one pixel
31008         too many.
31009
31010         * inspector/front-end/inspector.css:
31011         (#error-warning-count):
31012
31013 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org> 
31014
31015         [Refactoring] Use isActiveInsertionPoint() instead of isInsertionPoint()
31016         https://bugs.webkit.org/show_bug.cgi?id=100459
31017
31018         Reviewed by Hajime Morita.
31019
31020         Checking InsertionPoint and its activeness with two if-statement is error-prone. We would like to
31021         use a utility function which checks both at once.
31022
31023         We rewrite some lines with such function.
31024
31025         No new tests, simple refactoring.
31026
31027         * dom/ComposedShadowTreeWalker.cpp:
31028         (WebCore::ComposedShadowTreeWalker::traverseNode):
31029         * html/shadow/ContentDistributor.cpp:
31030         (WebCore::ContentDistributor::populate):
31031         (WebCore::ContentDistributor::distribute):
31032         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31033         * html/shadow/InsertionPoint.h:
31034         (WebCore::isInsertionPoint): Since our convention is the argument of this kind of function should not be null,
31035         we would like to make it similar to the other functions.
31036         (WebCore::toInsertionPoint):
31037         (WebCore::isLowerEncapsulationBoundary):
31038
31039 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
31040
31041         Web Inspector: Fix vertical alignment in toolbar backgrounds and overflow button.
31042         https://bugs.webkit.org/show_bug.cgi?id=100373
31043
31044         Reviewed by Pavel Feldman.
31045
31046         Fix the background image for the selected toolbar item to be vertically centered.
31047         Make close button and toolbar overflow button vertically centered for any toolbar
31048         height.
31049
31050         * inspector/front-end/Toolbar.js: Remove unused variable.
31051         * inspector/front-end/inspector.css:
31052         (.toolbar-item.toggleable):
31053         (body.compact .toolbar-item.toggleable):
31054         (.toolbar-item.toggleable.toggled-on):
31055         (body.compact .toolbar-label):
31056         (#toolbar-dropdown-arrow):
31057         (#close-button-left, #close-button-right):
31058         (.toolbar-item.close-left):
31059         * inspector/front-end/inspector.html:
31060
31061 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31062
31063         Web Inspector: Timeline: Overview bars do not correspond to timeline bars
31064         https://bugs.webkit.org/show_bug.cgi?id=100500
31065
31066         Reviewed by Yury Semikhatsky.
31067
31068         Fix: do not shorten bars by nested records of the same category.
31069
31070         * inspector/front-end/TimelineOverviewPane.js: Check added.
31071
31072 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31073
31074         Web Inspector: Timeline: make cpu-monitoring feature available only on capable browsers
31075         https://bugs.webkit.org/show_bug.cgi?id=100530
31076
31077         Reviewed by Yury Semikhatsky.
31078
31079         Motivation: cpu-monitoring feature looks like a glitch,
31080         when it is not supported by browser.
31081
31082         * inspector/Inspector.json: Added capability getter to protocol.
31083         * inspector/InspectorClient.h: Added capability getter.
31084         * inspector/InspectorTimelineAgent.cpp: Proxy to request to client.
31085         * inspector/InspectorTimelineAgent.h: Added capability getter.
31086         * inspector/front-end/Settings.js: Added capability field.
31087         * inspector/front-end/TimelinePanel.js: Check capability.
31088         * inspector/front-end/inspector.js: Forward capability value.
31089
31090 2012-10-29  Antti Koivisto  <antti@apple.com>
31091
31092         Move seamless stylesheet collecting to DocumentStyleSheetCollection
31093         https://bugs.webkit.org/show_bug.cgi?id=100655
31094
31095         Reviewed by Andreas Kling.
31096
31097         Move the code from StyleResolver to DocumentStyleSheetCollection. StyleResolver should focus on resolving style.
31098
31099         * css/StyleResolver.cpp:
31100         (WebCore::StyleResolver::StyleResolver):
31101         
31102             Use standard create() pattern.
31103
31104         (WebCore):
31105         * css/StyleResolver.h:
31106         (StyleResolver):
31107         * dom/Document.cpp:
31108         (WebCore::Document::Document):
31109         * dom/DocumentStyleSheetCollection.cpp:
31110         (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
31111         
31112             Since parent activeAuthorStyleSheets() contains all seamlessly inherited sheets too, this does not need to
31113             iterate to ancestors anymore.
31114
31115         (WebCore):
31116         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
31117         * dom/DocumentStyleSheetCollection.h:
31118         (WebCore::DocumentStyleSheetCollection::create):
31119         (DocumentStyleSheetCollection):
31120         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
31121         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
31122         
31123             activeAuthorStyleSheets() now includes the stylesheets inherited from the seamless parent too.
31124
31125         (WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):
31126
31127 2012-10-29  Andreas Kling  <kling@webkit.org>
31128
31129         Don't expose implementation details of StylePropertySet storage.
31130         <http://webkit.org/b/100644>
31131
31132         Reviewed by Antti Koivisto.
31133
31134         Add a StylePropertySet::PropertyReference class, now returned by propertyAt(index).
31135         This will allow us to refactor the internal storage of StylePropertySet without
31136         breaking its API.
31137
31138         A PropertyReference is a simple inlinable wrapper around a StylePropertySet&/index pair.
31139
31140         * css/CSSComputedStyleDeclaration.cpp:
31141         * css/CSSParser.cpp:
31142         * css/CSSParser.h:
31143         * css/SVGCSSParser.cpp:
31144         * css/StylePropertySet.cpp:
31145         (WebCore::StylePropertySet::asText):
31146         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
31147         (WebCore::StylePropertySet::findPropertyWithId):
31148         (WebCore::StylePropertySet::reportMemoryUsage):
31149         * css/StylePropertySet.h:
31150         (StylePropertySet):
31151         (PropertyReference):
31152         (WebCore::StylePropertySet::PropertyReference::PropertyReference):
31153         (WebCore::StylePropertySet::PropertyReference::id):
31154         (WebCore::StylePropertySet::PropertyReference::isImportant):
31155         (WebCore::StylePropertySet::PropertyReference::isInherited):
31156         (WebCore::StylePropertySet::PropertyReference::cssName):
31157         (WebCore::StylePropertySet::PropertyReference::cssText):
31158         (WebCore::StylePropertySet::PropertyReference::value):
31159         (WebCore::StylePropertySet::PropertyReference::propertyInternal):
31160         (WebCore::StylePropertySet::propertyAt):
31161         (WebCore::StylePropertySet::propertyAtInternal):
31162         (WebCore):
31163         * css/StyleResolver.cpp:
31164         (WebCore::attributeStylesEqual):
31165         (WebCore::StyleResolver::applyProperties):
31166         (WebCore::StyleResolver::resolveVariables):
31167         * editing/ApplyStyleCommand.cpp:
31168         * editing/EditingStyle.cpp:
31169         (WebCore::EditingStyle::mergeStyle):
31170         (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
31171         * editing/Editor.cpp:
31172         * editing/markup.cpp:
31173         * page/Frame.cpp:
31174         * svg/SVGFontFaceElement.cpp:
31175
31176 2012-10-29  Kent Tamura  <tkent@chromium.org>
31177
31178         Move LocaleWin.{cpp,h} to platform/text/win/
31179         https://bugs.webkit.org/show_bug.cgi?id=100641
31180
31181         Reviewed by Kentaro Hara.
31182
31183         We have platform/text/win/ directory. Windows-specific files should be
31184         in it.
31185         Note that these files are used only in Chromium-win for now.
31186
31187         No new tests. This doesn't change any behavior.
31188
31189         * WebCore.gyp/WebCore.gyp: Fix path names.
31190         * WebCore.gypi: Ditto.
31191         * platform/text/win/LocaleWin.cpp: Renamed from Source/WebCore/platform/text/LocaleWin.cpp.
31192         * platform/text/win/LocaleWin.h: Renamed from Source/WebCore/platform/text/LocaleWin.h.
31193
31194 2012-10-29  Kent Tamura  <tkent@chromium.org>
31195
31196         Rename Localizer to Locale
31197         https://bugs.webkit.org/show_bug.cgi?id=100634
31198
31199         Reviewed by Kentaro Hara.
31200
31201         - Rename Localizer class to Locale
31202         - Rename localizer with locale in variable names
31203         - Rename localizer with locale in function names
31204
31205         No new tests. This doesn't make any behavior changes.
31206
31207         * dom/Document.h:
31208         (WebCore): Declare Locale instead of Localizer.
31209         (Document):
31210         - Rename getCachedLocalizer to getCachedLocale.
31211         - Rename LocaleToLocalizerMap to LocaleIdentifierToLocaleMap.
31212         - Rename m_localizerCache to m_localeCache.
31213         * dom/Document.cpp:
31214         (WebCore::Document::getCachedLocale): Follow renamings.
31215         * dom/Element.h:
31216         (WebCore): Declare Locale instead of Localizer.
31217         (Element): Rename localizer() to locale().
31218         * dom/Element.cpp:
31219         (WebCore::Element::locale): Follow renamings.
31220
31221         * html/BaseDateAndTimeInputType.cpp:
31222         (WebCore::BaseDateAndTimeInputType::localizeValue): Ditto.
31223         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): Ditto.
31224         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
31225         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Ditto.
31226         * html/DateInputType.cpp:
31227         (WebCore::DateInputType::fixedPlaceholder): Ditto.
31228         (WebCore::DateInputType::setupLayoutParameters): Ditto.
31229         * html/DateTimeInputType.cpp:
31230         (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
31231         * html/DateTimeLocalInputType.cpp:
31232         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
31233         * html/MonthInputType.cpp:
31234         (WebCore::MonthInputType::setupLayoutParameters): Ditto.
31235         * html/NumberInputType.cpp:
31236         (WebCore::NumberInputType::localizeValue): Ditto.
31237         (WebCore::NumberInputType::convertFromVisibleValue): Ditto.
31238         * html/TimeInputType.cpp:
31239         (WebCore::TimeInputType::localizeValue): Ditto.
31240         (WebCore::TimeInputType::setupLayoutParameters): Ditto.
31241
31242         * html/shadow/DateTimeEditElement.h:
31243         (WebCore): Declare Locale instead of Localizer.
31244         (LayoutParameters): Rename localizer data member to locale.
31245         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Follow renamings.
31246         * html/shadow/DateTimeEditElement.cpp:
31247         (WebCore::DateTimeEditBuilder::visitField): Ditto.
31248         * html/shadow/DateTimeNumericFieldElement.h:
31249         (DateTimeNumericFieldElement): Rename localizerForOwner to localeForOwner.
31250         * html/shadow/DateTimeNumericFieldElement.cpp:
31251         (WebCore::DateTimeNumericFieldElement::formatValue): Follow renamings.
31252         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Ditto.
31253         (WebCore::DateTimeNumericFieldElement::localeForOwner): Ditto.
31254         * page/PagePopupClient.h:
31255         (WebCore): Declare Locale instead of Localizer.
31256         (PagePopupClient): Rename localizer member function to locale.
31257         * page/PagePopupController.cpp:
31258         (WebCore::PagePopupController::localizeNumberString): Follow renamings.
31259
31260         * platform/text/PlatformLocale.cpp: Rename the Localizer class to Locale.
31261         (DateTimeStringBuilder):
31262         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder):
31263         (WebCore::Locale::~Locale):
31264         (WebCore::Locale::setLocaleData): Renamed from setLocalizerData.
31265         (WebCore::Locale::convertToLocalizedNumber):
31266         (WebCore::Locale::detectSignAndGetDigitRange):
31267         (WebCore::Locale::matchedDecimalSymbolIndex):
31268         (WebCore::Locale::convertFromLocalizedNumber):
31269         (WebCore::Locale::localizedDecimalSeparator):
31270         (WebCore::Locale::dateTimeFormatWithSeconds):
31271         (WebCore::Locale::dateTimeFormatWithoutSeconds):
31272         (WebCore::Locale::formatDateTime):
31273         * platform/text/PlatformLocale.h: Update the ifndef macro.
31274         (Locale): Renamed from Localizer. Also, renamed the followings:
31275          - initializeLocalizerData -> initializeLocaleData
31276          - setLocalizerData -> setLocaleData
31277          - m_hasLocalizerData -> m_hasLocaleData
31278         (WebCore::Locale::Locale):
31279         (WebCore::Locale::createDefault):
31280         * platform/text/LocaleICU.cpp: Follow renamings.
31281         * platform/text/LocaleICU.h: Ditto.
31282         * platform/text/LocaleNone.cpp: Ditto.
31283         * platform/text/LocaleWin.cpp: Ditto.
31284         * platform/text/LocaleWin.h: Ditto.
31285         * platform/text/mac/LocaleMac.h: Ditto.
31286         * platform/text/mac/LocaleMac.mm: Ditto.
31287
31288 2012-10-29  Mike West  <mkwst@chromium.org>
31289
31290         Web Inspector: Error messages lines in console are 1px taller than regular messages
31291         https://bugs.webkit.org/show_bug.cgi?id=100521
31292
31293         Reviewed by Pavel Feldman.
31294
31295         The inspector is adding a 1px bottom border to list elements inside
31296         a disclosure list. This is unnecessary in the current layout; it's
31297         causing console messages with stack traces to be one pixel taller than
31298         other console messages, which this patch fixes.
31299
31300         As a drive-by, this patch also adjusts the disclosure triangle's
31301         position to match.
31302
31303         * inspector/front-end/inspector.css:
31304         (.outline-disclosure li):
31305         (.outline-disclosure li.parent::before):
31306
31307 2012-10-29  Mike West  <mkwst@chromium.org>
31308
31309         Web Inspector: The bubble for repeated errors is misplaced.
31310         https://bugs.webkit.org/show_bug.cgi?id=100525
31311
31312         Reviewed by Pavel Feldman.
31313
31314         The repeated-message bubble is displayed as an inline-block element,
31315         which works well as long as no stack trace is present. If present, the
31316         message is wrapped in an 'ol' element displayed as a block, which pushes
31317         itself down to the next line.
31318
31319         To avoid that issue, this patch switches the wrapper element to flexbox,
31320         glorious flexbox.
31321
31322         * inspector/front-end/inspector.css:
31323         (.console-message .bubble):
31324         (.repeated-message .outline-disclosure):
31325         (.filter-all .console-log-level.repeated-message, .filter-logs .console-log-level.repeated-message):
31326
31327 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
31328
31329         Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
31330         https://bugs.webkit.org/show_bug.cgi?id=100119
31331
31332         Reviewed by Vsevolod Vlasov.
31333
31334         Test: inspector/styles/inactive-properties.html
31335
31336         * inspector/front-end/StylesSidebarPane.js:
31337         (WebInspector.StylesSidebarPane.createExclamationMark):
31338         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
31339         * inspector/front-end/elementsPanel.css:
31340         (.styles-section.computed-style .properties li.not-parsed-ok):
31341         (.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
31342         (.styles-section .properties .not-parsed-ok):
31343
31344 2012-10-29  Eric Seidel  <eric@webkit.org>
31345
31346         Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
31347         https://bugs.webkit.org/show_bug.cgi?id=100630
31348
31349         Reviewed by Ojan Vafai.
31350
31351         This is not a complete fix.  Our rendering of this large tables still takes 7.8 seconds
31352         on my retina MBP (down from 14.3s before this change).
31353         It's very expensive to walk the DOM each time we call RenderTable::colElement
31354         so this caches the RenderTableCol* in a vector for easier walking.
31355         We invalidate the cache any time a RenderTableCol is added or removed from the
31356         rendering sub-tree to avoid holding a bad pointer.
31357
31358         * rendering/RenderTable.cpp:
31359         (WebCore::RenderTable::RenderTable):
31360         (WebCore::RenderTable::invalidateCachedColumns):
31361         (WebCore):
31362         (WebCore::RenderTable::addColumn):
31363         (WebCore::RenderTable::removeColumn):
31364         (WebCore::RenderTable::updateColumnCache):
31365         (WebCore::RenderTable::slowColElement):
31366         * rendering/RenderTable.h:
31367         (RenderTable):
31368         * rendering/RenderTableCol.cpp:
31369         (WebCore::RenderTableCol::insertedIntoTree):
31370         (WebCore):
31371         (WebCore::RenderTableCol::willBeRemovedFromTree):
31372         * rendering/RenderTableCol.h:
31373
31374 2012-10-28  Kent Tamura  <tkent@chromium.org>
31375
31376         Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
31377         https://bugs.webkit.org/show_bug.cgi?id=100627
31378
31379         Reviewed by Yuta Kitamura.
31380
31381         We'd like to rename Localizer class to Locale class. However we use
31382         PlatformLocale.cpp and PlatformLocale.h as their file names because
31383         <locale.h> exists in the C standard.  In this patch, we rename only file
31384         names. We're going to rename the class name later.
31385
31386         No new tests. This doesn't make any behavior change.
31387
31388         * platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
31389         * platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
31390         Follow the Localizer.h -> PlatformLocale.cpp renaming.
31391
31392         * CMakeLists.txt: Follow the file name renaming.
31393         * GNUmakefile.list.am: Ditto.
31394         * Target.pri: Ditto.
31395         * WebCore.gypi: Ditto.
31396         * WebCore.vcproj/WebCore.vcproj: Ditto.
31397         * WebCore.xcodeproj/project.pbxproj: Ditto.
31398         * dom/Document.cpp: Ditto.
31399         * html/BaseDateAndTimeInputType.cpp: Ditto.
31400         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
31401         * html/DateInputType.cpp: Ditto.
31402         * html/DateTimeInputType.cpp: Ditto.
31403         * html/DateTimeLocalInputType.cpp: Ditto.
31404         * html/MonthInputType.cpp: Ditto.
31405         * html/NumberInputType.cpp: Ditto.
31406         * html/TimeInputType.cpp: Ditto.
31407         * html/shadow/DateTimeEditElement.cpp: Ditto.
31408         * html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
31409         * page/PagePopupController.cpp: Ditto.
31410         * platform/text/LocaleICU.h: Ditto.
31411         * platform/text/LocaleNone.cpp: Ditto.
31412         * platform/text/LocaleWin.h: Ditto.
31413         * platform/text/mac/LocaleMac.h: Ditto.
31414
31415 2012-10-28  Shinya Kawanaka  <shinyak@chromium.org>
31416
31417         The shadow element is not reprojected to a nested ShadowRoot.
31418         https://bugs.webkit.org/show_bug.cgi?id=99228
31419
31420         Reviewed by Dimitri Glazkov.
31421
31422         We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.
31423
31424         First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
31425         And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
31426         If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
31427         the InsertionPoint in older ShadowDOM is chosen.
31428
31429         We also fix ComposedShadowTreeWalker to consider shadow reprojection.
31430
31431         Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
31432                fast/dom/shadow/shadow-reprojection-click.html
31433                fast/dom/shadow/shadow-reprojection-dynamic.html
31434                fast/dom/shadow/shadow-reprojection-fallback.html
31435                fast/dom/shadow/shadow-reprojection.html
31436                fast/dom/shadow/shadow-reprojection2.html
31437
31438         * css/StyleResolver.cpp:
31439         (WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
31440         a node is distributed. So we don't have to trace shadow insertion point anymore here.
31441         (WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
31442         we don't have any parentElement. The parent node is a ShadowRoot in that case.
31443         * dom/ComposedShadowTreeWalker.cpp:
31444         (WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
31445         (WebCore):
31446         (WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
31447         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
31448         (WebCore::ComposedShadowTreeWalker::traverseParent):
31449         (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
31450         to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
31451         (WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
31452         In that case, we should not update m_distributedNode.
31453         * dom/ElementShadow.cpp:
31454         (WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
31455         we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
31456         is not correct now due to shadow reprojection.
31457         * html/shadow/ContentDistributor.cpp:
31458         (WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
31459         distributed nodes.
31460         (WebCore):
31461         (WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
31462         we have to resolve a shadow InsertionPoint
31463         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31464         * html/shadow/ContentDistributor.h:
31465         (ContentDistributor):
31466         * html/shadow/HTMLShadowElement.h:
31467         (WebCore::toHTMLShadowElement):
31468         (WebCore):
31469         * html/shadow/InsertionPoint.h:
31470         (WebCore::parentNodeForDistribution):
31471         (WebCore::parentElementForDistribution):
31472         (WebCore):
31473
31474 2012-10-28  Kunihiko Sakamoto  <ksakamoto@chromium.org>
31475
31476         Webkit adds a boundary to the Content-Type: text/plain POST header
31477         https://bugs.webkit.org/show_bug.cgi?id=100445
31478
31479         Reviewed by Kent Tamura.
31480
31481         Fixed a bug where an empty boundary parameter was added to Content-Type
31482         header when POSTing forms with enctype=text/plain.
31483
31484         Test: http/tests/misc/form-post-textplain.html
31485
31486         * loader/FormSubmission.cpp:
31487         (WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
31488         Content-Type only when a boundary string is generated.
31489
31490 2012-10-28  Philip Rogers  <pdr@google.com>
31491
31492         Cache calcMode() value for SVG animations.
31493         https://bugs.webkit.org/show_bug.cgi?id=99694
31494
31495         Reviewed by Eric Seidel.
31496
31497         This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
31498         of recalculating its value on every call. On a simple test of 100 rectangles with 100
31499         animations each, calls to calcMode() account for 3% of the total animation. After this
31500         patch, calcMode() no longer appears in animation profiles at all.
31501
31502         No new tests as this functionality is covered by existing tests.
31503
31504         * svg/SVGAnimateMotionElement.cpp:
31505         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
31506
31507             The default calcMode for all animation types is linear except AnimateMotion,
31508             which defaults to CalcModePaced.
31509             See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute
31510
31511         * svg/SVGAnimationElement.cpp:
31512         (WebCore::SVGAnimationElement::SVGAnimationElement):
31513         (WebCore::SVGAnimationElement::isSupportedAttribute):
31514         (WebCore::SVGAnimationElement::parseAttribute):
31515         (WebCore::SVGAnimationElement::setCalcMode):
31516         * svg/SVGAnimationElement.h:
31517         (WebCore::SVGAnimationElement::calcMode):
31518         (WebCore::SVGAnimationElement::setCalcMode):
31519         (SVGAnimationElement):
31520
31521 2012-10-28  Dimitri Glazkov  <dglazkov@chromium.org>
31522
31523         Get rid of StyleResolver state related to unknown pseudo-elements.
31524         https://bugs.webkit.org/show_bug.cgi?id=100582
31525
31526         Reviewed by Eric Seidel.
31527
31528         All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
31529         We can just get rid of most of this code in StyleResolver.
31530
31531         At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
31532         or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.
31533
31534         No change in behavior, covered by existing tests.
31535
31536         * css/SelectorChecker.cpp:
31537         (WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
31538         (WebCore::SelectorChecker::checkOneSelector): Ditto.
31539         * css/SelectorChecker.h:
31540         (SelectorChecker): Ditto.
31541         * css/StyleResolver.cpp:
31542         (WebCore::StyleResolver::StyleResolver): Ditto.
31543         (MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
31544         (WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
31545         (WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
31546         (WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
31547         (WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
31548         * css/StyleResolver.h:
31549         (StyleResolver): Removed now-unnecessary member.
31550
31551 2012-10-28  Sheriff Bot  <webkit.review.bot@gmail.com>
31552
31553         Unreviewed, rolling out r132696.
31554         http://trac.webkit.org/changeset/132696
31555         https://bugs.webkit.org/show_bug.cgi?id=100609
31556
31557         Needs a bit more clean-up on Chrome Web UI side. (Requested by
31558         dglazkov on #webkit).
31559
31560         * rendering/RenderBlock.cpp:
31561         (WebCore::RenderBlock::updateFirstLetter):
31562         * rendering/RenderListBox.h:
31563         * rendering/RenderObjectChildList.cpp:
31564         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
31565
31566 2012-10-27  Alexey Proskuryakov  <ap@apple.com>
31567
31568         All tests crash in WebKit1 mode
31569         https://bugs.webkit.org/show_bug.cgi?id=100602
31570
31571         Reviewed by Sam Weinig.
31572
31573         * platform/PlatformStrategies.cpp: (WebCore::setPlatformStrategies): Fix an incorrect
31574         assertion - if this function is called twice, it should be with the same strategy.
31575
31576 2012-10-27  Anders Carlsson  <andersca@apple.com>
31577
31578         Fix AVFoundation build.
31579
31580         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
31581         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):
31582
31583 2012-10-27  David Barton  <dbarton@mathscribe.com>
31584
31585         ASSERTION FAILED: m_next in LayoutState.cpp
31586         https://bugs.webkit.org/show_bug.cgi?id=99796
31587
31588         Reviewed by Eric Seidel.
31589
31590         Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
31591         it must ensure a layoutState exists. We disable it in any case, since we are just calculating
31592         metrics here, and the final layout may well happen again.
31593
31594         No new tests. I don't know how to create an automated test for this. The crashes users are
31595         seeing are flaky.
31596
31597         * rendering/mathml/RenderMathMLBlock.cpp:
31598         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
31599
31600 2012-10-27  David Barton  <dbarton@mathscribe.com>
31601
31602         [MathML] Improve some addChild methods
31603         https://bugs.webkit.org/show_bug.cgi?id=98791
31604
31605         Reviewed by Eric Seidel.
31606
31607         MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
31608         number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
31609         want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
31610         renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
31611         giving them to the chromium fuzzers.
31612         
31613         It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
31614         tree after later removeChild calls.
31615
31616         Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
31617         msub/sup elements, in mathml/presentation/m*-changed.xhtml.
31618
31619         * rendering/mathml/RenderMathMLFraction.cpp:
31620         (WebCore::RenderMathMLFraction::addChild):
31621             - The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
31622               work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
31623               added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
31624               numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
31625         * rendering/mathml/RenderMathMLRoot.cpp:
31626         (WebCore::RenderMathMLRoot::addChild):
31627             - A bit of bullet-proofing for the fuzzers.
31628         * rendering/mathml/RenderMathMLSubSup.cpp:
31629         (WebCore::RenderMathMLSubSup::addChild):
31630             - Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.
31631
31632 2012-10-27  Levi Weintraub  <leviw@chromium.org>
31633
31634         Background images can incorrectly repeat with sub-pixel layout
31635         https://bugs.webkit.org/show_bug.cgi?id=94622
31636
31637         Reviewed by Emil A Eklund.
31638
31639         Attempting to better match author expectations when painting tiled background images. When under
31640         the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
31641         differ depending on its location. This change looks at the size of the scaled tiled background
31642         image size, and either ceils or floors that value depending on if tiling that value will
31643         result in us being one pixel or less short of covering the background size. This is a heuristic,
31644         as sub-pixel/zooming isn't specced.
31645
31646         Test: fast/sub-pixel/scaled-background-image.html
31647
31648         * rendering/RenderBoxModelObject.cpp:
31649         (WebCore::applySubPixelHeuristicForTileSize):
31650         (WebCore):
31651         (WebCore::RenderBoxModelObject::calculateFillTileSize):
31652
31653 2012-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>
31654
31655         Unreviewed, rolling out r132725.
31656         http://trac.webkit.org/changeset/132725
31657         https://bugs.webkit.org/show_bug.cgi?id=100596
31658
31659         it broke linking on chromium debug bots (Requested by loislo
31660         on #webkit).
31661
31662         * inspector/InspectorMemoryAgent.cpp:
31663         (WebCore::addPlatformComponentsInfo):
31664         (WebCore):
31665         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31666         * platform/MemoryUsageSupport.cpp:
31667         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31668         * platform/MemoryUsageSupport.h:
31669         (ComponentInfo):
31670         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
31671         (MemoryUsageSupport):
31672         * platform/PlatformMemoryInstrumentation.cpp:
31673         (WebCore):
31674         * platform/PlatformMemoryInstrumentation.h:
31675         (PlatformMemoryTypes):
31676         * platform/chromium/MemoryUsageSupportChromium.cpp:
31677         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31678         * platform/qt/MemoryUsageSupportQt.cpp:
31679         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31680
31681 2012-10-27  Dan Bernstein  <mitz@apple.com>
31682
31683         REAL_PLATFORM_NAME build setting is no longer needed
31684         https://bugs.webkit.org/show_bug.cgi?id=100587
31685
31686         Reviewed by Mark Rowe.
31687
31688         Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
31689         to PLATFORM_NAME.
31690
31691         * Configurations/Base.xcconfig:
31692         * Configurations/CompilerVersion.xcconfig:
31693         * Configurations/DebugRelease.xcconfig:
31694         * Configurations/FeatureDefines.xcconfig:
31695         * Configurations/Version.xcconfig:
31696         * Configurations/WebCore.xcconfig:
31697
31698 2012-10-27  Tony Chang  <tony@chromium.org>
31699
31700         Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
31701         https://bugs.webkit.org/show_bug.cgi?id=100564
31702
31703         Reviewed by Adam Barth.
31704
31705         Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
31706         Also fix a bug where we didn't reset these settings properly.
31707
31708         No new tests, this is covered by existing media/track tests.
31709
31710         * testing/InternalSettings.cpp:
31711         (WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
31712         (WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
31713         * testing/InternalSettings.h:
31714         * testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
31715         * testing/Internals.cpp: Remove code.
31716         * testing/Internals.h: Remove code.
31717         * testing/Internals.idl: Remove code.
31718
31719 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
31720
31721         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
31722         https://bugs.webkit.org/show_bug.cgi?id=100515
31723
31724         Reviewed by Yury Semikhatsky.
31725
31726         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
31727
31728         * inspector/InspectorMemoryAgent.cpp:
31729         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31730         * platform/MemoryUsageSupport.cpp:
31731         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31732         * platform/MemoryUsageSupport.h:
31733         (MemoryUsageSupport):
31734         * platform/PlatformMemoryInstrumentation.cpp:
31735         (WebCore):
31736         * platform/PlatformMemoryInstrumentation.h:
31737         (PlatformMemoryTypes):
31738         * platform/chromium/MemoryUsageSupportChromium.cpp:
31739         (reportMemoryUsage):
31740         (WebCore::reportGlyphCache):
31741         (WebCore):
31742         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31743         * platform/qt/MemoryUsageSupportQt.cpp:
31744         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31745
31746 2012-10-26  Philip Rogers  <pdr@google.com>
31747
31748         Prevent NaN offset values in ElementTimeControl.
31749         https://bugs.webkit.org/show_bug.cgi?id=100322
31750
31751         Reviewed by Abhishek Arya.
31752
31753         NaN values can cause ElementTimeControl to go back in time!
31754         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31755         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31756         because NaN values are not properly sorted. NaN SMILTime values
31757         should not be allowed at all, so this patch adds a check for them in
31758         ElementTimeControl's setters.
31759  
31760         This patch also adds preventative asserts to catch if SMILTime is ever
31761         initialized with NaN, or if addEndTime/addBeginTime are ever called
31762         with NaN values.
31763
31764         Test: svg/custom/elementTimeControl-nan-crash.html
31765
31766         * svg/SVGAnimationElement.cpp:
31767         (WebCore::SVGAnimationElement::beginElementAt):
31768         (WebCore::SVGAnimationElement::endElementAt):
31769         * svg/animation/SMILTime.h:
31770         (WebCore::SMILTime::SMILTime):
31771         * svg/animation/SVGSMILElement.cpp:
31772         (WebCore::SVGSMILElement::addBeginTime):
31773         (WebCore::SVGSMILElement::addEndTime):
31774
31775 2012-10-26  Charles Wei  <charles.wei@torchmobile.com.cn>
31776
31777         [BlackBerry] Browser prematurely sends wrong credentials
31778         https://bugs.webkit.org/show_bug.cgi?id=100585
31779
31780         Reviewed by Yong Li.
31781
31782         Manually revert the patch for bug 96362, which causes regressions and the right patch has been
31783         submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
31784         revert.
31785
31786         No new tests. The test is coverted by patch for 100448.
31787
31788         * platform/network/blackberry/CredentialBackingStore.cpp:
31789         * platform/network/blackberry/CredentialBackingStore.h:
31790         (CredentialBackingStore):
31791         * platform/network/blackberry/NetworkManager.cpp:
31792         (WebCore::NetworkManager::startJob):
31793
31794 2012-10-26  Brady Eidson  <beidson@apple.com>
31795
31796         Have NetworkProcess manage resource load scheduling.
31797         https://bugs.webkit.org/show_bug.cgi?id=100479
31798
31799         Reviewed by Alexey Proskuryakov.
31800
31801         Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
31802         to be overridden by WebKit's implementation.
31803
31804         No new tests (No change in Core behavior).
31805
31806         * WebCore.exp.in:
31807         * WebCore.xcodeproj/project.pbxproj:
31808
31809         * loader/ResourceLoadScheduler.cpp:
31810         (WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
31811         (WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
31812         (WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
31813           here so derived classes can do it indirectly.
31814         (WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
31815           ResourceLoader::start() which only ResourceLoadScheduler can do.
31816
31817         * loader/ResourceLoadScheduler.h:
31818         (ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
31819         (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
31820         (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.
31821
31822         * loader/ResourceLoader.cpp:
31823         (WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.
31824
31825         * loader/ResourceLoader.h:
31826         (WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
31827         (WebCore::ResourceLoader::request): Make public.
31828         (ResourceLoader):
31829
31830 2012-10-26  Chris Rogers  <crogers@google.com>
31831
31832         Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
31833         https://bugs.webkit.org/show_bug.cgi?id=100170
31834
31835         Reviewed by Kenneth Russell.
31836
31837         AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
31838         Sample-based synthesis is a very common technique which requires "internal" loop-points.
31839         For example, the first part of the sample data might represent the attack portion of
31840         a synthesized instrument, which then enters a loop portion.
31841
31842         Tests: webaudio/audiobuffersource-loop-comprehensive.html
31843                webaudio/audiobuffersource-loop-points.html
31844
31845         * Modules/webaudio/AudioBufferSourceNode.cpp:
31846         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
31847         (WebCore::AudioBufferSourceNode::process):
31848         (WebCore::AudioBufferSourceNode::renderFromBuffer):
31849         * Modules/webaudio/AudioBufferSourceNode.h:
31850         (AudioBufferSourceNode):
31851         (WebCore::AudioBufferSourceNode::loopStart):
31852         (WebCore::AudioBufferSourceNode::loopEnd):
31853         (WebCore::AudioBufferSourceNode::setLoopStart):
31854         (WebCore::AudioBufferSourceNode::setLoopEnd):
31855         * Modules/webaudio/AudioBufferSourceNode.idl:
31856
31857 2012-10-26  Daniel Cheng  <dcheng@chromium.org>
31858
31859         dragover's default action should prevent drop for file drags
31860         https://bugs.webkit.org/show_bug.cgi?id=79173
31861
31862         Reviewed by Tony Chang.
31863
31864         During a file drag, we need to keep track of whether or not the document has cancelled the
31865         dragover action. We should only send a drop event if the dragover event was cancelled; this
31866         matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
31867         from the spec are the sections pertaining to dragover and drop events at:
31868         http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model
31869
31870         Test: fast/events/only-valid-drop-targets-receive-file-drop.html
31871
31872         * page/DragController.cpp:
31873         (WebCore::DragController::performDrag):
31874         (WebCore::DragController::dragEnteredOrUpdated):
31875         (WebCore::DragController::tryDocumentDrag):
31876         * page/DragController.h:
31877         (DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
31878                           and remove the corresponding getter/setter.
31879
31880 2012-10-26  Nico Weber  <thakis@chromium.org>
31881
31882         Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
31883         https://bugs.webkit.org/show_bug.cgi?id=94756
31884
31885         Reviewed by Dirk Schulze.
31886
31887         The function has an early exit for !simpleDuration.value(), so
31888         !simpleDuration.value() always is 0 when passed as second parameter to
31889         fmod(), which means fmod() always returns NaN, which always evaluates
31890         to true. Simplify the code by removing that explicit check.
31891
31892         No observable behavior change.
31893
31894         Covered by existing svg tests.
31895
31896         * svg/animation/SVGSMILElement.cpp:
31897         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
31898
31899 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
31900
31901         Unreviewed, rolling out r132695.
31902         http://trac.webkit.org/changeset/132695
31903         https://bugs.webkit.org/show_bug.cgi?id=100581
31904
31905         caused 20+ test crashes on bots (Requested by estes on
31906         #webkit).
31907
31908         * dom/ContainerNode.cpp:
31909         (WebCore::ContainerNode::suspendPostAttachCallbacks):
31910         (WebCore::ContainerNode::resumePostAttachCallbacks):
31911         * loader/MainResourceLoader.cpp:
31912         (WebCore::MainResourceLoader::loadNow):
31913         * loader/ResourceLoadScheduler.cpp:
31914         (WebCore::resourceLoadScheduler):
31915         * loader/ResourceLoadScheduler.h:
31916         * loader/ResourceLoader.cpp:
31917         (WebCore::ResourceLoader::releaseResources):
31918         (WebCore::ResourceLoader::willSendRequest):
31919         * loader/cache/CachedResource.cpp:
31920         (WebCore::CachedResource::load):
31921         * loader/cache/CachedResourceLoader.cpp:
31922         (WebCore::CachedResourceLoader::performPostLoadActions):
31923
31924 2012-10-26  Vincent Scheib  <scheib@chromium.org>
31925
31926         Unreviewed, rolling out r132702.
31927         http://trac.webkit.org/changeset/132702
31928         https://bugs.webkit.org/show_bug.cgi?id=100322
31929
31930         Compile error on Chromium Linux dbg builder (and others)
31931
31932         * svg/SVGAnimationElement.cpp:
31933         (WebCore::SVGAnimationElement::beginElementAt):
31934         (WebCore::SVGAnimationElement::endElementAt):
31935         * svg/animation/SMILTime.h:
31936         (WebCore::SMILTime::SMILTime):
31937         * svg/animation/SVGSMILElement.cpp:
31938         (WebCore::SVGSMILElement::addBeginTime):
31939         (WebCore::SVGSMILElement::addEndTime):
31940
31941 2012-10-26  Philip Rogers  <pdr@google.com>
31942
31943         Prevent NaN offset values in ElementTimeControl.
31944         https://bugs.webkit.org/show_bug.cgi?id=100322
31945
31946         Reviewed by Abhishek Arya.
31947
31948         NaN values can cause ElementTimeControl to go back in time!
31949         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31950         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31951         because NaN values are not properly sorted. NaN SMILTime values
31952         should not be allowed at all, so this patch adds a check for them in
31953         ElementTimeControl's setters.
31954
31955         This patch also adds preventative asserts to catch if SMILTime is ever
31956         initialized with NaN, or if addEndTime/addBeginTime are ever called
31957         with NaN values.
31958
31959         Test: svg/custom/elementTimeControl-nan-crash.html
31960
31961         * svg/SVGAnimationElement.cpp:
31962         (WebCore::SVGAnimationElement::beginElementAt):
31963         (WebCore::SVGAnimationElement::endElementAt):
31964         * svg/animation/SMILTime.h:
31965         (WebCore::SMILTime::SMILTime):
31966         * svg/animation/SVGSMILElement.cpp:
31967         (WebCore::SVGSMILElement::addBeginTime):
31968         (WebCore::SVGSMILElement::addEndTime):
31969
31970 2012-10-26  Tony Chang  <tony@chromium.org>
31971
31972         Move non-Settings Inspector methods from internals.settings to internals
31973         https://bugs.webkit.org/show_bug.cgi?id=100392
31974
31975         Reviewed by Adam Barth.
31976
31977         These methods don't have to do with the WebCore Settings object, so move them up to internals.
31978         I moved the reset code from InternalSettings to Internals.
31979
31980         No new tests, this is just a rename. Existing tests should pass.
31981
31982         * testing/InternalSettings.cpp:
31983         (WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
31984         (WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
31985         * testing/InternalSettings.h:
31986         * testing/InternalSettings.idl:
31987         * testing/Internals.cpp:
31988         (WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
31989         methods in WTR.
31990         (WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
31991         (WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
31992         * testing/Internals.h:
31993         * testing/Internals.idl:
31994         * testing/js/WebCoreTestSupport.cpp:
31995         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
31996         * testing/v8/WebCoreTestSupport.cpp:
31997         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
31998
31999 2012-10-26  Dominic Mazzoni  <dmazzoni@google.com>
32000
32001         AX: Notification should be sent when accessibilityIsIgnored changes
32002         https://bugs.webkit.org/show_bug.cgi?id=99547
32003
32004         Reviewed by Chris Fleizach.
32005
32006         Adds a new flag in AccessibilityObject that keeps track of the most recent
32007         value of accessibilityIsIgnored(). After certain events such as an ARIA
32008         attribute change or content change, checks the new value of
32009         accessibilityIsIgnored() and posts a "children changed" notification on the
32010         parent node if it changed, making sure the parent recomputes its vector of
32011         (unignored) children.
32012
32013         Also moves handling of attribute changes to AXObjectCache, and sends
32014         notifications for some attribute changes that were previously silent. On
32015         Chromium, all changes to an accessibility object's attributes should
32016         result in some notification.
32017
32018         Some tests would have broken because an AccessibilityScrollView was created
32019         and holding a reference to a ScrollView for an iframe after it was deleted,
32020         so this change switches AccessibilityScrollView to hold a weak reference
32021         to ScrollView instead.
32022
32023         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
32024                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
32025                platform/chromium/accessibility/text-change-notification.html
32026
32027         * accessibility/AXObjectCache.cpp:
32028         (WebCore::AXObjectCache::focusedUIElementForPage):
32029         (WebCore::AXObjectCache::getOrCreate):
32030         (WebCore::AXObjectCache::textChanged):
32031         (WebCore):
32032         (WebCore::AXObjectCache::childrenChanged):
32033         (WebCore::AXObjectCache::handleAriaRoleChanged):
32034         (WebCore::AXObjectCache::handleAttributeChanged):
32035         (WebCore::AXObjectCache::labelChanged):
32036         (WebCore::AXObjectCache::recomputeIsIgnored):
32037         * accessibility/AXObjectCache.h:
32038         (AXObjectCache):
32039         (WebCore::AXObjectCache::childrenChanged):
32040         (WebCore::AXObjectCache::textChanged):
32041         (WebCore::AXObjectCache::handleAttributeChanged):
32042         (WebCore::AXObjectCache::recomputeIsIgnored):
32043         * accessibility/AccessibilityNodeObject.cpp:
32044         (WebCore::AccessibilityNodeObject::insertChild):
32045         * accessibility/AccessibilityObject.cpp:
32046         (WebCore::AccessibilityObject::AccessibilityObject):
32047         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
32048         (WebCore):
32049         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
32050         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
32051         * accessibility/AccessibilityObject.h:
32052         (WebCore::AccessibilityObject::textChanged):
32053         (AccessibilityObject):
32054         * accessibility/AccessibilityRenderObject.cpp:
32055         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
32056         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
32057         (WebCore::AccessibilityRenderObject::textChanged):
32058         (WebCore::AccessibilityRenderObject::addHiddenChildren):
32059         (WebCore::AccessibilityRenderObject::addChildren):
32060         * accessibility/AccessibilityRenderObject.h:
32061         (AccessibilityRenderObject):
32062         * accessibility/AccessibilityScrollView.cpp:
32063         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
32064         (WebCore):
32065         (WebCore::AccessibilityScrollView::detach):
32066         (WebCore::AccessibilityScrollView::isAttachment):
32067         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
32068         (WebCore::AccessibilityScrollView::updateScrollbars):
32069         (WebCore::AccessibilityScrollView::webAreaObject):
32070         (WebCore::AccessibilityScrollView::elementRect):
32071         (WebCore::AccessibilityScrollView::documentFrameView):
32072         (WebCore::AccessibilityScrollView::parentObject):
32073         (WebCore::AccessibilityScrollView::parentObjectIfExists):
32074         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
32075         (WebCore::AccessibilityScrollView::scrollTo):
32076         * accessibility/AccessibilityScrollView.h:
32077         (WebCore::AccessibilityScrollView::scrollView):
32078         (AccessibilityScrollView):
32079         * accessibility/AccessibilityTable.cpp:
32080         (WebCore::AccessibilityTable::isDataTable):
32081         * accessibility/chromium/AXObjectCacheChromium.cpp:
32082         (WebCore::AXObjectCache::postPlatformNotification):
32083         * dom/Element.cpp:
32084         (WebCore::Element::attributeChanged):
32085         * rendering/RenderBlock.cpp:
32086         (WebCore::RenderBlock::deleteLineBoxTree):
32087         (WebCore::RenderBlock::createAndAppendRootInlineBox):
32088         * rendering/RenderObject.cpp:
32089         (WebCore::RenderObject::styleWillChange):
32090         * rendering/RenderText.cpp:
32091         (WebCore::RenderText::setText):
32092
32093 2012-10-26  Joshua Bell  <jsbell@chromium.org>
32094
32095         [WebKitIDL] Optional dictionary types should have default values of empty dictionary
32096         https://bugs.webkit.org/show_bug.cgi?id=100547
32097
32098         Reviewed by Adam Barth.
32099
32100         Per WebIDL, "Optional dictionary type arguments are always considered to have a default
32101         value of an empty dictionary." WebKitIDL already supported this via the extended attribute
32102         [Optional=DefaultIsUndefined] but make this the default for Dictionary.
32103
32104         Binding test expectations updated.
32105
32106         * Modules/filesystem/DirectoryEntry.h: Remove default parameters.
32107         (DirectoryEntry):
32108         * Modules/indexeddb/IDBDatabase.h: Remove overloads.
32109         (IDBDatabase):
32110         * Modules/indexeddb/IDBObjectStore.h: Remove overloads.
32111         (IDBObjectStore):
32112         * Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
32113         * bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
32114         (GenerateParametersCheck):
32115         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
32116         (GenerateParametersCheck):
32117         * bindings/scripts/test/JS/JSTestObj.cpp:
32118         (WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
32119         * bindings/scripts/test/V8/V8TestObj.cpp:
32120         (WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.
32121
32122 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32123
32124         Generated should not be supported for things with a shadow
32125         https://bugs.webkit.org/show_bug.cgi?id=98836
32126
32127         Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
32128         Initial rollout was speculative and was shown not to be related to crashes.
32129         Change author: Elliott Sprehn  <esprehn@chromium.org>
32130
32131         As far as CSS is concerned inputs and things with shadow content inside 
32132         shouldn't support pseudo elements like :before, :after or :first-letter.
32133         Neither Gecko or Presto supports it, and we only accidentally supported 
32134         it. 
32135  
32136         Until the spec tells us what to do we should disable support. This is 
32137         also neccesary because the new generated content implementation doesn't 
32138         support shadows. 
32139
32140         Test: fast/forms/pseudo-elements.html
32141
32142         * rendering/RenderBlock.cpp:
32143         (WebCore::RenderBlock::updateFirstLetter):
32144         * rendering/RenderListBox.h:
32145         * rendering/RenderObjectChildList.cpp:
32146         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
32147
32148 2012-10-26  Brady Eidson  <beidson@apple.com>
32149
32150         Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
32151         <rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554
32152
32153         Reviewed by Alexey Proskuryakov.
32154
32155         This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the 
32156         spots that call resourceLoadScheduler().
32157
32158         As a result we were creating more than one ResourceLoadScheduler, allowing the host records 
32159         to get out of sync.
32160
32161         The fix that also results in less #ifdefs scattered throughout the code is to use a single 
32162         choke point for all ResourceLoadScheduler access.
32163
32164         No new tests 
32165         (No change of behavior for the default config, not testable at this time in the repro config)
32166
32167         Add a single choke point for accessing the correct ResourceLoadScheduler:
32168         * loader/ResourceLoadScheduler.cpp:
32169         (WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
32170         (WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to
32171
32172         Revert back to using that single choke point everywhere:
32173         * dom/ContainerNode.cpp:
32174         (WebCore::ContainerNode::suspendPostAttachCallbacks):
32175         (WebCore::ContainerNode::resumePostAttachCallbacks):
32176
32177         * loader/MainResourceLoader.cpp:
32178         (WebCore::MainResourceLoader::loadNow):
32179
32180         * loader/ResourceLoader.cpp:
32181         (WebCore::ResourceLoader::releaseResources):
32182         (WebCore::ResourceLoader::willSendRequest):
32183
32184         * loader/cache/CachedResource.cpp:
32185         (WebCore::CachedResource::load):
32186
32187         * loader/cache/CachedResourceLoader.cpp:
32188         (WebCore::CachedResourceLoader::performPostLoadActions):
32189
32190 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32191
32192         Try to fix the windows build
32193         https://bugs.webkit.org/show_bug.cgi?id=100556
32194
32195         Reviewed by Eric Seidel.
32196
32197         Touch files by adding whitespace to try and make the windows
32198         build bot regenerate files.
32199
32200         No new tests, just kick the bot.
32201
32202         * dom/DOMAllInOne.cpp:
32203         * html/HTMLElementsAllInOne.cpp:
32204         * html/shadow/TextControlInnerElements.cpp:
32205
32206 2012-10-26  Rob Buis  <rbuis@rim.com>
32207
32208         [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
32209         https://bugs.webkit.org/show_bug.cgi?id=100518
32210
32211         PR 231732
32212
32213         Reviewed by Yong Li.
32214
32215         Use the new resource/image loading abstraction ResourceStore.
32216
32217         * platform/graphics/blackberry/ImageBlackBerry.cpp:
32218         (WebCore::Image::loadPlatformResource):
32219
32220 2012-10-26  Bear Travis  <betravis@adobe.com>
32221
32222         [CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
32223         https://bugs.webkit.org/show_bug.cgi?id=98189
32224
32225         Reviewed by Dirk Schulze.
32226
32227         The initial code assumed that each block created a new layout state, such that
32228         LayoutState::layoutOffset would be specific to each block child of a shape-inside.
32229         Typically, however, block children of a shape-inside do not create a new layout state,
32230         and therefore we use the current element's offset instead.
32231
32232         Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html
32233
32234         * rendering/RenderBlockLineLayout.cpp:
32235         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
32236         rather than LayoutState::layoutOffset::width/height and logicalTop.
32237
32238 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32239
32240         Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
32241         https://bugs.webkit.org/show_bug.cgi?id=100397
32242
32243         Reviewed by Ojan Vafai.
32244
32245         Use Node custom callbacks to support the non-renderer style caching for option
32246         and optgroup eliminating the need for setRenderStyle.
32247
32248         setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
32249         so they could store their RenderStyle even though they have no renderer. This
32250         means all style setting went through the virtual call to setRenderStyle, and it
32251         also hid the if statement protecting against null renderers meaning we end up
32252         checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
32253         up recalcStyle to be more clear about what's going on.
32254
32255         No new tests needed, this is just a refactor.
32256
32257         * dom/Element.cpp:
32258         (WebCore::Element::pseudoStyleCacheIsInvalid):
32259         (WebCore::Element::recalcStyle):
32260         * dom/Node.cpp:
32261         (WebCore::Node::createRenderer):
32262         (WebCore::Node::setRenderStyle):
32263             Removed this method because it was only here to support HTMLOptionElement
32264             and HTMLOptGroupElement. Instead we can use node custom callbacks.
32265         * dom/Node.h:
32266         (WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
32267         * dom/NodeRenderStyle.h:
32268         (WebCore::Node::renderStyle):
32269         * html/HTMLOptGroupElement.cpp:
32270         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
32271         (WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32272         (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
32273         (WebCore::HTMLOptGroupElement::nonRendererStyle):
32274         (WebCore::HTMLOptGroupElement::customStyleForRenderer):
32275         * html/HTMLOptGroupElement.h:
32276         * html/HTMLOptionElement.cpp:
32277         (WebCore::HTMLOptionElement::HTMLOptionElement):
32278         (WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32279         (WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
32280         (WebCore::HTMLOptionElement::nonRendererStyle):
32281         (WebCore::HTMLOptionElement::customStyleForRenderer):
32282         (WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
32283         * html/HTMLOptionElement.h:
32284
32285 2012-10-26  Dirk Schulze  <krit@webkit.org>
32286
32287         -webkit-clip-path property should just reference clipPath
32288         https://bugs.webkit.org/show_bug.cgi?id=100531
32289
32290         Reviewed by Eric Seidel.
32291
32292         The -webkit-clip-path property should just reference clipPath. Added a check for that.
32293
32294         Test: css3/masking/clip-path-reference-of-fake-clipPath.html
32295
32296         * rendering/RenderLayer.cpp:
32297         (WebCore::RenderLayer::paintLayerContents):
32298
32299 2012-10-26  Aaron Colwell  <acolwell@chromium.org>
32300
32301         Remove the circular reference between TextTrack and TextTrackCue
32302         https://bugs.webkit.org/show_bug.cgi?id=100300
32303
32304         Reviewed by Eric Carlson.
32305
32306         Changed TextTrackCue.m_track to a normal pointer to break the circular
32307         reference that was keeping both objects from ever getting deleted.
32308
32309         No new tests. This simply fixes a memory leak.
32310
32311         * html/track/TextTrack.cpp:
32312         (WebCore::TextTrack::~TextTrack):
32313         * html/track/TextTrackCue.cpp:
32314         (WebCore::TextTrackCue::TextTrackCue):
32315         (WebCore::TextTrackCue::~TextTrackCue):
32316         (WebCore::TextTrackCue::track):
32317         (WebCore::TextTrackCue::setTrack):
32318         * html/track/TextTrackCue.h:
32319         (TextTrackCue):
32320
32321 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32322
32323         Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
32324         https://bugs.webkit.org/show_bug.cgi?id=100535
32325
32326         Reviewed by Pavel Feldman.
32327
32328         Added SourceMappingChanged event to UISourceCode and made
32329         JavaScriptSourceFrame update ScriptFile events listeners on it.
32330
32331         * inspector/front-end/JavaScriptSourceFrame.js:
32332         (WebInspector.JavaScriptSourceFrame):
32333         (WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
32334         (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
32335         * inspector/front-end/ResourceScriptMapping.js:
32336         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
32337         * inspector/front-end/UISourceCode.js:
32338         (WebInspector.UISourceCode.prototype.setSourceMapping):
32339
32340 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32341
32342         Unreviewed, rolling out r132644.
32343         http://trac.webkit.org/changeset/132644
32344         https://bugs.webkit.org/show_bug.cgi?id=100497
32345
32346         Causes webkit_unit_tests
32347         MemoryInstrumentationTest.ImageObserver to fail.
32348
32349         * platform/network/ResourceRequestBase.cpp:
32350         (WebCore::ResourceRequestBase::reportMemoryUsage):
32351         * platform/network/ResourceRequestBase.h:
32352         (ResourceRequestBase):
32353         * platform/network/chromium/ResourceRequest.cpp:
32354         * platform/network/chromium/ResourceRequest.h:
32355
32356 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32357
32358         [Qt] MiniBrowser segfaults on exit after using WebGL.
32359         https://bugs.webkit.org/show_bug.cgi?id=100523
32360
32361         The display connection must not be closed before
32362         destroying the offscreen window.
32363         Therefore opening the connection is moved to the
32364         getXWindow() function. And closing the connection
32365         is being moved to the destructor of the offscreen window.
32366
32367         Reviewed by Kenneth Rohde Christiansen.
32368
32369
32370         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32371         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32372         (WebCore::OffScreenRootWindow::getXWindow):
32373         (OffScreenRootWindow):
32374         (WebCore::OffScreenRootWindow::display):
32375         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32376         (WebCore):
32377         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32378         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32379         (WebCore::GraphicsSurfacePrivate::createSurface):
32380
32381 2012-10-26  Parth Patel  <parpatel@rim.com>
32382
32383         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
32384         Generic ThreadUnsafe Singleton
32385         https://bugs.webkit.org/show_bug.cgi?id=100529
32386
32387         Reviewed by Yong Li.
32388
32389         No new tests added as there was no behavioural change.
32390
32391         * platform/network/blackberry/NetworkManager.cpp:
32392         (WebCore):
32393         * platform/network/blackberry/NetworkManager.h:
32394         (NetworkManager):
32395
32396 2012-10-26  Mike West  <mkwst@chromium.org>
32397
32398         Web Inspector: Fix log-type icon alignment.
32399         https://bugs.webkit.org/show_bug.cgi?id=100520
32400
32401         Reviewed by Yury Semikhatsky.
32402
32403         The icons are just a pixel or two off, and it's driving me nuts.
32404
32405         * inspector/front-end/inspector.css:
32406         (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
32407         (.console-warning-level::before):
32408
32409 2012-10-26  Erik Arvidsson  <arv@chromium.org>
32410
32411         Replaceable attributes should also have readonly
32412         https://bugs.webkit.org/show_bug.cgi?id=91768
32413
32414         Reviewed by Adam Barth.
32415
32416         This updates the code generators for JSC and V8 to handle this case correctly.
32417
32418         * Modules/intents/DOMWindowIntents.idl:
32419         * bindings/scripts/CodeGeneratorJS.pm:
32420         * bindings/scripts/CodeGeneratorV8.pm:
32421         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
32422         * bindings/scripts/test/ObjC/DOMTestObj.h:
32423         * bindings/scripts/test/ObjC/DOMTestObj.mm:
32424         * bindings/scripts/test/TestObj.idl:
32425         * bindings/scripts/test/V8/V8TestObj.cpp:
32426         * page/DOMWindow.idl:
32427         * workers/WorkerContext.idl:
32428
32429 2012-10-26  Nico Weber  <thakis@chromium.org>
32430
32431         Clear m_orientation in FrameData::clear() for skia
32432         https://bugs.webkit.org/show_bug.cgi?id=100456
32433
32434         Reviewed by Stephen White.
32435
32436         clear() is only called by the FrameData destructor and for multi-image
32437         images in BitmapImage::destroyDecodedData(). Multi-frame images don't
32438         have exif data, so this patch should have no effect in practice. It
32439         makes the skia code match the CG code in BitmapImageCG.cpp though.
32440
32441         * platform/graphics/skia/ImageSkia.cpp:
32442         (WebCore::FrameData::clear):
32443
32444 2012-10-26  Florin Malita  <fmalita@chromium.org>
32445
32446         Crash on loading SVG filter resource on HTML element
32447         https://bugs.webkit.org/show_bug.cgi?id=100491
32448
32449         Reviewed by Dirk Schulze.
32450
32451         Skip non-filter elements referenced via -webkit-filter.
32452
32453         Test: svg/filters/filter-reference-crash.html
32454
32455         * rendering/RenderLayerFilterInfo.cpp:
32456         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
32457
32458 2012-10-26  Antti Koivisto  <antti@apple.com>
32459
32460         Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
32461         https://bugs.webkit.org/show_bug.cgi?id=100514
32462
32463         Reviewed by Anders Carlsson.
32464
32465         DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
32466         the document. The function is relatively slow.
32467         
32468         This patch caches the result of the last check for 5 seconds. Based on code comments
32469         prefetching is disabled with proxies due to regressing performance with some configurations.
32470         Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.
32471
32472         * platform/network/DNSResolveQueue.cpp:
32473         (WebCore::DNSResolveQueue::DNSResolveQueue):
32474         
32475             Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
32476             
32477         (WebCore):
32478         (WebCore::DNSResolveQueue::isUsingProxy):
32479         (WebCore::DNSResolveQueue::add):
32480         (WebCore::DNSResolveQueue::fired):
32481         * platform/network/DNSResolveQueue.h:
32482         (DNSResolveQueue):
32483
32484 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32485
32486         Unreviewed, rolling out r132662.
32487         http://trac.webkit.org/changeset/132662
32488         https://bugs.webkit.org/show_bug.cgi?id=100528
32489
32490         It is not necessary any more. (Requested by loislo on
32491         #webkit).
32492
32493         * platform/qt/MemoryUsageSupportQt.cpp:
32494         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32495         (WebCore):
32496
32497 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32498
32499         Unreviewed build fix for Qt builders.
32500
32501         * platform/qt/MemoryUsageSupportQt.cpp:
32502
32503 2012-10-26  Csaba Osztrogonác  <ossy@webkit.org>
32504
32505         Unreviewed, rolling out r132658.
32506         http://trac.webkit.org/changeset/132658
32507         https://bugs.webkit.org/show_bug.cgi?id=100515
32508
32509         It broke the Qt build
32510
32511         * inspector/InspectorMemoryAgent.cpp:
32512         (WebCore::addPlatformComponentsInfo):
32513         (WebCore):
32514         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32515         * platform/MemoryUsageSupport.cpp:
32516         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32517         * platform/MemoryUsageSupport.h:
32518         (ComponentInfo):
32519         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
32520         (MemoryUsageSupport):
32521         * platform/PlatformMemoryInstrumentation.cpp:
32522         (WebCore):
32523         * platform/PlatformMemoryInstrumentation.h:
32524         (PlatformMemoryTypes):
32525         * platform/chromium/MemoryUsageSupportChromium.cpp:
32526         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32527
32528 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32529
32530         Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
32531         https://bugs.webkit.org/show_bug.cgi?id=100522
32532
32533         Reviewed by Pavel Feldman.
32534
32535         Method appendApplicableItems now receives event as a parameter.
32536         HandlerRegistry now makes sure that it is not called more than once for certain context menu event.
32537
32538         * inspector/front-end/BreakpointsSidebarPane.js:
32539         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32540         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
32541         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32542         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
32543         * inspector/front-end/CallStackSidebarPane.js:
32544         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
32545         * inspector/front-end/ConsoleView.js:
32546         * inspector/front-end/ContextMenu.js:
32547         (WebInspector.ContextMenu):
32548         (WebInspector.ContextMenu.prototype.show):
32549         (WebInspector.ContextMenu.prototype.appendApplicableItems):
32550         (WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
32551         * inspector/front-end/CookieItemsView.js:
32552         (WebInspector.CookieItemsView.prototype._contextMenu):
32553         * inspector/front-end/DOMBreakpointsSidebarPane.js:
32554         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
32555         * inspector/front-end/DataGrid.js:
32556         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
32557         * inspector/front-end/DefaultTextEditor.js:
32558         (WebInspector.DefaultTextEditor.prototype._contextMenu):
32559         * inspector/front-end/ElementsPanel.js:
32560         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
32561         * inspector/front-end/ElementsPanelDescriptor.js:
32562         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
32563         * inspector/front-end/ElementsTreeOutline.js:
32564         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
32565         * inspector/front-end/HandlerRegistry.js:
32566         (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
32567         * inspector/front-end/ImageView.js:
32568         (WebInspector.ImageView.prototype._contextMenu):
32569         * inspector/front-end/NavigatorView.js:
32570         (WebInspector.NavigatorView.prototype.handleContextMenu):
32571         * inspector/front-end/NetworkPanel.js:
32572         (WebInspector.NetworkLogView.prototype._contextMenu):
32573         * inspector/front-end/NetworkPanelDescriptor.js:
32574         (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
32575         * inspector/front-end/ObjectPropertiesSection.js:
32576         (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
32577         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
32578         * inspector/front-end/ProfilesPanel.js:
32579         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
32580         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
32581         * inspector/front-end/ResourcesPanel.js:
32582         (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
32583         (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
32584         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
32585         (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
32586         * inspector/front-end/ScriptsNavigator.js:
32587         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
32588         * inspector/front-end/ScriptsPanel.js:
32589         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
32590         * inspector/front-end/ScriptsPanelDescriptor.js:
32591         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
32592         * inspector/front-end/StylesSidebarPane.js:
32593         (WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
32594         * inspector/front-end/TabbedPane.js:
32595         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
32596         * inspector/front-end/TimelinePanel.js:
32597         (WebInspector.TimelinePanel.prototype._contextMenu):
32598         * inspector/front-end/WatchExpressionsSidebarPane.js:
32599         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
32600         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
32601
32602 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32603
32604         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
32605         https://bugs.webkit.org/show_bug.cgi?id=100515
32606
32607         Reviewed by Yury Semikhatsky.
32608
32609         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
32610
32611         * inspector/InspectorMemoryAgent.cpp:
32612         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32613         * platform/MemoryUsageSupport.cpp:
32614         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32615         * platform/MemoryUsageSupport.h:
32616         (MemoryUsageSupport):
32617         * platform/PlatformMemoryInstrumentation.cpp:
32618         (WebCore):
32619         * platform/PlatformMemoryInstrumentation.h:
32620         (PlatformMemoryTypes):
32621         * platform/chromium/MemoryUsageSupportChromium.cpp:
32622         (reportMemoryUsage):
32623         (WebCore::reportGlyphCache):
32624         (WebCore):
32625         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32626
32627 2012-10-26  Kent Tamura  <tkent@chromium.org>
32628
32629         [Chromium] Build fix for r132650.
32630         https://bugs.webkit.org/show_bug.cgi?id=100482
32631
32632         * platform/text/LocaleWin.cpp:
32633         (WebCore::LocaleWin::timeFormat):
32634
32635 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32636
32637         [v8] Memory instrumentation: don't count memory of WrapperTypeInfo
32638         https://bugs.webkit.org/show_bug.cgi?id=100517
32639
32640         Reviewed by Alexander Pavlov.
32641
32642         * bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
32643         pointers to WrapperTypeInfo objects as they are static fields and belong to
32644         the data segment.
32645         (WTF):
32646
32647 2012-10-26  Kent Tamura  <tkent@chromium.org>
32648
32649         Refactor Localizer-related classes.
32650         https://bugs.webkit.org/show_bug.cgi?id=100482
32651
32652         Reviewed by Kentaro Hara.
32653
32654         - Localizer has unused code
32655          Localizer should have function implementations only if they are used in
32656          multiple subclasses.
32657         - Some Localizer subclasses hide Localizer data members
32658         - Should use String::isNull to check initialization-or-not
32659
32660         No new tests. This should not change any behavior.
32661
32662         * platform/text/Localizer.h:
32663         (Localizer):
32664         - timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
32665         - Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
32666           m_timeAMPMLabels
32667         * platform/text/Localizer.cpp:
32668         Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.
32669
32670         * platform/text/LocaleICU.h:
32671         (LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
32672         * platform/text/LocaleICU.cpp:
32673         (WebCore::LocaleICU::initializeDateTimeFormat):
32674         Use new data members instead of Localizer data members.
32675         (WebCore::LocaleICU::dateFormat): Use isNull.
32676
32677         * platform/text/LocaleNone.cpp:
32678         (LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
32679         implementations, and m_timeAMPMLabels.
32680         (WebCore::LocaleNone::timeFormat): Returns the HTML time format.
32681         (WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
32682         (WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".
32683
32684         * platform/text/LocaleWin.h:
32685         (LocaleWin): Add m_timeFormatWithSeconds.
32686         * platform/text/LocaleWin.cpp:
32687         (WebCore::LocaleWin::dateFormat): Use isNull.
32688         (WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.
32689
32690         * platform/text/mac/LocaleMac.h:
32691         (LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
32692         * platform/text/mac/LocaleMac.mm:
32693         (WebCore::LocaleMac::timeFormat): Follow the renaming.
32694         (WebCore::LocaleMac::shortTimeFormat): Ditto.
32695
32696 2012-10-26  Kent Tamura  <tkent@chromium.org>
32697
32698         Crash in PagePopupController by events after WebPagePopupImpl::closePopup
32699         https://bugs.webkit.org/show_bug.cgi?id=100454
32700
32701         Reviewed by Hajime Morita.
32702
32703         No new tests. The bug is timing-dependent.
32704
32705         * page/DOMWindowPagePopup.cpp:
32706         (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
32707         Calls clearPagePopupClient for the associalated PagePopupController object.
32708         * page/PagePopupController.cpp:
32709         (WebCore::PagePopupController::setValueAndClosePopup):
32710         Do nothing if m_popupClient is 0.
32711         (WebCore::PagePopupController::localizeNumberString): Ditto.
32712         (WebCore::PagePopupController::clearPagePopupClient): Added.
32713         * page/PagePopupController.h:
32714         (PagePopupController): Declare clearPagePopupClient.
32715
32716 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
32717
32718         Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
32719         https://bugs.webkit.org/show_bug.cgi?id=100220
32720
32721         Reviewed by Yury Semikhatsky.
32722
32723         * inspector/front-end/Settings.js:
32724         (WebInspector.ExperimentsSettings):
32725         * inspector/front-end/SettingsScreen.js:
32726         (WebInspector.UserAgentSettingsTab):
32727
32728 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32729
32730         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
32731         https://bugs.webkit.org/show_bug.cgi?id=100497
32732
32733         Reviewed by Alexander Pavlov.
32734
32735         Added memory reporting method to Chromium implementation of ResourceRequest.
32736
32737         * platform/network/ResourceRequestBase.cpp:
32738         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
32739         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
32740         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
32741         in the descendant but ResourceRequestBase doesn't have any virtual methods
32742         and shouldn't be used directly (ResourceRequest should be used instead).
32743         * platform/network/ResourceRequestBase.h:
32744         (ResourceRequestBase):
32745         * platform/network/chromium/ResourceRequest.cpp:
32746         (WebCore::ResourceRequest::reportMemoryUsage):
32747         (WebCore):
32748         * platform/network/chromium/ResourceRequest.h:
32749         (ResourceRequest):
32750
32751 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32752
32753         Web Inspector: Remove the on-hover highlighting of console messages
32754         https://bugs.webkit.org/show_bug.cgi?id=100511
32755
32756         Reviewed by Pavel Feldman.
32757
32758         This clashes with the hovered element highlight in console messages.
32759
32760         * inspector/front-end/inspector.css:
32761         (ol.watch-expressions > li.hovered):
32762
32763 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32764
32765         Unreviewed, rolling out r132612.
32766         http://trac.webkit.org/changeset/132612
32767         https://bugs.webkit.org/show_bug.cgi?id=100512
32768
32769         Crashes fast/events/tabindex-focus-blur-all.html in debug mode
32770         (Requested by pfeldman on #webkit).
32771
32772         * rendering/AutoTableLayout.cpp:
32773         (WebCore::AutoTableLayout::recalcColumn):
32774         * rendering/FixedTableLayout.cpp:
32775         (WebCore::FixedTableLayout::calcWidthArray):
32776         * rendering/RenderTable.cpp:
32777         (WebCore::RenderTable::layout):
32778         * rendering/RenderTableCol.cpp:
32779         (WebCore::RenderTableCol::styleDidChange):
32780         (WebCore::RenderTableCol::updateFromElement):
32781         (WebCore::RenderTableCol::computePreferredLogicalWidths):
32782         * rendering/RenderTableCol.h:
32783         (RenderTableCol):
32784
32785 2012-10-26  Pavel Feldman  <pfeldman@chromium.org>
32786
32787         Web Inspector: fast return upon setting the same dock side.
32788         https://bugs.webkit.org/show_bug.cgi?id=100510
32789
32790         Reviewed by Vsevolod Vlasov.
32791
32792         Added fast return.
32793
32794         * inspector/front-end/DockController.js:
32795
32796 2012-10-26  Simon Hausmann  <simon.hausmann@digia.com>
32797
32798         Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)
32799
32800         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32801         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32802
32803 2012-10-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
32804
32805         Printing should use use high resolution images when available
32806         https://bugs.webkit.org/show_bug.cgi?id=100488
32807
32808         Reviewed by Antti Koivisto.
32809
32810         The images loaded using -webkit-device-pixel-ratio depends on
32811         the display type (deviceScaleFactor) and thus affects which
32812         images are being used for printing. Printing should always
32813         use the higher resolution images (aka 'retina' images).
32814
32815         Test: fast/media/mq-pixel-ratio-print.html
32816
32817         * css/MediaQueryEvaluator.cpp:
32818         (WebCore::device_pixel_ratioMediaFeatureEval):
32819
32820 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32821
32822         Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
32823         https://bugs.webkit.org/show_bug.cgi?id=100496
32824
32825         Reviewed by Yury Semikhatsky.
32826
32827         It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
32828
32829         * dom/WebCoreMemoryInstrumentation.cpp:
32830         (WebCore):
32831         * dom/WebCoreMemoryInstrumentation.h:
32832         (WebCoreMemoryTypes):
32833         * inspector/InspectorResourceAgent.cpp:
32834         (WebCore::InspectorResourceAgent::reportMemoryUsage):
32835         (WebCore):
32836         * inspector/InspectorResourceAgent.h:
32837         (InspectorResourceAgent):
32838         * inspector/NetworkResourcesData.cpp:
32839         (WebCore::XHRReplayData::reportMemoryUsage):
32840         (WebCore):
32841         (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
32842         (WebCore::NetworkResourcesData::reportMemoryUsage):
32843         * inspector/NetworkResourcesData.h:
32844         (XHRReplayData):
32845         (ResourceData):
32846         (NetworkResourcesData):
32847
32848 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32849
32850         Unreviewed, rolling out r132493.
32851         http://trac.webkit.org/changeset/132493
32852         https://bugs.webkit.org/show_bug.cgi?id=100509
32853
32854         It didn't fix the tests on the bot as we had hoped. (Requested
32855         by drott on #webkit).
32856
32857         * platform/network/cf/ResourceErrorCF.cpp:
32858         (WebCore::ResourceError::ResourceError):
32859
32860 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32861
32862         [Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
32863         https://bugs.webkit.org/show_bug.cgi?id=100493
32864
32865         Once QXcbNativeInterface::nativeResourceForContext() can provide the
32866         GLXContext for an existing QOpenGLContext, this patch shall be reverted.
32867
32868         Reviewed by Simon Hausmann.
32869
32870         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32871         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32872
32873 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32874
32875         [Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
32876         https://bugs.webkit.org/show_bug.cgi?id=100492
32877
32878         This patch removes most of the QOpenGLContext related code
32879         from GraphicsSurfaceGLX. This allows sharing almost all
32880         GraphicsSurfaceGLX code with EFL, by relying on pure GLX.
32881
32882         Reviewed by Kenneth Rohde Christiansen.
32883
32884         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32885         (WebCore::OffScreenRootWindow::get):
32886         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32887         (OffScreenRootWindow):
32888         (WebCore):
32889         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32890         (WebCore::GraphicsSurfacePrivate::createSurface):
32891         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32892         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32893         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32894         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32895         (GraphicsSurfacePrivate):
32896         (WebCore::resolveGLMethods):
32897
32898 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
32899
32900         [EFL][WK2] Enable WebGL
32901         https://bugs.webkit.org/show_bug.cgi?id=97652
32902
32903         Reviewed by Gyuyoung Kim.
32904
32905         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
32906         Depends on GLX since Evas doesn't provide the necessary functionality.
32907
32908         No new tests. Covered by existing tests.
32909
32910         * PlatformEfl.cmake:
32911         * platform/graphics/GraphicsContext3D.h:
32912         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
32913         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
32914         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
32915         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
32916         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
32917         (WebCore):
32918         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
32919         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
32920         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
32921         * platform/graphics/efl/GraphicsContext3DPrivate.h:
32922         (GraphicsContext3DPrivate):
32923         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
32924         (WebCore::GraphicsContext3D::reshape):
32925         * platform/graphics/surfaces/efl: Added.
32926         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
32927         (WebCore):
32928         (WebCore::OffScreenRootWindow::get):
32929         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32930         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32931         (WebCore::GraphicsSurfacePrivate::createSurface):
32932         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32933         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32934         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32935         (WebCore::GraphicsSurface::platformBeginPaint):
32936         (WebCore::GraphicsSurface::createReadOnlyImage):
32937         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32938         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
32939         (WebCore):
32940         (OffScreenRootWindow):
32941         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32942         (GraphicsSurfacePrivate):
32943         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32944         (WebCore::GraphicsSurfacePrivate::createPixmap):
32945         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32946         (WebCore::GraphicsSurfacePrivate::display):
32947         (WebCore::GraphicsSurfacePrivate::glxPixmap):
32948         (WebCore::GraphicsSurfacePrivate::size):
32949         (WebCore::GraphicsSurfacePrivate::glContext):
32950         (WebCore::resolveGLMethods):
32951         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
32952         (WebCore):
32953         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
32954         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32955         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32956         (WebCore::GraphicsSurfacePrivate::createSurface):
32957         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32958         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32959         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32960
32961 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32962
32963         Web Inspector: [Overrides] Do not persist the User Agent "master switch"
32964         https://bugs.webkit.org/show_bug.cgi?id=100484
32965
32966         Reviewed by Yury Semikhatsky.
32967
32968         The User Agent override state is managed in the front-end, just like for other override-able parameters.
32969
32970         * inspector/InspectorResourceAgent.cpp:
32971         (WebCore::InspectorResourceAgent::disable):
32972         * inspector/front-end/NetworkManager.js:
32973         (WebInspector.NetworkManager.get NetworkAgent):
32974         (WebInspector.NetworkManager):
32975         * inspector/front-end/SettingsScreen.js:
32976         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
32977         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
32978         * inspector/front-end/UserAgentSupport.js:
32979         (WebInspector.UserAgentSupport):
32980         (WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
32981         (WebInspector.UserAgentSupport.prototype._userAgentChanged):
32982
32983 2012-10-26  Takashi Sakamoto  <tasak@google.com>
32984
32985         [Shadow]: removing styles in shadow dom subtree causes crash.
32986         https://bugs.webkit.org/show_bug.cgi?id=100455
32987
32988         Reviewed by Hajime Morita.
32989
32990         To quickly check whether shadow roots or elements have any scoped
32991         styles or not, elements have hasStyleScoped flag. If elements have
32992         any scoped styles, the styles are direct children of the element.
32993         The original code just sees how many chilren are scoped style or not.
32994         However styles in shadow dom subtree are registered with the shadow
32995         root but are not always direct children of shadow roots. So to check
32996         whether shadow roots have any scoped styles, modified to count
32997         number of styles registered with the shadow root.
32998
32999         Test: fast/dom/shadow/remove-styles-in-shadow-crash.html
33000
33001         * dom/Node.cpp:
33002         (WebCore::Node::registerScopedHTMLStyleChild):
33003         (WebCore::Node::unregisterScopedHTMLStyleChild):
33004         Made the above two method virtual. class ShadowRoot overrides these
33005         methods.
33006         (WebCore::Node::numberOfScopedHTMLStyleChildren):
33007         Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
33008         are moved into Node.cpp.
33009         * dom/Node.h:
33010         (Node):
33011         * dom/ShadowRoot.cpp:
33012         (WebCore::ShadowRoot::ShadowRoot):
33013         (WebCore::ShadowRoot::registerScopedHTMLStyleChild):
33014         (WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
33015         Modify to count how many styles are registered with the shadow root.
33016         The "counting" is done when styles are registered and unregistered
33017         with the shadow root, i.e. style element is inserted into document or
33018         removed from document. When unregister some style, there are no more
33019         styles registered with the shadow root. Set style scoped flag false.
33020         * dom/ShadowRoot.h:
33021         (ShadowRoot):
33022         * html/HTMLStyleElement.cpp:
33023         * html/HTMLStyleElement.h:
33024         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
33025         Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
33026         moved .cpp to .h.
33027
33028 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33029
33030         Unreviewed, rolling out r132589.
33031         http://trac.webkit.org/changeset/132589
33032         https://bugs.webkit.org/show_bug.cgi?id=100498
33033
33034         Breaks font-face layout tests (Requested by pfeldman on
33035         #webkit).
33036
33037         * css/CSSFontFaceSource.cpp:
33038         (WebCore::CSSFontFaceSource::getFontData):
33039
33040 2012-10-26  Takashi Sakamoto  <tasak@google.com>
33041
33042         [Shadow DOM] Needs @host rule for ShadowDOM styling
33043         https://bugs.webkit.org/show_bug.cgi?id=88606
33044
33045         Reviewed by Hajime Morita.
33046
33047         Implemented @host-@rules according to the shadow dom spec:
33048         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
33049         The design doc is:
33050         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
33051
33052         Test: fast/dom/shadow/athost-atrules.html
33053
33054         * css/CSSGrammar.y.in:
33055         Added rules for parsing @host @-rules.
33056         * css/CSSParser.cpp:
33057         (WebCore::CSSParser::detectAtToken):
33058         Added a new token "@host".
33059         (WebCore::CSSParser::createHostRule):
33060         Added a new method to create an @host @-rule, which is invoked from
33061         (WebCore):
33062         * css/CSSParser.h:
33063         Added a declaration of the above new method: createHostRule.
33064         * css/CSSPropertySourceData.h:
33065         Added HOST_RULE to enum Type.
33066         * css/RuleSet.cpp:
33067         (WebCore::RuleData::RuleData):
33068         Modified multiple bool arguments into one argument. Now it
33069         uses combinations of values from enum AddRuleFlags.
33070         (WebCore::RuleSet::addRule):
33071         (WebCore::RuleSet::addRegionRule):
33072         (WebCore::RuleSet::addStyleRule):
33073         Updated according to the RuleData's change.
33074         Modified to Invoke increaseSpecificity if the given rule is @host
33075         @-rule.
33076         (WebCore::RuleSet::addRulesFromSheet):
33077         Invoked addHostRule if the given rule is @host @-rule.
33078         * css/RuleSet.h:
33079         (RuleData):
33080         (WebCore::RuleData::increaseSpecificity):
33081         Added a new method to increase selector's specificity. This method is
33082         used to make @host @-rules' specificity larger than normal author
33083         rules' specificity.
33084         (RuleSet):
33085         * css/StyleResolver.cpp:
33086         (WebCore::makeRuleSet):
33087         (WebCore::StyleResolver::addHostRule):
33088         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
33089         is used to make only StyleResolver know an implementation detail about
33090         class StyleScopeResolver.
33091         (WebCore::StyleResolver::appendAuthorStylesheets):
33092         Updated according to the RuleData's change.
33093         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
33094         A new method to find matched host rules when an element is given.
33095         This method invokes
33096         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
33097         matched host rules.
33098         (WebCore):
33099         (WebCore::StyleResolver::matchHostRules):
33100         A new method to find matched host rules when an element is given.
33101         This method invokes StyleScopeResolver::matchHostRules to find
33102         matched host rules.
33103         (WebCore::StyleResolver::matchScopedAuthorRules):
33104         Modified to invoke matchHostRules.
33105         (WebCore::StyleResolver::locateSharedStyle):
33106         Disable sibling style cache if the given element is a shadow host and
33107         any @host @-rules are applied to the element.
33108         * css/StyleResolver.h:
33109         (WebCore::StyleResolver::ensureScopeResolver):
33110         If no scopeResolver is created, create and return the instance.
33111         If created, just return the instance.
33112         (StyleResolver):
33113         * css/StyleRule.cpp:
33114         (WebCore::StyleRuleBase::reportMemoryUsage):
33115         (WebCore::StyleRuleBase::destroy):
33116         (WebCore::StyleRuleBase::copy):
33117         (WebCore::StyleRuleBase::createCSSOMWrapper):
33118         (WebCore::StyleRuleHost::StyleRuleHost):
33119         Implemented class StyleRuleHost. The class is almost the same as
33120         StyleRuleBlock except type.
33121         (WebCore):
33122         * css/StyleRule.h:
33123         (WebCore::StyleRuleBase::isHostRule):
33124         (StyleRuleHost):
33125         (WebCore::StyleRuleHost::create):
33126         (WebCore::StyleRuleHost::copy):
33127         (WebCore):
33128         * css/StyleScopeResolver.cpp:
33129         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
33130         A new method to create a new RuleSet for the given shadow root.
33131         (WebCore):
33132         (WebCore::StyleScopeResolver::atHostRuleSetFor):
33133         A new private inline method to obtain @host @-rules declared in
33134         the given shadow root.
33135         (WebCore::StyleScopeResolver::addHostRule):
33136         Added a new method to register @host @-rules with shadow roots.
33137         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
33138         A new method to find whether any @host @-rules are applied to
33139         the given host element.
33140         (WebCore::StyleScopeResolver::matchHostRules):
33141         A new method to find matched rules for the given host element.
33142         (WebCore::StyleScopeResolver::reportMemoryUsage):
33143         * css/StyleScopeResolver.h:
33144         (WebCore):
33145         (StyleScopeResolver):
33146         * css/StyleSheetContents.cpp:
33147         (WebCore::childRulesHaveFailedOrCanceledSubresources):
33148
33149 2012-10-26  Jaehun Lim  <ljaehun.lim@samsung.com>
33150
33151         [CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
33152         https://bugs.webkit.org/show_bug.cgi?id=100476
33153
33154         Reviewed by Kentaro Hara.
33155
33156         ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
33157         but the source file for that feature is omitted.
33158
33159         No new tests. Covered by existing tests.
33160
33161         * CMakeLists.txt:
33162
33163 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33164
33165         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
33166         https://bugs.webkit.org/show_bug.cgi?id=99861
33167
33168         Reviewed by Ojan Vafai.
33169
33170         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
33171         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
33172         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
33173         or else we would ignore the next layout hint on the <col> or <colgroup>.
33174
33175         Tests: fast/table/col-span-change-relayout.html
33176                fast/table/simplified-layout-table.html
33177
33178         * rendering/AutoTableLayout.cpp:
33179         (WebCore::AutoTableLayout::recalcColumn):
33180         * rendering/RenderTable.cpp:
33181         (WebCore::RenderTable::layout):
33182         Simplified the code now that we only need to iterate over the sections.
33183
33184         * rendering/FixedTableLayout.cpp:
33185         (WebCore::FixedTableLayout::calcWidthArray):
33186         Removed call to computePreferredLogicalWidths.
33187
33188         * rendering/RenderTableCol.cpp:
33189         (WebCore::RenderTableCol::styleDidChange):
33190         (WebCore::RenderTableCol::updateFromElement):
33191         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
33192
33193         (WebCore::RenderTableCol::computePreferredLogicalWidths):
33194         (WebCore::RenderTableCol::layout):
33195         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
33196         never called when it was possible.
33197
33198         (WebCore::RenderTableCol::propagateLayoutCueToTable):
33199         New helper function that forward any layout cue to the containing table, this works around
33200         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
33201         invalidateContainerPreferredLogicalWidths.
33202
33203         * rendering/RenderTableCol.h:
33204         Made the function that we are not expected to be called private.
33205
33206 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33207
33208         Unreviewed, rolling out r132601.
33209         http://trac.webkit.org/changeset/132601
33210         https://bugs.webkit.org/show_bug.cgi?id=100494
33211
33212         It broke the Qt build (Requested by Ossy on #webkit).
33213
33214         * PlatformEfl.cmake:
33215         * platform/graphics/GraphicsContext3D.h:
33216         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33217         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33218         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33219         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33220         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33221         (WebCore):
33222         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33223         (GraphicsContext3DPrivate):
33224         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33225         (WebCore::GraphicsContext3D::reshape):
33226         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33227         (WebCore::OffScreenRootWindow::get):
33228         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33229         (OffScreenRootWindow):
33230         (WebCore):
33231         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33232         (WebCore::GraphicsSurfacePrivate::createSurface):
33233         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33234         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33235         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33236         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33237         (GraphicsSurfacePrivate):
33238         (WebCore::resolveGLMethods):
33239
33240 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
33241
33242         Memory instrumentation: do not report memory occupied by v8::String
33243         https://bugs.webkit.org/show_bug.cgi?id=100487
33244
33245         Reviewed by Alexander Pavlov.
33246
33247         Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
33248         string cache.
33249
33250         * bindings/v8/V8Binding.cpp:
33251         (WTF):
33252
33253 2012-10-26  Mihnea Ovidenie  <mihnea@adobe.com>
33254
33255         [CSSRegions] Add support for auto-height regions with region-breaks
33256         https://bugs.webkit.org/show_bug.cgi?id=99952
33257
33258         Reviewed by David Hyatt.
33259
33260         This patch takes region breaks into account when computing the height for auto logical height regions.
33261         When a region break is encountered before/after an element from within a flow thread and we are in the layout
33262         phase in which we lay out the flow threads in regions unconstrained, we use the region break to
33263         compute the region override logical content height if the region break fits inside an auto logical height region.
33264         A region break inside an auto logical height region determines the region override logical content height, taking
33265         min/max height into account.
33266
33267         Tests: fast/regions/autoheight-allregions-nobreaks.html
33268                fast/regions/autoheight-allregions.html
33269                fast/regions/autoheight-breakafteralways-maxheight.html
33270                fast/regions/autoheight-breakbeforealways.html
33271                fast/regions/autoheight-firstregion-breakalways.html
33272                fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
33273                fast/regions/autoheight-lastregion-overflowauto.html
33274                fast/regions/autoheight-middleregion.html
33275                fast/regions/autoheight-secondregion-breakoutside.html
33276                fast/regions/autoheight-secondregion.html
33277                fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
33278                fast/regions/autoheight-singleregion-breakafteralways.html
33279                fast/regions/autoheight-singleregion-breakaftermargin.html
33280                fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
33281                fast/regions/autoheight-singleregion-breakbeforealways.html
33282                fast/regions/autoheight-singleregion-multiplebreaks.html
33283                fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
33284                fast/regions/autoheight-singleregion-overflowauto.html
33285
33286         * rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
33287         try to use it to determine the override logical content height for auto logical height regions.
33288         (WebCore::RenderBlock::applyBeforeBreak):
33289         (WebCore::RenderBlock::applyAfterBreak):
33290         * rendering/RenderFlowThread.cpp:
33291         (WebCore::RenderFlowThread::layout):
33292         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
33293         Simulate a region break at the end of the flow thread content.
33294         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
33295         (WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
33296         Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
33297         (WebCore::RenderFlowThread::addForcedRegionBreak):
33298         Extend the method to process region breaks. The method returns true if at least one auto logical height region
33299         has its override logical content height computed.        
33300         * rendering/RenderFlowThread.h:
33301         * rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
33302         (WebCore::RenderRegion::pageLogicalHeight):
33303         (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
33304
33305 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
33306
33307         [EFL][WK2] Enable WebGL
33308         https://bugs.webkit.org/show_bug.cgi?id=97652
33309
33310         Reviewed by Gyuyoung Kim.
33311
33312         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
33313         Depends on GLX since Evas doesn't provide the necessary functionality.
33314
33315         No new tests. Covered by existing tests.
33316
33317         * PlatformEfl.cmake:
33318         * platform/graphics/GraphicsContext3D.h:
33319         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33320         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33321         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33322         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33323         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33324         (WebCore):
33325         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
33326         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
33327         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
33328         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33329         (GraphicsContext3DPrivate):
33330         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33331         (WebCore::GraphicsContext3D::reshape):
33332         * platform/graphics/surfaces/efl: Added.
33333         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
33334         (WebCore):
33335         (WebCore::OffScreenRootWindow::get):
33336         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33337         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33338         (WebCore::GraphicsSurfacePrivate::createSurface):
33339         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33340         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33341         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33342         (WebCore::GraphicsSurface::platformBeginPaint):
33343         (WebCore::GraphicsSurface::createReadOnlyImage):
33344         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33345         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
33346         (WebCore):
33347         (OffScreenRootWindow):
33348         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
33349         (GraphicsSurfacePrivate):
33350         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
33351         (WebCore::GraphicsSurfacePrivate::createPixmap):
33352         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33353         (WebCore::GraphicsSurfacePrivate::display):
33354         (WebCore::GraphicsSurfacePrivate::glxPixmap):
33355         (WebCore::GraphicsSurfacePrivate::size):
33356         (WebCore::GraphicsSurfacePrivate::glContext):
33357         (WebCore::resolveGLMethods):
33358         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
33359         (WebCore):
33360         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
33361         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33362         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33363         (WebCore::GraphicsSurfacePrivate::createSurface):
33364         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33365         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33366         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33367
33368 2012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
33369
33370         Add feature flags for CSS Device Adaptation
33371         https://bugs.webkit.org/show_bug.cgi?id=95960
33372
33373         Reviewed by Kenneth Rohde Christiansen.
33374
33375         * Configurations/FeatureDefines.xcconfig:
33376         * GNUmakefile.am:
33377         * GNUmakefile.features.am:
33378
33379 2012-10-26  Li Yin  <li.yin@intel.com>
33380
33381         fast/forms/file/input-file-write-files.html should cover correct setting value
33382         https://bugs.webkit.org/show_bug.cgi?id=100085
33383
33384         Reviewed by Kentaro Hara.
33385
33386         From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
33387         On setting, if the new value is the empty string, it must empty the list of selected
33388         files; otherwise, it must throw an InvalidStateError exception.
33389
33390         Test: fast/forms/file/input-file-value.html
33391
33392         * html/HTMLInputElement.cpp:
33393         (WebCore::HTMLInputElement::setValue):
33394         (WebCore):
33395         * html/HTMLInputElement.h:
33396         (HTMLInputElement):
33397         * html/HTMLInputElement.idl:
33398
33399 2012-10-26  Keishi Hattori  <keishi@webkit.org>
33400
33401         Refactor calendar picker to remove _x/_y from DaysTable
33402         https://bugs.webkit.org/show_bug.cgi?id=100460
33403
33404         Reviewed by Kent Tamura.
33405
33406         _x/_y properties keep the coordinates for the selection but when we add
33407         week and month picking capabilities, the selection can't be expressed as
33408         a set of coordinates. This change will remove it.
33409
33410         No new tests. Covered by calendar-picker-*.html tests.
33411
33412         * Resources/pagepopups/calendarPicker.js:
33413         (DaysTable): Removed _x/_y properties.
33414         (DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
33415         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
33416         (DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
33417         (DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
33418         (DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
33419         (DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
33420         (DaysTable.prototype._deselect): Deselects all selections.
33421         (DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
33422         (DaysTable.prototype._handleMouseOut): Use _deselect.
33423         (DaysTable.prototype._handleKey): Lookup the selection position.
33424         (DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.
33425
33426 2012-10-26  Ningxin Hu  <ningxin.hu@intel.com>
33427
33428         FileReader abort case causes Chromium renderer crash
33429         https://bugs.webkit.org/show_bug.cgi?id=99142
33430
33431         Reviewed by Kentaro Hara.
33432
33433         Before dispatching load event, FileReader should check if it is
33434         in aborting.
33435
33436         Test: manually launch fast/files/file-reader-abort.html in Chromium
33437         browser and compare the result with
33438         fast/files/file-reader-abort-expected.txt.
33439
33440         * fileapi/FileReader.cpp:
33441         (WebCore::FileReader::didFinishLoading):
33442
33443 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33444
33445         Generate less repaint calls during subtree detaching
33446         https://bugs.webkit.org/show_bug.cgi?id=99741
33447
33448         Reviewed by Eric Seidel.
33449
33450         Following bug 98336, detach is now a subtree top-down operation. Because we
33451         track visual overflow from our children during layout for most cases, we can
33452         generate a repaint only on the subtree root.
33453
33454         On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
33455         26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
33456         it decreases the time by 35%. This is due to being the best case and we now generate
33457         only one repaint per detach phase.
33458
33459         Covered by existing pixels tests (including but not limited to repaint ones).
33460
33461         * rendering/RenderObject.cpp:
33462         (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
33463         Changed the function not to be recursive anymore to generate one painting for
33464         our root only. Added a FIXME about using our RenderLayer for repainting to avoid
33465         the cost of computing our absolute repaint rectangle.
33466
33467         * rendering/RenderObjectChildList.cpp:
33468         (WebCore::RenderObjectChildList::removeChildNode):
33469         Removed the logic for repainting in the general case. However we still force a repaint
33470         if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
33471         objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
33472         are properly accounted for in our clipppedOverflowRectForRepaint).
33473
33474 2012-10-26  Kenichi Ishibashi  <bashi@chromium.org>
33475
33476         local(Helvetica) in src descriptor prevent fallback
33477         https://bugs.webkit.org/show_bug.cgi?id=100446
33478
33479         Reviewed by Dan Bernstein.
33480
33481         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
33482         of font family names, so that if the family name specified in the font-family
33483         property is not available on the system, but the its alias is available,
33484         it will be used instead. This is appropriate for the font-family property,
33485         but not for font family names specified in the local() function of the src
33486         descriptor in a @font-face rule.
33487
33488         This patch disables the mechanism while checking src descriptor of @font-face.
33489
33490         No new tests. It's difficult to test the change because 'Helvetica' can
33491         be mapped any other font. For example, chromium DRT uses FontConfig to
33492         map Helvetica to Times New Roman. Other ports may map Helvetica to other
33493         fonts. We can't define the expected result.
33494
33495         * css/CSSFontFaceSource.cpp:
33496         (WebCore::CSSFontFaceSource::getFontData):
33497         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
33498         This disables aliasing font family names in FontCache.
33499
33500 2012-10-26  Eugene Klyuchnikov  <eustas.bug@gmail.com>
33501
33502         Web Inspector: Doctype Audits panel code
33503         https://bugs.webkit.org/show_bug.cgi?id=100371
33504
33505         Reviewed by Alexander Pavlov.
33506
33507         This is a preparation step for ongoing refactoring.
33508         It is much easier to read doctyped code.
33509
33510         * inspector/front-end/AuditRules.js:
33511         (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
33512         Replaced "undefined" with "null"
33513         * inspector/front-end/AuditsPanel.js:
33514         (WebInspector.AuditCategory.prototype.callbackWrapper):
33515         Removed callback parameter indirection.        
33516         (WebInspector.AuditRuleResult.prototype.addFormatted):
33517         Converted private instance function to scoped function.
33518
33519 2012-10-26  János Badics  <jbadics@inf.u-szeged.hu>
33520
33521         [Qt]REGRESSION(r131428): cookies.db created on wrong place
33522         https://bugs.webkit.org/show_bug.cgi?id=99445
33523
33524         Reviewed by Simon Hausmann.
33525
33526         Added a slash to the path of cookies.db in CookieJarQt.cpp.
33527
33528         * platform/qt/CookieJarQt.cpp:
33529         (WebCore::SharedCookieJarQt::SharedCookieJarQt):
33530
33531 2012-10-26  Adam Barth  <abarth@webkit.org>
33532
33533         Unreviewed. This ASSERT is no longer correct (and fires on many tests.)
33534
33535         * bindings/v8/V8DOMWrapper.h:
33536         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
33537
33538 2012-10-26  Kent Tamura  <tkent@chromium.org>
33539
33540         [Chromium-Win] Support shortTimeFormat
33541         https://bugs.webkit.org/show_bug.cgi?id=100471
33542
33543         Reviewed by Kentaro Hara.
33544
33545         No new tests. Covered by fast/forms/time-multiple-fields/ and
33546         WebKit/chromium/tests/LocaleWinTest.
33547
33548         * platform/text/LocaleWin.cpp:
33549         (WebCore::LocaleWin::shortTimeFormat):
33550         Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
33551         from the format by LOCALE_STIMEFORMAT.
33552         * platform/text/LocaleWin.h:
33553         (LocaleWin): Declare m_timeFormatWithoutSeconds.
33554
33555 2012-10-26  Adam Barth  <abarth@webkit.org>
33556
33557         Unreviewed. Update run-bindings-tests results after recent active DOM
33558         object changes.
33559
33560         * bindings/scripts/test/V8/V8TestInterface.cpp:
33561         (WebCore::V8TestInterface::constructorCallback):
33562         (WebCore::V8TestInterface::wrapSlow):
33563         * bindings/scripts/test/V8/V8TestInterface.h:
33564         (WebCore::V8TestInterface::wrap):
33565         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
33566         (WebCore::V8TestNamedConstructorConstructorCallback):
33567         (WebCore::V8TestNamedConstructor::wrapSlow):
33568         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
33569         (WebCore::V8TestNamedConstructor::wrap):
33570
33571 2012-10-26  MORITA Hajime  <morrita@google.com>
33572
33573         [V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
33574         https://bugs.webkit.org/show_bug.cgi?id=100462
33575
33576         Reviewed by Adam Barth.
33577
33578         Removed the no longer correct assertion statement.
33579
33580         No new tests. Covered by breaking tests.
33581
33582         * bindings/v8/V8DOMWrapper.cpp:
33583         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
33584
33585 2012-10-25  Adam Barth  <abarth@webkit.org>
33586
33587         [V8] WorkerContextExecutionProxy should use ScopedPersistent
33588         https://bugs.webkit.org/show_bug.cgi?id=100443
33589
33590         Reviewed by Eric Seidel.
33591
33592         This class was manually re-implementing the ScopedPersistent pattern.
33593
33594         * bindings/v8/WorkerContextExecutionProxy.cpp:
33595         (WebCore::WorkerContextExecutionProxy::dispose):
33596         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
33597         (WebCore::WorkerContextExecutionProxy::evaluate):
33598         * bindings/v8/WorkerContextExecutionProxy.h:
33599         (WebCore::WorkerContextExecutionProxy::context):
33600         (WorkerContextExecutionProxy):
33601
33602 2012-10-25  Peter Wang  <peter.wang@torchmobile.com.cn>
33603
33604         A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
33605         https://bugs.webkit.org/show_bug.cgi?id=100347
33606
33607         Reviewed by Mark Lam and Filip Pizlo.
33608
33609         In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
33610         since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".
33611
33612         No new test case, since no behaviour changed.
33613
33614         * bindings/js/JavaScriptCallFrame.cpp:
33615         (WebCore::JavaScriptCallFrame::evaluate):
33616
33617 2012-10-25  Adam Barth  <abarth@webkit.org>
33618
33619         [V8] We can merge the wrapper maps for DOM objects and active DOM objects
33620         https://bugs.webkit.org/show_bug.cgi?id=100432
33621
33622         Reviewed by Eric Seidel.
33623
33624         Now that we use the same object to visit both DOM objects and active
33625         DOM objects, there's no reason to keep them in separate hash maps.
33626
33627         * bindings/scripts/CodeGeneratorV8.pm:
33628         (GetDomMapName):
33629         * bindings/v8/DOMDataStore.cpp:
33630         (WebCore::DOMDataStore::DOMDataStore):
33631         (WebCore::DOMDataStore::~DOMDataStore):
33632         (WebCore::DOMDataStore::reportMemoryUsage):
33633         * bindings/v8/DOMDataStore.h:
33634         (DOMDataStore):
33635         * bindings/v8/V8DOMMap.cpp:
33636         * bindings/v8/V8DOMMap.h:
33637         (NodeWrapperVisitor):
33638         (WebCore):
33639         * bindings/v8/V8DOMWrapper.h:
33640         (V8DOMWrapper):
33641         * bindings/v8/V8GCController.cpp:
33642         (WebCore::V8GCController::majorGCPrologue):
33643         * bindings/v8/custom/V8WebSocketCustom.cpp:
33644         (WebCore::V8WebSocket::constructorCallback):
33645         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
33646         (WebCore::V8XMLHttpRequest::constructorCallback):
33647
33648 2012-10-25  Charles Wei  <charles.wei@torchmobile.com.cn>
33649
33650         [BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
33651         https://bugs.webkit.org/show_bug.cgi?id=100448
33652
33653         Reviewed by George Staikos.
33654
33655         Internally reviewed by Joe Mason.
33656
33657         We didn't check the persistent Credential Storage for Credentials when challenged by the server.
33658
33659         Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.
33660
33661         * platform/network/blackberry/NetworkJob.cpp:
33662         (WebCore::NetworkJob::sendRequestWithCredentials):
33663
33664 2012-10-25  Joshua Bell  <jsbell@chromium.org>
33665
33666         IndexedDB: Add histogram statistics for backing store errors
33667         https://bugs.webkit.org/show_bug.cgi?id=98465
33668
33669         Reviewed by Adam Barth.
33670
33671         Define a macro for consistent asserting (during development), logging, and recording
33672         internal backing store errors via histograms. Define specific histogram values to
33673         track issues with opening backing stores to gather stats on corruption.
33674
33675         No new tests - just the stats, ma'am, just the stats.
33676
33677         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
33678         (WebCore):
33679         (WebCore::setUpMetadata):
33680         (WebCore::IDBLevelDBBackingStore::open):
33681         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
33682         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
33683         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
33684         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
33685         (WebCore::deleteRange):
33686         (WebCore::IDBLevelDBBackingStore::getObjectStores):
33687         (WebCore::IDBLevelDBBackingStore::createObjectStore):
33688         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
33689         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
33690         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
33691         (WebCore::IDBLevelDBBackingStore::getIndexes):
33692         (WebCore::IDBLevelDBBackingStore::createIndex):
33693         (WebCore::IDBLevelDBBackingStore::deleteIndex):
33694         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
33695
33696 2012-10-25  Adam Barth  <abarth@webkit.org>
33697
33698         [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
33699         https://bugs.webkit.org/show_bug.cgi?id=100430
33700
33701         Reviewed by Eric Seidel.
33702
33703         There's no reason for these visitors to be separate objects anymore.
33704
33705         * bindings/v8/V8GCController.cpp:
33706         (WebCore::ObjectVisitor::ObjectVisitor):
33707         (WebCore::ObjectVisitor::visitDOMWrapper):
33708         (WebCore::V8GCController::majorGCPrologue):
33709
33710 2012-10-25  Tony Chang  <tony@chromium.org>
33711
33712         Remove unused static methods from DOMTimer.h
33713         https://bugs.webkit.org/show_bug.cgi?id=100427
33714
33715         Reviewed by Kenneth Russell.
33716
33717         Since these values got moved into Settings, these methods are no longer called.
33718
33719         No new tests, removing dead code.
33720
33721         * page/DOMTimer.h:
33722         (DOMTimer): Remove unused getters.
33723
33724 2012-10-25  Leo Yang  <leoyang@rim.com>
33725
33726         [BlackBerry] Infinite redirect loop is not displayed to user
33727         https://bugs.webkit.org/show_bug.cgi?id=100420
33728
33729         Reviewed by George Staikos.
33730
33731         CNN.com is redirecting us infinitely with 302 http code and response body. We catch
33732         it my setting our extended error code as we defined. But we were not trying to notify
33733         error because we have received body. This was wrong. For extended http status code
33734         which is less than 0 we should display our own error page regardless there was data
33735         received from the server or not.
33736
33737         Tested by manually loading CNN.com.
33738
33739         * platform/network/blackberry/NetworkJob.cpp:
33740         (WebCore::NetworkJob::shouldNotifyClientFailed):
33741
33742 2012-10-25  Nico Weber  <thakis@chromium.org>
33743
33744         Flip ImageOrientation coordinate system from lefthanded to righthanded
33745         https://bugs.webkit.org/show_bug.cgi?id=100414
33746
33747         Reviewed by Eric Seidel.
33748
33749         platform/graphics, noteably GraphicsContext uses a right-handed
33750         coordinate system (origin in the top left corner, x growing to the
33751         right, y to the bottom).  ImageOrientation was an outlier from
33752         and used a left-handed coordinate system.  This patch makes
33753         ImageOrientation match the rest of platform/graphics.
33754
33755         This is a pure refactoring and has no observable effects.
33756
33757         * platform/chromium/DragImageChromiumSkia.cpp:
33758         (WebCore::createDragImageFromImage):
33759         * platform/graphics/ImageOrientation.cpp:
33760         (WebCore::ImageOrientation::transformFromDefault):
33761         * platform/graphics/cg/GraphicsContextCG.cpp:
33762         (WebCore::GraphicsContext::drawNativeImage):
33763         * platform/graphics/skia/ImageSkia.cpp:
33764         (WebCore::BitmapImage::draw):
33765         * platform/mac/DragImageMac.mm:
33766         (WebCore::createDragImageFromImage):
33767         * rendering/RenderObject.cpp:
33768         (WebCore::RenderObject::shouldRespectImageOrientation):
33769
33770 2012-10-25  Keishi Hattori  <keishi@webkit.org>
33771
33772         Hide popup while transitioning from the suggestion picker to the calendar picker
33773         https://bugs.webkit.org/show_bug.cgi?id=99537
33774
33775         Reviewed by Kent Tamura.
33776
33777         Right now you can see a squished calendar picker while transitioning
33778         from suggestion picker from calendar picker. This change will hide the
33779         popup before opening the calendar picker.
33780
33781         No new tests.
33782
33783         * Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
33784         (hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
33785         * Resources/pagepopups/suggestionPicker.js:
33786         (SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.
33787
33788 2012-10-25  Anders Carlsson  <andersca@apple.com>
33789
33790         Fix build.
33791
33792         * page/mac/EventHandlerMac.mm:
33793         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33794
33795 2012-10-25  Anders Carlsson  <andersca@apple.com>
33796
33797         Remove feed and feeds URL scheme workarounds
33798         https://bugs.webkit.org/show_bug.cgi?id=100442
33799
33800         Reviewed by Dan Bernstein.
33801
33802         * dom/DocumentEventQueue.cpp:
33803         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
33804         * page/mac/EventHandlerMac.mm:
33805         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33806
33807 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
33808
33809         Unreviewed, rolling out r132514.
33810         http://trac.webkit.org/changeset/132514
33811         https://bugs.webkit.org/show_bug.cgi?id=100440
33812
33813         "Broke chromium content_browsertests AccessibilityAriaMenu
33814         AccessibilityInputRange AccessibilityListMarkers" (Requested
33815         by scheib on #webkit).
33816
33817         * accessibility/AXObjectCache.cpp:
33818         (WebCore::AXObjectCache::getOrCreate):
33819         (WebCore::AXObjectCache::contentChanged):
33820         (WebCore::AXObjectCache::childrenChanged):
33821         (WebCore::AXObjectCache::handleAriaRoleChanged):
33822         * accessibility/AXObjectCache.h:
33823         (AXObjectCache):
33824         (WebCore::AXObjectCache::contentChanged):
33825         * accessibility/AccessibilityObject.cpp:
33826         (WebCore::AccessibilityObject::AccessibilityObject):
33827         * accessibility/AccessibilityObject.h:
33828         (WebCore::AccessibilityObject::contentChanged):
33829         (AccessibilityObject):
33830         * accessibility/AccessibilityRenderObject.cpp:
33831         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
33832         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
33833         (WebCore::AccessibilityRenderObject::contentChanged):
33834         * accessibility/AccessibilityRenderObject.h:
33835         (AccessibilityRenderObject):
33836         * accessibility/AccessibilityScrollView.cpp:
33837         (WebCore::AccessibilityScrollView::isAttachment):
33838         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
33839         (WebCore::AccessibilityScrollView::updateScrollbars):
33840         (WebCore::AccessibilityScrollView::webAreaObject):
33841         (WebCore::AccessibilityScrollView::elementRect):
33842         (WebCore::AccessibilityScrollView::documentFrameView):
33843         (WebCore::AccessibilityScrollView::parentObject):
33844         (WebCore::AccessibilityScrollView::parentObjectIfExists):
33845         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
33846         (WebCore::AccessibilityScrollView::scrollTo):
33847         * accessibility/AccessibilityScrollView.h:
33848         (WebCore::AccessibilityScrollView::scrollView):
33849         (AccessibilityScrollView):
33850         * accessibility/AccessibilityTable.cpp:
33851         (WebCore::AccessibilityTable::isDataTable):
33852         * accessibility/chromium/AXObjectCacheChromium.cpp:
33853         (WebCore::AXObjectCache::postPlatformNotification):
33854         * dom/Element.cpp:
33855         (WebCore::Element::attributeChanged):
33856         * rendering/RenderBlock.cpp:
33857         (WebCore::RenderBlock::deleteLineBoxTree):
33858         (WebCore::RenderBlock::createAndAppendRootInlineBox):
33859         * rendering/RenderObject.cpp:
33860         (WebCore::RenderObject::styleWillChange):
33861         * rendering/RenderText.cpp:
33862         (WebCore::RenderText::setText):
33863
33864 2012-10-25  Dan Bernstein  <mitz@apple.com>
33865
33866         <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
33867         https://bugs.webkit.org/show_bug.cgi?id=100413
33868
33869         Reviewed by Anders Carlsson.
33870
33871         RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
33872         Sped up the Core Graphics implementation of this function considerably by removing an
33873         unnecessary call to CGContextGetClipBoundingBox.
33874
33875         * platform/graphics/cg/GraphicsContextCG.cpp:
33876         (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
33877         box of the current clip.
33878
33879 2012-10-25  Tim Horton  <timothy_horton@apple.com>
33880
33881         REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
33882         https://bugs.webkit.org/show_bug.cgi?id=100433
33883         <rdar://problem/12575582>
33884
33885         Reviewed by Simon Fraser.
33886
33887         Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
33888         we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
33889         on the main thread will short-circuit and end up only updating the GraphicsLayer's
33890         notion of its current position, but never synchronizing that to the layer itself.
33891
33892         No new tests, as this is currently untestable.
33893
33894         * page/scrolling/ScrollingCoordinator.cpp:
33895         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
33896
33897 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
33898
33899         Tiled layers are missing content on zooming
33900         https://bugs.webkit.org/show_bug.cgi?id=100422
33901
33902         Reviewed by Beth Dakin.
33903
33904         Tiled layers using TileCaches were missing content after
33905         zooming. TileCache was confused in the presence of scaling;
33906         it unapplies the scale on the layer above the tiles (so the tiles
33907         live in screen space), and computed the tile coverage rect
33908         in these tile coordinates. This worked for the page tile cache,
33909         because its visibleRect was sent in pre-scaled. However, for
33910         tiled layer TileCaches this was wrong.
33911         
33912         Fix by scaling the tile coverage rect by m_scale before
33913         using it to compute which tiles to throw away and bring in.
33914         
33915         To fix the problem of the visibleRect being pre-scaled
33916         for the page tile cache, remove the setting of the visibleRect
33917         in RenderLayerCompositor::frameViewDidScroll(), and rely on 
33918         GraphicsLayerCA::updateVisibleRect() which computes the
33919         visible rect in the correct, layer coordinates.
33920
33921         Test: compositing/tiling/tile-cache-zoomed.html
33922
33923         * platform/graphics/ca/GraphicsLayerCA.cpp:
33924         (WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
33925         for all tile cache layers, not just tiled layer ones, but only do
33926         the visible rect adjustment for those that are not the page tile cache.
33927         * platform/graphics/ca/mac/TileCache.mm:
33928         (WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
33929         which is scaled to be in the same coordinate space as the tile grid.
33930         * rendering/RenderLayerCompositor.cpp:
33931         (WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
33932         that sets the setVisibleRect() on the TiledBacking.
33933
33934 2012-10-25  Adam Barth  <abarth@webkit.org>
33935
33936         [V8] ActiveDOMNodes no longer require a separate wrapper map
33937         https://bugs.webkit.org/show_bug.cgi?id=100352
33938
33939         Reviewed by Eric Seidel.
33940
33941         There is no longer any reason to keep a separate DOM wrapper map for
33942         active DOM nodes. We can simply store them in the normal DOM node
33943         wrapper map (which is more efficient because it doesn't use a HashMap).
33944
33945         * bindings/scripts/CodeGeneratorV8.pm:
33946         (GetDomMapName):
33947         * bindings/v8/DOMDataStore.cpp:
33948         (WebCore::DOMDataStore::DOMDataStore):
33949         (WebCore::DOMDataStore::~DOMDataStore):
33950         (WebCore::DOMDataStore::reportMemoryUsage):
33951         * bindings/v8/DOMDataStore.h:
33952         (DOMDataStore):
33953         * bindings/v8/IntrusiveDOMWrapperMap.h:
33954         * bindings/v8/V8DOMMap.cpp:
33955         * bindings/v8/V8DOMMap.h:
33956         (WebCore):
33957         * bindings/v8/V8DOMWrapper.cpp:
33958         * bindings/v8/V8DOMWrapper.h:
33959         (V8DOMWrapper):
33960         (WebCore::V8DOMWrapper::getCachedWrapper):
33961
33962 2012-10-25  Tony Chang  <tony@chromium.org>
33963
33964         Unreviewed, fix the build on Mac.
33965
33966         Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
33967         Instead, put the implementation in the cpp file.
33968
33969         * page/Settings.cpp:
33970         (WebCore::Settings::defaultMinDOMTimerInterval):
33971         (WebCore):
33972         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
33973         * page/Settings.h:
33974         (Settings):
33975
33976 2012-10-25  Tony Chang  <tony@chromium.org>
33977
33978         Move default DOM Timer values into Settings
33979         https://bugs.webkit.org/show_bug.cgi?id=100405
33980
33981         Reviewed by Kenneth Russell.
33982
33983         Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
33984         the Settings object. This is more consistent with other global settings and allows us to remove
33985         the setters on the DOMTimer object.
33986
33987         No new tests, this is a refactor.
33988
33989         * page/DOMTimer.cpp: Remove globals.
33990         * page/DOMTimer.h:
33991         (WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
33992         (WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
33993         (DOMTimer): Remove setters.
33994         * page/Settings.cpp:
33995         (WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
33996         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
33997         * page/Settings.h:
33998         (WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
33999         (WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
34000         (Settings): Add globals.
34001
34002 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34003
34004         Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
34005         https://bugs.webkit.org/show_bug.cgi?id=100416
34006
34007         Reviewed by Beth Dakin.
34008
34009         The tileCoverageRect is computed in "tile" coordinates, which don't match
34010         the visibleRect coordinates. It's more useful when testing to see the
34011         tile coverage relative to the view bounds, so unapply the scale whem
34012         reporting tile coverage in tests.
34013
34014         Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
34015                platform/mac/tiled-drawing/tiled-drawing-zoom.html
34016
34017         * platform/graphics/ca/mac/TileCache.h:
34018         * platform/graphics/ca/mac/TileCache.mm:
34019         (WebCore::TileCache::tileCoverageRect):
34020
34021 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
34022
34023         Unreviewed, rolling out r132269.
34024         http://trac.webkit.org/changeset/132269
34025         https://bugs.webkit.org/show_bug.cgi?id=100412
34026
34027         "Speculative rollout of r132269 in hopes of fixing a
34028         mysterious recalcStyle crasher" (Requested by eseidel on
34029         #webkit).
34030
34031         * rendering/RenderBlock.cpp:
34032         (WebCore::RenderBlock::updateFirstLetter):
34033         * rendering/RenderListBox.h:
34034         * rendering/RenderObjectChildList.cpp:
34035         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
34036
34037 2012-10-25  Stephen White  <senorblanco@chromium.org>
34038
34039         Change ReferenceFilterOperations to reference (own) the data passed to
34040         them.
34041         https://bugs.webkit.org/show_bug.cgi?id=97715
34042
34043         Reviewed by Nate Chapin.
34044
34045         Covered by css3/filters/reference-filter-update-after-remove.html
34046
34047         * css/CachedSVGDocumentReference.h: Added.
34048         (CachedSVGDocumentReference):
34049         New class which holds a CachedResourceHandle<CachedSVGDocument>, but
34050         can be placed in ReferenceFilterOperation's Data.  It also calls
34051         addClient() / removeClient(), in order to keep the CachedSVGDocument
34052         alive until the FilterEffectRenderer can get it.
34053         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
34054         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
34055         (WebCore::CachedSVGDocumentReference::document):
34056         Accessor for the underlying document.
34057         * css/StyleResolver.cpp:
34058         (WebCore::StyleResolver::loadPendingSVGDocuments):
34059         Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
34060         transfer ownership to the ReferenceFilterOperation.
34061         (WebCore::StyleResolver::createFilterOperations):
34062         Same as above.
34063         * platform/graphics/filters/FilterOperation.h:
34064         (Data):
34065         New base class for generic data which can be deleted polymorphically.
34066         (WebCore::FilterOperation::ReferenceFilterOperation::data):
34067         (WebCore::FilterOperation::ReferenceFilterOperation::setData):
34068         Use the above-mentioned Data class, instead of a void *.
34069         (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
34070         Don't initialize data to null; OwnPtr will do that for us.
34071         * rendering/FilterEffectRenderer.cpp:
34072         (WebCore::FilterEffectRenderer::buildReferenceFilter):
34073         Extract the cached SVG document from the reference data.
34074         * rendering/RenderLayerFilterInfo.cpp:
34075         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
34076         Extract the cached SVG document from the reference data.
34077
34078 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34079
34080         Incorrect tile size in the slow scrolling case
34081         https://bugs.webkit.org/show_bug.cgi?id=100411
34082
34083         Reviewed by Beth Dakin.
34084
34085         If we're in slow scrolling mode, we don't want to inflate the
34086         coverage rect based on scrollability. This ensures that the few
34087         big tiles we create have the correct size.
34088
34089         * platform/graphics/ca/mac/TileCache.mm:
34090         (WebCore::TileCache::computeTileCoverageRect):
34091
34092 2012-10-25  Nico Weber  <thakis@chromium.org>
34093
34094         Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
34095         https://bugs.webkit.org/show_bug.cgi?id=100401
34096
34097         Reviewed by Eric Seidel.
34098
34099         This is an alternative fix for the regression caused by r132384 / bug
34100         100179. The bug exists because different pieces of code didn't agree
34101         which space the transformation returned by ImageOrientation was in.
34102
34103         r132384 moved it from CG coordinates to skia coordinates, but didn't
34104         do it completetely. This CL reverts this part of r132384 so that the
34105         transformation is in CG coordinates again, and adapts the skia code to
34106         work in that space.
34107
34108         Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
34109         make the cg code work with the transform in skia coordinates.
34110
34111         Covered by fast/images/exif-orientation.html
34112
34113         * platform/chromium/DragImageChromiumSkia.cpp:
34114         (WebCore::createDragImageFromImage):
34115         * platform/graphics/ImageOrientation.cpp:
34116         (WebCore::ImageOrientation::transformFromDefault):
34117         * platform/graphics/ImageOrientation.h:
34118         (WebCore):
34119         (WebCore::ImageOrientation::usesWidthAsHeight):
34120         (WebCore::ImageOrientation::fromEXIFValue):
34121         (ImageOrientation):
34122         * platform/graphics/cg/GraphicsContextCG.cpp:
34123         (WebCore::GraphicsContext::drawNativeImage):
34124         * platform/graphics/skia/ImageSkia.cpp:
34125         (WebCore::BitmapImage::draw):
34126         * platform/mac/DragImageMac.mm:
34127         (WebCore::createDragImageFromImage):
34128         * rendering/RenderObject.cpp:
34129         (WebCore::RenderObject::shouldRespectImageOrientation):
34130
34131 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34132
34133         Log the tile cache tile size in test output
34134         https://bugs.webkit.org/show_bug.cgi?id=100409
34135
34136         Reviewed by Beth Dakin.
34137
34138         When dumping tile cache information in tests, also dump the tile size.
34139
34140         * platform/graphics/TiledBacking.h:
34141         * platform/graphics/ca/GraphicsLayerCA.cpp:
34142         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
34143         * platform/graphics/ca/mac/TileCache.h:
34144
34145 2012-10-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>
34146
34147         do not multiply/demultiply colors when alpha is 255
34148         https://bugs.webkit.org/show_bug.cgi?id=89246
34149
34150         Reviewed by Kenneth Rohde Christiansen.
34151
34152         Do not use colorFromPremultipliedARGB in getImageData nor
34153         premultipliedARGBFromColor in putByteArray. Avoiding object creation
34154         and function call make canvas.getImageData about 10% faster and
34155         canvas.putImageData about 30% faster.
34156
34157         Also, we avoid multiplication/demultiplication computation when alpha
34158         is 255. Result is the same, but when there is no transparency,
34159         canvas.getImageData is about 4x faster, and canvas.putImageData is
34160         about 2x faster.
34161
34162         No new tests. No change in behavior.
34163
34164         * platform/graphics/cairo/ImageBufferCairo.cpp:
34165         (WebCore::getImageData):
34166         (WebCore::ImageBuffer::putByteArray):
34167
34168 2012-10-25  Nate Chapin  <japhet@chromium.org>
34169
34170         Add a main resource type to the memory cache
34171         https://bugs.webkit.org/show_bug.cgi?id=99864
34172
34173         Reviewed by Adam Barth.
34174
34175         No new tests, no functionality change.
34176
34177         * inspector/InspectorPageAgent.cpp:
34178         (WebCore::hasTextContent):
34179         (WebCore::InspectorPageAgent::cachedResourceType):
34180         * loader/SubresourceLoader.cpp:
34181         (WebCore::SubresourceLoader::willSendRequest):
34182         (WebCore::SubresourceLoader::didReceiveResponse):
34183         (WebCore::SubresourceLoader::didFail):
34184         * loader/cache/CachedRawResource.cpp:
34185         (WebCore::CachedRawResource::CachedRawResource):
34186         (WebCore::CachedRawResource::addAdditionalRequestHeaders):
34187         (WebCore):
34188         (WebCore::CachedRawResource::setShouldBufferData):
34189         (WebCore::CachedRawResource::loader):
34190         (WebCore::CachedRawResource::clear):
34191         * loader/cache/CachedRawResource.h:
34192         (WebCore):
34193         (CachedRawResource):
34194         * loader/cache/CachedResource.cpp:
34195         (WebCore::defaultPriorityForResourceType):
34196         (WebCore::cachedResourceTypeToTargetType):
34197         (WebCore::CachedResource::updateResourceRequest):
34198         (WebCore):
34199         * loader/cache/CachedResource.h:
34200         (WebCore::CachedResource::setResourceError):
34201         (WebCore::CachedResource::resourceError):
34202         (CachedResource):
34203         (WebCore::CachedResource::ignoreForRequestCount):
34204         * loader/cache/CachedResourceLoader.cpp:
34205         (WebCore::createResource):
34206         (WebCore::CachedResourceLoader::requestRawResource):
34207         (WebCore::CachedResourceLoader::checkInsecureContent):
34208         (WebCore::CachedResourceLoader::canRequest):
34209         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
34210         * loader/cache/CachedResourceLoader.h:
34211         (CachedResourceLoader):
34212         * platform/network/ResourceLoadPriority.h:
34213         * platform/network/cf/ResourceRequestCFNet.h:
34214         (WebCore::toResourceLoadPriority):
34215         (WebCore::toHTTPPipeliningPriority):
34216
34217 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34218
34219         [V8] Add histograms to measure V8 work done during window close and navigation
34220         https://bugs.webkit.org/show_bug.cgi?id=100358
34221
34222         Reviewed by Adam Barth.
34223
34224         * bindings/v8/ScriptController.cpp:
34225         (WebCore::ScriptController::clearForClose):
34226         (WebCore::ScriptController::clearWindowShell):
34227
34228 2012-10-25  Antti Koivisto  <antti@apple.com>
34229
34230         Avoid unnecessary style recalcs on id attribute mutation.
34231         https://bugs.webkit.org/show_bug.cgi?id=100395
34232
34233         Reviewed by Andreas Kling.
34234
34235         There is no need to invalidate element style on id attribute change if neither the old nor the new id were 
34236         mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
34237         
34238         Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling. 
34239
34240         * css/StyleResolver.cpp:
34241         (WebCore::StyleResolver::hasSelectorForId):
34242         (WebCore):
34243         * css/StyleResolver.h:
34244         * dom/Element.cpp:
34245         (WebCore::makeIdForStyleResolution):
34246         (WebCore):
34247         (WebCore::Element::attributeChanged):
34248
34249 2012-10-25  Dominic Mazzoni  <dmazzoni@google.com>
34250
34251         AX: Notification should be sent when accessibilityIsIgnored changes
34252         https://bugs.webkit.org/show_bug.cgi?id=99547
34253
34254         Reviewed by Chris Fleizach.
34255
34256         Adds a new flag in AccessibilityObject that keeps track of the most recent
34257         value of accessibilityIsIgnored(). After certain events such as an ARIA
34258         attribute change or content change, checks the new value of
34259         accessibilityIsIgnored() and posts a "children changed" notification on the
34260         parent node if it changed, making sure the parent recomputes its vector of
34261         (unignored) children.
34262
34263         Also moves handling of attribute changes to AXObjectCache, and sends
34264         notifications for some attribute changes that were previously silent. On
34265         Chromium, all changes to an accessibility object's attributes should
34266         result in some notification.
34267
34268         Some tests would have broken because an AccessibilityScrollView was created
34269         and holding a reference to a ScrollView for an iframe after it was deleted,
34270         so this change switches AccessibilityScrollView to hold a weak reference
34271         to ScrollView instead.
34272
34273         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
34274                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
34275                platform/chromium/accessibility/text-change-notification.html
34276
34277         * accessibility/AXObjectCache.cpp:
34278         (WebCore::AXObjectCache::focusedUIElementForPage):
34279         (WebCore::AXObjectCache::getOrCreate):
34280         (WebCore::AXObjectCache::textChanged):
34281         (WebCore):
34282         (WebCore::AXObjectCache::childrenChanged):
34283         (WebCore::AXObjectCache::handleAriaRoleChanged):
34284         (WebCore::AXObjectCache::handleAttributeChanged):
34285         (WebCore::AXObjectCache::labelChanged):
34286         (WebCore::AXObjectCache::recomputeIsIgnored):
34287         * accessibility/AXObjectCache.h:
34288         (AXObjectCache):
34289         (WebCore::AXObjectCache::childrenChanged):
34290         (WebCore::AXObjectCache::textChanged):
34291         (WebCore::AXObjectCache::handleAttributeChanged):
34292         (WebCore::AXObjectCache::recomputeIsIgnored):
34293         * accessibility/AccessibilityNodeObject.cpp:
34294         (WebCore::AccessibilityNodeObject::insertChild):
34295         * accessibility/AccessibilityObject.cpp:
34296         (WebCore::AccessibilityObject::AccessibilityObject):
34297         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
34298         (WebCore):
34299         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
34300         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
34301         * accessibility/AccessibilityObject.h:
34302         (WebCore::AccessibilityObject::textChanged):
34303         (AccessibilityObject):
34304         * accessibility/AccessibilityRenderObject.cpp:
34305         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
34306         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
34307         (WebCore::AccessibilityRenderObject::textChanged):
34308         (WebCore::AccessibilityRenderObject::addHiddenChildren):
34309         (WebCore::AccessibilityRenderObject::addChildren):
34310         * accessibility/AccessibilityRenderObject.h:
34311         (AccessibilityRenderObject):
34312         * accessibility/AccessibilityScrollView.cpp:
34313         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
34314         (WebCore):
34315         (WebCore::AccessibilityScrollView::detach):
34316         (WebCore::AccessibilityScrollView::isAttachment):
34317         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
34318         (WebCore::AccessibilityScrollView::updateScrollbars):
34319         (WebCore::AccessibilityScrollView::webAreaObject):
34320         (WebCore::AccessibilityScrollView::elementRect):
34321         (WebCore::AccessibilityScrollView::documentFrameView):
34322         (WebCore::AccessibilityScrollView::parentObject):
34323         (WebCore::AccessibilityScrollView::parentObjectIfExists):
34324         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
34325         (WebCore::AccessibilityScrollView::scrollTo):
34326         * accessibility/AccessibilityScrollView.h:
34327         (WebCore::AccessibilityScrollView::scrollView):
34328         (AccessibilityScrollView):
34329         * accessibility/AccessibilityTable.cpp:
34330         (WebCore::AccessibilityTable::isDataTable):
34331         * accessibility/chromium/AXObjectCacheChromium.cpp:
34332         (WebCore::AXObjectCache::postPlatformNotification):
34333         * dom/Element.cpp:
34334         (WebCore::Element::attributeChanged):
34335         * rendering/RenderBlock.cpp:
34336         (WebCore::RenderBlock::deleteLineBoxTree):
34337         (WebCore::RenderBlock::createAndAppendRootInlineBox):
34338         * rendering/RenderObject.cpp:
34339         (WebCore::RenderObject::styleWillChange):
34340         * rendering/RenderText.cpp:
34341         (WebCore::RenderText::setText):
34342
34343 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34344
34345         Conditionalize XHR timeout support
34346         https://bugs.webkit.org/show_bug.cgi?id=100356
34347
34348         Reviewed by Adam Barth.
34349
34350         Adding feature for XHR_TIMEOUT to disable it on ports that don't have
34351         network backend support for setTimeoutInterval.
34352
34353         No new tests, covered by http/tests/xmlhttprequest/timeout/*
34354
34355         * Configurations/FeatureDefines.xcconfig: Default ON on mac.
34356         * GNUmakefile.am:
34357         * GNUmakefile.features.am:
34358           Autotools support for the flag.
34359         * xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
34360         (WebCore::XMLHttpRequest::XMLHttpRequest):
34361         (WebCore):
34362         (WebCore::XMLHttpRequest::open):
34363         (WebCore::XMLHttpRequest::createRequest):
34364         (WebCore::XMLHttpRequest::didFail):
34365         * xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
34366         (XMLHttpRequest):
34367         * xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).
34368
34369 2012-10-25  Tom Sepez  <tsepez@chromium.org>
34370
34371         XSSAuditor must replace form action with about:blank when reflected action detected.
34372         https://bugs.webkit.org/show_bug.cgi?id=100280
34373
34374         Reviewed by Daniel Bates.
34375
34376         Changes empty string form-action replacement to about:blank.
34377         Existing form-action.html test modified to check this case.
34378         
34379         * html/parser/XSSAuditor.cpp:
34380         (WebCore::XSSAuditor::filterFormToken):
34381
34382 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34383
34384         Touch adjustment snaps to wrong target at a plugin boundary.
34385         https://bugs.webkit.org/show_bug.cgi?id=99938
34386
34387         Reviewed by Antonio Gomes.
34388
34389         Inidcate that an <embed> element can respond to
34390         mouse click events, since mouse events are forwarded
34391         to the plugin.  Fixes touch adjustment at a plugin
34392         boundary.  Prior to the patch a clickable element 
34393         adjacent to the plugin would capture synthetic mouse
34394         events from tap gestures that spanned the plugin
34395         boundary.
34396
34397         Test: touchadjustment/plugin.html
34398
34399         * html/HTMLEmbedElement.cpp:
34400         (WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
34401         (WebCore):
34402         * html/HTMLEmbedElement.h:
34403
34404 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34405
34406         Get rid of ScriptController::clearForNavigation
34407         https://bugs.webkit.org/show_bug.cgi?id=100390
34408
34409         Reviewed by Adam Barth.
34410
34411         Get rid of clearForNavigation and change resetIsolatedWorlds
34412         to reset so that it can also do the hintForCollectGarbage call.
34413         No new tests. No behavior change.
34414
34415         * bindings/v8/ScriptController.cpp:
34416         (WebCore::ScriptController::reset):
34417         (WebCore::ScriptController::clearForClose):
34418         (WebCore::ScriptController::clearWindowShell):
34419         * bindings/v8/ScriptController.h:
34420         (ScriptController):
34421
34422 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34423
34424         r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
34425         https://bugs.webkit.org/show_bug.cgi?id=100323
34426
34427         Reviewed by Anders Carlsson.
34428
34429         r132427 assumed that TileCaches were only used for the page, and changed the tile
34430         size behavior of all non-page TileCaches.
34431         
34432         Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
34433         affects the tile size behavior.
34434         
34435         Consolidated the two places that set TileCoverage into one, and in the process
34436         reduced FrameView's direct communication with TiledBacking.
34437
34438         No new tests because we can't test tile size via tests.
34439
34440         * page/FrameView.cpp:
34441         (WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
34442         call setIsInWindow() on the main page tile cache.
34443         (WebCore::FrameView::willMoveOffscreen): Ditto.
34444         (WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
34445         the TiledBacking that it should do stuff, just tell the compositor that
34446         layout happened.
34447         * platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
34448         * platform/graphics/ca/mac/TileCache.mm:
34449         (WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
34450         if the CoverageForSlowScrolling flag is set.
34451         * rendering/RenderLayerBacking.cpp:
34452         (WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
34453         is equivalent to renderer()->isRenderView() and clearer.
34454         (WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
34455         It would be nice to move the rest of this TiledBacking code from here somehow.
34456         (WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
34457         flags, taking into account horizontal and vertical scrollability independently,
34458         and whether we're in slow scrolling mode.
34459         * rendering/RenderLayerBacking.h:
34460         (RenderLayerBacking):
34461         * rendering/RenderLayerCompositor.cpp:
34462         (WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
34463         tiled backing update it's coverage flags.
34464         (WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
34465         (WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
34466         (WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
34467         * rendering/RenderLayerCompositor.h:
34468         (RenderLayerCompositor):
34469
34470 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34471
34472         Everything that sets RenderObject::m_style should go through setStyleInternal
34473         https://bugs.webkit.org/show_bug.cgi?id=100338
34474
34475         Reviewed by Ojan Vafai.
34476
34477         Whenever we set m_style in RenderObject go through setStyleInternal and make
34478         it inline. This gives a common place to put printfs and makes the code cleaner.
34479
34480         No new tests, just a refactor.
34481
34482         * rendering/RenderObject.cpp:
34483         (WebCore::RenderObject::createObject):
34484         (WebCore::RenderObject::setStyle):
34485         * rendering/RenderObject.h:
34486         (WebCore::RenderObject::setStyleInternal):
34487
34488 2012-10-25  Brady Eidson  <beidson@apple.com>
34489
34490         Allow LoaderStrategy to override the ResourceLoadScheduler
34491         https://bugs.webkit.org/show_bug.cgi?id=100355
34492
34493         Reviewed by Anders Carlsson.
34494
34495         Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
34496         Add a default implementation that just returns the current ResourceLoadScheduler.
34497
34498         No new tests (No behavior change).
34499
34500         Project file stuff:
34501         * CMakeLists.txt:
34502         * GNUmakefile.list.am:
34503         * Target.pri:
34504         * WebCore.exp.in:
34505         * WebCore.gypi:
34506         * WebCore.vcproj/WebCore.vcproj:
34507         * WebCore.xcodeproj/project.pbxproj:
34508
34509         "Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
34510         * loader/ResourceLoadScheduler.cpp:
34511         (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
34512         * loader/ResourceLoadScheduler.h:
34513         (ResourceLoadScheduler):
34514
34515         Add the new method plus a default implementation:
34516          * loader/LoaderStrategy.cpp: 
34517         (WebCore::LoaderStrategy::resourceLoadScheduler):
34518         * loader/LoaderStrategy.h:
34519
34520         When strategies are enabled, use the LoaderStrategy for this:
34521         * dom/ContainerNode.cpp:
34522         (WebCore::ContainerNode::suspendPostAttachCallbacks):
34523         (WebCore::ContainerNode::resumePostAttachCallbacks):
34524
34525         * loader/MainResourceLoader.cpp:
34526         (WebCore::MainResourceLoader::loadNow):
34527
34528         * loader/ResourceLoader.cpp:
34529         (WebCore::ResourceLoader::releaseResources):
34530         (WebCore::ResourceLoader::willSendRequest):
34531
34532         * loader/cache/CachedResource.cpp:
34533         (WebCore::CachedResource::load):
34534
34535         * loader/cache/CachedResourceLoader.cpp:
34536         (WebCore::CachedResourceLoader::performPostLoadActions):
34537
34538 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34539
34540         Web Inspector: inspector tests failing after r132454
34541         https://bugs.webkit.org/show_bug.cgi?id=100381
34542
34543         Reviewed by Pavel Feldman.
34544
34545         Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
34546         otherwise no actual pointer is reported which breaks instrumentation.
34547
34548         * bindings/v8/IntrusiveDOMWrapperMap.h:
34549
34550 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34551
34552         Init timeout flag in ResourceErrorCF
34553         https://bugs.webkit.org/show_bug.cgi?id=100349
34554
34555         Reviewed by Alexey Proskuryakov.
34556
34557         Initialize the timeout property to true if the network error was a timeout error.
34558         This is a speculative fix for the XHR timeout test cases failing on Apple Win -
34559         I can't verify this on a local machine.
34560
34561         No new tests, covered by
34562         LayoutTests/http/tests/xmlhttprequest/timeout/*
34563
34564         * platform/network/cf/ResourceErrorCF.cpp:
34565         (WebCore::ResourceError::ResourceError): Init m_timeout from error code.
34566
34567 2012-10-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
34568
34569         'resolution' MQ: Printing should use use high resolution images when available
34570         https://bugs.webkit.org/show_bug.cgi?id=100382
34571
34572         Reviewed by Antti Koivisto.
34573
34574         Special case print to not use the dpi of the screen, but one of 300.
34575
34576         Updated the resolution media query test to cover this.
34577
34578         * css/MediaQueryEvaluator.cpp:
34579         (WebCore::resolutionMediaFeatureEval): Update compared decimal points
34580         to three, due to 300 / 96 being equal to 3.125.
34581
34582 2012-10-25  Kinuko Yasuda  <kinuko@chromium.org>
34583
34584         [chromium] External FileSystem should use the root path returned by requestFileSystem
34585         https://bugs.webkit.org/show_bug.cgi?id=100372
34586
34587         Reviewed by Kentaro Hara.
34588
34589         External FileSystem should use the root path returned by
34590         requestFileSystem as other type is doing. Current implementation
34591         completely ignore the returned path.
34592
34593         New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)
34594
34595         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
34596         (WebCore::DOMFileSystemBase::createFileSystemURL):
34597
34598 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34599
34600         Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
34601         https://bugs.webkit.org/show_bug.cgi?id=97576
34602
34603         Reviewed by Antonio Gomes.
34604
34605         Consolidate touch adjustment candidates that are
34606         editable.  Adjustment becomes coarse being based
34607         on the bounds of the outermost editable element.
34608         This fix allows tap positioning of the text caret
34609         on a blank line immediately above or below another
34610         element.
34611
34612         Test: touchadjustment/editable-content.html
34613
34614         * page/TouchAdjustment.cpp:
34615         (WebCore::TouchAdjustment::compileSubtargetList):
34616         (WebCore::TouchAdjustment::hybridDistanceFunction):
34617
34618 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34619
34620         Memory instrumentation: add reportMemoryUsage to ImageObserver interface
34621         https://bugs.webkit.org/show_bug.cgi?id=100091
34622
34623         Reviewed by Pavel Feldman.
34624
34625         Added reportMemoryUsage method to ImageObserver to make sure it is reported as
34626         appropriate descendant(with pointer adjusted due to offsets added by inheritance)
34627         rather than as a standalone memory block.
34628
34629         * platform/graphics/ImageObserver.h:
34630         (ImageObserver):
34631
34632 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34633
34634         Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
34635         https://bugs.webkit.org/show_bug.cgi?id=100375
34636
34637         Reviewed by Yury Semikhatsky.
34638
34639         No new tests, a UI change.
34640
34641         * English.lproj/localizedStrings.js:
34642         * inspector/front-end/SettingsScreen.js:
34643         (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
34644
34645 2012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
34646
34647         Add setMediaTypeOverride to window.internals.settings
34648         https://bugs.webkit.org/show_bug.cgi?id=100249
34649
34650         Reviewed by Kenneth Rohde Christiansen.
34651
34652         Added setMediaTypeOverride to window.internals.settings.
34653
34654         Test: fast/media/print-restores-previous-mediatype.html
34655
34656         * WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
34657         * page/Settings.cpp:
34658         (WebCore::Settings::Settings):
34659         (WebCore::Settings::setMediaTypeOverride):
34660         (WebCore):
34661         * page/Settings.h:
34662         (Settings):
34663         (WebCore::Settings::mediaTypeOverride):
34664         * testing/InternalSettings.cpp:
34665         (WebCore::InternalSettings::Backup::Backup):
34666         (WebCore::InternalSettings::Backup::restoreTo):
34667         (WebCore::InternalSettings::setMediaTypeOverride):
34668         (WebCore):
34669         * testing/InternalSettings.h:
34670         (Backup):
34671         (InternalSettings):
34672         * testing/InternalSettings.idl:
34673
34674 2012-10-22  Mikhail Naganov  <mnaganov@chromium.org>
34675
34676         [Chromium] Add supportMultipleWindows setting, needed for Android
34677         https://bugs.webkit.org/show_bug.cgi?id=99716
34678
34679         Reviewed by Adam Barth.
34680
34681         Add supportMultipleWindows settings for reusing the same view when
34682         opening popups. This is required for emulating the behavior of
34683         Android WebView. Adding into WebCore, as other ports might want to
34684         use this setting in the future.
34685
34686         Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
34687                fast/dom/Window/window-open-no-multiple-windows.html
34688                fast/forms/post-popup-no-multiple-windows.html
34689
34690         * loader/FrameLoader.cpp:
34691         (WebCore::createWindow):
34692         * page/ContextMenuController.cpp:
34693         (WebCore::openNewWindow):
34694         * page/Settings.cpp:
34695         (WebCore::Settings::Settings):
34696         (WebCore::Settings::setSupportsMultipleWindows):
34697         (WebCore):
34698         * page/Settings.h:
34699         (Settings):
34700         (WebCore::Settings::supportsMultipleWindows):
34701
34702 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34703
34704         Unreviewed, fix Web Inspector frontend compilability
34705
34706         * inspector/front-end/ElementsTreeOutline.js:
34707         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34708         * inspector/front-end/StylesSidebarPane.js:
34709         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
34710         (WebInspector.StylePropertyTreeElement.prototype):
34711
34712 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
34713
34714         Web Inspector: Drag and drop property value from Inspector is not working as expected
34715         https://bugs.webkit.org/show_bug.cgi?id=100040
34716
34717         Reviewed by Vsevolod Vlasov.
34718
34719         Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.
34720
34721         * inspector/front-end/ElementsTreeOutline.js:
34722         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34723
34724 2012-10-25  Ilya Tikhonovsky  <loislo@chromium.org>
34725
34726         Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
34727         https://bugs.webkit.org/show_bug.cgi?id=100340
34728
34729         Reviewed by Yury Semikhatsky.
34730
34731         * dom/WebCoreMemoryInstrumentation.cpp:
34732         (WebCore):
34733         * dom/WebCoreMemoryInstrumentation.h:
34734         (WebCoreMemoryTypes):
34735         * inspector/InspectorDebuggerAgent.cpp:
34736         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
34737         (WebCore):
34738         (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
34739         * inspector/InspectorDebuggerAgent.h:
34740         (InspectorDebuggerAgent):
34741         * inspector/ScriptDebugListener.h:
34742         (Script):
34743
34744 2012-10-25  Adam Barth  <abarth@webkit.org>
34745
34746         [V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
34747         https://bugs.webkit.org/show_bug.cgi?id=100351
34748
34749         Reviewed by Eric Seidel.
34750
34751         There is no reason to handle active DOM nodes in a separate pass from
34752         regular DOM nodes anymore.
34753
34754         * bindings/v8/V8DOMMap.cpp:
34755         * bindings/v8/V8DOMMap.h:
34756         (WebCore):
34757         * bindings/v8/V8GCController.cpp:
34758         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
34759         (WebCore::NodeVisitor::NodeVisitor):
34760         (NodeVisitor):
34761         (WebCore::NodeVisitor::visitNodeWrapper):
34762         (WebCore::V8GCController::majorGCPrologue):
34763
34764 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34765
34766         Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
34767         https://bugs.webkit.org/show_bug.cgi?id=100357
34768
34769         Reviewed by Vsevolod Vlasov.
34770
34771         * inspector/InspectorStyleSheet.cpp:
34772         (WebCore::InspectorStyleSheet::deleteRule):
34773
34774 2012-10-25  Adam Barth  <abarth@webkit.org>
34775
34776         [V8] DOMDataStoreHandle serves no purpose and can be removed
34777         https://bugs.webkit.org/show_bug.cgi?id=100333
34778
34779         Reviewed by Eric Seidel.
34780
34781         After https://bugs.webkit.org/show_bug.cgi?id=100316,
34782         DOMDataStoreHandle is just a glorified OwnPtr.
34783
34784         * bindings/v8/DOMWrapperWorld.h:
34785         (WebCore::DOMWrapperWorld::domDataStore):
34786         (DOMWrapperWorld):
34787         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
34788         * bindings/v8/V8DOMMap.cpp:
34789         * bindings/v8/V8DOMMap.h:
34790
34791 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34792
34793         Remove dead Node::isBlockFlowOrBlockTable
34794         https://bugs.webkit.org/show_bug.cgi?id=100336
34795
34796         Reviewed by Eric Seidel.
34797
34798         Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.
34799
34800         No new tests needed, just removing dead code.
34801
34802         * dom/Node.cpp:
34803         * dom/Node.h:
34804         (Node):
34805
34806 2012-10-25  Eugene Klyuchnikov  <eustas.bug@gmail.com>
34807
34808         Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
34809         https://bugs.webkit.org/show_bug.cgi?id=100090
34810
34811         Reviewed by Vsevolod Vlasov.
34812
34813         Fixed localized strings table.
34814
34815         * English.lproj/localizedStrings.js: Added missing, removed orhans.
34816         * inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
34817         * inspector/front-end/NativeMemorySnapshotView.js:
34818         Removed double localization.
34819
34820 2012-10-25  Adam Barth  <abarth@webkit.org>
34821
34822         [V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
34823         https://bugs.webkit.org/show_bug.cgi?id=100316
34824
34825         Reviewed by Eric Seidel.
34826
34827         Prior to this patch, DOMDataStore had two subclasses,
34828         ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
34829         wrapper map base classes and had different lifetimes. This patch
34830         unifies all these classes into DOMDataStore itself. This makes this
34831         code much more straightforward.
34832
34833         * WebCore.gypi:
34834         * bindings/v8/DOMDataStore.cpp:
34835         (WebCore::DOMDataStore::DOMDataStore):
34836         (WebCore::DOMDataStore::~DOMDataStore):
34837         (WebCore::DOMDataStore::current):
34838         (WebCore::DOMDataStore::reportMemoryUsage):
34839         * bindings/v8/DOMDataStore.h:
34840         (DOMDataStore):
34841         (WebCore::DOMDataStore::domNodeMap):
34842         (WebCore::DOMDataStore::activeDomNodeMap):
34843         (WebCore::DOMDataStore::domObjectMap):
34844         (WebCore::DOMDataStore::activeDomObjectMap):
34845         * bindings/v8/ScopedDOMDataStore.cpp: Removed.
34846         * bindings/v8/ScopedDOMDataStore.h: Removed.
34847         * bindings/v8/SerializedScriptValue.cpp:
34848         (WebCore::neuterBinding):
34849         * bindings/v8/StaticDOMDataStore.cpp: Removed.
34850         * bindings/v8/StaticDOMDataStore.h: Removed.
34851         * bindings/v8/V8DOMMap.cpp:
34852         (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
34853         (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
34854         (WebCore::visitActiveDOMNodes):
34855         (WebCore::visitDOMObjects):
34856         (WebCore::visitActiveDOMObjects):
34857         * bindings/v8/V8DOMMap.h:
34858         (WebCore):
34859         * bindings/v8/V8PerIsolateData.h:
34860         (V8PerIsolateData):
34861         * bindings/v8/WorkerScriptController.cpp:
34862         (WebCore::WorkerScriptController::WorkerScriptController):
34863         (WebCore::WorkerScriptController::~WorkerScriptController):
34864         * bindings/v8/WorkerScriptController.h:
34865         (WorkerScriptController):
34866
34867 2012-10-24  Kent Tamura  <tkent@chromium.org>
34868
34869         Minimize CSS rulesets for multiple-fields input
34870         https://bugs.webkit.org/show_bug.cgi?id=100198
34871
34872         Reviewed by Kentaro Hara.
34873
34874         - Unify rulesets for input::-webkit-datetime-edit-*-field.
34875          input::-webkit-datetime-edit-*-field had identical ruleset.
34876
34877         - Move some rulesets near to related rulesets.
34878          Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
34879          Move input::-webkit-datetime-edit-second-field[readonly] nearby
34880         input::-webkit-datetime-edit-minute-field[readonly].
34881
34882         No new tests. This shouldn't make any behavior change.
34883
34884         * css/html.css:
34885         (input::-webkit-datetime-edit-year-field):
34886         (input::-webkit-datetime-edit-year-field:focus):
34887         (input::-webkit-datetime-edit-second-field[readonly]):
34888
34889 2012-10-24  Kent Tamura  <tkent@chromium.org>
34890
34891         REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
34892         https://bugs.webkit.org/show_bug.cgi?id=100326
34893
34894         Reviewed by Eric Seidel.
34895
34896         Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html
34897
34898         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
34899         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
34900         We need to disconnect m_spinButtonElement before destructing the UA shadow tree.
34901
34902 2012-10-24  Adam Barth  <abarth@webkit.org>
34903
34904         [V8] DOMData is no longer needed
34905         https://bugs.webkit.org/show_bug.cgi?id=100313
34906
34907         Reviewed by Eric Seidel.
34908
34909         This class serves no purpose anymore and can be deleted.
34910
34911         * WebCore.gypi:
34912         * bindings/v8/DOMData.cpp: Removed.
34913         * bindings/v8/DOMData.h: Removed.
34914         * bindings/v8/DOMDataStore.cpp:
34915         (WebCore::DOMDataStore::current):
34916         * bindings/v8/DOMDataStore.h:
34917         (WebCore):
34918         (DOMDataStore):
34919         * bindings/v8/SerializedScriptValue.cpp:
34920         (WebCore::neuterBinding):
34921         * bindings/v8/V8DOMMap.cpp:
34922         (WebCore::getDOMNodeMap):
34923         (WebCore::getActiveDOMNodeMap):
34924         (WebCore::getDOMObjectMap):
34925         (WebCore::getActiveDOMObjectMap):
34926         (WebCore::removeAllDOMObjects):
34927         (WebCore::visitActiveDOMNodes):
34928         (WebCore::visitDOMObjects):
34929         (WebCore::visitActiveDOMObjects):
34930
34931 2012-10-24  Kent Tamura  <tkent@chromium.org>
34932
34933         Sort an Xcode project file.
34934
34935         * WebCore.xcodeproj/project.pbxproj: Sorted.
34936
34937 2012-10-24  Adam Barth  <abarth@webkit.org>
34938
34939         [V8] AbstractWeakReferenceMap is unnecessarily general and complex
34940         https://bugs.webkit.org/show_bug.cgi?id=100175
34941
34942         Reviewed by Eric Seidel.
34943
34944         Before this patch, AbstractWeakReferenceMap served two masters:
34945
34946         1) DOM wrappers
34947         2) NPV8 function templates
34948
34949         These two uses cases pushed AbstractWeakReferenceMap to be more general
34950         and complex that needed. This patch separates these two uses cases into
34951         two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
34952         not worth complicating the DOM wrapper code path to share that tiny
34953         amount of code.
34954
34955         The other thing this patch does is store a pointer to the DOM wrapper
34956         map as the weak callback context object. That means we no longer need
34957         to search through all the wrapper maps in order to find the map that
34958         contains this particular DOM wrapper.
34959
34960         * WebCore.gypi:
34961         * bindings/v8/DOMData.cpp:
34962         * bindings/v8/DOMData.h:
34963         (DOMData):
34964         * bindings/v8/DOMDataStore.cpp:
34965             - Delete all these complicated weak callback functions. The weak
34966               callback functions are now an order of magnitude simpler and
34967               declared as private member functions on the wrapper map.
34968         * bindings/v8/DOMDataStore.h:
34969         (WebCore::DOMDataStore::domNodeMap):
34970         (WebCore::DOMDataStore::activeDomNodeMap):
34971         (DOMDataStore):
34972             - We now have a consistent type to use for all these wrapper maps.
34973               Both the hash map and the intrusive map derive from
34974               DOMWrapperMap (with a single template parameter).
34975         * bindings/v8/DOMWrapperMap.h: Added.
34976         (WebCore):
34977         (DOMWrapperVisitor):
34978             - The visitor is no longer an inner class. It's just a top-level
34979               class that does the same thing.
34980         (DOMWrapperMap):
34981             - The abstract interface for DOMWrapperMap has about half as many
34982               functions as the old AbstractWeakReferenceMap because the two use
34983               cases are disentangled.
34984         (WebCore::DOMWrapperMap::~DOMWrapperMap):
34985         (DOMWrapperHashMap):
34986             - This is a concrete instance of DOMWrapperMap that uses a hash map.
34987         (WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
34988         (WebCore::DOMWrapperHashMap::remove):
34989         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
34990             - Notice that the context parameter now points to the hashmap
34991               itself rather than to the native object. Now that we don't need
34992               to handle the NPAPI case, we can recover the native object from
34993               the wrapper using toNative. The assert in set() ensures that this
34994               always works.
34995         * bindings/v8/DOMWrapperWorld.h:
34996         * bindings/v8/IntrusiveDOMWrapperMap.h:
34997             - These classes are now simplified because they need to implement
34998               fewer functions.
34999         (WebCore::DOMNodeWrapperMap::weakCallback):
35000             - For this weak callback, we still use the native object as the
35001               context parameter. We could also recover the native object from
35002               the wrapper, which means this context parameter is available to
35003               do other work.
35004         * bindings/v8/ScopedDOMDataStore.cpp:
35005         (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
35006             - This code no longer needs to have knowledge of which weak
35007               callbacks these objects use.
35008         (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
35009             - We need to clear the maps before deleting them because there are
35010               still JavaScript objects that have references to the map in their
35011               weak callback parameter. Previously, we handled this case because
35012               we would search all the wrapper maps and fail to find the wrapper.
35013         * bindings/v8/ScriptProfiler.cpp:
35014         (WebCore::ScriptProfiler::visitExternalArrays):
35015         * bindings/v8/StaticDOMDataStore.cpp:
35016             - This code no longer needs to have knowledge of which weak
35017               callback these maps use.
35018         * bindings/v8/StaticDOMDataStore.h:
35019         (StaticDOMDataStore):
35020         * bindings/v8/V8DOMMap.cpp:
35021         (WebCore::getDOMNodeMap):
35022         (WebCore::getActiveDOMNodeMap):
35023         (WebCore::removeAllDOMObjects):
35024             - Rather than using some complicated visitor pattern, we can now
35025               just call clear() directly on the maps to remove all the objects.
35026         (WebCore::visitActiveDOMNodes):
35027         (WebCore::visitDOMObjects):
35028         (WebCore::visitActiveDOMObjects):
35029         * bindings/v8/V8DOMMap.h:
35030         (WebCore):
35031             - Delete the old versions of these classes.
35032         (DOMDataStoreHandle):
35033             - Style nit: one-argument constructors should be marked explicit.
35034         * bindings/v8/V8DOMWrapper.cpp:
35035         (WebCore::V8DOMWrapper::domWrapperType):
35036             - I moved this logic into WrapperTypeInfo.h to avoid a circular
35037               header dependency.
35038         * bindings/v8/V8DOMWrapper.h:
35039         (WebCore::V8DOMWrapper::getCachedWrapper):
35040         * bindings/v8/V8GCController.cpp:
35041             - EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
35042               longer clear the weak callbacks in V8GCController).
35043         * bindings/v8/V8NPObject.cpp:
35044         (V8NPTemplateMap):
35045             - staticTemplateMap is no longer an instance of WeakReferenceMap.
35046               Instead, this patch just implements the functionality we need
35047               here directly.
35048         (WebCore::V8NPTemplateMap::get):
35049         (WebCore::V8NPTemplateMap::set):
35050         (WebCore::V8NPTemplateMap::sharedInstance):
35051         (WebCore::V8NPTemplateMap::weakCallback):
35052         (WebCore::V8NPTemplateMap::dispose):
35053         (WebCore::npObjectGetProperty):
35054         (WebCore):
35055         (WebCore::staticNPObjectMap):
35056         (WebCore::weakNPObjectCallback):
35057             - DOMWrapperMap no longer exposes a "forget" function. Instead, we
35058               just use the more basic "remove" and "Dispose" operations to do
35059               the same thing. This is possible now because we no longer have
35060               "removeIfPossible" to support searching all the wrapper maps for
35061               the one that has the right wrapper.
35062         (WebCore::createV8ObjectForNPObject):
35063             - DOMWrapperMap No longer has a "contains" function. Instead, we
35064               use get, which actually makes this code more efficient because we
35065               only do one hash map lookup.
35066         (WebCore::forgetV8ObjectForNPObject):
35067             - The changes here are a combination of the two sorts of changes
35068               above.
35069         * bindings/v8/WrapperTypeInfo.h:
35070         (WebCore::toNative):
35071         (WebCore::toWrapperTypeInfo):
35072             - The patch moves these functions into this header to avoid a
35073               circular header dependency.
35074
35075 2012-10-24  Arnaud Renevier  <a.renevier@sisa.samsung.com>
35076
35077         [cairo] unneeded FloatRect object creation in BitmapImage::draw
35078         https://bugs.webkit.org/show_bug.cgi?id=100298
35079
35080         Reviewed by Martin Robinson.
35081
35082         Do not copy FloatRect arguments src and dst to local variables.
35083         Instead, use src and dst directly.
35084
35085         No new tests. No change in behavior.
35086
35087         * platform/graphics/cairo/BitmapImageCairo.cpp:
35088         (WebCore::BitmapImage::draw):
35089
35090 2012-10-24  Seokju Kwon  <seokju.kwon@samsung.com>
35091
35092         [SOUP] Provide logging for SocketStreamHandleSoup
35093         https://bugs.webkit.org/show_bug.cgi?id=100215
35094
35095         Reviewed by Alexey Proskuryakov.
35096
35097         Add logging to SocketStreamHandleSoup to facilitate debugging.
35098
35099         * platform/network/soup/SocketStreamHandleSoup.cpp:
35100         (WebCore::SocketStreamHandle::SocketStreamHandle):
35101         (WebCore::SocketStreamHandle::~SocketStreamHandle):
35102         (WebCore::SocketStreamHandle::platformSend):
35103         (WebCore::SocketStreamHandle::platformClose):
35104
35105 2012-10-24  Nico Weber  <thakis@chromium.org>
35106
35107         Pass on exif orientation from ImageSource when using the open-source image decoders
35108         https://bugs.webkit.org/show_bug.cgi?id=100164
35109
35110         Reviewed by Eric Seidel.
35111
35112         The orientation is honored always for image documents, and optionally
35113         for <img> elements if shouldRespectImageOrientation is set (off by
35114         default). However, the feature needs port-specific modifications to
35115         GraphicsContext (without this, webcore will use the rotated bounds but
35116         draw the image as if it hadn't be rotated, resulting in squished
35117         pixels), and most ports don't implement these yet -- so put
35118         turning this on for image documents behind a port-specific #ifdef.
35119
35120         No observable behavior change. Once it's hooked up, it will be tested
35121         by fast/images/exif-orientation.html.
35122
35123         * platform/graphics/ImageSource.cpp:
35124         (WebCore::ImageSource::size):
35125         (WebCore::ImageSource::frameSizeAtIndex):
35126         (WebCore::ImageSource::orientationAtIndex):
35127         * platform/graphics/chromium/DeferredImageDecoder.cpp:
35128         (WebCore::DeferredImageDecoder::orientation):
35129         (WebCore):
35130         * platform/graphics/chromium/DeferredImageDecoder.h:
35131         (DeferredImageDecoder):
35132         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
35133         (WebCore::readImageOrientation):
35134         * rendering/RenderObject.cpp:
35135         (WebCore::RenderObject::shouldRespectImageOrientation):
35136
35137 2012-10-24  Beth Dakin  <bdakin@apple.com>
35138
35139         https://bugs.webkit.org/show_bug.cgi?id=100169
35140         We should make TileCache tiles the size of the tile coverage rect 
35141         when we can't do fast scrolling
35142         -and-
35143         <rdar://problem/12505021>
35144
35145         Reviewed by Simon Fraser.
35146
35147         Some websites that don't do fast scrolling still scroll slower than 
35148         they do with tiled drawing disabled. 
35149         https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this 
35150         performance problem, but there is still more ground to make up. This 
35151         patch addresses the remaining issue by making tiles the size of the 
35152         window when we can't do fast scrolling. 
35153
35154         The constructor and create function no longer take a size parameter. 
35155         That's all fully controlled within TileCache now. m_tileSize is no 
35156         longer const.
35157         * platform/graphics/ca/mac/TileCache.h:
35158
35159         Store the current default size as constants so that we can access it 
35160         in both the constructor and adjustTileSizeForCoverageRect().
35161         * platform/graphics/ca/mac/TileCache.mm:
35162         (WebCore::TileCache::TileCache):
35163
35164         This new function will set m_tileSize to the size of the tile 
35165         coverage rect if the tile coverage is limited to the visible area. 
35166         Otherwise, the tiles are set to be the default size.
35167         (WebCore::TileCache::adjustTileSizeForCoverageRect):
35168         
35169         Call adjustTileSizeForCoverageRect().
35170         (WebCore::TileCache::revalidateTiles):
35171
35172         No need to send in a size anymore.
35173         * platform/graphics/ca/mac/WebTileCacheLayer.h:
35174         (WebCore):
35175
35176 2012-10-24  David Barton  <dbarton@mathscribe.com>
35177
35178         MathML tests trigger font cache assertions in debug bots
35179         https://bugs.webkit.org/show_bug.cgi?id=100268
35180
35181         Reviewed by Eric Seidel.
35182
35183         Add a FontCachePurgePreventer to fix this.
35184
35185         Tested by existing tests.
35186
35187         * rendering/mathml/RenderMathMLOperator.cpp:
35188         (WebCore::RenderMathMLOperator::updateFromElement):
35189
35190 2012-10-24  Tim Horton  <timothy_horton@apple.com>
35191
35192         Update main frame scroll position immediately for programmatic scrolls
35193         https://bugs.webkit.org/show_bug.cgi?id=98074
35194
35195         Reviewed by Simon Fraser.
35196
35197         Immediately update the main frame scroll position after a programmatic scroll,
35198         so that performing a scrollBy or scrollTo will be instantly reflected in
35199         all of the scroll offset accessors.
35200
35201         No new tests; this will be tested by many scrolling tests once WebKitTestRunner
35202         can use threaded scrolling.
35203
35204         * page/scrolling/ScrollingCoordinator.cpp:
35205         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
35206
35207 2012-10-24  Mihai Parparita  <mihaip@chromium.org>
35208
35209         [Chromium] Allow pushState and related history APIs to be disabled per context
35210         https://bugs.webkit.org/show_bug.cgi?id=99780
35211
35212         Reviewed by Adam Barth.
35213
35214         Chrome Apps do not support the history API (or navigation in general).
35215         Since pushState is generally feature detected, it's cleanest to disable
35216         it via a V8 per-context feature, so that applications can have the
35217         appropriate fallback behavior (other history APIs are re-mapped to throw
35218         exceptions, since history.back() and the link are not feature detected).
35219
35220         * dom/ContextFeatures.cpp:
35221         (WebCore::ContextFeatures::pushStateEnabled):
35222         (WebCore):
35223         * dom/ContextFeatures.h:
35224         * dom/Document.cpp:
35225         (WebCore::Document::enqueuePopstateEvent):
35226         * page/History.idl:
35227
35228 2012-10-24  Tommy Widenflycht  <tommyw@google.com>
35229
35230         MediaStream API: Make sure all events are dispatched asynchronously
35231         https://bugs.webkit.org/show_bug.cgi?id=100286
35232
35233         Reviewed by Adam Barth.
35234
35235         This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
35236         and the web application calls methods on the RTCPeerConnection in the event callbacks.
35237
35238         Test: fast/mediastream/RTCPeerConnection-events.html
35239         Also tested by the chromium webrtc fuzz tests.
35240
35241         * Modules/mediastream/RTCPeerConnection.cpp:
35242         (WebCore::RTCPeerConnection::RTCPeerConnection):
35243         (WebCore::RTCPeerConnection::negotiationNeeded):
35244         (WebCore::RTCPeerConnection::didGenerateIceCandidate):
35245         (WebCore::RTCPeerConnection::didAddRemoteStream):
35246         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
35247         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
35248         (WebCore::RTCPeerConnection::changeReadyState):
35249         (WebCore::RTCPeerConnection::changeIceState):
35250         (WebCore):
35251         (WebCore::RTCPeerConnection::scheduleDispatchEvent):
35252         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
35253         * Modules/mediastream/RTCPeerConnection.h:
35254         (RTCPeerConnection):
35255
35256 2012-10-24  Mark Pilgrim  <pilgrim@chromium.org>
35257
35258         [Chromium] Remove screen-related functions from PlatformSupport
35259         https://bugs.webkit.org/show_bug.cgi?id=97474
35260
35261         Reviewed by Adam Barth.
35262
35263         Screen-related functions like screenHorizontalDPI that
35264         used to be on PlatformSupport are now accessed through a new
35265         PlatformPageClient attached to Widget in WebCore-land, which is
35266         implemented by ChromeClientImpl in WebKit-land, which proxies
35267         calls to WebWidgetClient, which is actually implemented in
35268         Chromium-land.
35269
35270         * WebCore.gypi:
35271         * platform/Widget.h:
35272         * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
35273         (PageClientChromium):
35274         * platform/chromium/PlatformScreenChromium.cpp:
35275         (WebCore::toPlatformPageClient):
35276         (WebCore):
35277         (WebCore::screenHorizontalDPI):
35278         (WebCore::screenVerticalDPI):
35279         (WebCore::screenDepth):
35280         (WebCore::screenDepthPerComponent):
35281         (WebCore::screenIsMonochrome):
35282         (WebCore::screenRect):
35283         (WebCore::screenAvailableRect):
35284         * platform/chromium/PlatformSupport.h:
35285         (PlatformSupport):
35286
35287 2012-10-24  Adam Barth  <abarth@webkit.org>
35288
35289         [V8] WorkerContextExecutionProxy doesn't need to track events
35290         https://bugs.webkit.org/show_bug.cgi?id=100295
35291
35292         Reviewed by Eric Seidel.
35293
35294         This code was added when this code was originally upstreamed as part of
35295         the Chromium port. There doesn't appear to be any reason why
35296         WorkerContextExecutionProxy needs to keep a Vector of raw event
35297         pointers. Those points are likely to become dangling, making the rest
35298         of what this code does very sketchy.
35299
35300         * bindings/v8/V8WorkerContextEventListener.cpp:
35301         (WebCore::V8WorkerContextEventListener::callListenerFunction):
35302         * bindings/v8/WorkerContextExecutionProxy.cpp:
35303         (WebCore::WorkerContextExecutionProxy::dispose):
35304         * bindings/v8/WorkerContextExecutionProxy.h:
35305         (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
35306         (WorkerContextExecutionProxy):
35307
35308 2012-10-24  Max Vujovic  <mvujovic@adobe.com>
35309
35310         [CSS Shaders] The mesh should be specified using <column, row> order
35311         https://bugs.webkit.org/show_bug.cgi?id=96285
35312
35313         Reviewed by Dean Jackson.
35314
35315         Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
35316         column, row order.
35317
35318         Test: css3/filters/custom/custom-filter-mesh-column-row-order.html
35319
35320         * css/CSSComputedStyleDeclaration.cpp:
35321         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
35322             Append the number of columns before the number of rows in the meshParameters
35323             CSSValueList.
35324         * css/StyleResolver.cpp:
35325         (WebCore::StyleResolver::createCustomFilterOperation):
35326             Store the second mesh parameter in meshRows instead of meshColumns.
35327
35328 2012-10-24  Jae Hyun Park  <jae.park@company100.net>
35329
35330         loaderRunLoop() should use synchronization instead of while loop
35331         https://bugs.webkit.org/show_bug.cgi?id=55402
35332
35333         Reviewed by Alexey Proskuryakov.
35334
35335         Originally, loaderRunLoop() sleeps until a thread has started and set
35336         the loaderRunLoopObject static variable. This patch uses
35337         ThreadCondition to synchronize instead of a while loop.
35338
35339         No new tests (No behavior change).
35340
35341         * platform/network/cf/LoaderRunLoopCF.cpp:
35342         (WebCore::runLoaderThread):
35343         (WebCore::loaderRunLoop):
35344         * platform/network/cf/LoaderRunLoopCF.h:
35345         (WebCore):
35346
35347 2012-10-24  Sailesh Agrawal  <sail@chromium.org>
35348
35349         Incorrect keycodes for numpad /, -, +, .
35350         https://bugs.webkit.org/show_bug.cgi?id=99188
35351
35352         Reviewed by Tony Chang.
35353
35354         In r57951 we switched to mapping keys by character code.
35355         This regressed the numpad keys which no longer match the Windows virtual key codes.
35356         This CL fixes this by never mapping numpad keys by character code.
35357
35358         Test: platform/mac/fast/events/numpad-keycode-mapping.html
35359
35360         * platform/mac/PlatformEventFactoryMac.mm:
35361         (WebCore::windowsKeyCodeForKeyEvent):
35362
35363 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35364
35365         Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
35366         https://bugs.webkit.org/show_bug.cgi?id=100141
35367         <rdar://problem/12559147>
35368
35369         Reviewed by Tim Horton.
35370
35371         For PDF documents the RenderView is null, so null-check it to avoid a crash
35372         when saving PDFs.
35373
35374         * dom/Document.cpp:
35375         (WebCore::Document::windowScreenDidChange):
35376
35377 2012-10-24  Terry Anderson  <tdanderson@chromium.org>
35378
35379         Handle two-finger tap gestures in the same way as long-press gestures
35380         https://bugs.webkit.org/show_bug.cgi?id=99947
35381
35382         Reviewed by Adam Barth.
35383
35384         Currently a long-press gesture is used to dispatch a context menu (for platforms 
35385         defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms 
35386         defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and 
35387         touch area of the long-press gesture.
35388
35389         This CL will cause two-finger tap gestures to be handled in the same way as long-press 
35390         gestures. The location and touch area of a two-finger tap gesture will correspond to 
35391         the location and touch area of the first finger down; the location/area of the second 
35392         finger will be ignored.
35393
35394         Test: touchadjustment/touch-links-two-finger-tap.html
35395
35396         * page/EventHandler.cpp:
35397         (WebCore::EventHandler::handleGestureLongPress):
35398         (WebCore):
35399         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
35400         (WebCore::EventHandler::handleGestureTwoFingerTap):
35401         (WebCore::EventHandler::adjustGesturePosition):
35402         * page/EventHandler.h:
35403         (EventHandler):
35404
35405 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35406
35407         AX:When aria-label is used, the text under an element is still appearing as the AXTitle
35408         https://bugs.webkit.org/show_bug.cgi?id=98167
35409
35410         Reviewed by Beth Dakin.
35411
35412         According to WAI-ARIA text computation, the presence of aria-label and alternative text
35413         should override the visible text within an element.
35414
35415         Test: platform/mac/accessibility/aria-label-overrides-visible-text.html
35416
35417         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
35418         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
35419
35420 2012-10-24  Sheriff Bot  <webkit.review.bot@gmail.com>
35421
35422         Unreviewed, rolling out r132303 and r132312.
35423         http://trac.webkit.org/changeset/132303
35424         http://trac.webkit.org/changeset/132312
35425         https://bugs.webkit.org/show_bug.cgi?id=100287
35426
35427         Triggering crashes on many popular websites (Requested by
35428         leviw|gardening on #webkit).
35429
35430         * css/CSSGrammar.y.in:
35431         * css/CSSParser.cpp:
35432         (WebCore::CSSParser::detectAtToken):
35433         * css/CSSParser.h:
35434         * css/CSSPropertySourceData.h:
35435         * css/RuleSet.cpp:
35436         (WebCore::RuleData::RuleData):
35437         (WebCore::RuleSet::addRule):
35438         (WebCore::RuleSet::addRegionRule):
35439         (WebCore::RuleSet::addRulesFromSheet):
35440         (WebCore::RuleSet::addStyleRule):
35441         * css/RuleSet.h:
35442         (RuleData):
35443         (RuleSet):
35444         * css/StyleResolver.cpp:
35445         (WebCore::makeRuleSet):
35446         (WebCore::StyleResolver::appendAuthorStyleSheets):
35447         (WebCore::StyleResolver::matchScopedAuthorRules):
35448         (WebCore::StyleResolver::locateSharedStyle):
35449         * css/StyleResolver.h:
35450         (StyleResolver):
35451         * css/StyleRule.cpp:
35452         (WebCore::StyleRuleBase::reportMemoryUsage):
35453         (WebCore::StyleRuleBase::destroy):
35454         (WebCore::StyleRuleBase::copy):
35455         (WebCore::StyleRuleBase::createCSSOMWrapper):
35456         * css/StyleRule.h:
35457         * css/StyleScopeResolver.cpp:
35458         (WebCore::StyleScopeResolver::reportMemoryUsage):
35459         * css/StyleScopeResolver.h:
35460         (WebCore):
35461         (StyleScopeResolver):
35462         * css/StyleSheetContents.cpp:
35463         (WebCore::childRulesHaveFailedOrCanceledSubresources):
35464
35465 2012-10-24  Joshua Bell  <jsbell@chromium.org>
35466
35467         IndexedDB: Cursor property value identities should be preserved
35468         https://bugs.webkit.org/show_bug.cgi?id=100051
35469
35470         Reviewed by Tony Chang.
35471
35472         Some W3C test submissions point out that subsequent accesses to cursor properties should
35473         yield the same value until the cursor advances. We handled this with custom binding code for
35474         IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
35475         being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
35476         be applied to key/primaryKey.
35477
35478         Test: storage/indexeddb/cursor-properties.html
35479
35480         * Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
35481         (WebCore::IDBCursor::key):
35482         (WebCore::IDBCursor::primaryKey):
35483         (WebCore::IDBCursor::setValueReady):
35484         * Modules/indexeddb/IDBCursor.h:
35485         (IDBCursor):
35486         (WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
35487         * Modules/indexeddb/IDBCursor.idl:
35488         * Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
35489         (WebCore):
35490         * Modules/indexeddb/IDBRequest.cpp:
35491         (WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
35492         * bindings/v8/IDBBindingUtilities.cpp:
35493         (WebCore::idbKeyToScriptValue): New method for explicit conversion.
35494         (WebCore):
35495         * bindings/v8/IDBBindingUtilities.h:
35496         (WebCore):
35497
35498 2012-10-24  Ami Fischman  <fischman@chromium.org>
35499
35500         call to setNeedsLayout during RenderVideo::paintReplaced
35501         https://bugs.webkit.org/show_bug.cgi?id=100265
35502
35503         Reviewed by Eric Carlson.
35504
35505         Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
35506         during paints earlier (so the offending calls are in the emitted stacktrace).
35507
35508         No new tests - new defensive checks are triggered by existing tests.
35509
35510         * page/FrameView.cpp:
35511         (WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
35512         * rendering/RenderObject.cpp:
35513         (WebCore):
35514         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
35515         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
35516         * rendering/RenderObject.h:
35517         (RenderObject):
35518         (SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
35519         * rendering/RenderVideo.cpp:
35520         (WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().
35521
35522 2012-10-24  Adam Barth  <abarth@webkit.org>
35523
35524         [V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
35525         https://bugs.webkit.org/show_bug.cgi?id=100208
35526
35527         Reviewed by Eric Seidel.
35528
35529         Rather than clearing and re-establishing the weak callback for
35530         ActiveDOMObjects during every GC, this patch puts all the
35531         ActiveDOMObjects with pending activity into an object group with a live
35532         object, causing them not to be garbage collected.
35533
35534         In addition to simplifying this code, this patch makes the patch in
35535         https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
35536         V8GCController no longer needs to know how to configure the weak
35537         callbacks for these objects.
35538
35539         * bindings/v8/V8GCController.cpp:
35540         (WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
35541         (ActiveDOMObjectPrologueVisitor):
35542         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
35543         (WebCore::V8GCController::majorGCPrologue):
35544         (WebCore::V8GCController::majorGCEpilogue):
35545         * bindings/v8/V8PerIsolateData.cpp:
35546         (WebCore::V8PerIsolateData::V8PerIsolateData):
35547         * bindings/v8/V8PerIsolateData.h:
35548         (WebCore::V8PerIsolateData::liveRoot):
35549         (V8PerIsolateData):
35550
35551 2012-10-24  Brady Eidson  <beidson@apple.com>
35552
35553         Add a strategy for loader customization.
35554         https://bugs.webkit.org/show_bug.cgi?id=100278
35555
35556         Reviewed by Alexey Proskuryakov.
35557
35558         It's empty for now and does nothing, just like the goggles.
35559
35560         * WebCore.gypi:
35561         * WebCore.vcproj/WebCore.vcproj:
35562         * WebCore.xcodeproj/project.pbxproj:
35563         * platform/PlatformStrategies.h:
35564         (WebCore::PlatformStrategies::loaderStrategy):
35565         (PlatformStrategies):
35566         (WebCore::PlatformStrategies::PlatformStrategies):
35567
35568 2012-10-24  Tony Chang  <tony@chromium.org>
35569
35570         Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
35571         https://bugs.webkit.org/show_bug.cgi?id=99925
35572
35573         Reviewed by Ojan Vafai.
35574
35575         Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.
35576
35577         Test: css3/flexbox/repaint-during-resize-no-flex.html
35578
35579         * rendering/RenderFlexibleBox.cpp:
35580         (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
35581         for setting the location of a child.
35582         (WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35583         (WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35584
35585 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35586
35587         Fix CALayer hiearchy when combining tiling with preserve-3d
35588         https://bugs.webkit.org/show_bug.cgi?id=100205
35589
35590         Reviewed by Dean Jackson.
35591
35592         When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a
35593         m_structuralLayer which is a CATransformLayer. The primary CALayer which contains rendered
35594         content becomes a sublayer of the CATransformLayer. If the element has backface-visibility:hidden,
35595         it is the primary layer that is set to be single-sided.
35596         
35597         In r131940 we started to use TileCaches in place of CATiledLayer. TileCaches work via
35598         "customSublayers" returned from the PlatformCALayer, where the custom sublayer is 
35599         the tile cache container layer. However, the custom sublayers were being added as
35600         children of the structural (CATransformLayer) layer, not of the primary (CALayer) layer,
35601         thus they were not affected by the doubleSided property.
35602         
35603         This change cleans up the confusing code in GraphicsLayerCA::updateSublayerList()
35604         by maintaining two vectors of PlatformCALayers, one for sublayers of the structural
35605         layer, and one for sublayers of the primary layer. It adds custom sublayers to
35606         the latter list, so now the tile cache container layer becomes a sublayer of
35607         the primary layer, so is affected by that layer's doubleSided property.
35608
35609         Test: compositing/tiling/backface-preserve-3d-tiled.html
35610
35611         * platform/graphics/ca/GraphicsLayerCA.cpp:
35612         (WebCore::GraphicsLayerCA::updateSublayerList):
35613
35614 2012-10-23  Zhenyao Mo  <zmo@google.com>
35615
35616         Update mozilla's CheckedInt.h to the latest version
35617         https://bugs.webkit.org/show_bug.cgi?id=100177
35618
35619         Reviewed by Kenneth Russell.
35620
35621         * html/canvas/CheckedInt.h: Sync with mozilla's copy with minumum modifications.
35622         (detail):
35623         (IsSupportedPass2):
35624         (IsSupported):
35625         (UnsignedType):
35626         (IsSigned):
35627         (TwiceBiggerType):
35628         (PositionOfSignBit):
35629         (MinValue):
35630         (MaxValue):
35631         (WebCore::detail::HasSignBit):
35632         (WebCore::detail::BinaryComplement):
35633         (WebCore::detail::IsInRange):
35634         (WebCore::detail::IsAddValid):
35635         (WebCore::detail::IsSubValid):
35636         (WebCore::detail::IsMulValid):
35637         (WebCore::detail::IsDivValid):
35638         (WebCore::detail::OppositeIfSignedImpl::run):
35639         (WebCore::detail::OppositeIfSigned):
35640         (WebCore):
35641         (CheckedInt):
35642         (WebCore::CheckedInt::CheckedInt):
35643         (WebCore::CheckedInt::value):
35644         (WebCore::CheckedInt::isValid):
35645         (WebCore::CheckedInt::operator -):
35646         (WebCore::CheckedInt::operator ==):
35647         (WebCore::CheckedInt::operator++):
35648         (WebCore::CheckedInt::operator--):
35649         (CastToCheckedIntImpl):
35650         (WebCore::detail::CastToCheckedIntImpl::run):
35651         (WebCore::castToCheckedInt):
35652         (WebCore::operator ==):
35653         * html/canvas/DataView.cpp: change valid() to isValid().
35654         (WebCore::DataView::create):
35655         * html/canvas/WebGLBuffer.cpp: Ditto.
35656         (WebCore::WebGLBuffer::associateBufferDataImpl):
35657         (WebCore::WebGLBuffer::associateBufferSubDataImpl):
35658         * html/canvas/WebGLRenderingContext.cpp: Ditto.
35659         (WebCore):
35660         (WebCore::WebGLRenderingContext::drawArrays):
35661         * platform/graphics/GraphicsContext3D.cpp: Ditto.
35662         (WebCore::GraphicsContext3D::computeImageSizeInBytes):
35663
35664 2012-10-24  Noam Rosenthal  <noam.rosenthal@nokia.com>
35665
35666         [Qt-on-Mac] GraphicsSurfaces should not create a global IOSurface handle
35667         https://bugs.webkit.org/show_bug.cgi?id=89885
35668
35669         Reviewed by Kenneth Rohde Christiansen.
35670
35671         Use mach_port instead of global tokens for IOSurfaces.
35672         Global IOSurfaces are accessible from other processes using their handle, while mach_ports
35673         can only be shared directly via IPC.
35674
35675         Tested by existing WebGL tests.
35676
35677         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
35678         (GraphicsSurfaceToken):
35679         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
35680         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
35681         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
35682
35683 2012-10-24  Rick Byers  <rbyers@chromium.org>
35684
35685         image-set doesn't round-trip properly with cssText
35686         https://bugs.webkit.org/show_bug.cgi?id=99725
35687
35688         Reviewed by Beth Dakin.
35689
35690         Fix serialization of -webkit-image-set rules to use the same format as
35691         is used for parsing.
35692
35693         Test: fast/css/image-set-setting.html
35694
35695         * css/CSSImageSetValue.cpp:
35696         (WebCore::CSSImageSetValue::customCssText):
35697         * css/CSSValueList.h:
35698         (WebCore::CSSValueList::item): Add const overload
35699
35700 2012-10-24  Jonathan Feldstein  <jfeldstein@rim.com>
35701
35702         BlackBerry fix for webgl-depth-texture.html
35703         https://bugs.webkit.org/show_bug.cgi?id=100258
35704
35705         Reviewed by Yong Li.
35706
35707         Removed a platform specific define that is unnecessary.
35708
35709         * platform/graphics/GraphicsContext3D.cpp:
35710         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
35711
35712 2012-10-24  Nico Weber  <thakis@chromium.org>
35713
35714         Honor image orientation in GraphicsContextSkia
35715         https://bugs.webkit.org/show_bug.cgi?id=100179
35716
35717         Reviewed by Stephen White.
35718
35719         Also fix a bug in ImageOrientation.h: Some of the values were
35720         switched. They now match the description in the exif spec at
35721         http://www.exif.org/Exif2-2.PDF page 18, and the notes at
35722         http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html and
35723         the picture at http://www.80sidea.com/archives/2316.
35724
35725         They showed up correctly in Safari because the orientation transform
35726         was done after flipping Y. Let the flipping happen later. I verified
35727         that flipping transformation order and fixing the exif enum cancelled
35728         each other out, so this has no effect on the apple port.
35729
35730         Not hooked up yet, so no observable difference.
35731
35732         * platform/graphics/BitmapImage.h:
35733         * platform/graphics/ImageOrientation.h:
35734         (WebCore::ImageOrientation::usesWidthAsHeight):
35735         (WebCore::ImageOrientation::fromEXIFValue):
35736         * platform/graphics/cg/GraphicsContextCG.cpp:
35737         (WebCore::GraphicsContext::drawNativeImage):
35738         * platform/graphics/skia/ImageSkia.cpp:
35739         (WebCore::paintSkBitmap):
35740         (WebCore::BitmapImage::draw):
35741         (WebCore):
35742
35743 2012-10-24  Alexey Proskuryakov  <ap@apple.com>
35744
35745         Fixed Windows path for SharedWorkerStrategy.h - it's in workers/, not platform/.
35746
35747         * WebCore.vcproj/WebCore.vcproj:
35748
35749 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35750
35751         AX: WebKit exposes abstract ARIA role range as AXSlider; should be generic AXGroup
35752         https://bugs.webkit.org/show_bug.cgi?id=100204
35753
35754         Reviewed by Beth Dakin.
35755
35756         Remove the "range" role as a valid ARIA role.
35757
35758         Test: platform/mac/accessibility/aria-slider-value.html
35759
35760         * accessibility/AccessibilityObject.cpp:
35761         (WebCore::createARIARoleMap):
35762
35763 2012-10-24  Florin Malita  <fmalita@chromium.org>
35764
35765         [Chromium] SVG repaint issues
35766         https://bugs.webkit.org/show_bug.cgi?id=99874
35767
35768         Reviewed by Levi Weintraub.
35769
35770         RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
35771         but in doing so it ends up accumulating subpixel rounding deltas twice: first for 
35772         adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
35773         half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
35774         painting at the wrong location.
35775
35776         This can be avoided by using localToBorderBoxTransform() directly, which (unlike
35777         localToParentTransform()) doesn't perform rounding.
35778
35779         No new tests: existing pixel results cover this change after rebaseline.
35780
35781         * rendering/svg/RenderSVGRoot.cpp:
35782         (WebCore::RenderSVGRoot::paintReplaced):
35783
35784 2012-10-24  Levi Weintraub  <leviw@chromium.org>
35785
35786         Fixing the Chromium build after typo in r132367.
35787
35788         * WebCore.gypi:
35789
35790 2012-10-24  Nico Weber  <thakis@chromium.org>
35791
35792         [chromium] Respect image orientation in image dragging code
35793         https://bugs.webkit.org/show_bug.cgi?id=100200
35794
35795         Reviewed by Tony Chang.
35796
35797         Based on the corresponding code in DragImageMac.mm.  The image
35798         rotation code isn't hooked up yet, so no observable effect for now.
35799
35800         * platform/chromium/DragImageChromiumSkia.cpp:
35801         (WebCore::createDragImageFromImage):
35802
35803 2012-10-24  Michael Saboff  <msaboff@apple.com>
35804
35805         Code cleanup after r132165
35806         https://bugs.webkit.org/show_bug.cgi?id=100135
35807
35808         Reviewed by Geoffrey Garen.
35809
35810         Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.
35811
35812         Code clean up without functional changes, therefore no new tests.
35813
35814         * xml/parser/MarkupTokenBase.h:
35815         (WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
35816         (WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
35817         (WebCore::MarkupTokenBase::appendToName): Elimintated inline.
35818         (WebCore::MarkupTokenBase::name): Elimintated inline.
35819         (WebCore::MarkupTokenBase::nameString): Elimintated inline.
35820
35821 2012-10-24  Toni Barzic  <tbarzic@chromium.org>
35822
35823         Crash when trying to write exception message to null console
35824         https://bugs.webkit.org/show_bug.cgi?id=99658
35825
35826         Reviewed by Adam Barth.
35827
35828         DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
35829         This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
35830         The exception task could be processes after current window in the frame changes, and console in the document window is nulled.
35831
35832         Test: fast/workers/worker-exception-during-navigation.html
35833
35834         * dom/Document.cpp:
35835         (WebCore::Document::addMessage):
35836
35837 2012-10-24  Cosmin Truta  <ctruta@rim.com>
35838
35839         Incorrect conditional use of LogFTP
35840         https://bugs.webkit.org/show_bug.cgi?id=100260
35841
35842         Reviewed by Alexey Proskuryakov.
35843
35844         Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
35845         without breaking the build.
35846
35847         * html/FTPDirectoryDocument.cpp:
35848         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
35849
35850 2012-10-23  Alexey Proskuryakov  <ap@apple.com>
35851
35852         Add a strategy for shared workers
35853         https://bugs.webkit.org/show_bug.cgi?id=100165
35854
35855         Reviewed by Brady Eidson.
35856
35857         Also a little bit of alphabetization.
35858
35859         * WebCore.gypi:
35860         * WebCore.vcproj/WebCore.vcproj:
35861         * WebCore.xcodeproj/project.pbxproj:
35862         * platform/PlatformStrategies.h:
35863         * workers/SharedWorkerStrategy.h: Added.
35864
35865 2012-10-24  David Barton  <dbarton@mathscribe.com>
35866
35867         [MathML] Timeouts on linux after r132264
35868         https://bugs.webkit.org/show_bug.cgi?id=100202
35869
35870         Reviewed by Eric Seidel.
35871
35872         When building a stretched operator, such as a large parenthesis or bracket, we need to
35873         check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
35874         can occur if the glyph is missing on the host system.
35875
35876         Tested by existing tests.
35877
35878         * rendering/mathml/RenderMathMLOperator.cpp:
35879         (WebCore::RenderMathMLOperator::updateFromElement):
35880
35881 2012-10-24  Parth Patel  <parpatel@rim.com>
35882
35883         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
35884         Generic ThreadUnsafe Singleton
35885         https://bugs.webkit.org/show_bug.cgi?id=100145
35886
35887         Reviewed by Rob Buis.
35888
35889         Extending the singletons to generic singleton and changing
35890         getInstance() in IconDatabaseClientBlackBerry to instance()
35891         to match the generic singleton template.
35892
35893         Reviewed Internally by Yong Li.
35894
35895         Tests are not modified and added as there was no behavioural change.
35896
35897         * platform/blackberry/SharedTimerBlackBerry.cpp:
35898         (SharedTimerBlackBerry):
35899         (WebCore):
35900
35901 2012-10-24  Ilya Tikhonovsky  <loislo@chromium.org>
35902
35903         Web Inspector: NMI add instrumentation for ResourceBuffer. It gives us 10mb on gmail
35904         https://bugs.webkit.org/show_bug.cgi?id=100254
35905
35906         Reviewed by Yury Semikhatsky.
35907
35908         * loader/ResourceBuffer.cpp:
35909         (WebCore::ResourceBuffer::reportMemoryUsage):
35910         (WebCore):
35911         * loader/ResourceBuffer.h:
35912         (ResourceBuffer):
35913
35914 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35915
35916         Allow ports to override text track rendering style
35917         https://bugs.webkit.org/show_bug.cgi?id=97800
35918         <rdar://problem/12044964>
35919
35920         Unreviewed Build fix.
35921         
35922         CGFloat is already a float in a 32-bit build so narrowPrecisionToFloat() is unnecessary
35923
35924         * page/CaptionUserPreferencesMac.mm:
35925         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale):
35926
35927 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35928
35929         Allow ports to override text track rendering style
35930         https://bugs.webkit.org/show_bug.cgi?id=97800
35931         <rdar://problem/12044964>
35932
35933         Reviewed by Maciej Stachowiak.
35934
35935         * WebCore.exp.in: Export new WebkitSystemInterface functions.
35936         * WebCore.xcodeproj/project.pbxproj: Add CaptionUserPreferences.h, CaptionUserPreferencesMac.mm,
35937             and CaptionUserPreferencesMac.h.
35938
35939         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
35940             background, and text independently.
35941
35942         * html/HTMLMediaElement.cpp:
35943         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
35944         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
35945         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
35946         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
35947         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
35948         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
35949             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
35950         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
35951         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
35952             setClosedCaptionsVisible
35953         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
35954
35955         * html/shadow/MediaControlElements.cpp:
35956         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
35957             variable. Get caption font scale from theme instead of hard coding.
35958         * html/shadow/MediaControlElements.h:
35959
35960         * html/track/TextTrack.cpp:
35961         (WebCore::TextTrack::TextTrack): Change attributes from String to AtomicString.
35962         (WebCore::TextTrack::isValidKindKeyword): Ditto.
35963         (WebCore::TextTrack::setKind): Ditto.
35964         (WebCore::TextTrack::setMode): Ditto.
35965         (WebCore::TextTrack::mode): Ditto.
35966         * html/track/TextTrack.h:
35967         (WebCore::TextTrack::create): Ditto.
35968         (WebCore::TextTrack::kind): Ditto.
35969         (WebCore::TextTrack::label): Ditto.
35970         (WebCore::TextTrack::setLabel): Ditto.
35971         (WebCore::TextTrack::language): Ditto.
35972         (WebCore::TextTrack::setLanguage): Ditto.
35973
35974         * html/track/TextTrackCue.cpp:
35975         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
35976         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
35977             shadow pseudo id so it can be used elsewhere.
35978         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
35979         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
35980             shadow pseudo id so it can be used elsewhere.
35981         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
35982         (WebCore::TextTrackCue::updateDisplayTree):
35983         * html/track/TextTrackCue.h:
35984
35985         * page/CaptionUserPreferences.h: Added.
35986         * page/CaptionUserPreferencesMac.h: Added.
35987         * page/CaptionUserPreferencesMac.mm: Added.
35988         (WebCore::userCaptionPreferencesChangedNotificationCallback):
35989         (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac):
35990         (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac):
35991         (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): New, passthrough to WKSI function.
35992         (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Ditto.
35993         (WebCore::CaptionUserPreferencesMac::captionsWindowColor): Return Color with user's caption window color preference.
35994         (WebCore::CaptionUserPreferencesMac::captionsBackgroundColor): Return Color with user's caption 
35995             background color preference.
35996         (WebCore::CaptionUserPreferencesMac::captionsTextColor): Return Color with user's caption text color preference.
35997         (WebCore::CaptionUserPreferencesMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
35998         (WebCore::CaptionUserPreferencesMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
35999             or webkit-text-stroke property.
36000         (WebCore::CaptionUserPreferencesMac::cssColorProperty): Return a String with css to set a property 
36001             with a color value.
36002         (WebCore::CaptionUserPreferencesMac::captionsTextEdgeStyle): Return a String with css to style caption 
36003             text with the user's preferred text edge stye.
36004         (WebCore::CaptionUserPreferencesMac::captionsDefaultFont): Return a String with css to style caption
36005             text with the user's preferred font.
36006         (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Return a String with css to style captions
36007             with the user's preferred style.
36008         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Return the user's preferred caption font scale.
36009         (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Notify listeners of caption preference change.
36010         (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
36011             changes listener.
36012         (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
36013             changes listener.
36014         (WebCore::CaptionUserPreferencesMac::updateCaptionStyleSheetOveride): New, if theme has a captions style sheet override,
36015             inject it into the current page group, otherwise remove injected sheet.
36016
36017         * page/PageGroup.cpp:
36018         (WebCore::PageGroup::captionPreferences):
36019         (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): New, passthrough to platform specific function
36020             of the same name.
36021         (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
36022         (WebCore::PageGroup::userPrefersCaptions): Ditto.
36023         (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
36024         (WebCore::PageGroup::captionFontSizeScale): Ditto.
36025         * page/PageGroup.h:
36026
36027         * platform/mac/WebCoreSystemInterface.h: Updated.
36028         * platform/mac/WebCoreSystemInterface.mm: Ditto.
36029
36030 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36031
36032         Web Inspector: Introduce workspace provider as a content providing backend for project.
36033         https://bugs.webkit.org/show_bug.cgi?id=100244
36034
36035         Reviewed by Pavel Feldman.
36036
36037         Introduced WorkspaceProvider interface as a content providing backend for project.
36038         Added NetworkWorkspaceProvider as a network based (default) implementation.
36039
36040         * WebCore.gypi:
36041         * WebCore.vcproj/WebCore.vcproj:
36042         * inspector/compile-front-end.py:
36043         * inspector/front-end/CompilerScriptMapping.js:
36044         (WebInspector.CompilerScriptMapping):
36045         * inspector/front-end/DebuggerScriptMapping.js:
36046         (WebInspector.DebuggerScriptMapping):
36047         * inspector/front-end/NetworkUISourceCodeProvider.js:
36048         (WebInspector.NetworkUISourceCodeProvider):
36049         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
36050         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
36051         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
36052         * inspector/front-end/NetworkWorkspaceProvider.js: Added.
36053         (WebInspector.NetworkWorkspaceProvider):
36054         (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
36055         (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
36056         (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
36057         (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
36058         (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
36059         (WebInspector.NetworkWorkspaceProvider.prototype.reset):
36060         * inspector/front-end/SASSSourceMapping.js:
36061         (WebInspector.SASSSourceMapping):
36062         (_bindUISourceCode):
36063         * inspector/front-end/ScriptSnippetModel.js:
36064         (WebInspector.ScriptSnippetModel):
36065         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
36066         * inspector/front-end/WebKit.qrc:
36067         * inspector/front-end/Workspace.js:
36068         (WebInspector.FileDescriptor):
36069         (WebInspector.WorkspaceProvider):
36070         (WebInspector.WorkspaceProvider.prototype.requestFileContent):
36071         (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
36072         (WebInspector.WorkspaceProvider.prototype.addEventListener):
36073         (WebInspector.WorkspaceProvider.prototype.removeEventListener):
36074         (WebInspector.Project):
36075         (WebInspector.Project.prototype.reset):
36076         (WebInspector.Project.prototype._fileAdded):
36077         (WebInspector.Project.prototype._fileRemoved):
36078         (WebInspector.Project.prototype.requestFileContent):
36079         (WebInspector.Project.prototype.searchInFileContent):
36080         (WebInspector.Workspace):
36081         (WebInspector.Workspace.prototype.addProject):
36082         (WebInspector.Workspace.prototype.project):
36083         * inspector/front-end/inspector.html:
36084         * inspector/front-end/inspector.js:
36085
36086 2012-10-24  Nikita Vasilyev  <me@elv1s.ru>
36087
36088         Web Inspector: Styles pane: Don't select whole value when I select just a part
36089         https://bugs.webkit.org/show_bug.cgi?id=100242
36090
36091         Reviewed by Alexander Pavlov.
36092
36093         * inspector/front-end/StylesSidebarPane.js:
36094         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
36095         (WebInspector.StylePropertyTreeElement.prototype):
36096
36097 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36098
36099         Web Inspector: UiSourceCode should rely on the workspace as a content provider.
36100         https://bugs.webkit.org/show_bug.cgi?id=100216
36101
36102         Reviewed by Pavel Feldman.
36103
36104         Workspace is now passed to UISourceCode to be used as a content provider.
36105         Content providers are now stored in the workspace/project.
36106         Next step would be to move content providers to workspace providers.
36107
36108         * inspector/front-end/BreakpointManager.js:
36109         (WebInspector.BreakpointManager.breakpointStorageId):
36110         * inspector/front-end/UISourceCode.js:
36111         (WebInspector.UISourceCode):
36112         (WebInspector.UISourceCode.prototype.contentType):
36113         (WebInspector.UISourceCode.prototype.requestContent):
36114         (WebInspector.UISourceCode.prototype.requestOriginalContent):
36115         (WebInspector.UISourceCode.prototype._commitContent):
36116         (WebInspector.UISourceCode.prototype.searchInContent):
36117         * inspector/front-end/Workspace.js:
36118         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
36119         (WebInspector.Project):
36120         (WebInspector.Project.prototype.addUISourceCode):
36121         (WebInspector.Project.prototype.removeUISourceCode):
36122         (WebInspector.Project.prototype.uiSourceCodes):
36123         (WebInspector.Project.prototype.requestFileContent):
36124         (WebInspector.Project.prototype.searchInFileContent):
36125         (WebInspector.Workspace):
36126         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
36127         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
36128         (WebInspector.Workspace.prototype.reset):
36129
36130 2012-10-24  Zeno Albisser  <zeno@webkit.org>
36131
36132         Implement GraphicsSurface for Windows.
36133         https://bugs.webkit.org/show_bug.cgi?id=98147
36134
36135         Reviewed by Kenneth Rohde Christiansen.
36136
36137         * Target.pri:
36138             Include GraphicsSurfaceWin.cpp in SOURCES on Windows.
36139         * platform/graphics/surfaces/GraphicsSurface.h:
36140             Add typedef for PlatformGraphicsSurface on Windows.
36141         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
36142             Add typedef for BufferHandle on Windows.
36143         (GraphicsSurfaceToken):
36144         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: Added.
36145             The GraphicsSurface implementation on Windows relies on the
36146             availability of ANGLE and the EGL_ANGLE_query_surface_pointer extension.
36147             For Qt this requirements are implicitly satisfied, when Qt is built
36148             on Windows and QT_CONFIG contains OpenGLES2.
36149             The GraphicsSurface then renders a given texture onto an offscreen
36150             pixel buffer surface, queries the surface pointer using the
36151             EGL_ANGLE_query_surface_pointer extension, and transmits the received
36152             surface pointer (share handle) over IPC.
36153             On the UIProcess side, the surface pointer can then be resolved
36154             using eglCreatePbufferFromClientBuffer.
36155         (WebCore):
36156         (WebCore::loadShader):
36157             Initialize the shaders needed for drawing onto the GraphicsSurface.
36158         (GraphicsSurfacePrivate):
36159         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
36160             In case of the instance being on the WebProcess side,
36161             create an EGLContext that shares the texture objects with the provided
36162             share context. Also create two pixel buffer surfaces, one as front- and
36163             one as backbuffer.
36164             Query the surface pointers for the pixel buffer surfaces and initialize
36165             the GraphicsSurfaceToken that can be passed over IPC later.
36166         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
36167             Release all aquired resources and destroy the pixel buffer surfaces.
36168             Also close the EGL-Display connection.
36169         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
36170             Make the belonging context current on the back buffer surface
36171             and use drawTexture() to draw the provided texture onto the GraphicsSurface.
36172         (WebCore::GraphicsSurfacePrivate::makeCurrent):
36173             Save the previously current context, then make the context belonging
36174             to the GraphicsSurface current.
36175         (WebCore::GraphicsSurfacePrivate::doneCurrent):
36176             Restore the context that was current before calling makeCurrent().
36177         (WebCore::GraphicsSurfacePrivate::swapBuffers):
36178             Swap front and back buffer surfaces and handles.
36179         (WebCore::GraphicsSurfacePrivate::token):
36180         (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
36181             This function is meant to be called from the UIProcess side.
36182             If no front buffer surface has been created before for the current
36183             front buffer handle, one will be created.
36184             Then eglBindTexImage will be used to actually bind the current
36185             front buffer surface to a texture as a source for drawing.
36186         (WebCore::GraphicsSurfacePrivate::initialFrontBufferShareHandle):
36187         (WebCore::GraphicsSurfacePrivate::frontBufferShareHandle):
36188         (WebCore::GraphicsSurfacePrivate::backBufferShareHandle):
36189         (WebCore::GraphicsSurfacePrivate::releaseFrontBufferTexture):
36190             Free the resources related to the front buffer surface.
36191             On the UIProcess side we never actually bind the back buffer.
36192         (WebCore::GraphicsSurfacePrivate::initializeShaderProgram):
36193             Initialize and link the shader programs necessary for drawing
36194             onto the GraphicsSurface.
36195         (WebCore::GraphicsSurfacePrivate::createSurfaceFromShareHandle):
36196             Creates a single pixel buffer surface from a share Handle.
36197             This function will be called on the UIProcess side,
36198             for the front buffer handle, whenever the buffers have been swapped.
36199         (WebCore::GraphicsSurfacePrivate::drawTexture):
36200             The WebProcess uses this function to draw a given
36201             texture onto the GraphicsSurface's back buffer.
36202         (WebCore::GraphicsSurface::platformExport):
36203         (WebCore::GraphicsSurface::platformGetTextureID):
36204         (WebCore::GraphicsSurface::platformCopyToGLTexture):
36205         (WebCore::GraphicsSurface::platformCopyFromTexture):
36206         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
36207             Uses TextureMapperGL::drawTexture() to draw the front buffer texture
36208             to the TextureMapper on the UIProcess side.
36209         (WebCore::GraphicsSurface::platformFrontBuffer):
36210         (WebCore::GraphicsSurface::platformSwapBuffers):
36211         (WebCore::GraphicsSurface::platformCreate):
36212         (WebCore::GraphicsSurface::platformImport):
36213         (WebCore::GraphicsSurface::platformLock):
36214         (WebCore::GraphicsSurface::platformUnlock):
36215         (WebCore::GraphicsSurface::platformDestroy):
36216
36217 2012-09-27  Yury Semikhatsky  <yurys@chromium.org>
36218
36219         Web Inspector: provide memory instrumentation for ListHashSet
36220         https://bugs.webkit.org/show_bug.cgi?id=97786
36221
36222         Reviewed by Vsevolod Vlasov.
36223
36224         Switched existing usages of addListHashSet to the generic instrumentation mechanism
36225         as it should work just just fine now that there is a memory instrumentation of
36226         ListHashSet.
36227
36228         * dom/DocumentEventQueue.cpp:
36229         * dom/DocumentStyleSheetCollection.cpp:
36230         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
36231         * loader/cache/CachedResourceLoader.cpp:
36232         (WebCore::CachedResourceLoader::reportMemoryUsage):
36233
36234 2012-10-24  Charles Wei  <charles.wei@torchmobile.com.cn>
36235
36236         [BlackBerry] Credentials not re-used for a redirected request to the same domain
36237         https://bugs.webkit.org/show_bug.cgi?id=100193
36238
36239         Reviewed by George Staikos.
36240
36241         We should store the credentials in the redirection response handler, if the request is challenged.
36242         Because the redirect response suggests the authentication succeeds. 
36243
36244         Test: http://browsertest01.rim.net/authbasic
36245
36246         * platform/network/blackberry/NetworkJob.cpp:
36247         (WebCore::NetworkJob::handleRedirect):
36248
36249 2012-10-24  Alexander Pavlov  <apavlov@chromium.org>
36250
36251         Web Inspector: Implement CSS reload upon related SASS resource saving
36252         https://bugs.webkit.org/show_bug.cgi?id=98024
36253
36254         Reviewed by Vsevolod Vlasov.
36255
36256         SASS-generated debug info in CSS is parsed to find out which SASS files contributed to this stylesheet.
36257         Upon SASS file save in the Sources panel, all affected external CSS stylesheets are reloaded to update
36258         the page styles (presuming that SASS is running in the "watch" mode during the development cycle).
36259
36260         * English.lproj/localizedStrings.js:
36261         * inspector/front-end/SASSSourceMapping.js:
36262         (WebInspector.SASSSourceMapping):
36263         (WebInspector.SASSSourceMapping.prototype._fileSaveFinished.callback):
36264         (WebInspector.SASSSourceMapping.prototype._reloadCSS):
36265         (_bindUISourceCode):
36266         (_addCSSURLforSASSURL):
36267         * inspector/front-end/Settings.js:
36268         * inspector/front-end/SettingsScreen.js:
36269         (WebInspector.GenericSettingsTab):
36270
36271 2012-10-23  Yury Semikhatsky  <yurys@chromium.org>
36272
36273         Memory instrumentation: don't count agent-specific front-ends separately
36274         https://bugs.webkit.org/show_bug.cgi?id=100087
36275
36276         Reviewed by Alexander Pavlov.
36277
36278         Pointers to domain-specific inspector front-end interfaces are reported as
36279         weak pointers instead of members to avoid double-counting.
36280
36281         Test by comparing set of reported instrumented objects with the set of objects
36282         allocated by tcmalloc.
36283
36284         * inspector/InspectorDOMStorageAgent.cpp:
36285         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
36286         * inspector/InspectorDOMStorageResource.cpp:
36287         (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
36288         * inspector/InspectorProfilerAgent.cpp:
36289         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
36290
36291 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
36292
36293         Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
36294         https://bugs.webkit.org/show_bug.cgi?id=100203
36295
36296         Unreviewed Build fix.
36297
36298         Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
36299         set and STYLE_SCOPED is not.
36300
36301         No new tests, no behavior change.
36302
36303         * css/StyleResolver.h:
36304         (WebCore::StyleResolver::ensureScopeResolver):
36305
36306 2012-10-23  Andreas Kling  <kling@webkit.org>
36307
36308         Remove specialized hash traits for GlyphPages.
36309         <http://webkit.org/b/100185>
36310
36311         Reviewed by Dan Bernstein.
36312
36313         Now that the default minimum table size has been lowered for all tables, there's no need
36314         for this specialization anymore.
36315
36316         * platform/graphics/FontFallbackList.h:
36317         (FontFallbackList):
36318
36319 2012-10-23  Kent Tamura  <tkent@chromium.org>
36320
36321         Multiple fields input UI: Don't use CSS properties for physical direction
36322         https://bugs.webkit.org/show_bug.cgi?id=100195
36323
36324         Reviewed by Kentaro Hara.
36325
36326         CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
36327         not direction-neutral, and makes unexpected appearance in RTL. We should
36328         use -webkit-padding-start or -webkit-margin-start.
36329
36330         No new tests. Covered by date-multiple-fields-appearance-l10n.html and
36331         month-multiple-fields-appearance-l10n.html
36332
36333         * css/html.css:
36334         (input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
36335         (input[type="datetime"]): Ditto.
36336         (input[type="datetime-local"]): Ditto.
36337         (input[type="month"]): Ditto.
36338         (input[type="time"]): Ditto.
36339         (input[type="week"]): Ditto.
36340         (input[type="week"]::-webkit-inner-spin-button):
36341         Use -webkit-margin-start. Also use an integral pixel size instead of
36342         avoid a fractional relative size to avoid subpixel layout rounding.
36343
36344 2012-10-23  Dan Bernstein  <mitz@apple.com>
36345
36346         The font cache evicts inactive font data too aggressively when not under memory pressure
36347         https://bugs.webkit.org/show_bug.cgi?id=100194
36348
36349         Reviewed by Sam Weinig.
36350
36351         Increasing the number of inactive font data objects the cache may hold increases the hit
36352         rate, leading to improved page load performance. When memory pressure is detected,
36353         MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
36354         increasing here.
36355
36356         * platform/graphics/FontCache.cpp:
36357         (WebCore): Increased the maximum number of inactive font data objects in the cache from 50
36358         to 225, and the number of objects to evict once the limit is met from 20 to 25.
36359
36360 2012-10-23  Takashi Sakamoto  <tasak@google.com>
36361
36362         [Shadow DOM] Needs @host rule for ShadowDOM styling
36363         https://bugs.webkit.org/show_bug.cgi?id=88606
36364
36365         Reviewed by Hajime Morita.
36366
36367         Implemented @host-@rules according to the shadow dom spec:
36368         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
36369         The design doc is:
36370         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
36371
36372         Test: fast/dom/shadow/athost-atrules.html
36373
36374         * css/CSSGrammar.y.in:
36375         Added rules for parsing @host @-rules.
36376         * css/CSSParser.cpp:
36377         (WebCore::CSSParser::detectAtToken):
36378         Added a new token "@host".
36379         (WebCore::CSSParser::createHostRule):
36380         Added a new method to create an @host @-rule, which is invoked from
36381         (WebCore):
36382         * css/CSSParser.h:
36383         Added a declaration of the above new method: createHostRule.
36384         * css/CSSPropertySourceData.h:
36385         Added HOST_RULE to enum Type.
36386         * css/RuleSet.cpp:
36387         (WebCore::RuleData::RuleData):
36388         Modified multiple bool arguments into one argument. Now it
36389         uses combinations of values from enum AddRuleFlags.
36390         (WebCore::RuleSet::addRule):
36391         (WebCore::RuleSet::addRegionRule):
36392         (WebCore::RuleSet::addStyleRule):
36393         Updated according to the RuleData's change.
36394         Modified to Invoke increaseSpecificity if the given rule is @host
36395         @-rule.
36396         (WebCore::RuleSet::addRulesFromSheet):
36397         Invoked addHostRule if the given rule is @host @-rule.
36398         * css/RuleSet.h:
36399         (RuleData):
36400         (WebCore::RuleData::increaseSpecificity):
36401         Added a new method to increase selector's specificity. This method is
36402         used to make @host @-rules' specificity larger than normal author
36403         rules' specificity.
36404         (RuleSet):
36405         * css/StyleResolver.cpp:
36406         (WebCore::makeRuleSet):
36407         (WebCore::StyleResolver::addHostRule):
36408         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
36409         is used to make only StyleResolver know an implementation detail about
36410         class StyleScopeResolver.
36411         (WebCore::StyleResolver::appendAuthorStylesheets):
36412         Updated according to the RuleData's change.
36413         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
36414         A new method to find matched host rules when an element is given.
36415         This method invokes
36416         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
36417         matched host rules.
36418         (WebCore):
36419         (WebCore::StyleResolver::matchHostRules):
36420         A new method to find matched host rules when an element is given.
36421         This method invokes StyleScopeResolver::matchHostRules to find
36422         matched host rules.
36423         (WebCore::StyleResolver::matchScopedAuthorRules):
36424         Modified to invoke matchHostRules.
36425         (WebCore::StyleResolver::locateSharedStyle):
36426         Disable sibling style cache if the given element is a shadow host and
36427         any @host @-rules are applied to the element.
36428         * css/StyleResolver.h:
36429         (WebCore::StyleResolver::ensureScopeResolver):
36430         If no scopeResolver is created, create and return the instance.
36431         If created, just return the instance.
36432         (StyleResolver):
36433         * css/StyleRule.cpp:
36434         (WebCore::StyleRuleBase::reportMemoryUsage):
36435         (WebCore::StyleRuleBase::destroy):
36436         (WebCore::StyleRuleBase::copy):
36437         (WebCore::StyleRuleBase::createCSSOMWrapper):
36438         (WebCore::StyleRuleHost::StyleRuleHost):
36439         Implemented class StyleRuleHost. The class is almost the same as
36440         StyleRuleBlock except type.
36441         (WebCore):
36442         * css/StyleRule.h:
36443         (WebCore::StyleRuleBase::isHostRule):
36444         (StyleRuleHost):
36445         (WebCore::StyleRuleHost::create):
36446         (WebCore::StyleRuleHost::copy):
36447         (WebCore):
36448         * css/StyleScopeResolver.cpp:
36449         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
36450         A new method to create a new RuleSet for the given shadow root.
36451         (WebCore):
36452         (WebCore::StyleScopeResolver::atHostRuleSetFor):
36453         A new private inline method to obtain @host @-rules declared in
36454         the given shadow root.
36455         (WebCore::StyleScopeResolver::addHostRule):
36456         Added a new method to register @host @-rules with shadow roots.
36457         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
36458         A new method to find whether any @host @-rules are applied to
36459         the given host element.
36460         (WebCore::StyleScopeResolver::matchHostRules):
36461         A new method to find matched rules for the given host element.
36462         (WebCore::StyleScopeResolver::reportMemoryUsage):
36463         * css/StyleScopeResolver.h:
36464         (WebCore):
36465         (StyleScopeResolver):
36466         * css/StyleSheetContents.cpp:
36467         (WebCore::childRulesHaveFailedOrCanceledSubresources):
36468
36469 2012-10-23  Andreas Kling  <kling@webkit.org>
36470
36471         REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
36472         <http://webkit.org/b/100065>
36473
36474         Reviewed by Anders Carlsson.
36475
36476         Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
36477         collisions. This will need a proper fix at some point.
36478
36479         * plugins/PluginDatabase.h:
36480         * plugins/PluginPackage.h:
36481         (PluginPackageHashTraits):
36482
36483 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36484
36485         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36486         https://bugs.webkit.org/show_bug.cgi?id=100159
36487
36488         Reviewed by Tim Horton.
36489
36490         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36491         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36492
36493         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36494
36495         * page/Frame.h:
36496         * platform/graphics/GraphicsLayer.cpp:
36497         (showGraphicsLayerTree):
36498         * platform/graphics/GraphicsLayer.h:
36499         (WebCore::GraphicsLayer::tiledBacking):
36500         * platform/graphics/TiledBacking.h:
36501         * platform/graphics/ca/GraphicsLayerCA.cpp:
36502         (WebCore::GraphicsLayerCA::tiledBacking):
36503         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36504         * platform/graphics/ca/GraphicsLayerCA.h:
36505         (GraphicsLayerCA):
36506         * platform/graphics/ca/mac/TileCache.h:
36507         (WebCore::TileCache::tileCoverageRect):
36508         (TileCache):
36509         * platform/graphics/ca/mac/TileCache.mm:
36510         (WebCore::TileCache::computeTileCoverageRect):
36511         (WebCore::TileCache::revalidateTiles):
36512         * rendering/RenderLayerCompositor.cpp:
36513         (WebCore::RenderLayerCompositor::layerTreeAsText):
36514         * testing/Internals.cpp:
36515         (WebCore::Internals::layerTreeAsText):
36516         * testing/Internals.h:
36517         * testing/Internals.idl:
36518
36519 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36520
36521         Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
36522         https://bugs.webkit.org/show_bug.cgi?id=100187
36523         <rdar://problem/12546770>
36524
36525         Reviewed by Dan Bernstein.
36526
36527         Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
36528         to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
36529         background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
36530         to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
36531         that require frequent flushing, such as those running animated GIFs.
36532         
36533         Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
36534         when re-attaching the root layer, and if it's set, flush the GraphicsLayers.
36535         
36536         Not testable because we can't test detaching and re-adding web views in DRT/WTR.
36537
36538         * rendering/RenderLayerCompositor.cpp:
36539         (WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
36540         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
36541         is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
36542         (WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
36543         saying that we're the flush root.
36544         * rendering/RenderLayerCompositor.h:
36545         (RenderLayerCompositor): Add m_shouldFlushOnReattach flag.
36546
36547 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
36548
36549         Unreviewed, rolling out r132276.
36550         http://trac.webkit.org/changeset/132276
36551         https://bugs.webkit.org/show_bug.cgi?id=100189
36552
36553         It broke the Qt-WK2 build intentionally (Requested by
36554         Ossy_night on #webkit).
36555
36556         * page/Frame.h:
36557         * platform/graphics/GraphicsLayer.cpp:
36558         (showGraphicsLayerTree):
36559         * platform/graphics/GraphicsLayer.h:
36560         (WebCore::GraphicsLayer::tiledBacking):
36561         * platform/graphics/TiledBacking.h:
36562         * platform/graphics/ca/GraphicsLayerCA.cpp:
36563         (WebCore::GraphicsLayerCA::tiledBacking):
36564         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36565         * platform/graphics/ca/GraphicsLayerCA.h:
36566         (GraphicsLayerCA):
36567         * platform/graphics/ca/mac/TileCache.h:
36568         * platform/graphics/ca/mac/TileCache.mm:
36569         (WebCore::TileCache::tileCoverageRect):
36570         (WebCore::TileCache::revalidateTiles):
36571         * rendering/RenderLayerCompositor.cpp:
36572         (WebCore::RenderLayerCompositor::layerTreeAsText):
36573         * testing/Internals.cpp:
36574         (WebCore::Internals::layerTreeAsText):
36575         * testing/Internals.h:
36576         * testing/Internals.idl:
36577
36578 2012-10-23  Philip Rogers  <pdr@google.com>
36579
36580         Add extra check for data() in PageSerializer.
36581         https://bugs.webkit.org/show_bug.cgi?id=99102
36582
36583         Reviewed by Eric Seidel.
36584
36585         The image returned from imageForRenderer() does not contain the raw SVG data
36586         so this patch adds a check for image->image()->data() before writing SVG
36587         in PageSerializer::addImageToResources.
36588
36589         Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.
36590
36591         * page/PageSerializer.cpp:
36592         (WebCore::PageSerializer::addImageToResources):
36593
36594 2012-10-23  Kent Tamura  <tkent@chromium.org>
36595
36596         Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
36597         https://bugs.webkit.org/show_bug.cgi?id=100129
36598
36599         Reviewed by Kentaro Hara.
36600
36601         We're going to use appendAsLDMLLiteral in other code, and it is
36602         related to DateTimeFormat class.  So we move it to DateTimeFormat
36603         class as quoteAndAppendLiteral.
36604
36605         No new tests because of no behavior change.
36606
36607         * platform/text/DateTimeFormat.cpp:
36608         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
36609         Moved from LocaleWin.cpp
36610         * platform/text/DateTimeFormat.h:
36611         Declare StringBuilder by wtf/Forward.h. It also declares String.
36612         (DateTimeFormat): Declare quoteAndAppendLiteral.
36613         * platform/text/LocaleWin.cpp:
36614         (WebCore): Move appendLDMLLiteral to DateTimeFormat.
36615         (WebCore::convertWindowsDateFormatToLDML):
36616         Follow the moving.
36617
36618 2012-10-23  Kent Tamura  <tkent@chromium.org>
36619
36620         REGRESSION(r131421): Text baseline is not aligned in some locales
36621         https://bugs.webkit.org/show_bug.cgi?id=100088
36622
36623         Reviewed by Hajime Morita.
36624
36625         Before this patch, the element with ::-webkit-datetime-edit had
36626         -webkit-align-items:center. It was incorrect at all because it
36627         ignores baselines of each of inner fields. We need to change it to
36628         -webkit-align-items:baseline, or stop using -webkit-flex.
36629
36630         However -webkit-align-items:baseline doesn't work because a spin
36631         button element in the element doesn't have the baseline. If we
36632         specified -webkit-align-items:baseline, the spin button would
36633         shift up.
36634
36635         So, we change the element structure for multiple fields input
36636         elements. Before this patch, the structure was:
36637
36638         input
36639           |
36640            - ::-webkit-date-and-time-container (flex cotainer)
36641              |
36642              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
36643              |  |- ::-webkit-datetime-edit-foo
36644              |  |      :
36645              |  |
36646              |  |- ::-webkit-date-time-edit-gap  (has flexibility in datetime-edit)
36647              |   - ::-webkit-inne-spin-button
36648               - ::-webkit-calendar-picker-indicator
36649
36650         After the patch, the structure will be:
36651
36652         input
36653           |
36654            - ::-webkit-date-and-time-container (flexible box)
36655              |
36656              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container)
36657              |  |- ::-webkit-datetime-edit-foo
36658              |  |      :
36659              |  |
36660              |
36661              |- ::-webkit-inne-spin-button
36662               - ::-webkit-calendar-picker-indicator
36663
36664         Because the spin button owner is date-and-time-container, we don't
36665         need to make the datetime-edit element a flex container.
36666
36667         Also, we had rounding error by subpixel layout. To avoid it, we
36668         stop using fractional paddings.
36669
36670         In order to implement this, we need to change the SpinButtonOwner
36671         interface provider from DateTimeEditElement to
36672         BaseMultipleFieldsDateAndTimeInputType.
36673
36674         No new tests. Covered by month-multiple-fields-appearance-l10n.html.
36675
36676         * css/html.css:
36677         (input::-webkit-datetime-edit): Stop making this a flex
36678         container. Inner fields in this use the single baseline.
36679         (input::-webkit-datetime-edit-ampm-field):
36680         Don't use fractional paddings to avoid rounding erros of subpixel
36681         layout.  Use integral margin instead to avoid overwrap of focus
36682         ring and background-color of the field.
36683         (input::-webkit-datetime-edit-day-field): Ditto.
36684         (input::-webkit-datetime-edit-hour-field): Ditto.
36685         (input::-webkit-datetime-edit-millisecond-field): Ditto.
36686         (input::-webkit-datetime-edit-minute-field): Ditto.
36687         (input::-webkit-datetime-edit-month-field): Ditto.
36688         (input::-webkit-datetime-edit-second-field): Ditto.
36689         (input::-webkit-datetime-edit-week-field): Ditto.
36690         (input::-webkit-datetime-edit-year-field): Ditto.
36691         (input::-webkit-date-and-time-container): Ditto.
36692
36693         * html/BaseMultipleFieldsDateAndTimeInputType.h:
36694         (BaseMultipleFieldsDateAndTimeInputType): Overrides
36695         SpinButtonOwner functions, and add m_spinButtonElement.
36696         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
36697         (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
36698         Just delegate to DateTimeEditElement::focusIfNoFocus.
36699         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
36700         Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
36701         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
36702         Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
36703         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
36704         Delegate to DateTimeEditElement::stepDown.
36705         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
36706         Delegate to DateTimeEditElement::stepUp.
36707         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
36708         Initialize m_spinButtonElement.
36709         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
36710         Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
36711         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
36712         Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
36713         (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
36714         Take care of SpinButtonElement.
36715         (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
36716         Release capture of SpinButtonElement. This corresponds to the old
36717         code of DateTimeEditElement::updateUIState.
36718         (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.
36719
36720         * html/TextFieldInputType.h:
36721         Make SpinButtonElement::SpinButtonOwner protected to allow overriding.
36722
36723         * html/shadow/DateTimeEditElement.h:
36724         (DateTimeEditElement): Remove SpniButtonOwner implementation,
36725         m_spinButton, and rename some functions.
36726         * html/shadow/DateTimeEditElement.cpp:
36727         (WebCore::DateTimeEditElement::DateTimeEditElement):
36728         Remove m_spinButton.
36729         (WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
36730         (WebCore::DateTimeEditElement::focusIfNoFocus):
36731         Renamed from focusAndSelectSpinButtonOwner. This is called
36732         BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
36733         (WebCore::DateTimeEditElement::layout):
36734         Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
36735         (WebCore::DateTimeEditElement::defaultEventHandler):
36736         Move the code for m_spinButton to
36737         BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
36738         (WebCore::DateTimeEditElement::hasFocusedField): A helper for
36739         BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
36740         (WebCore::DateTimeEditElement::stepDown): A helper for
36741         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
36742         (WebCore::DateTimeEditElement::stepUp): A helper for
36743         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
36744         (WebCore::DateTimeEditElement::updateUIState): Move the code to
36745         BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
36746         and readonlyAttributeChanged.
36747
36748 2012-10-23  Andreas Kling  <kling@webkit.org>
36749
36750         Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
36751         <http://webkit.org/b/100123>
36752
36753         Reviewed by Anders Carlsson.
36754
36755         Remove one pointer of unintentional padding in the immutable versions of these objects.
36756         583kB progression on Membuster3.
36757
36758         * css/StylePropertySet.cpp:
36759         (WebCore::immutableStylePropertySetSize):
36760         * dom/ElementAttributeData.cpp:
36761         (WebCore::immutableElementAttributeDataSize):
36762
36763 2012-10-23  Nate Chapin  <japhet@chromium.org>
36764
36765         Crash in WebCore::SubresourceLoader::willSendRequest.
36766         https://bugs.webkit.org/show_bug.cgi?id=100147
36767
36768         Reviewed by Abhishek Arya.
36769
36770         No new tests. There is a test case that should cover this, but it doesn't
36771         work correctly on many platforms due to its use of testRunner.addURLToRedirect().
36772         See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
36773         Tested manually on http://www.nick.co.uk/shows/spongebob
36774
36775         * loader/SubresourceLoader.cpp:
36776         (WebCore::SubresourceLoader::willSendRequest):
36777
36778 2012-10-23  Martin Robinson  <mrobinson@igalia.com>
36779
36780         [GTK][Soup] Implement the default authentication dialog via WebCoreSupport
36781         https://bugs.webkit.org/show_bug.cgi?id=99351
36782
36783         Reviewed by Carlos Garcia Campos.
36784
36785         Instead of connecting to the SoupSession::authenticate signal in the API layer
36786         via a SoupSessionFeature, route the message through the typical WebCore authentication
36787         mechanism. This is a step on the path to having full-blown support for authentication
36788         in the API allowing for custom authentication dialogs and behavior in clients.
36789
36790         No new tests. This should not change behavior.
36791
36792         * GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
36793         * loader/ResourceLoader.cpp:
36794         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.
36795         * platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth
36796         carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
36797         is destroyed.
36798         * platform/gtk/GtkAuthenticationDialog.h: ditto.
36799         * platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
36800         * platform/network/ResourceHandleInternal.h:
36801         (ResourceHandleInternal): Remove the getter for the initiating page ID.
36802         * platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge
36803         that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.
36804         * platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
36805         * platform/network/soup/ResourceError.h:
36806         (ResourceError): Added a factory for authentication errors.
36807         * platform/network/soup/ResourceErrorSoup.cpp: Ditto.
36808         * platform/network/soup/ResourceHandleSoup.cpp:
36809         (WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
36810         (WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
36811         It's always used now.
36812         (WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
36813         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
36814         the authentication challenge to the client.
36815         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
36816         (WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
36817         (WebCore::authenicateCallback): Added.
36818         (WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.
36819
36820 2012-10-23  Adam Barth  <abarth@webkit.org>
36821
36822         [V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
36823         https://bugs.webkit.org/show_bug.cgi?id=100157
36824
36825         Reviewed by Eric Seidel.
36826
36827         This patch removes the traits template parameter from GCEpilogueVisitor
36828         and makes it mirror GCPrologueVisitor again.
36829
36830         * bindings/v8/V8GCController.cpp:
36831         (WebCore):
36832         (ActiveDOMObjectEpilogueVisitor):
36833         (WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
36834         (WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
36835         (WebCore::V8GCController::majorGCEpilogue):
36836
36837 2012-10-23  Varun Jain  <varunjain@chromium.org>
36838
36839         Context menu generated from touch gestures on textareas has
36840         context of the cursor position instead of the position where the event occurs.
36841         https://bugs.webkit.org/show_bug.cgi?id=99520
36842
36843         Reviewed by Kenneth Rohde Christiansen.
36844
36845         Send a synthetic mouse down event for context menu-summoning-gesture events so
36846         that textareas can correctly set cursors before receiving the context menu event.
36847
36848         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
36849
36850         * page/EventHandler.cpp:
36851         (WebCore::EventHandler::handleGestureEvent):
36852         (WebCore::EventHandler::handleGestureTwoFingerTap):
36853         (WebCore):
36854         (WebCore::EventHandler::sendContextMenuEventForGesture):
36855         * page/EventHandler.h:
36856         (EventHandler):
36857
36858 2012-10-23  Andy Estes  <aestes@apple.com>
36859
36860         [WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
36861         https://bugs.webkit.org/show_bug.cgi?id=100162
36862
36863         Reviewed by Sam Weinig.
36864
36865         * WebCore.exp.in: Exported symbols needed by WebKit2.
36866         * bindings/objc/DOM.mm:
36867         (-[DOMNode textRects]): Moved some logic into Node::textRects()
36868         (everything but the call to updateLayoutIgnorePendingStylesheets()).
36869         * dom/Node.cpp:
36870         (WebCore::Node::textRects):
36871         * dom/Node.h:
36872
36873 2012-10-23  Adam Barth  <abarth@webkit.org>
36874
36875         [V8] Remove unused function from DOM wrapper visitor
36876         https://bugs.webkit.org/show_bug.cgi?id=100163
36877
36878         Reviewed by Eric Seidel.
36879
36880         No one overrides these virtual functions. They were added in
36881         http://trac.webkit.org/changeset/73491, but we don't use them in the GC
36882         controller anymore.
36883
36884         * bindings/v8/V8DOMMap.h:
36885         (WebCore::WeakReferenceMap::visit):
36886
36887 2012-10-23  Aaron Colwell  <acolwell@chromium.org>
36888
36889         Clear m_mediaSource reference when the MediaSource is closed
36890         https://bugs.webkit.org/show_bug.cgi?id=100047
36891
36892         Reviewed by Eric Carlson.
36893
36894         The m_mediaSource object shouldn't be accessed after the object
36895         transitions to closed so this change simply clears the reference
36896         when that transition happens.
36897
36898         No new tests because the change isn't visible to JavaScript.
36899
36900         * html/HTMLMediaElement.cpp:
36901         (WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
36902         (WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.
36903
36904 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36905
36906         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36907         https://bugs.webkit.org/show_bug.cgi?id=100159
36908
36909         Reviewed by Tim Horton.
36910
36911         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36912         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36913
36914         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36915
36916         * page/Frame.h:
36917         * platform/graphics/GraphicsLayer.cpp:
36918         (showGraphicsLayerTree):
36919         * platform/graphics/GraphicsLayer.h:
36920         (WebCore::GraphicsLayer::tiledBacking):
36921         * platform/graphics/TiledBacking.h:
36922         * platform/graphics/ca/GraphicsLayerCA.cpp:
36923         (WebCore::GraphicsLayerCA::tiledBacking):
36924         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36925         * platform/graphics/ca/GraphicsLayerCA.h:
36926         (GraphicsLayerCA):
36927         * platform/graphics/ca/mac/TileCache.h:
36928         (WebCore::TileCache::tileCoverageRect):
36929         (TileCache):
36930         * platform/graphics/ca/mac/TileCache.mm:
36931         (WebCore::TileCache::computeTileCoverageRect):
36932         (WebCore::TileCache::revalidateTiles):
36933         * rendering/RenderLayerCompositor.cpp:
36934         (WebCore::RenderLayerCompositor::layerTreeAsText):
36935         * testing/Internals.cpp:
36936         (WebCore::Internals::layerTreeAsText):
36937         * testing/Internals.h:
36938         * testing/Internals.idl:
36939
36940 2012-10-23  No'am Rosenthal  <noam.rosenthal@nokia.com>
36941
36942         Coordinated Graphics: Enable threaded/IPC animations
36943         https://bugs.webkit.org/show_bug.cgi?id=93146
36944
36945         Reviewed by Kenneth Rohde Christiansen.
36946
36947         Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
36948         across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
36949         and allowed a GraphicsLayerTextureMapper to receive a full list of animations.
36950
36951         Covered by existing animation and compositing tests.
36952
36953         * platform/graphics/GraphicsLayerAnimation.cpp:
36954         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
36955             Initialize the animation with the startTime instead of the offset.
36956
36957         (WebCore::GraphicsLayerAnimations::getActiveAnimations):
36958         * platform/graphics/GraphicsLayerAnimation.h:
36959         (WebCore::GraphicsLayerAnimation::setState):
36960             Allow setting the pause time as well.
36961
36962         (WebCore::GraphicsLayerAnimation::boxSize):
36963         (WebCore::GraphicsLayerAnimation::startTime):
36964         (WebCore::GraphicsLayerAnimation::pauseTime):
36965         (WebCore::GraphicsLayerAnimation::animation):
36966         (WebCore::GraphicsLayerAnimation::keyframes):
36967         (WebCore::GraphicsLayerAnimation::listsMatch):
36968         (WebCore::GraphicsLayerAnimations::size):
36969         (WebCore::GraphicsLayerAnimations::animations):
36970             Add public accessors to GraphicsLayerAnimation properties.
36971
36972         (GraphicsLayerAnimation):
36973         (GraphicsLayerAnimations):
36974         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
36975         (WebCore::GraphicsLayerTextureMapper::addAnimation):
36976         (WebCore::GraphicsLayerTextureMapper::setAnimations):
36977             Allow replacing the entire list of animations.
36978
36979         (WebCore):
36980         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
36981         (GraphicsLayerTextureMapper):
36982         * platform/graphics/texmap/TextureMapperLayer.cpp:
36983         (WebCore::TextureMapperLayer::applyAnimationsRecursively):
36984         (WebCore):
36985         * platform/graphics/texmap/TextureMapperLayer.h:
36986         (TextureMapperLayer):
36987
36988 2012-10-23  Chris Rogers  <crogers@google.com>
36989
36990         Change setTargetValueAtTime() to setTargetAtTime()
36991         https://bugs.webkit.org/show_bug.cgi?id=100153
36992
36993         Reviewed by Adam Barth.
36994
36995         The AudioParam method name has changed due to Web Audio API spec review.
36996         Keep legacy support for the old name.
36997
36998         Test: webaudio/audioparam-setTargetAtTime.html
36999
37000         * Modules/webaudio/AudioParam.h:
37001         (WebCore::AudioParam::setTargetAtTime):
37002         * Modules/webaudio/AudioParam.idl:
37003         * Modules/webaudio/AudioParamTimeline.cpp:
37004         (WebCore::AudioParamTimeline::setTargetAtTime):
37005         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
37006         * Modules/webaudio/AudioParamTimeline.h:
37007         (AudioParamTimeline):
37008
37009 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37010
37011         [Mac] Remove extraneous conversion to String->NSString
37012         https://bugs.webkit.org/show_bug.cgi?id=100044
37013
37014         Reviewed by Darin Adler.
37015
37016         Improve some unfortunate use of String->NSString.
37017
37018         * accessibility/mac/AXObjectCacheMac.mm:
37019         (WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
37020         needed as NSString, and all its value are or can be NSString.
37021         Convert the last 3 char* values to NSString literal and use NSString* all the way.
37022
37023         * loader/mac/LoaderNSURLExtras.h:
37024         * loader/mac/LoaderNSURLExtras.mm:
37025         (suggestedFilenameWithMIMEType):
37026         We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
37027         for the string to be a NSSTring there, we can leave it in its original type.
37028
37029         The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.
37030
37031         * platform/mac/DragImageMac.mm:
37032         (WebCore::createDragImageForLink):
37033         Use String's nsStringNilIfEmpty().
37034
37035         * platform/mac/HTMLConverter.mm:
37036         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
37037         Fix the coding style. Do the conversion to NSString only when needed.
37038
37039 2012-10-23  Roger Fong  <roger_fong@apple.com>
37040
37041         [Win] Popup menus positioning needs to take multiple monitors into account.
37042         https://bugs.webkit.org/show_bug.cgi?id=100158
37043
37044         Reviewed by Timothy Horton.
37045
37046         Add screen.x() to repositioning check to account for position of current monitor.
37047
37048         * platform/win/PopupMenuWin.cpp:
37049         (WebCore::PopupMenuWin::calculatePositionAndSize):
37050
37051 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37052
37053         [CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
37054         https://bugs.webkit.org/show_bug.cgi?id=99908
37055
37056         Reviewed by Dean Jackson.
37057
37058         CSS Shaders can not render anything until the program is loaded. If there is
37059         partial loaded shaders program, whole FilterOperations chain can not render
37060         anything. It occurs a flash. So We have to wait until the program is loaded, to
37061         prevent a flash as RenderLayerBacking::updateImageContents() waits until an
37062         image is fully loaded.
37063
37064         No new tests, CSS Shaders on Accelerated Compositing are not activated yet.
37065
37066         * rendering/RenderLayerBacking.cpp:
37067         (WebCore::RenderLayerBacking::updateFilters):
37068
37069 2012-10-23  Elliott Sprehn  <esprehn@chromium.org>
37070
37071         Generated should not be supported for things with a shadow
37072         https://bugs.webkit.org/show_bug.cgi?id=98836
37073
37074         Reviewed by Dimitri Glazkov.
37075
37076         As far as CSS is concerned inputs and things with shadow content inside
37077         shouldn't support pseudo elements like :before, :after or :first-letter.
37078         Neither Gecko or Presto supports it, and we only accidentally supported
37079         it.
37080
37081         Until the spec tells us what to do we should disable support. This is
37082         also neccesary because the new generated content implementation doesn't
37083         support shadows.
37084
37085         Test: fast/forms/pseudo-elements.html
37086
37087         * rendering/RenderBlock.cpp:
37088         (WebCore::RenderBlock::updateFirstLetter):
37089         * rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
37090         * rendering/RenderObjectChildList.cpp:
37091         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
37092
37093 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37094
37095         [CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
37096         https://bugs.webkit.org/show_bug.cgi?id=98504
37097
37098         Reviewed by Dean Jackson.
37099
37100         Add expressions for the aforementioned blend modes. The expressions are lifted
37101         directly from the CSS Compositing and Blending spec [1]. WebKit adds these
37102         blending expressions to the author's shader.
37103
37104         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal
37105
37106         Test: css3/filters/custom/custom-filter-blend-modes.html
37107
37108         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37109         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
37110         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
37111
37112 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37113
37114         [CSS Shaders] Implement all composite operators except destination and lighter.
37115         https://bugs.webkit.org/show_bug.cgi?id=97859
37116
37117         Reviewed by Dean Jackson.
37118
37119         Add expressions for all composite operators except destination and
37120         lighter. The expressions are lifted directly from the CSS Compositing
37121         and Blending spec [1]. WebKit adds these compositing expressions to the
37122         author's shader.
37123
37124         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
37125
37126         Test: css3/filters/custom/custom-filter-composite-operators.html
37127
37128         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
37129         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
37130             Remove ASSERTION checking if glGetUniformLocation returns negative,
37131             because ASSERTION can fail with clear and copy composite operations.
37132             Clear and copy composite operations do not need "css_u_texture"
37133             representing the DOM element texture. If the driver compiler is
37134             smart, "css_u_texture" is not regarded as an active uniform, so
37135             glGetuniformLocation returns -1. glGetAttribLocation ditto.
37136         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37137         (WebCore::CustomFilterValidatedProgram::compiledProgram):
37138             Move the above ASSERTION in CustomFilterCompiledProgram to here.
37139             ASSERTION checks if m_samplerLocation is not -1 when the author
37140             shader needs an input texture.
37141         (WebCore::CustomFilterValidatedProgram::needsInputTexture):
37142         (WebCore):
37143         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
37144         * platform/graphics/filters/CustomFilterValidatedProgram.h:
37145         (CustomFilterValidatedProgram):
37146
37147 2012-10-23  Max Vujovic  <mvujovic@adobe.com>
37148
37149         [CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
37150         https://bugs.webkit.org/show_bug.cgi?id=99887
37151
37152         Reviewed by Dirk Schulze.
37153
37154         Before this patch, WebKit would not recompute an element's style when just its custom filter
37155         blend mode changed.
37156
37157         For example, suppose an element initially has the style:
37158         -webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));
37159
37160         Then, we change the blend mode from "multiply" to "normal":
37161         -webkit-filter: custom(none mix(url(shader.fs) normal source-atop));
37162
37163         WebKit now detects this change and recomputes the style.
37164
37165         CustomFilterProgram now has an equals operator that considers the program type and the mix
37166         settings. The mix settings contain the blend mode.
37167
37168         Test: css3/filters/custom/custom-filter-change-blend-mode.html
37169
37170         * platform/graphics/filters/CustomFilterProgram.cpp:
37171         (WebCore::CustomFilterProgram::operator==):
37172             Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
37173             CustomFilterProgram implements it and compares the program type and mix settings, if
37174             appropriate.
37175         (WebCore):
37176         * platform/graphics/filters/CustomFilterProgram.h:
37177         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
37178         (WebCore::CustomFilterProgramInfo::hash):
37179             Refactor a repeated condition into a boolean to improve readability.
37180         (WebCore::CustomFilterProgramInfo::operator==):
37181             Refactor repeated conditions to improve readability. Reorder the conditions so the less
37182             expensive ones occur first.
37183         * rendering/style/StyleCustomFilterProgram.h:
37184         (WebCore::StyleCustomFilterProgram::operator==):
37185             Call the base class's equals operator.
37186
37187 2012-10-23  David Barton  <dbarton@mathscribe.com>
37188
37189         [MathML] Symbol font uses greek letters for roman ones on linux and Windows
37190         https://bugs.webkit.org/show_bug.cgi?id=99921
37191
37192         Reviewed by Eric Seidel.
37193
37194         For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
37195         which on linux and Windows has greek letters at roman code points. To fix this, we switch
37196         to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
37197         glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
37198         these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.
37199
37200         Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.
37201
37202         * css/mathml.css:
37203         (math, mfenced > *):
37204             - Set font-family for mn, mi, etc.
37205         (mo, mfenced):
37206             - Set font-family for mo and anonymous operators, including extension glyphs for
37207               stretched operators like parentheses and brackets.
37208         (math):
37209         * rendering/mathml/RenderMathMLOperator.cpp:
37210         (WebCore):
37211             - Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.
37212         (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
37213         (WebCore::RenderMathMLOperator::updateFromElement):
37214         (WebCore::RenderMathMLOperator::createStackableStyle):
37215             - Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size
37216               of 14.
37217         (WebCore::RenderMathMLOperator::createGlyph):
37218             - Eliminate unused lineHeight and topRelative parameters.
37219         * rendering/mathml/RenderMathMLOperator.h:
37220         (RenderMathMLOperator):
37221
37222 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37223
37224         WTFURL: Implement KURL::setPort()
37225         https://bugs.webkit.org/show_bug.cgi?id=99898
37226
37227         Reviewed by Adam Barth.
37228
37229         * platform/KURLWTFURL.cpp:
37230         (WebCore::KURL::setPort):
37231
37232 2012-10-23  Nico Weber  <thakis@chromium.org>
37233
37234         In the open-source jpeg decoder, read image orientation from the exif data
37235         https://bugs.webkit.org/show_bug.cgi?id=100144
37236
37237         Reviewed by Eric Seidel.
37238
37239         This will be used to implement the shouldRespectImageOrientation
37240         setting (see bug 19688). Currently this isn't hooked up anywhere, so
37241         it has no observable effect for now.
37242
37243         Once it's hooked up, it will be tested by
37244         fast/images/exif-orientation.html
37245
37246         * platform/graphics/BitmapImage.h:
37247         * platform/image-decoders/ImageDecoder.h:
37248         (WebCore::ImageDecoder::orientation):
37249         (ImageDecoder):
37250         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
37251         (WebCore::readUint16):
37252         (WebCore):
37253         (WebCore::readUint32):
37254         (WebCore::checkExifHeader):
37255         (WebCore::readImageOrientation):
37256         (WebCore::JPEGImageReader::JPEGImageReader):
37257         (WebCore::JPEGImageReader::decode):
37258         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
37259         (WebCore::JPEGImageDecoder::setOrientation):
37260
37261 2012-10-23  Chris Rogers  <crogers@google.com>
37262
37263         Fix thread safety issue in AudioParamTimeline
37264         https://bugs.webkit.org/show_bug.cgi?id=100154
37265
37266         Reviewed by Kenneth Russell.
37267
37268         Add appropriate locking in AudioParamTimeline::valueForContextTime()
37269
37270         * Modules/webaudio/AudioParamTimeline.cpp:
37271         (WebCore::AudioParamTimeline::valueForContextTime):
37272
37273 2012-10-23  Alec Flett  <alecflett@chromium.org>
37274
37275         IndexedDB: refactor backend to use IDB*Metadata
37276         https://bugs.webkit.org/show_bug.cgi?id=100055
37277
37278         Reviewed by Tony Chang.
37279
37280         This further encapsulates the static data in
37281         IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
37282         respective IDB*Metadata structs, in preparation for
37283         https://bugs.webkit.org/show_bug.cgi?id=99774.
37284
37285         No new tests as this is purely a refactor.
37286
37287         * Modules/indexeddb/IDBBackingStore.h:
37288         (IDBBackingStore):
37289         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
37290         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
37291         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
37292         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
37293         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
37294         (WebCore::IDBIndexBackendImpl::metadata):
37295         * Modules/indexeddb/IDBIndexBackendImpl.h:
37296         (WebCore::IDBIndexBackendImpl::create):
37297         (WebCore::IDBIndexBackendImpl::id):
37298         (WebCore::IDBIndexBackendImpl::setId):
37299         (WebCore::IDBIndexBackendImpl::hasValidId):
37300         (WebCore::IDBIndexBackendImpl::name):
37301         (WebCore::IDBIndexBackendImpl::keyPath):
37302         (WebCore::IDBIndexBackendImpl::unique):
37303         (WebCore::IDBIndexBackendImpl::multiEntry):
37304         (IDBIndexBackendImpl):
37305         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
37306         (WebCore::IDBLevelDBBackingStore::getObjectStores):
37307         (WebCore::IDBLevelDBBackingStore::getIndexes):
37308         * Modules/indexeddb/IDBLevelDBBackingStore.h:
37309         (IDBLevelDBBackingStore):
37310         * Modules/indexeddb/IDBMetadata.h:
37311         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
37312         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
37313         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
37314         (WebCore::IDBObjectStoreBackendImpl::metadata):
37315         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
37316         (WebCore::IDBObjectStoreBackendImpl::putInternal):
37317         (WebCore::IDBObjectStoreBackendImpl::createIndex):
37318         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
37319         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
37320         (WebCore::IDBObjectStoreBackendImpl::create):
37321         (WebCore::IDBObjectStoreBackendImpl::id):
37322         (WebCore::IDBObjectStoreBackendImpl::setId):
37323         (WebCore::IDBObjectStoreBackendImpl::name):
37324         (WebCore::IDBObjectStoreBackendImpl::keyPath):
37325         (WebCore::IDBObjectStoreBackendImpl::autoIncrement):
37326         (IDBObjectStoreBackendImpl):
37327
37328 2012-10-19  Roger Fong  <roger_fong@apple.com>
37329
37330         [WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
37331         https://bugs.webkit.org/show_bug.cgi?id=94041
37332
37333         Reviewed by Dean Jackson.
37334
37335         When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit. 
37336         However when we delete the texture, we need to be setting m_boundTexture0 to 0.
37337         Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture 
37338         has already been deleted we end up in an error state.
37339
37340         Tested using Khronos WebGL conformance suite:
37341         conformance/textures/texture-size.html
37342
37343         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
37344         (WebCore::GraphicsContext3D::deleteTexture):
37345
37346 2012-10-22  Dirk Schulze  <krit@webkit.org>
37347
37348         BasicShapePolygon::path takes width instead of height for boundary calculation
37349         https://bugs.webkit.org/show_bug.cgi?id=99919
37350
37351         Reviewed by Darin Adler.
37352
37353         The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
37354         This caused problems on percentage values for point positions. 
37355         Changed it to the height of the bounding box.
37356
37357         Test: css3/masking/clip-path-polygon-percentage.html
37358
37359         * rendering/style/BasicShapes.cpp:
37360         (WebCore::BasicShapePolygon::path):
37361
37362 2012-10-23  Dominik Röttsches  <dominik.rottsches@intel.com>
37363
37364         Add timeout support to XMLHttpRequest
37365         https://bugs.webkit.org/show_bug.cgi?id=74802
37366
37367         Reviewed by Nate Chapin.
37368
37369         An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
37370         This made several changes necessary in CachedResource and SubresourceLoader in order
37371         to distinguish and forward the timeout case from there.
37372
37373         The case of late updates to the timeout property, changing the timeout value after send()
37374         is not supported yet and handled separately in bug 98156.
37375
37376         XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
37377         permission to reuse them under PD/BSD license
37378         in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
37379         I adapted them for W3C testharness.js and split them into groups with shorter test running time
37380         so that they can be used as WebKit layout tests.
37381
37382         Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
37383                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
37384                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
37385                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
37386                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
37387                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
37388                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
37389                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
37390                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
37391                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
37392                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html
37393
37394         * loader/DocumentThreadableLoader.cpp:
37395         (WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.
37396         * loader/SubresourceLoader.cpp:
37397         (WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.
37398         * loader/cache/CachedResource.h: Distinguishing timeout case for errors.
37399         (WebCore::CachedResource::errorOccurred):
37400         (WebCore::CachedResource::loadFailedOrCanceled):
37401         (WebCore::CachedResource::timedOut):
37402         * xml/XMLHttpRequest.cpp:
37403         (WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
37404         (WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
37405         (WebCore):
37406         (WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
37407         (WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
37408         (WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
37409         (WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.
37410         * xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.
37411         (WebCore::XMLHttpRequest::timeout):
37412         (XMLHttpRequest):
37413         * xml/XMLHttpRequest.idl: New event listener and property added.
37414         * xml/XMLHttpRequestException.cpp:
37415         * xml/XMLHttpRequestException.h: Added an exception value for the timeout case.
37416
37417
37418 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
37419
37420         Possible assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection()
37421         https://bugs.webkit.org/show_bug.cgi?id=99967
37422
37423         Reviewed by Tony Chang.
37424
37425         Fix assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection() when
37426         pressing the left mouse button outside a multiselect and then moving the cursor
37427         over the multiselect element while holding the button down.
37428
37429         The issue is that the HTMLSelectElement handler for the mouse move event does
37430         not check if there is a selection before trying to extend the selection.
37431
37432         Test: fast/dom/HTMLSelectElement/select-selectedIndex-noAnchorIndex-crash.html
37433
37434         * html/HTMLSelectElement.cpp:
37435         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
37436
37437 2012-10-23  Adam Barth  <abarth@webkit.org>
37438
37439         [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)
37440         https://bugs.webkit.org/show_bug.cgi?id=97974
37441
37442         Reviewed by Eric Seidel.
37443
37444         Previously, we stored a pointer to a handle to a wrapper in Node. That
37445         is an extra layer of indirection that slows down finding the wrapper
37446         for the node. A handle is just a pointer, so we might as we just store
37447         the handle in the Node directly. That speeds up dom-modify and
37448         dom-traverse by about 2.5%.
37449
37450         This change also lets us get rid of the ChunkedTable we were using to
37451         store all the wrappers because they're now stored in the Nodes
37452         directly.
37453
37454         * bindings/scripts/CodeGeneratorV8.pm:
37455         (GenerateHeader):
37456         * bindings/v8/IntrusiveDOMWrapperMap.h:
37457         (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
37458         (WebCore::IntrusiveDOMWrapperMap::get):
37459         (WebCore::IntrusiveDOMWrapperMap::set):
37460         (WebCore::IntrusiveDOMWrapperMap::contains):
37461         (WebCore::IntrusiveDOMWrapperMap::visit):
37462         (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
37463         (WebCore::IntrusiveDOMWrapperMap::clear):
37464         * bindings/v8/ScriptWrappable.h:
37465         (WebCore::ScriptWrappable::ScriptWrappable):
37466         (WebCore::ScriptWrappable::wrapper):
37467         (WebCore::ScriptWrappable::setWrapper):
37468         (WebCore::ScriptWrappable::disposeWrapper):
37469         (WebCore::ScriptWrappable::reportMemoryUsage):
37470         (ScriptWrappable):
37471         * bindings/v8/V8DOMWrapper.h:
37472         (WebCore::V8DOMWrapper::getCachedWrapper):
37473
37474 2012-10-23  Kentaro Hara  <haraken@chromium.org>
37475
37476         [V8] Replace SetGlobalGCPrologueCallback() with AddGCPrologueCallback()
37477         https://bugs.webkit.org/show_bug.cgi?id=100140
37478
37479         Reviewed by Adam Barth.
37480
37481         SetGlobalGCPrologueCallback() and SetGlobalGCEpilogueCallback()
37482         are deprecated (See http://code.google.com/codesearch#OAMlx_jo-ck/src/v8/include/v8.h&exact_package=chromium&q=v8.h&type=cs&l=3149)
37483         Instead we should use AddGCPrologueCallback()
37484         and AddGCEpilogueCallback().
37485
37486         No tests. No change in behavior.
37487
37488         * bindings/v8/V8DOMWindowShell.cpp:
37489         (WebCore::initializeV8IfNeeded):
37490         * bindings/v8/V8GCController.cpp:
37491         (WebCore::V8GCController::gcPrologue):
37492         (WebCore):
37493         (WebCore::V8GCController::minorGCPrologue):
37494         (WebCore::V8GCController::majorGCPrologue):
37495         (WebCore::V8GCController::gcEpilogue):
37496         (WebCore::V8GCController::minorGCEpilogue):
37497         (WebCore::V8GCController::majorGCEpilogue):
37498         * bindings/v8/V8GCController.h:
37499         (V8GCController):
37500         * bindings/v8/WorkerContextExecutionProxy.cpp:
37501         (WebCore::WorkerContextExecutionProxy::initIsolate):
37502
37503 2012-10-23  Adam Barth  <abarth@webkit.org>
37504
37505         [V8] Enumerate Nodes via the V8 heap rather than via a list in WebCore
37506         https://bugs.webkit.org/show_bug.cgi?id=100033
37507
37508         Reviewed by Eric Seidel.
37509
37510         This patch changes how we enumerate nodes during garbage collection.
37511         After this patch, we use V8's list of open handles to enumerate node
37512         wrappers rather than using a separate list that we maintain in WebCore
37513         for this purpose. A future patch will remove the list in WebCore for a
37514         DOM performance gain.
37515
37516         * bindings/js/ScriptProfiler.h:
37517         (WebCore):
37518         (WebCore::ScriptProfiler::visitNodeWrappers):
37519         * bindings/scripts/CodeGeneratorV8.pm:
37520         (GenerateToV8Converters):
37521         * bindings/scripts/test/V8/V8TestNode.cpp:
37522         (WebCore::V8TestNode::wrapSlow):
37523         * bindings/v8/IntrusiveDOMWrapperMap.h:
37524         (WebCore::IntrusiveDOMWrapperMap::set):
37525         * bindings/v8/ScriptProfiler.cpp:
37526         (WebCore::ScriptProfiler::visitNodeWrappers):
37527         * bindings/v8/ScriptProfiler.h:
37528         (WebCore):
37529         (ScriptProfiler):
37530         * bindings/v8/V8DOMMap.cpp:
37531         (WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
37532         (WebCore):
37533         (WebCore::visitAllDOMNodes):
37534         * bindings/v8/V8DOMMap.h:
37535         (WebCore):
37536         (NodeWrapperVisitor):
37537         * bindings/v8/V8DOMWrapper.cpp:
37538         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
37539         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
37540         * bindings/v8/V8GCController.cpp:
37541         (WebCore::NodeVisitor::visitNodeWrapper):
37542         (WebCore::V8GCController::gcPrologue):
37543         (WebCore::V8GCController::gcEpilogue):
37544         * inspector/BindingVisitors.h:
37545         (WebCore::WrappedNodeVisitor::~WrappedNodeVisitor):
37546         * inspector/InspectorMemoryAgent.cpp:
37547         (WebCore):
37548
37549 2012-10-22  Andrey Kosyakov  <caseq@chromium.org>
37550
37551         Web Inspector: paint rectangles are incorrectly shown in case subframes are present
37552         https://bugs.webkit.org/show_bug.cgi?id=99849
37553
37554         Reviewed by Pavel Feldman.
37555
37556         Move GraphicsContext and paint rectangle from willPaint() to didPaint(), so we don't have
37557         to store them as a state of InspectorPageAgent
37558
37559         * inspector/InspectorInstrumentation.cpp:
37560         (WebCore):
37561         (WebCore::InspectorInstrumentation::willPaintImpl):
37562         (WebCore::InspectorInstrumentation::didPaintImpl):
37563         * inspector/InspectorInstrumentation.h:
37564         (InspectorInstrumentation):
37565         (WebCore::InspectorInstrumentation::willPaint):
37566         (WebCore::InspectorInstrumentation::didPaint):
37567         * inspector/InspectorPageAgent.cpp:
37568         (WebCore::InspectorPageAgent::didPaint):
37569         * inspector/InspectorPageAgent.h:
37570         * inspector/InspectorTimelineAgent.cpp:
37571         (WebCore::InspectorTimelineAgent::willPaint):
37572         (WebCore::InspectorTimelineAgent::didPaint):
37573         * inspector/InspectorTimelineAgent.h:
37574         (InspectorTimelineAgent):
37575         * inspector/TimelineRecordFactory.cpp:
37576         * inspector/TimelineRecordFactory.h:
37577         (TimelineRecordFactory):
37578         * page/FrameView.cpp:
37579         (WebCore::FrameView::paintContents):
37580         * rendering/RenderLayerBacking.cpp:
37581         (WebCore::RenderLayerBacking::paintContents):
37582
37583 2012-10-23  Pavel Feldman  <pfeldman@chromium.org>
37584
37585         Web Inspector: array grouping does not work for arrays with exactly 10000 elements.
37586         https://bugs.webkit.org/show_bug.cgi?id=100131
37587
37588         Reviewed by Vsevolod Vlasov.
37589
37590         Using ceil() - 1 instead of floor() in bucket size calculation.
37591
37592         * inspector/front-end/ObjectPropertiesSection.js:
37593
37594 2012-10-23  Shinya Kawanaka  <shinyak@chromium.org>
37595
37596         The order of resolving distribution in tree composition is wrong.
37597         https://bugs.webkit.org/show_bug.cgi?id=99552
37598
37599         Reviewed by Dimitri Glazkov.
37600
37601         According to the current ShadowDOM spec, we have to resolve <content> first, then resolve <shadow>.
37602         However, the order of resolution is now the mixed tree order of <content> and <shadow>.
37603
37604         Test: fast/dom/shadow/content-reprojection-order.html
37605
37606         * html/shadow/ContentDistributor.cpp:
37607         (WebCore::ContentDistributor::distribute): We should resolve <content> before <shadow>.
37608         Only the first active shadow insertion point can select the rest of contents.
37609         * html/shadow/HTMLContentElement.h:
37610         (HTMLContentElement):
37611         * html/shadow/HTMLShadowElement.cpp:
37612         * html/shadow/HTMLShadowElement.h:
37613         (WebCore::isHTMLShadowElement):
37614         (WebCore):
37615         (WebCore::toHTMLShadowElement):
37616         * html/shadow/InsertionPoint.h:
37617         (InsertionPoint): We don't need doesSelectFromHostChildren() anymore.
37618
37619 2012-10-23  Vsevolod Vlasov  <vsevik@chromium.org>
37620
37621         Web Inspector: Move UISourceCode creation out of mappings to workspace.
37622         https://bugs.webkit.org/show_bug.cgi?id=100092
37623
37624         Reviewed by Pavel Feldman.
37625
37626         Moved uiSourceCode constructor calls out of mappings to workspace.
37627
37628         * inspector/front-end/CompilerScriptMapping.js:
37629         * inspector/front-end/NetworkUISourceCodeProvider.js:
37630         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
37631         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
37632         * inspector/front-end/ResourceScriptMapping.js:
37633         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
37634         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
37635         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
37636         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
37637         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
37638         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
37639         * inspector/front-end/SASSSourceMapping.js:
37640         (_bindUISourceCode):
37641         * inspector/front-end/ScriptSnippetModel.js:
37642         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
37643         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
37644         * inspector/front-end/Workspace.js:
37645         (WebInspector.Project.prototype.addUISourceCode):
37646         (WebInspector.Project.prototype.removeUISourceCode):
37647         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
37648         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
37649
37650 2012-10-23  Emil A Eklund  <eae@chromium.org>
37651
37652         Remove unnecessary m_layoutDelta[XY]Saturated initialization
37653         https://bugs.webkit.org/show_bug.cgi?id=100018
37654
37655         Reviewed by Julien Chaffraix.
37656         
37657         Remove unnecessary initialization from LayoutState constructor
37658         added in r132105.
37659
37660         No new tests, no change in functionality.
37661
37662         * rendering/LayoutState.cpp:
37663         (WebCore::LayoutState::LayoutState):
37664
37665 2012-10-23  Zeno Albisser  <zeno@webkit.org>
37666
37667         [Texmap] Fix drawTextureRectangleARB after r131485.
37668         https://bugs.webkit.org/show_bug.cgi?id=100133
37669
37670         Consistently rename u_textureSize to u_samplerSize.
37671
37672         Reviewed by Noam Rosenthal.
37673
37674         * platform/graphics/texmap/TextureMapperGL.cpp:
37675         (WebCore::TextureMapperGL::drawTextureRectangleARB):
37676         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
37677         (WebCore::getShaderSpec):
37678         * platform/graphics/texmap/TextureMapperShaderManager.h:
37679         (TextureMapperShaderProgram):
37680
37681 2012-10-23  Mike West  <mkwst@chromium.org>
37682
37683         Web Inspector: 'data:' URLs should be properly trimmed for readability.
37684         https://bugs.webkit.org/show_bug.cgi?id=100083
37685
37686         Reviewed by Pavel Feldman.
37687
37688         We recently landed a patch to trim the middle out of long URLs in
37689         console messages in order to improve readability. That patch didn't
37690         effect 'data:' URLs, as they didn't match the regex in the linkifier.
37691         This patch ensures that 'data:' URLs are properly trimmed down to
37692         size.
37693
37694         This problem came to light while resolving a different, smaller issue:
37695         'image/jpg' wasn't whitelisted as an image MIME type. That trivial fix
37696         is included in this patch.
37697
37698         Test: http/tests/inspector/network/image-as-text-loading-data-url.html
37699
37700         * inspector/front-end/NetworkManager.js:
37701         (WebInspector.NetworkManager):
37702             Adds 'image/jpg' as a valid image type.
37703         * inspector/front-end/ResourceUtils.js:
37704         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
37705             Supports 'data:' URLs in the linkifier's regex.
37706
37707 2012-10-23  Mike West  <mkwst@chromium.org>
37708
37709         Web Inspector: Floated anchor element sometimes overlaps following content.
37710         https://bugs.webkit.org/show_bug.cgi?id=100105
37711
37712         Reviewed by Pavel Feldman.
37713
37714         This patch ensures that each console message clears the
37715         potentially-overlapping floated anchor element.
37716
37717         * inspector/front-end/inspector.css:
37718         (#console-prompt):
37719         (.console-message, .console-user-command):
37720             Clear the float, and flip the border from the bottom of the
37721             message to the top. Do the same for the prompt.
37722         (.console-message:first-child):
37723             Ensure that the first message doesn't have a top border.
37724
37725 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37726
37727         Web Inspector: Crash when adding a keyframes rule in the Styles pane
37728         https://bugs.webkit.org/show_bug.cgi?id=99826
37729
37730         Reviewed by Pavel Feldman.
37731
37732         The client-supplied selector text is first parsed to make sure it results in a valid style rule selector.
37733
37734         Test: inspector/styles/add-new-rule-invalid-selector.html
37735
37736         * inspector/InspectorStyleSheet.cpp:
37737         (WebCore::createCSSParser):
37738         (WebCore):
37739         (WebCore::InspectorStyle::setPropertyText):
37740         (WebCore::checkStyleRuleSelector):
37741         (WebCore::InspectorStyleSheet::addRule):
37742         (WebCore::InspectorStyleSheet::ensureSourceData):
37743         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
37744
37745 2012-10-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
37746
37747         Add support for resolution media query
37748         https://bugs.webkit.org/show_bug.cgi?id=99077
37749
37750         Reviewed by Antti Koivisto.
37751
37752         Add support for 'resolution' media query feature.
37753
37754         Background info:
37755         http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio
37756
37757         Related spec links:
37758         http://www.w3.org/TR/css3-mediaqueries/#resolution (recommendation)
37759         http://www.w3.org/TR/css3-values/#resolution (candidate recommentation)
37760
37761         Add infrastructure to make it testable.
37762
37763         Test: fast/media/mq-resolution.html
37764
37765         * css/CSSParser.cpp:
37766         (WebCore::CSSParser::validUnit):
37767         (WebCore::CSSParser::createPrimitiveNumericValue):
37768         (WebCore::CSSParser::parseValidPrimitive):
37769         (WebCore::CSSParser::detectNumberToken):
37770         * css/CSSParser.h:
37771         * css/CSSPrimitiveValue.cpp:
37772         (WebCore::isValidCSSUnitTypeForDoubleConversion):
37773         (WebCore::unitCategory):
37774         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
37775         (WebCore::CSSPrimitiveValue::customCssText):
37776         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
37777         * css/CSSPrimitiveValue.h:
37778
37779             Enable dpi, dpcm and dppx units when RESOLUTION_MEDIA_QUERY
37780             is enabled.
37781
37782         * WebCore.exp.in:
37783
37784             Export the WebCore::Settings setting.
37785
37786         * css/CSSPrimitiveValue.h:
37787         (WebCore::CSSPrimitiveValue::isDotsPerInch):
37788         (WebCore::CSSPrimitiveValue::isDotsPerPixel):
37789         (WebCore::CSSPrimitiveValue::isDotsPerCentimeter):
37790         (CSSPrimitiveValue):
37791
37792             Add function for checking the recently added density types.
37793
37794         * css/MediaFeatureNames.h:
37795         (MediaFeatureNames):
37796
37797             Add support for resolution, min-resolution and max-resolution.
37798
37799         * css/MediaQueryEvaluator.cpp:
37800         (WebCore::compareResolution): Add methods for comparing resolutions.
37801         (WebCore):
37802         (WebCore::resolutionMediaFeatureEval):
37803         (WebCore::min_resolutionMediaFeatureEval):
37804         (WebCore::max_resolutionMediaFeatureEval):
37805
37806             Implement the resolution method evaluation.
37807
37808         * css/MediaQueryExp.cpp:
37809         (WebCore::featureWithValidPositiveDensity):
37810         (WebCore):
37811         (WebCore::featureWithoutValue):
37812         (WebCore::MediaQueryExp::MediaQueryExp):
37813
37814             Hook up resolution with the right pre-checks.
37815
37816        * page/Screen.cpp:
37817         (WebCore::Screen::horizontalDPI):
37818         (WebCore::Screen::verticalDPI):
37819
37820             Check whether an override exists, and if so, uses it.
37821             If not calculate the value given the device scale factor.
37822
37823         * page/Settings.cpp:
37824         (WebCore::Settings::setResolutionOverride):
37825         (WebCore):
37826         * page/Settings.h:
37827         (Settings):
37828         (WebCore::Settings::resolutionOverride):
37829
37830             Add a resolution override to settings.
37831
37832         * testing/InternalSettings.cpp:
37833         (WebCore::InternalSettings::Backup::Backup):
37834         (WebCore::InternalSettings::Backup::restoreTo):
37835         (WebCore::InternalSettings::setResolutionOverride):
37836         (WebCore):
37837         * testing/InternalSettings.h:
37838         (Backup):
37839         (InternalSettings):
37840         * testing/InternalSettings.idl:
37841
37842             Add a new setResolutionOverride method to internals.settings.
37843
37844 2012-10-23  Filip Spacek  <fspacek@rim.com>
37845
37846         [BlackBerry] Improve the use of stencil buffer during compositing
37847         https://bugs.webkit.org/show_bug.cgi?id=100020
37848
37849         We always want to scissor so remove the define.
37850         Only turn stenciling on if needed.
37851
37852         Reviewed by Rob Buis.
37853
37854         Reviewed internally by Arvid Nilsson.
37855
37856         * platform/graphics/blackberry/LayerRenderer.cpp:
37857         (WebCore::LayerRenderer::setViewport):
37858         (WebCore::LayerRenderer::compositeLayers):
37859         (WebCore::LayerRenderer::drawLayersOnSurfaces):
37860         (WebCore::LayerRenderer::compositeLayersRecursive):
37861         (WebCore::LayerRenderer::updateScissorIfNeeded):
37862
37863 2012-10-23  'Pavel Feldman'  <pfeldman@chromium.org>
37864
37865         Not reviewed: kick out non-chromium files from WebCore.gypi.
37866
37867         * WebCore.gypi:
37868
37869 2012-10-23  Alexander Shalamov  <alexander.shalamov@intel.com>
37870
37871         [EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function
37872         https://bugs.webkit.org/show_bug.cgi?id=100110
37873
37874         Reviewed by Kenneth Rohde Christiansen.
37875
37876         Removed initialization of ecore_x, since it is initialized when process starts.
37877
37878         test: fast/media/*
37879
37880         * platform/efl/PlatformScreenEfl.cpp:
37881         (WebCore::screenDepth):
37882         (WebCore::screenRect):
37883         * platform/efl/SoundEfl.cpp:
37884         (WebCore::systemBeep):
37885
37886 2012-10-23  Adam Klein  <adamk@chromium.org>
37887
37888         Always parse pasted fragments as HTML even on XHTML pages
37889         https://bugs.webkit.org/show_bug.cgi?id=99880
37890
37891         Reviewed by Ojan Vafai.
37892
37893         When pasting HTML into a page, using the XML parser is unlikely
37894         to work correctly, as the contents of the clipboard are unlikely
37895         to be properly-formed XHTML. Thus, for the pasting case, it's always
37896         better to use HTML parsing, which will properly parse either HTML
37897         (which is what's usually in the clipboard) or XHTML (which is
37898         sometimes there as well).
37899
37900         The Mac port previously worked around this problem by falling back to plain text
37901         when parsing failed, but switching to HTML seems like a clear improvement.
37902
37903         This also fixes a crash in Chromium (see http://webkit.org/b/99607
37904         and http://crbug.com/136218); it erroneously assumed that createFragmentFromMarkup()
37905         would never return null. This patch makes that true.
37906
37907         * editing/markup.cpp:
37908         (WebCore::createFragmentFromMarkup): Don't delegate to createContextualFragment:
37909         we already know our context element is safe (i.e., it's <body>),
37910         and we want to force HTML (not XML) parsing.
37911
37912 2012-10-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
37913
37914         [Qt] REGRESSION (r130851): fast/text/word-space-with-kerning.html fails
37915         https://bugs.webkit.org/show_bug.cgi?id=98876
37916
37917         Reviewed by Simon Hausmann.
37918
37919         Do not add word-spacing for leading space. This matches what simple path font-width does.
37920
37921         Tested by existing tests.
37922
37923         * platform/graphics/qt/FontQt.cpp:
37924         (WebCore::Font::floatWidthForComplexText):
37925
37926 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37927
37928         Web Inspector: Incorrect resolution of relative URLs containing a scheme in query parameters
37929         https://bugs.webkit.org/show_bug.cgi?id=100084
37930
37931         Reviewed by Vsevolod Vlasov.
37932
37933         Use the RFC 3986 grammar for the URL scheme.
37934
37935         * inspector/front-end/ParsedURL.js:
37936         (WebInspector.ParsedURL):
37937
37938 2012-10-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>
37939
37940         Web Inspector: Elaborate source panel sidebar context menus.
37941         https://bugs.webkit.org/show_bug.cgi?id=99980
37942
37943         Reviewed by Vsevolod Vlasov.
37944
37945         - Watches: add "Add watch expression" item to items and empty element
37946         - Watches: hide "Remove watch expression" from editing prompt context menu
37947         - Watches: add titles to header buttons
37948         - XHR Breakpoints: add "Add Breakpoint" item to items and empty element
37949         - XHR Breakpoints: add "Remove all breakpoints" item to items (when >1)
37950         - XHR Breakpoints: add title to header button
37951         - JS Breakpoints: hide "Remove/(De)Activate breakpoints" when only 1 item present
37952         - JS Breakpoints: add "(De)Activate breakpoints" to empty element context menu
37953
37954         * English.lproj/localizedStrings.js: Added corresponding strings.
37955         * inspector/front-end/BreakpointsSidebarPane.js: Adjusted context menu.
37956         (WebInspector.XHRBreakpointsSidebarPane): Ditto.
37957         * inspector/front-end/ObjectPropertiesSection.js: Added "isEditing()"
37958         * inspector/front-end/WatchExpressionsSidebarPane.js: Adjusted context menu.
37959
37960 2012-10-23  Kent Tamura  <tkent@chromium.org>
37961
37962         Update binding test results for r132194
37963         https://bugs.webkit.org/show_bug.cgi?id=100097
37964
37965         * bindings/scripts/test/V8/V8TestObj.cpp:
37966         (WebCore::V8TestObj::installPerContextProperties):
37967
37968 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37969
37970         Web Inspector: Sass can only resolve same folder paths
37971         https://bugs.webkit.org/show_bug.cgi?id=99259
37972
37973         Reviewed by Vsevolod Vlasov.
37974
37975         The actual reason is that the rule source location linkifier tries to linkify a resource (*.scss), which does not exist,
37976         and falls back to just stripping the main page URL prefix from the rule location URL. This change introduces LiveLocations
37977         for CSSRule locations and makes sure they are linkified using uiSourceCode's parsedURL.displayName.
37978
37979         * inspector/front-end/CSSStyleModel.js:
37980         (WebInspector.CSSStyleModel): Introduced LiveLocation management for CSSRules.
37981         (WebInspector.CSSStyleModel.prototype.setSourceMapping):
37982         (WebInspector.CSSStyleModel.prototype._updateLocations):
37983         (WebInspector.CSSStyleModel.prototype.createLiveLocation):
37984         (WebInspector.CSSStyleModel.prototype.updateLocations):
37985         (WebInspector.CSSStyleModel.LiveLocation): A LiveLocation for the CSS domain.
37986         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
37987         (WebInspector.CSSStyleModel.LiveLocation.prototype.dispose):
37988         * inspector/front-end/Linkifier.js:
37989         (WebInspector.Linkifier.prototype.linkifyCSSRuleLocation): CSSRule LiveLocation-based link builder.
37990         (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): Add a title for anchors.
37991         (WebInspector.Linkifier.DefaultCSSFormatter): Formatter for CSS location links.
37992         (WebInspector.Linkifier.DefaultCSSFormatter.prototype.formatLiveAnchor):
37993         * inspector/front-end/ResourceUtils.js:
37994         (WebInspector.displayNameForURL): Use parsedURL.displayName if uiSourceCode is present for the specified URL.
37995         * inspector/front-end/SASSSourceMapping.js:
37996         * inspector/front-end/StylesSidebarPane.js:
37997         (WebInspector.StylesSidebarPane):
37998         (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
37999         * inspector/front-end/inspector.html:
38000
38001 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
38002
38003         Unreviewed, rolling out r132149.
38004         http://trac.webkit.org/changeset/132149
38005         https://bugs.webkit.org/show_bug.cgi?id=100098
38006
38007         Breaks inspector profiler tests in debug mode. (Requested by
38008         pfeldman1 on #webkit).
38009
38010         * rendering/AutoTableLayout.cpp:
38011         (WebCore::AutoTableLayout::recalcColumn):
38012         * rendering/FixedTableLayout.cpp:
38013         (WebCore::FixedTableLayout::calcWidthArray):
38014         * rendering/RenderTable.cpp:
38015         (WebCore::RenderTable::layout):
38016         * rendering/RenderTableCol.cpp:
38017         (WebCore::RenderTableCol::styleDidChange):
38018         (WebCore::RenderTableCol::updateFromElement):
38019         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38020         * rendering/RenderTableCol.h:
38021         (RenderTableCol):
38022
38023 2012-10-23  Simon Hausmann  <simon.hausmann@digia.com>
38024
38025         Unreviewed trivial Qt build fix: Fix build without USE_3D_GRAPHICS
38026
38027         Move the #if USE(GRAPHICS_SURFACE) up to protect the inclusion of
38028         GraphicsContext3D.h to be done only if we use the surface.
38029
38030         * platform/graphics/surfaces/GraphicsSurface.h:
38031
38032 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
38033
38034         Unreviewed, rolling out r132033.
38035         http://trac.webkit.org/changeset/132033
38036         https://bugs.webkit.org/show_bug.cgi?id=100097
38037
38038         Broke calendar picker (Requested by tkent on #webkit).
38039
38040         * bindings/scripts/CodeGeneratorV8.pm:
38041         (GenerateImplementation):
38042
38043 2012-10-23  Andras Becsi  <andras.becsi@digia.com>
38044
38045         Remove devicePixelRatio from ViewportAttributes
38046         https://bugs.webkit.org/show_bug.cgi?id=99845
38047
38048         Reviewed by Adam Barth.
38049
38050         Since r121555 the devicePixelRatio is not calculated any more
38051         and the scale factor is stored in Page::m_deviceScaleFactor,
38052         thus it can be removed from ViewportAttributes to reduce
38053         redundancy and unnecessary client code.
38054         Use a new parameter in viewport calculation functions using
38055         the visible viewport size (instead of passing the adjusted
38056         viewport size) so that after this change clients do not end
38057         up using the unadjusted viewport size for calculations.
38058
38059         No behavioural change, no new tests needed.
38060
38061         * WebCore.exp.in:
38062         * dom/ViewportArguments.cpp:
38063         (WebCore::computeViewportAttributes):
38064         (WebCore::computeMinimumScaleFactorForContentContained):
38065         Add the devicePixelRatio as a parameter.
38066         (WebCore::restrictMinimumScaleFactorToViewportSize): Ditto.
38067         * dom/ViewportArguments.h:
38068         (ViewportAttributes):
38069         (WebCore):
38070         * testing/InternalSettings.cpp:
38071         (WebCore::InternalSettings::configurationForViewport):
38072
38073 2012-10-23  Kent Tamura  <tkent@chromium.org>
38074
38075         Support full month names in DateTimeEditElement, and use them in input[type=month] by default
38076         https://bugs.webkit.org/show_bug.cgi?id=100060
38077
38078         Reviewed by Kentaro Hara.
38079
38080         According to https://plus.google.com/104770450049736549185/posts/4zsoeHoa7SM
38081         no one wants to show abbreviated month names for input[type=month].
38082         This change add support for full month names in DateTimeEditELement, and
38083         LocaleICU and LocaleMac retun month formats with full month names. Note
38084         that LocaleWin::monthFormat returns formats for full month names.
38085
38086         No new tests. Covered by fast/forms/month-multiple-fields/month-multiple-fields-appearance-*.html
38087
38088         * html/shadow/DateTimeEditElement.cpp:
38089         (WebCore::DateTimeEditBuilder::visitField):
38090         If count is 4, use Localizer::monthLabels or standAloneMonthLabels.
38091         * platform/text/LocaleICU.cpp:
38092         (WebCore::LocaleICU::monthFormat):
38093         Returns a format for full month names.
38094         * platform/text/mac/LocaleMac.mm:
38095         (WebCore::LocaleMac::monthFormat): Ditto.
38096
38097 2012-10-23  Mike West  <mkwst@chromium.org>
38098
38099         Viewport errors should be slightly friendlier with regard to ';'.
38100         https://bugs.webkit.org/show_bug.cgi?id=100003
38101
38102         Reviewed by Adam Barth.
38103
38104         This patch scans viewport values that cause errors for ';'. If found,
38105         a quick message is appended to the error, noting that semicolons are
38106         not valid separators in viewport contents, and that commas would be
38107         the proper substitute.
38108
38109         No functional changes, just a better error message.
38110
38111         * dom/ViewportArguments.cpp:
38112         (WebCore::reportViewportWarning):
38113
38114 2012-10-23  Timothy Hatcher  <timothy@apple.com>
38115
38116         Docking/undocking the Web Inspector does not work correctly in Safari.
38117
38118         The "docked" and "bottom" strings need quoted instead of being passed as identifiers.
38119
38120         https://bugs.webkit.org/show_bug.cgi?id=100080
38121
38122         Reviewed by Yury Semikhatsky.
38123
38124         * inspector/InspectorFrontendClientLocal.cpp:
38125         (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Put quotes around the %s.
38126
38127 2012-10-23  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
38128
38129         [EFL][WK2] Compilation warning in GraphicsContext3DPrivate.cpp when AC is enabled
38130         https://bugs.webkit.org/show_bug.cgi?id=99723
38131
38132         Reviewed by Kenneth Rohde Christiansen.
38133
38134         Fix compilation warning in GraphicsContext3DPrivate.cpp when AC is
38135         enabled.
38136
38137         No new tests, no change in behavior.
38138
38139         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
38140         (WebCore::GraphicsContext3DPrivate::createSurface):
38141
38142 2012-10-23  Dan Carney  <dcarney@google.com>
38143
38144         When blocking localStorage, Firefox throws a security exception on access, and maybe so should we
38145         https://bugs.webkit.org/show_bug.cgi?id=63257
38146
38147         Reviewed by Jochen Eisinger.
38148
38149         Throw security exception when local storage is accessed
38150         under certain circumstances to match firefox.
38151
38152         No new tests. Existing tests modified.
38153
38154         * bindings/js/JSStorageCustom.cpp:
38155         (WebCore::JSStorage::canGetItemsForName):
38156         (WebCore::JSStorage::nameGetter):
38157         (WebCore::JSStorage::deleteProperty):
38158         (WebCore::JSStorage::getOwnPropertyNames):
38159         * bindings/v8/custom/V8StorageCustom.cpp:
38160         (WebCore):
38161         (WebCore::setDOMException):
38162         (WebCore::V8Storage::namedPropertyEnumerator):
38163         (WebCore::storageGetter):
38164         (WebCore::V8Storage::namedPropertyQuery):
38165         (WebCore::storageDeleter):
38166         * inspector/InspectorDOMStorageAgent.cpp:
38167         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
38168         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
38169         * page/DOMWindow.cpp:
38170         (WebCore::DOMWindow::sessionStorage):
38171         (WebCore::DOMWindow::localStorage):
38172         * storage/Storage.cpp:
38173         * storage/Storage.h:
38174         (WebCore):
38175         (WebCore::Storage::length):
38176         (WebCore::Storage::key):
38177         (WebCore::Storage::getItem):
38178         (WebCore::Storage::setItem):
38179         (WebCore::Storage::removeItem):
38180         (WebCore::Storage::clear):
38181         (WebCore::Storage::contains):
38182         * storage/Storage.idl:
38183         * storage/StorageArea.h:
38184         (StorageArea):
38185         * storage/StorageAreaImpl.cpp:
38186         (WebCore::StorageAreaImpl::canAccessStorage): Checks whether access to storage is a security violation.
38187         (WebCore):
38188         (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
38189         (WebCore::StorageAreaImpl::length):
38190         (WebCore::StorageAreaImpl::key):
38191         (WebCore::StorageAreaImpl::getItem):
38192         (WebCore::StorageAreaImpl::setItem):
38193         (WebCore::StorageAreaImpl::removeItem):
38194         (WebCore::StorageAreaImpl::clear):
38195         (WebCore::StorageAreaImpl::contains):
38196         * storage/StorageAreaImpl.h:
38197         (StorageAreaImpl):
38198
38199 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38200
38201         IndexedDB: Remove custom binding code for IDBCursor.value
38202         https://bugs.webkit.org/show_bug.cgi?id=100034
38203
38204         Reviewed by Kentaro Hara.
38205
38206         Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
38207         IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
38208         semantics that the object identity is retained across accesses.
38209
38210         Test: storage/indexeddb/cursor-value.html
38211
38212         * Modules/indexeddb/IDBCursor.cpp: Remove "dirty" tracking.
38213         (WebCore::IDBCursor::IDBCursor):
38214         (WebCore::IDBCursor::value):
38215         (WebCore::IDBCursor::setValueReady):
38216         * Modules/indexeddb/IDBCursor.h: IDBAny -> ScriptValue
38217         (IDBCursor):
38218         * Modules/indexeddb/IDBCursorWithValue.idl: IDBAny -> any
38219         * Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
38220         (WebCore):
38221         * UseV8.cmake: Remove references to IDBCustomBindings.cpp
38222         * WebCore.gypi: Ditto.
38223         * WebCore.vcproj/WebCore.vcproj: Ditto.
38224         * bindings/v8/IDBCustomBindings.cpp: Removed.
38225
38226 2012-10-22  Dan Bernstein  <mitz@apple.com>
38227
38228         Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be
38229         https://bugs.webkit.org/show_bug.cgi?id=100068
38230
38231         Reviewed by Sam Weinig.
38232
38233         As described in <http://webkit.org/b/100050>, the fast code path doesn’t handle partial runs
38234         correctly when kerning or ligatures are enabled. Since the partial-run case is uncommon,
38235         for now just use the complex code path in this case.
38236
38237         * platform/graphics/Font.cpp:
38238         (WebCore::Font::drawText): Changed to use the complex path for partial runs if there are any
38239         typesetting features.
38240         (WebCore::Font::drawEmphasisMarks): Ditto.
38241         (WebCore::Font::selectionRectForText): Ditto.
38242         (WebCore::Font::offsetForPosition): Changed to use the complex path if there are any
38243         typesetting features.
38244
38245 2012-10-22  Peter Wang  <peter.wang@torchmobile.com.cn>
38246
38247         [BlackBerry] Missing some cookies in HTTP response header when set several cookies in one "Set-Cookie" header.
38248         https://bugs.webkit.org/show_bug.cgi?id=99950
38249
38250         Reviewed by George Staikos.
38251
38252         In "NetworkJob::handleNotifyHeaderReceived", if there are several "Set-Cookie" headers, 
38253         we should combine the following ones with the first.
38254
38255         No new test case.
38256
38257         * platform/network/blackberry/NetworkJob.cpp:
38258         (WebCore::NetworkJob::handleNotifyHeaderReceived):
38259
38260 2012-10-22  MORITA Hajime  <morrita@google.com>
38261
38262         Assertion failed at WebCore::toInsertionPoint / WebCore::ContentDistributor::distribute
38263         https://bugs.webkit.org/show_bug.cgi?id=100038
38264
38265         Reviewed by Kent Tamura.
38266
38267         isHTMLContentElement() assumes that the content element always has
38268         a tag name "content" but it doesn't when Shadow DOM feature is
38269         disabled. This fix let the function see the correct tag name.
38270
38271         Test: fast/dom/shadow/insertion-points-with-shadow-disabled.html
38272
38273         * html/shadow/HTMLContentElement.cpp:
38274         (WebCore::HTMLContentElement::contentTagName):
38275         * html/shadow/HTMLContentElement.h:
38276         (HTMLContentElement):
38277         (WebCore::isHTMLContentElement):
38278
38279 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38280
38281         [Shadow] Fallback content should also be reprojection.
38282         https://bugs.webkit.org/show_bug.cgi?id=99750
38283
38284         Reviewed by Dimitri Glazkov.
38285
38286         Fallback content of InsertionPoint should be reprojected. The existing assumption that
38287         only the direct child of host element can be distributed to InsertionPoint does not hold anymore.
38288         So, if the parent of an element is InsertionPoint which should show fallback element, we have to
38289         check the grand parent of the element instead of the element.
38290
38291         Tests: fast/dom/shadow/content-reprojection-fallback-reprojection.html
38292                fast/dom/shadow/content-reprojection-fallback.html
38293
38294         * css/StyleResolver.cpp:
38295         (WebCore::shouldResetStyleInheritance): Checks the grandparent of the element if the parent is
38296         an InsertionPoint which uses fallback content.
38297         * dom/ComposedShadowTreeWalker.cpp:
38298         (WebCore::shadowOfParentForDistribution):
38299         (WebCore):
38300         (WebCore::resolveReprojection):
38301         (WebCore::ComposedShadowTreeWalker::traverseParent):
38302         * html/shadow/InsertionPoint.cpp:
38303         (WebCore::InsertionPoint::shouldUseFallbackElements): True if the InsertionPoint should use fallback content.
38304         (WebCore):
38305         * html/shadow/InsertionPoint.h:
38306         (WebCore::parentElementForDistribution): Returns the grandparent element if the parent is InsertionPoint which uses
38307         fallback content. Returns parent element otherwise.
38308         (WebCore):
38309
38310 2012-10-22  Keishi Hattori  <keishi@webkit.org>
38311
38312         Label position is wrong in the suggestion picker when all the suggestions have labels
38313         https://bugs.webkit.org/show_bug.cgi?id=99965
38314
38315         Reviewed by Kent Tamura.
38316
38317         Somehow the scrollbar was appearing and so the label element was being wrapped to the next line.
38318
38319         No new tests. Can't reproduce in layout test.
38320
38321         * Resources/pagepopups/suggestionPicker.css:
38322         (.suggestion-list):
38323         * Resources/pagepopups/suggestionPicker.js:
38324         (SuggestionPicker.prototype._fixWindowSize): Explicitly show the scroll bar.
38325
38326 2012-10-22  MORITA Hajime  <morrita@google.com>
38327
38328         [Chromium] Needs to track ShadowRoot usage
38329         https://bugs.webkit.org/show_bug.cgi?id=99955
38330
38331         Reviewed by Dimitri Glazkov.
38332
38333         Added an UMA instrumentation.
38334
38335         * dom/ShadowRoot.cpp:
38336         (WebCore::determineUsageType):
38337         (WebCore):
38338         (WebCore::ShadowRoot::create):
38339
38340 2012-10-22  Kent Tamura  <tkent@chromium.org>
38341
38342         Introduce Localizer::standAloneMonthLabels
38343         https://bugs.webkit.org/show_bug.cgi?id=99963
38344
38345         Reviewed by Kentaro Hara.
38346
38347         We realized full month names and full stand-alone month names were
38348         necessary for input[type=month] UI. We change the compile-flag for
38349         Localizer::monthLabels from "ENABLE(CALENDAR_PICKER)" to
38350         "ENABLE(CALENDAR_PICKER) || ENABLE(INPUT_MULTIPLE_FIELDS_UI)," and
38351         introduce Localizer::standAloneMonthLabels.
38352
38353         Tests: Add some test cases to Source/WebKit/chromium/LocaleMacTest.cpp
38354         and LocalizedDateICUTest.cpp.
38355
38356         * platform/text/Localizer.h:
38357         (Localizer):
38358         - Add pure virtual standAloneMonthLabels.
38359         - Change the condition for monthLabels.
38360
38361         * platform/text/LocaleNone.cpp:
38362         (LocaleNone): Declare monthLabels, standAloneMonthLabels, and m_monthLabels.
38363         (WebCore::LocaleNone::monthLabels):
38364         Added. It always returns English month names.
38365         (WebCore::LocaleNone::standAloneMonthLabels):
38366         Added. Just calls monthLabels.
38367
38368         * platform/text/LocaleWin.h:
38369         (LocaleWin):
38370         Declare standAloneMonthLabels, and change the condition for monthLabels.
38371         * platform/text/LocaleWin.cpp:
38372         (WebCore): Change the condition for monthLabels.
38373         (WebCore::LocaleWin::standAloneMonthLabels):
38374         Added. Just calls monthLabels.
38375
38376         * platform/text/mac/LocaleMac.h:
38377         (LocaleMac):
38378         - Add standAloneMonthLabels and m_standAloneMonthLabels
38379         - Change the condition for monthLabels and m_monthLabels.
38380         * platform/text/mac/LocaleMac.mm:
38381         (WebCore): Change the condition for monthLabels.
38382         (WebCore::LocaleMac::standAloneMonthLabels):
38383         Added. Get the information with NSDateFormatter::standaloneMonthSymbols.
38384
38385         * platform/text/LocaleICU.h:
38386         (LocaleICU):
38387         - Add standAloneMonthLabels and m_standAloneMonthLabels
38388         - Change the condition for monthLabels and m_monthLabels.
38389         * platform/text/LocaleICU.cpp:
38390         (WebCore::LocaleICU::initializeCalendar):
38391         Remove m_monthLabels initialization in order to avoid dependecy from monthLabels.
38392         (WebCore):
38393         (WebCore::createFallbackMonthLabels): Change the compile condition.
38394         (WebCore::LocaleICU::monthLabels):
38395         - Change the compile condition.
38396         - Don't depend on initializeCalendar to make the code for
38397         ENABLE(INPUT_MULTIPLE_FIELDS_UI) && !ENABLE(CALENDAR_PICKER) minimal.
38398         (WebCore::LocaleICU::standAloneMonthLabels):
38399         Added. The code is similar to shortStandAloneMonthLabels.
38400
38401 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38402
38403         Refactoring around ContainerNode::attachChildren
38404         https://bugs.webkit.org/show_bug.cgi?id=99968
38405
38406         Reviewed by Hajime Morita.
38407
38408         Since ContainerNode::attach() is now equivalent to ContainerNode::attachChildren() + Node::attach(), we should call
38409         ContainerNode::attach() instead of calling them.
38410
38411         No new tests, no change in behavior.
38412
38413         * dom/ContainerNode.h:
38414         (ContainerNode):
38415         * dom/Element.cpp:
38416         (WebCore::Element::attach):
38417         * dom/ShadowRoot.cpp:
38418         (WebCore::ShadowRoot::attach):
38419
38420 2012-10-22  Michael Saboff  <msaboff@apple.com>
38421
38422         HTML Parser should produce 8 bit strings for doctype, comment and tagName tokens
38423         https://bugs.webkit.org/show_bug.cgi?id=99889
38424
38425         Reviewed by Geoffrey Garen.
38426
38427         Added 8 bit check for accumulating all token data in MarkupTokenBase.  Added code to convert
38428         "name" token data directly to a string (8 or 16 as appropriate).  Changed to accumulate
38429         m_bufferedEndTagName as LChar's.
38430
38431         No new tests, covered by existing tests.
38432
38433         * html/parser/HTMLToken.h:
38434         (HTMLToken):
38435         * html/parser/HTMLTokenizer.cpp:
38436         (WebCore::HTMLTokenizer::nextToken):
38437         (WebCore::HTMLTokenizer::addToPossibleEndTag):
38438         (WebCore::HTMLTokenizer::isAppropriateEndTag):
38439         * html/parser/HTMLTokenizer.h:
38440         (HTMLTokenizer):
38441         * html/parser/HTMLTreeBuilder.cpp:
38442         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading):
38443         * xml/parser/MarkupTokenBase.h:
38444         (WebCore::MarkupTokenBase::beginStartTag):
38445         (WebCore::MarkupTokenBase::beginEndTag):
38446         (MarkupTokenBase):
38447         (WebCore::MarkupTokenBase::beginDOCTYPE):
38448         (WebCore::MarkupTokenBase::appendToComment):
38449         (WebCore::MarkupTokenBase::appendToName):
38450         (WebCore::MarkupTokenBase::nameString):
38451         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
38452
38453 2012-10-22  Tony Chang  <tony@chromium.org>
38454
38455         margin-top/bottom has no effect for child nodes of flex items
38456         https://bugs.webkit.org/show_bug.cgi?id=99923
38457
38458         Reviewed by Ojan Vafai.
38459
38460         Flexitems, like table cells, shouldn't collapse margins.
38461
38462         Test: css3/flexbox/flexitem-no-margin-collapsing.html
38463
38464         * rendering/RenderBlock.cpp:
38465         (WebCore::RenderBlock::MarginInfo::MarginInfo): Check to see if the parent is a flexible box.
38466         We should always have a parent if we make it this far in the check.
38467
38468 2012-10-22  Marja Hölttä  <marja@chromium.org>
38469
38470         Refactor CachedResourceLoader: add CachedResourceRequest
38471         https://bugs.webkit.org/show_bug.cgi?id=99736
38472
38473         Reviewed by Adam Barth.
38474
38475         For fixing bugs 84883 and 92761,
38476         CachedResourceLoader::requestResource should take as parameter
38477         information about who initiated the request. But the parameter
38478         list was already long. This gathers all the parameters into a
38479         separate class, CachedResourceRequest. The next step is to add
38480         information about who initiated the request into
38481         CachedResourceRequest.
38482
38483         No new tests because no changes in functionality, just moving code
38484         around.
38485
38486         * CMakeLists.txt:
38487         * GNUmakefile.list.am:
38488         * Target.pri:
38489         * WebCore.gypi:
38490         * WebCore.vcproj/WebCore.vcproj:
38491         * WebCore.xcodeproj/project.pbxproj:
38492         * css/CSSFontFaceSrcValue.cpp:
38493         (WebCore::CSSFontFaceSrcValue::cachedFont):
38494         * css/CSSImageSetValue.cpp:
38495         (WebCore::CSSImageSetValue::cachedImageSet):
38496         * css/CSSImageValue.cpp:
38497         (WebCore::CSSImageValue::cachedImage):
38498         * css/StyleRuleImport.cpp:
38499         (WebCore::StyleRuleImport::requestStyleSheet):
38500         * css/WebKitCSSSVGDocumentValue.cpp:
38501         (WebCore::WebKitCSSSVGDocumentValue::load):
38502         * css/WebKitCSSShaderValue.cpp:
38503         (WebCore::WebKitCSSShaderValue::cachedShader):
38504         * dom/ProcessingInstruction.cpp:
38505         (WebCore::ProcessingInstruction::checkStyleSheet):
38506         * dom/ScriptElement.cpp:
38507         (WebCore::ScriptElement::requestScript):
38508         * html/HTMLLinkElement.cpp:
38509         (WebCore::HTMLLinkElement::process):
38510         * loader/DocumentThreadableLoader.cpp:
38511         (WebCore::DocumentThreadableLoader::loadRequest):
38512         * loader/ImageLoader.cpp:
38513         (WebCore::ImageLoader::updateFromElement):
38514         * loader/LinkLoader.cpp:
38515         (WebCore::LinkLoader::loadLink):
38516         * loader/TextTrackLoader.cpp:
38517         (WebCore::TextTrackLoader::load):
38518         * loader/cache/CachedResourceLoader.cpp:
38519         (WebCore::CachedResourceLoader::requestImage):
38520         (WebCore::CachedResourceLoader::requestFont):
38521         (WebCore::CachedResourceLoader::requestTextTrack):
38522         (WebCore::CachedResourceLoader::requestShader):
38523         (WebCore::CachedResourceLoader::requestCSSStyleSheet):
38524         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
38525         (WebCore::CachedResourceLoader::requestScript):
38526         (WebCore::CachedResourceLoader::requestXSLStyleSheet):
38527         (WebCore::CachedResourceLoader::requestSVGDocument):
38528         (WebCore::CachedResourceLoader::requestLinkResource):
38529         (WebCore::CachedResourceLoader::requestRawResource):
38530         (WebCore::CachedResourceLoader::requestResource):
38531         (WebCore::CachedResourceLoader::requestPreload):
38532         (WebCore::CachedResourceLoader::defaultCachedResourceOptions):
38533         (WebCore):
38534         * loader/cache/CachedResourceLoader.h:
38535         (WebCore):
38536         (CachedResourceLoader):
38537         * loader/cache/CachedResourceRequest.cpp: Added.
38538         (WebCore):
38539         (WebCore::CachedResourceRequest::CachedResourceRequest):
38540         * loader/cache/CachedResourceRequest.h: Added.
38541         (WebCore):
38542         (CachedResourceRequest):
38543         (WebCore::CachedResourceRequest::mutableResourceRequest):
38544         (WebCore::CachedResourceRequest::resourceRequest):
38545         (WebCore::CachedResourceRequest::charset):
38546         (WebCore::CachedResourceRequest::setCharset):
38547         (WebCore::CachedResourceRequest::options):
38548         (WebCore::CachedResourceRequest::priority):
38549         (WebCore::CachedResourceRequest::forPreload):
38550         (WebCore::CachedResourceRequest::setForPreload):
38551         (WebCore::CachedResourceRequest::defer):
38552         (WebCore::CachedResourceRequest::setDefer):
38553         * loader/icon/IconLoader.cpp:
38554         (WebCore::IconLoader::startLoading):
38555         * svg/SVGFEImageElement.cpp:
38556         (WebCore::SVGFEImageElement::requestImageResource):
38557         * svg/SVGFontFaceUriElement.cpp:
38558         (WebCore::SVGFontFaceUriElement::loadFont):
38559         * svg/SVGUseElement.cpp:
38560         (WebCore::SVGUseElement::svgAttributeChanged):
38561         * xml/XSLImportRule.cpp:
38562         (WebCore::XSLImportRule::loadSheet):
38563
38564 2012-10-22  Adam Barth  <abarth@webkit.org>
38565
38566         [V8] ASSERT that removeAllDOMObjects() is called only on worker threads
38567         https://bugs.webkit.org/show_bug.cgi?id=100046
38568
38569         Reviewed by Eric Seidel.
38570
38571         This function is called only on worker threads. We should ASSERT that
38572         fact and remove the dead code that tries to handle the main thread
38573         case.
38574
38575         * bindings/v8/V8DOMMap.cpp:
38576         (WebCore::removeAllDOMObjects):
38577
38578 2012-10-22  Adam Barth  <abarth@webkit.org>
38579
38580         [V8] We should call the faster v8::Integer::New APIs
38581         https://bugs.webkit.org/show_bug.cgi?id=100016
38582
38583         Reviewed by Eric Seidel.
38584
38585         In working to remove the integer cache, I added some faster APIs for
38586         creating v8::Integers. These APIs are faster than the old APIs, but not
38587         quite fast enough to replace the integer cache. We should still use
38588         them when we miss the integer cache.
38589
38590         I've also included a small refactoring to V8PerIsolateData to make it
38591         clearer when we're calling v8::Isolate::GetCurrent().
38592
38593         * bindings/v8/DOMData.cpp:
38594         (WebCore::DOMData::getCurrentStore):
38595         * bindings/v8/V8Binding.h:
38596         (WebCore::v8ExternalString):
38597         (WebCore::v8Integer):
38598         (WebCore::v8UnsignedInteger):
38599         * bindings/v8/V8PerIsolateData.h:
38600         (WebCore::V8PerIsolateData::current):
38601         (WebCore::V8PerIsolateData::from):
38602         * bindings/v8/V8ValueCache.cpp:
38603         (WebCore::StringCache::v8ExternalStringSlow):
38604         (WebCore::IntegerCache::createSmallIntegers):
38605         * bindings/v8/V8ValueCache.h:
38606         (WebCore::IntegerCache::v8Integer):
38607         (WebCore::IntegerCache::v8UnsignedInteger):
38608         (IntegerCache):
38609         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
38610         (WebCore::V8HTMLCanvasElement::getContextCallback):
38611
38612 2012-10-22  Julien Chaffraix  <jchaffraix@webkit.org>
38613
38614         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
38615         https://bugs.webkit.org/show_bug.cgi?id=99861
38616
38617         Reviewed by Ojan Vafai.
38618
38619         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
38620         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
38621         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
38622         or else we would ignore the next layout hint on the <col> or <colgroup>.
38623
38624         Test: fast/table/col-span-change-relayout.html
38625
38626         * rendering/AutoTableLayout.cpp:
38627         (WebCore::AutoTableLayout::recalcColumn):
38628         * rendering/RenderTable.cpp:
38629         (WebCore::RenderTable::layout):
38630         Simplified the code now that we only need to iterate over the sections.
38631
38632         * rendering/FixedTableLayout.cpp:
38633         (WebCore::FixedTableLayout::calcWidthArray):
38634         Removed call to computePreferredLogicalWidths.
38635
38636         * rendering/RenderTableCol.cpp:
38637         (WebCore::RenderTableCol::styleDidChange):
38638         (WebCore::RenderTableCol::updateFromElement):
38639         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
38640
38641         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38642         (WebCore::RenderTableCol::layout):
38643         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
38644         never called.
38645
38646         (WebCore::RenderTableCol::propagateLayoutCueToTable):
38647         New helper function that forward any layout cue to the containing table, this works around
38648         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
38649         invalidateContainerPreferredLogicalWidths.
38650
38651         * rendering/RenderTableCol.h:
38652         Made the function that we are not expected to be called private.
38653
38654 2012-10-22  Pan Deng  <pan.deng@intel.com>
38655
38656         [User Timing]Integrate with Perforamnce Timeline.
38657         https://bugs.webkit.org/show_bug.cgi?id=91072.
38658
38659         Reviewed by Tony Gentilcore.
38660
38661         This patch expose user timing entries via performance timeline interface. JavaScriptCore custom binding will be another patch
38662
38663         No new tests, user timing test cases have been landed.
38664
38665         * page/Performance.cpp:
38666         (WebCore::Performance::Performance):
38667         (WebCore::Performance::webkitGetEntries):
38668         (WebCore::Performance::webkitGetEntriesByType):
38669         (WebCore::Performance::webkitGetEntriesByName):
38670         * page/PerformanceEntry.h:
38671         (WebCore::PerformanceEntry::startTimeCompareLessThan):
38672         (PerformanceEntry):
38673         * page/PerformanceEntryList.cpp:
38674         (WebCore::PerformanceEntryList::sort):
38675         (WebCore):
38676         * page/PerformanceEntryList.h:
38677         (PerformanceEntryList):
38678         * page/PerformanceUserTiming.cpp:
38679         (WebCore::convertToEntrySequence):
38680         (WebCore):
38681         (WebCore::getEntrySequenceByName):
38682         (WebCore::UserTiming::getMarks):
38683         (WebCore::UserTiming::getMeasures):
38684         * page/PerformanceUserTiming.h:
38685         (UserTiming):
38686
38687 2012-10-22  Pan Deng  <pan.deng@intel.com>
38688
38689         Modify obsolete code in User Timing
38690         https://bugs.webkit.org/show_bug.cgi?id=99851
38691
38692         Reviewed by Tony Gentilcore.
38693
38694         Modify user timing implementation as PlatformString.h, prefix of webkitNow is removed, etc.
38695
38696         No new tests.
38697
38698         * page/PerformanceUserTiming.cpp:
38699         (WebCore::insertPerformanceEntry):
38700         (WebCore::UserTiming::mark):
38701         (WebCore::UserTiming::measure):
38702         * page/PerformanceUserTiming.h:
38703
38704 2012-10-22  Mark Lam  <mark.lam@apple.com>
38705
38706         Change stack recursion checks to be based on stack availability.
38707         https://bugs.webkit.org/show_bug.cgi?id=99872.
38708
38709         Reviewed by Filip Pizlo and Geoffrey Garen.
38710
38711         Removed the use of ThreadStackType. Enabled the reserved JSStack space
38712         for error processing before doing work in reportException().
38713
38714         * bindings/js/JSDOMBinding.cpp:
38715         (WebCore::reportException):
38716         * bindings/js/JSDOMWindowBase.cpp:
38717         (WebCore::JSDOMWindowBase::commonJSGlobalData):
38718         * bindings/js/WorkerScriptController.cpp:
38719         (WebCore::WorkerScriptController::WorkerScriptController):
38720
38721 2012-10-22  Andreas Kling  <kling@webkit.org>
38722
38723         REGRESSION(r131104): Heap-use-after-free in WebCore::Element::attributeChanged
38724         <http://webkit.org/b/99937>
38725
38726         Reviewed by Anders Carlsson.
38727
38728         Setting the "type" attribute on an HTMLInputElement that has no "value" attribute set will cause the
38729         input type changing mechanism to write a value attribute onto the element. This happens in
38730         HTMLInputElement::updateType(), below parseAttribute().
38731
38732         It's done via Element::setAttribute(), so we end up re-entering Element::setAttributeInternal()
38733         where the 'existingAttribute' pointer may now be invalid if adding the "value" attribute caused
38734         a reallocation in the ElementAttributeData's underlying Vector<Attribute>.
38735
38736         To make it harder to introduce this kind of bug in the future, I changed almost all functions that take
38737         a "const Attribute&" to take a QualifiedName/AtomicString couple instead (the idea being that the 
38738         fewer references into the attribute store we have, the better.)
38739
38740         Test: fast/html/input-type-change-crash.html
38741
38742         * dom/Attr.cpp:
38743         (WebCore::Attr::setValue):
38744         (WebCore::Attr::childrenChanged):
38745         * dom/Element.cpp:
38746         (WebCore::Element::setAttributeInternal):
38747         (WebCore::Element::attributeChanged):
38748         (WebCore::Element::parserSetAttributes):
38749         (WebCore::Element::addAttributeInternal):
38750         (WebCore::Element::didAddAttribute):
38751         (WebCore::Element::didModifyAttribute):
38752         (WebCore::Element::didRemoveAttribute):
38753         * dom/Element.h:
38754         (Element):
38755         * dom/ElementAttributeData.cpp:
38756         (WebCore::ElementAttributeData::cloneDataFrom):
38757         * dom/StyledElement.cpp:
38758         (WebCore::StyledElement::attributeChanged):
38759         * dom/StyledElement.h:
38760         * html/HTMLInputElement.cpp:
38761         (WebCore::HTMLInputElement::updateType):
38762         * svg/SVGElement.cpp:
38763         (WebCore::SVGElement::attributeChanged):
38764         * svg/SVGElement.h:
38765         (SVGElement):
38766
38767 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38768
38769         IndexedDB: Bounds check for IDBCursor.advance() incorrect
38770         https://bugs.webkit.org/show_bug.cgi?id=100014
38771
38772         Reviewed by Tony Chang.
38773
38774         Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
38775         as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
38776         useless comparison was caught by a clang check.
38777
38778         In lieu of webkit.org/b/96798 make it long long and correct the range check.
38779
38780         Test: storage/indexeddb/cursor-advance.html
38781
38782         * Modules/indexeddb/IDBCursor.cpp:
38783         (WebCore::IDBCursor::advance):
38784         * Modules/indexeddb/IDBCursor.h:
38785         (IDBCursor):
38786         * Modules/indexeddb/IDBCursor.idl:
38787
38788 2012-10-22  Tony Chang  <tony@chromium.org>
38789
38790         WebKit does not support 'flex-wrap: nowrap'
38791         https://bugs.webkit.org/show_bug.cgi?id=99924
38792
38793         Reviewed by Ojan Vafai.
38794
38795         The spec changed back from using none to nowrap for the single-line
38796         flexbox case.
38797         http://dev.w3.org/csswg/css3-flexbox/#flex-wrap-property
38798
38799         No new tests, covered by css3/flexbox/css-properties.html and others.
38800
38801         * css/CSSParser.cpp:
38802         (WebCore::isValidKeywordPropertyAndValue):
38803         * css/CSSPrimitiveValueMappings.h:
38804         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
38805         (WebCore::CSSPrimitiveValue::operator EFlexWrap):
38806         * css/CSSValueKeywords.in:
38807         * rendering/RenderBox.cpp:
38808         (WebCore::isStretchingColumnFlexItem):
38809         (WebCore::RenderBox::sizesLogicalWidthToFitContent):
38810         * rendering/RenderFlexibleBox.cpp:
38811         (WebCore::RenderFlexibleBox::isMultiline):
38812         * rendering/style/RenderStyle.h:
38813         * rendering/style/RenderStyleConstants.h:
38814
38815 2012-10-22  Mike West  <mkwst@chromium.org>
38816
38817         'image/pjpeg' should be treated as an image by Web Inspector.
38818         https://bugs.webkit.org/show_bug.cgi?id=100001
38819
38820         Reviewed by Pavel Feldman.
38821
38822         It's not exactly a "real" MIME type, but it's in use.
38823
38824         * inspector/front-end/NetworkManager.js:
38825         (WebInspector.NetworkManager):
38826             Adding 'image/pjpeg' as an image MIME type.
38827
38828 2012-10-22  Sheriff Bot  <webkit.review.bot@gmail.com>
38829
38830         Unreviewed, rolling out r132119.
38831         http://trac.webkit.org/changeset/132119
38832         https://bugs.webkit.org/show_bug.cgi?id=100019
38833
38834         Fails its own test on Mac platforms. (Requested by leviw on
38835         #webkit).
38836
38837         * page/EventHandler.cpp:
38838         (WebCore::EventHandler::handleGestureEvent):
38839         (WebCore::EventHandler::sendContextMenuEventForGesture):
38840         * page/EventHandler.h:
38841         (EventHandler):
38842
38843 2012-10-22  Hans Muller  <hmuller@adobe.com>
38844
38845         [CSS Exclusions] Points on the bottom and right edges of an exclusion shape should be classified as "outside"
38846         https://bugs.webkit.org/show_bug.cgi?id=98967
38847
38848         Reviewed by Dirk Schulze.
38849
38850         Changed the way lines are represented in the ExclusionShapeInsideInfo and ExclusionShape classes
38851         so that they're consistent with the rendering code that depends on them.  Lines are now defined
38852         by logicalTop, logicalHeight, instead of logicalTop,logicalBottom.  This a clean-up, not a change
38853         in functionality. It's already covered by the existing fast/exclusions LayoutTests.
38854
38855         Test: fast/exclusions/shape-inside/shape-inside-bottom-edge.html
38856
38857         * rendering/ExclusionPolygon.cpp:
38858         (WebCore::ExclusionPolygon::getExcludedIntervals):
38859         (WebCore::ExclusionPolygon::getIncludedIntervals):
38860         * rendering/ExclusionPolygon.h:
38861         * rendering/ExclusionRectangle.cpp:
38862         (WebCore::ExclusionRectangle::getExcludedIntervals):
38863         (WebCore::ExclusionRectangle::getIncludedIntervals):
38864         * rendering/ExclusionRectangle.h:
38865         * rendering/ExclusionShape.h:
38866         (LineSegment): Moved the struct fields below the constructor per webkit style.
38867         (ExclusionShape):
38868         (WebCore::ExclusionShape::minYForLogicalLine):
38869         (WebCore::ExclusionShape::maxYForLogicalLine):
38870         * rendering/ExclusionShapeInsideInfo.cpp:
38871         (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
38872         * rendering/ExclusionShapeInsideInfo.h:
38873         (ExclusionShapeInsideInfo):
38874         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Changed the test to not include
38875             lines whose logicalTop is equal to the shape's top+height.
38876         * rendering/RenderBlockLineLayout.cpp:
38877         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
38878
38879 2012-10-22  Chris Rogers  <crogers@google.com>
38880
38881         Update some AudioContext create() method names to latest Web Audio spec
38882         https://bugs.webkit.org/show_bug.cgi?id=99888
38883
38884         Reviewed by Adam Barth.
38885
38886         The following AudioContext method names are being changed, with legacy support for the old names:
38887         createGainNode -> createGain
38888         createDelayNode -> createDelay
38889         createJavaScriptNode -> createScriptProcessor
38890
38891         For details:
38892         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18332
38893
38894         Tests changed: webaudio/delaynode.html, webaudio/gain.html, webaudio/javascriptaudionode.html
38895         to test coverage of the new names.
38896
38897         * Modules/webaudio/AudioBufferSourceNode.idl:
38898         * Modules/webaudio/AudioContext.cpp:
38899         (WebCore::AudioContext::createScriptProcessor):
38900         (WebCore::AudioContext::createGain):
38901         (WebCore::AudioContext::createDelay):
38902         * Modules/webaudio/AudioContext.h:
38903         (AudioContext):
38904         * Modules/webaudio/AudioContext.idl:
38905         * page/FeatureObserver.h:
38906
38907 2012-10-22  Varun Jain  <varunjain@chromium.org>
38908
38909         Context menu generated from touch gestures on textareas has
38910         context of the cursor position instead of the position where the event occurs.
38911         https://bugs.webkit.org/show_bug.cgi?id=99520
38912
38913         Reviewed by Kenneth Rohde Christiansen.
38914
38915         Send a synthetic mouse down event for context menu-summoning-gesture events so
38916         that textareas can correctly set cursors before receiving the context menu event.
38917
38918         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
38919
38920         * page/EventHandler.cpp:
38921         (WebCore::EventHandler::handleGestureEvent):
38922         (WebCore::EventHandler::handleGestureTwoFingerTap):
38923         (WebCore):
38924         (WebCore::EventHandler::sendContextMenuEventForGesture):
38925         * page/EventHandler.h:
38926         (EventHandler):
38927
38928 2012-10-22  Zeno Albisser  <zeno@webkit.org>
38929
38930         TextureMapperSurfaceBackingStore should check if GraphicsSurface is valid.
38931         https://bugs.webkit.org/show_bug.cgi?id=100002
38932
38933         Reviewed by Kenneth Rohde Christiansen.
38934
38935         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
38936         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
38937             Check if a surface has been created before accessing the pointer.
38938         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
38939             Check if m_graphicsSurface is a valid pointer before dereferencing it.
38940
38941 2012-10-22  Michael Saboff  <msaboff@apple.com>
38942
38943         r131955 is has improper function call in LinkHashChromium.cpp
38944         https://bugs.webkit.org/show_bug.cgi?id=100008
38945
38946         Reviewed by Alexey Proskuryakov.
38947
38948         Followup fix to r131955 for chromium platform.  Added call to 
38949         (const UChar*, unsigned) version of visitedLinkHash from String& version.
38950
38951         * platform/chromium/LinkHashChromium.cpp:
38952         (WebCore::visitedLinkHash):
38953
38954 2012-10-22  Aaron Colwell  <acolwell@chromium.org>
38955
38956         webkitsourceopen event doesn't always fire
38957         https://bugs.webkit.org/show_bug.cgi?id=99868
38958
38959         Reviewed by Adam Barth.
38960
38961         Changed MediaSource to derive from ActiveDOMObject so that event listeners
38962         will still fire even if all references to the object go out of scope.
38963
38964         Test: http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html
38965
38966         * Modules/mediasource/MediaSource.cpp:
38967         (WebCore::MediaSource::create):
38968         (WebCore::MediaSource::MediaSource):
38969         (WebCore::MediaSource::scriptExecutionContext):
38970         (WebCore):
38971         (WebCore::MediaSource::hasPendingActivity):
38972         (WebCore::MediaSource::stop): Clears m_player & m_asyncEventQueue so they don't indicate pending activity anymore.
38973         * Modules/mediasource/MediaSource.h:
38974         (MediaSource):
38975         * Modules/mediasource/MediaSource.idl:
38976         * Modules/mediasource/MediaSourceRegistry.cpp:
38977         (WebCore::MediaSourceRegistry::registerMediaSourceURL): Added setPendingActivity() call so the MediaSource object stays active while in the registry.
38978         (WebCore::MediaSourceRegistry::unregisterMediaSourceURL): Added unsetPendingActivity() call so the MediaSource object can become inactive after being removed from the registry.
38979
38980 2012-10-22  Adam Barth  <abarth@webkit.org>
38981
38982         [V8] Vastly simplify V8GCController's NodeVisitor
38983         https://bugs.webkit.org/show_bug.cgi?id=99884
38984
38985         Reviewed by Kentaro Hara.
38986
38987         NodeVisitor was vastly more complicated than necessary.
38988
38989         This patch improve performance on these new gc benchmarks:
38990
38991         gc-forest: 1.14% better
38992         gc-mini-tree: 5.09% better
38993         gc-tree: 4.60% better
38994
38995         * bindings/v8/V8GCController.cpp:
38996         (WebCore::ObjectVisitor::visitDOMWrapper):
38997         (WebCore::addImplicitReferencesForNodeWithEventListeners):
38998         (WebCore::rootForGC):
38999         (WebCore::NodeVisitor::visitDOMWrapper):
39000         (WebCore::NodeVisitor::applyGrouping):
39001         (NodeVisitor):
39002
39003 2012-10-22  Emil A Eklund  <eae@chromium.org>
39004
39005         Change baselinePosition and maxAscent/maxDescent to int
39006         https://bugs.webkit.org/show_bug.cgi?id=99767
39007
39008         Reviewed by Levi Weintraub.
39009
39010         Currently baselinePostion, maxAscent and maxDescent are
39011         LayoutUnits while ascent, descent and m_lineHeight are ints.
39012         This can lead to subtle alignment and rounding problems.
39013
39014         Change baselinePosition and maxAscent/maxDescent to int to avoid
39015         these issues.
39016
39017         Test: fast/sub-pixel/replaced-element-baseline.html
39018
39019         * editing/FrameSelection.cpp:
39020         (WebCore::repaintRectForCaret):
39021         Inflate Y dimension just like we do for X to ensure that the
39022         repaint rect fully contains the caret.
39023
39024         * rendering/InlineBox.cpp:
39025         (WebCore::InlineBox::baselinePosition):
39026         * rendering/InlineBox.h:
39027         (InlineBox):
39028         * rendering/InlineFlowBox.cpp:
39029         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
39030         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
39031         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
39032         Change maxAscent/maxDescent to int to match ascent/descent.
39033         
39034         * rendering/InlineFlowBox.h:
39035         (InlineFlowBox):
39036         * rendering/InlineTextBox.cpp:
39037         (WebCore::InlineTextBox::baselinePosition):
39038         * rendering/InlineTextBox.h:
39039         (InlineTextBox):
39040         * rendering/RenderBlock.cpp:
39041         (WebCore::RenderBlock::baselinePosition):
39042         (WebCore::RenderBlock::firstLineBoxBaseline):
39043         (WebCore::RenderBlock::lastLineBoxBaseline):
39044         * rendering/RenderBlock.h:
39045         (RenderBlock):
39046         * rendering/RenderBox.cpp:
39047         (WebCore::RenderBox::baselinePosition):
39048         * rendering/RenderBox.h:
39049         (WebCore::RenderBox::firstLineBoxBaseline):
39050         (WebCore::RenderBox::lastLineBoxBaseline):
39051         (RenderBox):
39052         * rendering/RenderBoxModelObject.h:
39053         (RenderBoxModelObject):
39054         * rendering/RenderFlexibleBox.cpp:
39055         (WebCore::RenderFlexibleBox::baselinePosition):
39056         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
39057         * rendering/RenderFlexibleBox.h:
39058         * rendering/RenderInline.cpp:
39059         (WebCore::RenderInline::baselinePosition):
39060         * rendering/RenderInline.h:
39061         (RenderInline):
39062         * rendering/RenderListBox.cpp:
39063         (WebCore::RenderListBox::baselinePosition):
39064         * rendering/RenderListBox.h:
39065         (RenderListBox):
39066         * rendering/RenderListMarker.cpp:
39067         (WebCore::RenderListMarker::baselinePosition):
39068         * rendering/RenderListMarker.h:
39069         (RenderListMarker):
39070         * rendering/RenderSlider.cpp:
39071         (WebCore::RenderSlider::baselinePosition):
39072         * rendering/RenderSlider.h:
39073         (RenderSlider):
39074         * rendering/RenderTable.cpp:
39075         (WebCore::RenderTable::baselinePosition):
39076         (WebCore::RenderTable::lastLineBoxBaseline):
39077         (WebCore::RenderTable::firstLineBoxBaseline):
39078         * rendering/RenderTable.h:
39079         (RenderTable):
39080         * rendering/RenderTableSection.cpp:
39081         (WebCore::RenderTableSection::firstLineBoxBaseline):
39082         * rendering/RenderTableSection.h:
39083         (RenderTableSection):
39084         * rendering/RenderTextControlMultiLine.cpp:
39085         (WebCore::RenderTextControlMultiLine::baselinePosition):
39086         * rendering/RenderTextControlMultiLine.h:
39087         (RenderTextControlMultiLine):
39088         * rendering/RenderTheme.cpp:
39089         (WebCore::RenderTheme::baselinePosition):
39090         * rendering/RenderTheme.h:
39091         (RenderTheme):
39092         * rendering/RenderThemeSafari.cpp:
39093         (WebCore::RenderThemeSafari::baselinePosition):
39094         * rendering/RenderThemeSafari.h:
39095         (RenderThemeSafari):
39096         * rendering/RootInlineBox.cpp:
39097         (WebCore::RootInlineBox::baselinePosition):
39098         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
39099         * rendering/RootInlineBox.h:
39100         (RootInlineBox):
39101         * rendering/mathml/RenderMathMLBlock.cpp:
39102         (WebCore::RenderMathMLBlock::baselinePosition):
39103         (WebCore::RenderMathMLTable::firstLineBoxBaseline):
39104         * rendering/mathml/RenderMathMLBlock.h:
39105         (RenderMathMLBlock):
39106         (RenderMathMLTable):
39107         * rendering/mathml/RenderMathMLFraction.cpp:
39108         (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
39109         * rendering/mathml/RenderMathMLFraction.h:
39110         (RenderMathMLFraction):
39111         * rendering/mathml/RenderMathMLOperator.cpp:
39112         (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
39113         * rendering/mathml/RenderMathMLOperator.h:
39114         * rendering/mathml/RenderMathMLUnderOver.cpp:
39115         (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
39116         * rendering/mathml/RenderMathMLUnderOver.h:
39117         (RenderMathMLUnderOver):
39118
39119 2012-10-22  Emil A Eklund  <eae@chromium.org>
39120
39121         Modify LayoutState ASSERTS to support SATURATED_LAYOUT_ARITHMETIC
39122         https://bugs.webkit.org/show_bug.cgi?id=98692
39123
39124         Reviewed by Dan Bernstein.
39125
39126         We currently overflow/wrap when computing the delta in
39127         RenderBlock::setLogicalTopForChild in cases where we have an
39128         element with a width or height exceeding maxLayoutUnit. When
39129         the delta is later added back in RenderBlock::layoutBlockChild
39130         the number wraps again getting us back to the correct value.
39131
39132         With SATURATED_LAYOUT_ARITHMETIC enabled the values no longer
39133         wraps, which seems like the correct thing to do however this
39134         causes the compare to fail for obvious reasons. By accounting
39135         for this we can keep the asserts (which have proven very
39136         helpful) even when SATURATED_LAYOUT_ARITHMETIC is turned on.
39137
39138         No new tests, covered by existing tests.
39139
39140         * rendering/LayoutState.cpp:
39141         (WebCore::LayoutState::LayoutState):
39142         * rendering/LayoutState.h:
39143         (WebCore::LayoutState::LayoutState):
39144         (LayoutState):
39145         * rendering/RenderBlock.cpp:
39146         (WebCore::RenderBlock::layoutBlockChild):
39147         * rendering/RenderView.cpp:
39148         (WebCore::RenderView::layout):
39149         * rendering/RenderView.h:
39150         (WebCore::RenderView::addLayoutDelta):
39151         (RenderView):
39152         (WebCore::RenderView::layoutDeltaMatches):
39153
39154 2012-10-22  Tony Chang  <tony@chromium.org>
39155
39156         Fix some baseline flexbox alignment
39157         https://bugs.webkit.org/show_bug.cgi?id=99879
39158
39159         Reviewed by Ojan Vafai.
39160
39161         Fix a bug where we weren't handling margin properly on inline-flexbox.
39162         Fix a bug where we weren't getting the edge of the content box properly when synthesizing
39163         a baseline.
39164
39165         Test: css3/flexbox/flexbox-baseline-margins.html
39166
39167         * rendering/RenderBlock.cpp:
39168         (WebCore::RenderBlock::baselinePosition):
39169         (WebCore::RenderBlock::inlineBlockBaseline): Add a new method that is used when calculating an inline-block's
39170         baseline. Previously we would use lastLineBoxBaseline.
39171         (WebCore::RenderBlock::lastLineBoxBaseline): Pass in direction and when searching children, use inlineBlockBaseline.
39172         * rendering/RenderBlock.h:
39173         (RenderBlock): Make lastLineBoxBaseline non-virtual.
39174         * rendering/RenderBox.h:
39175         (WebCore::RenderBox::inlineBlockBaseline): Replace lastLineBoxBaseline with inlineBlockBaseline.
39176         * rendering/RenderFlexibleBox.cpp:
39177         (WebCore::synthesizedBaselineFromContentBox): Helper method for getting the baseline from the content box.
39178         (WebCore::RenderFlexibleBox::baselinePosition): Always include the margin. This fixes the inline-flexbox case.
39179         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Fix a case where we didn't synthesize a baseline.  Returning -1 means there is no baseline, but we can
39180         synthesize a baseline if we have a flexitem without text.
39181         (WebCore::RenderFlexibleBox::inlineBlockBaseline):
39182         * rendering/RenderFlexibleBox.h:
39183         * rendering/RenderTable.cpp: Replace lastLineBoxBaseline with inlineBlockBaseline.
39184         (WebCore::RenderTable::inlineBlockBaseline): Try to make comment more direct.
39185         * rendering/RenderTable.h:
39186         (RenderTable): Replace lastLineBoxBaseline with inlineBlockBaseline.
39187
39188 2012-10-22  Levi Weintraub  <leviw@chromium.org>
39189
39190         Unreviewed Chromium build fix following r132074.
39191
39192         * WebCore.gypi:
39193
39194 2012-10-22  Mario Sanchez Prada  <msanchez@igalia.com>
39195
39196         [GTK] Don't use deprecated AccessibilityObject methods after r99502
39197         https://bugs.webkit.org/show_bug.cgi?id=99985
39198
39199         Reviewed by Chris Fleizach.
39200
39201         Update callers for AccessibilityObject's title() and
39202         accessibilityDescription() so they now use AccessibilityText.
39203
39204         * accessibility/gtk/WebKitAccessibleUtil.cpp:
39205         (titleTagShouldBeUsedInDescriptionField): Internal helper function.
39206         (accessibilityTitle): New helper function, returns an String with
39207         the title for a AccessibilityObject, using AccessibleText.
39208         (accessibilityDescription): New helper function, returns an String with
39209         the description for a AccessibilityObject, using AccessibleText.
39210         * accessibility/gtk/WebKitAccessibleUtil.h: Added public
39211         declarations for accessibilityTitle and accessibilityDescription.
39212
39213         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
39214         (webkitAccessibleGetName): Use new helpers for retrieving the title.
39215         (webkitAccessibleGetDescription): Use new helpers for retrieving
39216         the title and description.
39217
39218         * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
39219         (webkitAccessibleImageGetImageDescription): Use new helpers for
39220         retrieving the title.
39221
39222 2012-10-16  Andrey Kosyakov  <caseq@chromium.org>
39223
39224         Web Inspector: add timeline instrumentation for scrolling of a layer
39225         https://bugs.webkit.org/show_bug.cgi?id=99461
39226
39227         Reviewed by Pavel Feldman.
39228
39229         - added timeline instrumentation for scrolling of a layer;
39230         - added TRACE_EVENT for ScrollableArea::scrollPositionChanged()
39231
39232         * inspector/InspectorInstrumentation.cpp:
39233         (WebCore):
39234         (WebCore::InspectorInstrumentation::willScrollLayerImpl):
39235         (WebCore::InspectorInstrumentation::didScrollLayerImpl):
39236         * inspector/InspectorInstrumentation.h:
39237         (InspectorInstrumentation):
39238         (WebCore::InspectorInstrumentation::willScrollLayer):
39239         (WebCore):
39240         (WebCore::InspectorInstrumentation::didScrollLayer):
39241         * inspector/InspectorTimelineAgent.cpp:
39242         (TimelineRecordType):
39243         (WebCore::InspectorTimelineAgent::willScroll):
39244         (WebCore):
39245         (WebCore::InspectorTimelineAgent::didScroll):
39246         * inspector/InspectorTimelineAgent.h:
39247         (InspectorTimelineAgent):
39248         * inspector/front-end/TimelineModel.js:
39249         * inspector/front-end/TimelinePresentationModel.js:
39250         (WebInspector.TimelinePresentationModel._initRecordStyles):
39251         * rendering/RenderLayer.cpp:
39252         (WebCore::RenderLayer::scrollTo):
39253         * platform/ScrollableArea.cpp:
39254         (WebCore::ScrollableArea::scrollPositionChanged):
39255
39256 2012-10-22  Jan Keromnes  <janx@linux.com>
39257
39258         Moved cmdevtools.js to folder cm/
39259
39260         Web Inspector: Move file `cmdevtools.css` to `cm/`
39261         https://bugs.webkit.org/show_bug.cgi?id=99956
39262
39263         Reviewed by Pavel Feldman.
39264
39265         The file cmdevtools.js belongs to the CodeMirror editor experiment in cm/.
39266
39267         * WebCore.gypi:
39268         * WebCore.vcproj/WebCore.vcproj:
39269         * inspector/front-end/WebKit.qrc:
39270         * inspector/front-end/cm/cmdevtools.css: Renamed from Source/WebCore/inspector/front-end/cmdevtools.css.
39271         (.CodeMirror):
39272         (.CodeMirror-scroll):
39273         (.cm-highlight):
39274         (@-webkit-keyframes fadeout):
39275         (to):
39276         (.cm-breakpoint):
39277         (.cm-breakpoint-disabled):
39278         (.cm-breakpoint-conditional):
39279         (.cm-execution-line):
39280         (.cm-s-web-inspector-js span.cm-keyword):
39281         (.cm-s-web-inspector-js span.cm-number):
39282         (.cm-s-web-inspector-js span.cm-comment):
39283         (.cm-s-web-inspector-js span.cm-string):
39284         (.cm-s-web-inspector-js span.cm-string-2):
39285         (.cm-s-web-inspector-css span.cm-keyword):
39286         (.cm-s-web-inspector-css span.cm-number):
39287         (.cm-s-web-inspector-css span.cm-comment):
39288         (.cm-s-web-inspector-css span.cm-string):
39289         (.cm-s-web-inspector-css span.cm-string-2):
39290         (.cm-s-web-inspector-css span.cm-link):
39291         (.cm-s-web-inspector-css span.cm-variable):
39292         (.cm-s-web-inspector-html span.cm-meta):
39293         (.cm-s-web-inspector-html span.cm-comment):
39294         (.cm-s-web-inspector-html span.cm-string):
39295         (.cm-s-web-inspector-html span.cm-tag):
39296         (.cm-s-web-inspector-html span.cm-attribute):
39297         (.cm-s-web-inspector-html span.cm-link):
39298         (.webkit-html-message-bubble):
39299         (.webkit-html-warning-message):
39300         (.webkit-html-error-message):
39301         (.webkit-html-message-line):
39302         (.webkit-html-message-line-hover):
39303
39304 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39305
39306         Web Inspector: Prepare mappings to moving uiSourceCodes creation out of them to workspace.
39307         https://bugs.webkit.org/show_bug.cgi?id=99997
39308
39309         Reviewed by Pavel Feldman.
39310
39311         Source mappings could now store a link to temporary uiSourceCodes only.
39312         Otherwise it should retrieve uiSourceCodes from workspace by URL.
39313         Original uiSourceCodes are now temporary in CompilerScriptMapping.
39314
39315         * inspector/front-end/CompilerScriptMapping.js:
39316         (WebInspector.CompilerScriptMapping):
39317         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
39318         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
39319         (WebInspector.CompilerScriptMapping.prototype._reset):
39320         * inspector/front-end/NetworkUISourceCodeProvider.js:
39321         (WebInspector.NetworkUISourceCodeProvider):
39322         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39323         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
39324         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
39325         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
39326         * inspector/front-end/SASSSourceMapping.js:
39327         (WebInspector.SASSSourceMapping):
39328         (_bindUISourceCode):
39329         (_reset):
39330
39331 2012-10-22  Nicolas Dufresne <nicolas.dufresne@collabora.com>
39332
39333         Gstreamer 1.0 not working
39334         https://bugs.webkit.org/show_bug.cgi?id=99852
39335
39336         Reviewed by Philippe Normand.
39337
39338         There was a series of trivial issue, g_object_is_floating() was called
39339         on type GstCaps (which is not a GObject), webkitGstGetPadCaps() was
39340         returning non-fixed caps and GST_MESSAGE_DURATION has been renamed
39341         to GST_MESSAGE_DURATION_CHANGED.
39342
39343         Most failing test passes now.
39344
39345         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
39346         (WTF::adoptGRef):
39347         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
39348         (webkitGstGetPadCaps):
39349         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
39350         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
39351
39352 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39353
39354         Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.
39355         https://bugs.webkit.org/show_bug.cgi?id=99989
39356
39357         Reviewed by Pavel Feldman.
39358
39359         Dynamic anonymous scripts are now mapped to anonymous temporary uiSourceCodes.
39360         ResourceScriptMapping now supports two types of temporary uiSourceCodes:
39361          - original uiSourceCodes represent scripts while main uiSourceCodes are diverged;
39362          - temporary uiSourceCodes represent scripts for which resources are not yet loaded.
39363
39364         * inspector/front-end/BreakpointManager.js:
39365         (WebInspector.BreakpointManager.breakpointStorageId):
39366         (WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
39367         * inspector/front-end/NetworkUISourceCodeProvider.js:
39368         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39369         * inspector/front-end/ResourceScriptMapping.js:
39370         (WebInspector.ResourceScriptMapping):
39371         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
39372         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
39373         (WebInspector.ResourceScriptMapping.prototype.addScript):
39374         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
39375         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
39376         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
39377         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
39378         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
39379         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
39380         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
39381         (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode.get if):
39382         (WebInspector.ResourceScriptMapping.prototype._reset):
39383
39384 2012-10-22  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
39385
39386         [css3-text] Add rendering support for -webkit-text-decoration-style
39387         https://bugs.webkit.org/show_bug.cgi?id=94094
39388
39389         Reviewed by Julien Chaffraix.
39390
39391         This patch implements the "text-decoration-style" property rendering as
39392         specified in CSS3 working draft, with "-webkit-" prefix. The specification can
39393         be found here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
39394
39395         Additionally, Mozilla implementation details can be found here:
39396         https://developer.mozilla.org/en/CSS/text-decoration-style
39397
39398         Tests: fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html
39399                fast/css3-text/css3-text-decoration/text-decoration-style.html
39400
39401         * platform/graphics/GraphicsContext.h:
39402         * platform/graphics/cairo/GraphicsContextCairo.cpp:
39403         (WebCore::GraphicsContext::setPlatformStrokeStyle):
39404         * platform/graphics/cg/GraphicsContextCG.cpp:
39405         (WebCore::GraphicsContext::drawLine):
39406         * platform/graphics/qt/GraphicsContextQt.cpp:
39407         (WebCore::toQPenStyle):
39408         (WebCore::GraphicsContext::drawLine):
39409         * platform/graphics/skia/PlatformContextSkia.cpp:
39410         (WebCore::PlatformContextSkia::setupPaintForStroking):
39411         * platform/graphics/wince/GraphicsContextWinCE.cpp:
39412         (WebCore::createPen):
39413         * platform/graphics/wx/GraphicsContextWx.cpp:
39414         (WebCore::strokeStyleToWxPenStyle):
39415         Added 'DoubleStroke' and 'WavyStroke' to StrokeStyle enum and updated
39416         platform-specific stroke handling. Some styles requires
39417         platform-specific implementation (handled in bug 92868).
39418         * rendering/InlineTextBox.cpp:
39419         (WebCore::InlineTextBox::paint):
39420         (WebCore::textDecorationStyleToStrokeStyle): Added static function that
39421         translates text decoration to stroke styles.
39422         (WebCore::InlineTextBox::paintDecoration): Text decoration style does
39423         not specify a property for line thickness (like border-width does for
39424         border style), so we statically set it to 1 for now. The 'double' style
39425         implementation simply adds a parallel line (depending if it is
39426         underline, overline or line-through) and the space between lines follows
39427         the approach used by border's 'double' style.
39428         * rendering/InlineTextBox.h:
39429         (InlineTextBox):
39430         * rendering/style/RenderStyle.h:
39431         * rendering/style/RenderStyleConstants.h:
39432         Added text decoration style rendering support to
39433         InlineTextBox::paintDecoration().
39434
39435 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39436
39437         [Qt] Use the DNS resolve queue
39438         https://bugs.webkit.org/show_bug.cgi?id=99994
39439
39440         Reviewed by Simon Hausmann.
39441
39442         Use the DNS resolve queue, to ensure we can prefetch more than just the first 10 hostname encountered
39443         during parsing. It also ensure each hostname is only appears once in the queue.
39444
39445         * Target.pri:
39446         * platform/network/qt/DNSQt.cpp: Added.
39447         (DnsPrefetchHelper):
39448         (WebCore::DnsPrefetchHelper::DnsPrefetchHelper):
39449         (WebCore::DnsPrefetchHelper::lookup):
39450         (WebCore::DnsPrefetchHelper::lookedUp):
39451         (WebCore::prefetchDNS):
39452         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
39453         (WebCore::DNSResolveQueue::platformResolve):
39454         * platform/network/qt/DnsPrefetchHelper.cpp: Removed.
39455         * platform/network/qt/DnsPrefetchHelper.h: Removed.
39456         (DnsPrefetchHelper):
39457
39458 2012-10-22  Erik Arvidsson  <arv@chromium.org>
39459
39460         HTMLBaseElement href attribute binding returns wrong URL
39461         https://bugs.webkit.org/show_bug.cgi?id=98184
39462
39463         Reviewed by Ojan Vafai.
39464
39465         Resolve the href attribute binding relative to the document URL instead of resolving it to the
39466         base element itself. If there is no href attribute this should return the fallback base URL.
39467
39468         http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
39469
39470         Tests: fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html
39471                fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html
39472
39473         * html/HTMLBaseElement.cpp:
39474         (WebCore::HTMLBaseElement::href): Don't use completeURL. Resolve href based on document's URL instead
39475         of the generic [Reflect, URL] binding.
39476         (WebCore::HTMLBaseElement::setHref): Just sets the attribute.
39477         * html/HTMLBaseElement.h:
39478         * html/HTMLBaseElement.idl: We can no longer use [Reflect, URL]
39479
39480 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39481
39482         Web Inspector: Revisions should not be restored and persisted for anonymous uiSourceCodes.
39483         https://bugs.webkit.org/show_bug.cgi?id=99991
39484
39485         Reviewed by Alexander Pavlov.
39486
39487         * inspector/front-end/UISourceCode.js:
39488         (WebInspector.UISourceCode):
39489
39490 2012-10-22  Florin Malita  <fmalita@chromium.org>
39491
39492         Incorrect embedded SVG image sizing on first load
39493         https://bugs.webkit.org/show_bug.cgi?id=99489
39494
39495         Reviewed by Nikolas Zimmermann.
39496
39497         RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
39498         to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
39499         already been performed.
39500
39501         Test: svg/custom/svg-image-initial-size.html
39502
39503         * rendering/svg/RenderSVGImage.cpp:
39504         (WebCore::RenderSVGImage::imageChanged):
39505
39506 2012-10-22  Keishi Hattori  <keishi@webkit.org>
39507
39508         Remove monthFormatInLDML
39509         https://bugs.webkit.org/show_bug.cgi?id=99971
39510
39511         Reviewed by Kent Tamura.
39512
39513         Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.
39514
39515         No new tests. Just removing unused code.
39516
39517         * platform/LocalizedStrings.h:
39518         (WebCore):
39519
39520 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39521
39522         [GTK] Enable Microdata DOM API
39523         https://bugs.webkit.org/show_bug.cgi?id=99033
39524
39525         Reviewed by Martin Robinson.
39526
39527         Enable the Microdata DOM API, but still disable it when the unstable
39528         features should be disabled (for instance in release builds).
39529
39530         No new tests - related tests are being unskipped and are expected to pass.
39531
39532         * GNUmakefile.am:
39533         * GNUmakefile.features.am:
39534         * bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
39535         API GObject bindings are generated and built.
39536
39537 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39538
39539         [GTK] Enable CSP 1.1
39540         https://bugs.webkit.org/show_bug.cgi?id=99064
39541
39542         Reviewed by Martin Robinson.
39543
39544         Enable CSP 1.1 in development builds but keep it disabled when the
39545         unstable features should not be enabled (like in stable releases).
39546
39547         No new tests - they already exist and will be unskipped.
39548
39549         * GNUmakefile.am:
39550         * GNUmakefile.features.am:
39551
39552 2012-10-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
39553
39554         [Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
39555         https://bugs.webkit.org/show_bug.cgi?id=98514
39556
39557         Reviewed by Kenneth Rohde Christiansen.
39558
39559         The problem is that we call setFixedVisibleContentRect, which triggers
39560         a layout, after the document has been put in the page cache and before
39561         the load has been actually committed.
39562
39563         This applies the same trick as with setFixedLayoutSize by passing the rect
39564         in Frame::createView and calling setFixedVisibleContentRect before the
39565         new FrameView gets attached to the Frame/Document to prevent the layout.
39566
39567         * WebCore.exp.in:
39568         * page/Frame.cpp:
39569         (WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
39570         useFixedLayout arguments as well since they are used exceptionally.
39571         * page/Frame.h:
39572         (Frame):
39573
39574 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39575
39576         [Qt] Handle GET of blob URLs.
39577         https://bugs.webkit.org/show_bug.cgi?id=99053
39578
39579         Reviewed by Simon Hausmann.
39580
39581         Let BlobResourceHandle handle Blob request internally.
39582
39583         * platform/network/qt/ResourceHandleQt.cpp:
39584         (WebCore::ResourceHandle::loadResourceSynchronously):
39585
39586 2012-10-22  Kenichi Ishibashi  <bashi@chromium.org>
39587
39588         HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
39589         https://bugs.webkit.org/show_bug.cgi?id=99966
39590
39591         Reviewed by Kent Tamura.
39592
39593         If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.
39594
39595         No new tests. Confirmed the fix by using Address Sanitizer.
39596
39597         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
39598         (WebCore::HarfBuzzShaper::shape):
39599         (WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
39600         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
39601         (HarfBuzzShaper):
39602
39603 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
39604
39605         [Shadow] ASSERT triggered when we try reprojecting fallback elements.
39606         https://bugs.webkit.org/show_bug.cgi?id=99815
39607
39608         Reviewed by Hajime Morita.
39609
39610         When fallback elements of InsertionPoint is reprojected, they were attached twice.
39611         We have to skip attaching them if they are attached. We also add a few ASSERT not to
39612         allow attaching twice if not necessary.
39613
39614         We have confirmed that this patch does not regress the performance. The summary of the
39615         performance test is the following:
39616
39617         Dromaeo/dom-modify.html [runs/s]:
39618                                median stdev    min    max
39619            without this patch:   3928   184   3655   4361
39620            with this patch   :   3925   178   3652   4350
39621
39622         Parser/html5-full-render.html [s]:
39623                                median stdev    min    max
39624            without this patch:   3821    17   3811   3850
39625            with this patch   :   3838   4.4   3833   3844
39626
39627         Test: fast/dom/shadow/content-reprojection-fallback-crash.html
39628
39629         * dom/ContainerNode.cpp:
39630         (WebCore):
39631         (WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
39632         be attached in advance because of ShadowDOM attaching process.
39633         * dom/ContainerNode.h:
39634         (ContainerNode):
39635         (WebCore):
39636         (WebCore::ContainerNode::attachChildren):
39637         * dom/Element.cpp:
39638         (WebCore::Element::attach):
39639         * dom/ShadowRoot.cpp:
39640         (WebCore::ShadowRoot::attach):
39641
39642 2012-10-22  Pavel Feldman  <pfeldman@chromium.org>
39643
39644         Web Inspector: merge "docked" state into the "dock side" enum.
39645         https://bugs.webkit.org/show_bug.cgi?id=99717
39646
39647         Reviewed by Vsevolod Vlasov.
39648
39649         Otherwise, it is hard to manage these inter-dependent flags.
39650
39651         * WebCore.exp.in:
39652         * inspector/InspectorFrontendClient.h:
39653         (InspectorFrontendClient):
39654         * inspector/InspectorFrontendClientLocal.cpp:
39655         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
39656         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
39657         * inspector/InspectorFrontendClientLocal.h:
39658         (InspectorFrontendClientLocal):
39659         * inspector/InspectorFrontendHost.cpp:
39660         (WebCore::InspectorFrontendHost::requestSetDockSide):
39661         * inspector/InspectorFrontendHost.h:
39662         (InspectorFrontendHost):
39663         * inspector/InspectorFrontendHost.idl:
39664         * inspector/front-end/DockController.js:
39665         (WebInspector.DockController):
39666         (WebInspector.DockController.prototype._updateUI.get sides):
39667         (WebInspector.DockController.prototype._updateUI):
39668         (WebInspector.DockController.prototype._toggleDockState):
39669         * inspector/front-end/InspectorFrontendAPI.js:
39670         (InspectorFrontendAPI.setAttachedWindow):
39671         (InspectorFrontendAPI.setDockSide):
39672         * inspector/front-end/InspectorFrontendHostStub.js:
39673         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
39674         * inspector/front-end/externs.js:
39675
39676 2012-10-22  MORITA Hajime  <morrita@google.com>
39677
39678         Unreviewed follow up to update test result after r132033.
39679
39680         * bindings/scripts/test/V8/V8TestObj.cpp:
39681         (WebCore::V8TestObj::installPerContextProperties):
39682
39683 2012-10-21  MORITA Hajime  <morrita@google.com>
39684
39685         [V8] V8EnablePerContext shouldn't require document() accessor to the native object.
39686         https://bugs.webkit.org/show_bug.cgi?id=99954
39687
39688         Reviewed by Kentaro Hara.
39689
39690         It now refers ScriptExecutionContext of the creation context instead of document() of
39691         wrapped object.
39692
39693         No new tests. No behavior change at this time.
39694
39695         * bindings/scripts/CodeGeneratorV8.pm:
39696         (GenerateImplementation):
39697
39698 2012-10-21  Kent Tamura  <tkent@chromium.org>
39699
39700         Page popup: Fix crash by events after closing
39701         https://bugs.webkit.org/show_bug.cgi?id=99951
39702
39703         Reviewed by Hajime Morita.
39704
39705         WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.
39706
39707         No new tests. The bug is timing-dependent.
39708
39709         * page/DOMWindowPagePopup.cpp:
39710         (WebCore::DOMWindowPagePopup::uninstall):
39711         Added. Calls Supplementable::removeSupplement.
39712         * page/DOMWindowPagePopup.h:
39713         (DOMWindowPagePopup): Declare uninstall.
39714         * platform/Supplementable.h:
39715         (WebCore::Supplementable::removeSupplement): Added.
39716
39717 2012-10-21  Keishi Hattori  <keishi@webkit.org>
39718
39719         Refactor picker tests to fix flakiness and share code
39720         https://bugs.webkit.org/show_bug.cgi?id=99671
39721
39722         Reviewed by Kent Tamura.
39723
39724         Disable transitions until the picker is fully ready. This should fix flakiness.
39725
39726         No new tests.
39727
39728         * Resources/pagepopups/calendarPicker.css:
39729         (.preparing .unavailable): Disable transitions.
39730         (.preparing .available): Disable transitions.
39731         * Resources/pagepopups/calendarPicker.js:
39732         (CalendarPicker): Set "preparing" class.
39733         (CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.
39734
39735 2012-10-21  Shinya Kawanaka  <shinyak@chromium.org>
39736
39737         Web Inspector: Shadow DOM: Node removal doesn't reflect.
39738         https://bugs.webkit.org/show_bug.cgi?id=99567
39739
39740         Reviewed by Pavel Feldman.
39741
39742         We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
39743         Otherwise, node won't be removed from the inspector.
39744
39745         Test: inspector/elements/update-shadowdom.html
39746
39747         * dom/ContainerNode.cpp:
39748         (WebCore::dispatchChildRemovalEvents):
39749
39750 2012-10-21  Andreas Kling  <kling@webkit.org>
39751
39752         Remove Page::javaScriptURLsAreAllowed setting.
39753         <http://webkit.org/b/99944>
39754
39755         Reviewed by Anders Carlsson.
39756
39757         This setting was exposed through internal WebView API in Apple's WebKit1.
39758         There are no longer any clients of that API.
39759
39760         This is a step towards preventing elements from modifying their own attributes
39761         below attributeChanged().
39762
39763         * WebCore.exp.in:
39764         * WebCore.order:
39765         * bindings/ScriptControllerBase.cpp:
39766         (WebCore::ScriptController::executeIfJavaScriptURL):
39767         * html/HTMLAnchorElement.cpp:
39768         (WebCore::HTMLAnchorElement::parseAttribute):
39769         * page/Page.cpp:
39770         (WebCore::Page::Page):
39771         * page/Page.h:
39772         (Page):
39773
39774 2012-10-21  Hyungchan Kim  <hyungchan2.kim@lge.com>
39775
39776         Add a separate flag for rgb swizzling whether it can be modified or not
39777         https://bugs.webkit.org/show_bug.cgi?id=98728
39778
39779         BitmapTexture swizzles the source image if the OpenGL driver
39780         doesn't support the BGRA extension.
39781         In case of directly composited images, the source image should not
39782         be modified.
39783
39784         http://www.satine.org/research/webkit/snowleopard/snowstack.html
39785
39786         Reviewed by Noam Rosenthal.
39787
39788         No new tests as this is only testable on specific hardware and
39789         currently not avaiable in the bots.
39790
39791         * platform/graphics/texmap/TextureMapper.h:
39792         (BitmapTexture):
39793         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
39794         (WebCore::TextureMapperTile::updateContents):
39795         (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
39796         (WebCore::TextureMapperTiledBackingStore::updateContents):
39797         * platform/graphics/texmap/TextureMapperBackingStore.h:
39798         (TextureMapperTile):
39799         (TextureMapperTiledBackingStore):
39800         (WebCore::TextureMapperTiledBackingStore::updateContents):
39801         * platform/graphics/texmap/TextureMapperGL.cpp:
39802         (WebCore::TextureMapperGL::drawRepaintCounter):
39803         (WebCore::BitmapTextureGL::updateContents):
39804         * platform/graphics/texmap/TextureMapperGL.h:
39805         (BitmapTextureGL):
39806         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
39807         (WebCore::BitmapTextureImageBuffer::updateContents):
39808         * platform/graphics/texmap/TextureMapperImageBuffer.h:
39809         (BitmapTextureImageBuffer):
39810         * platform/graphics/texmap/TextureMapperLayer.cpp:
39811         (WebCore::TextureMapperLayer::updateBackingStore):
39812
39813 2012-10-21  Antti Koivisto  <antti@apple.com>
39814
39815         Factor stylesheet invalidation analysis code into a class
39816         https://bugs.webkit.org/show_bug.cgi?id=99933
39817
39818         Reviewed by Sam Weinig.
39819
39820         Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
39821         further progress easier.
39822
39823         The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
39824         and DocumentStyleSheetCollection there. No functional changes.
39825
39826         * CMakeLists.txt:
39827         * GNUmakefile.list.am:
39828         * Target.pri:
39829         * WebCore.gypi:
39830         * WebCore.vcproj/WebCore.vcproj:
39831         * WebCore.xcodeproj/project.pbxproj:
39832         * css/SelectorChecker.cpp:
39833         (WebCore):
39834         * css/SelectorChecker.h:
39835         (WebCore):
39836         * css/StyleInvalidationAnalysis.cpp: Added.
39837         (WebCore):
39838         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
39839         (WebCore::StyleInvalidationAnalysis::create):
39840         (WebCore::determineSelectorScopes):
39841         (WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
39842         (WebCore::elementMatchesSelectorScopes):
39843         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
39844         * css/StyleInvalidationAnalysis.h: Added.
39845         (WebCore):
39846         (StyleInvalidationAnalysis):
39847         (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
39848         * css/StyleResolver.cpp:
39849         (WebCore::StyleResolver::checkRegionSelector):
39850         * css/StyleResolver.h:
39851         (StyleResolver):
39852         * dom/DocumentStyleSheetCollection.cpp:
39853         (WebCore):
39854         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
39855         * dom/DocumentStyleSheetCollection.h:
39856         (DocumentStyleSheetCollection):
39857
39858 2012-10-08  Robert Hogan  <robert@webkit.org>
39859
39860         In some float situations, the original layout is wrong and only corrects itself on repaint
39861         https://bugs.webkit.org/show_bug.cgi?id=18939
39862
39863         Reviewed by Levi Weintraub.
39864
39865         A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
39866         This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
39867         does not.
39868
39869         Test: fast/block/br-with-clearance-after-collapsing-space.html
39870
39871         * rendering/RenderBlockLineLayout.cpp:
39872         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
39873
39874 2012-10-08  Robert Hogan  <robert@webkit.org>
39875
39876         floated element with negative margin causes text wrap bug
39877         https://bugs.webkit.org/show_bug.cgi?id=94825
39878
39879         Reviewed by Levi Weintraub.
39880
39881         Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
39882         floats on the line is at least as much as the offset given by border, margin and padding. This only
39883         happens when a negative margin on the float brings its edge back before the offset
39884         given by the border, margin and padding of its parents.
39885
39886         Test: fast/block/float/float-on-line-obeys-container-padding.html
39887
39888         * rendering/RenderBlockLineLayout.cpp:
39889         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
39890
39891 2012-10-20  Martin Robinson  <mrobinson@igalia.com>
39892
39893         Fix 'make dist' for the GTK+ port
39894
39895         * GNUmakefile.am: Add missing files to the source list.
39896         * GNUmakefile.list.am: Ditto.
39897
39898 2012-10-20  Dan Bernstein  <mitz@apple.com>
39899
39900         <rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
39901         https://bugs.webkit.org/show_bug.cgi?id=99918
39902
39903         Reviewed by Geoff Garen.
39904
39905         -[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
39906         asked for size 0, and this is what Font::drawGlyphs uses to draw the text.
39907
39908         Test: fast/text/zero-font-size-2.html
39909
39910         * platform/graphics/mac/FontMac.mm:
39911         (WebCore::Font::drawGlyphs): Added an early return if the size is zero.
39912
39913 2012-10-20  Andreas Kling  <kling@webkit.org>
39914
39915         Clean up QualifiedName-as-hash-key scenario.
39916         <http://webkit.org/b/99394>
39917
39918         Reviewed by Anders Carlsson.
39919
39920         Cache the hash on QualifiedNameImpl after the first time it's computed.
39921         This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
39922         which I believe is fine, since QualifiedName is a shared object.
39923
39924         Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
39925         and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
39926         create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
39927         added to  the global QualifiedName cache, etc.
39928
39929         Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
39930         the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
39931         directly instead.
39932
39933         Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.
39934
39935         * dom/QualifiedName.cpp:
39936         (WebCore::nullQName):
39937         (WebCore::QualifiedName::QualifiedNameImpl::computeHash):
39938         * dom/QualifiedName.h:
39939         (QualifiedNameImpl):
39940         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
39941         (WebCore::QualifiedNameHash::hash):
39942         * svg/SVGElement.h:
39943         (WebCore::SVGAttributeHashTranslator::hash):
39944
39945 2012-10-20  Yael Aharon  <yael.aharon@intel.com>
39946
39947         [EFL][AC] Build fix after r131933
39948         https://bugs.webkit.org/show_bug.cgi?id=99901
39949
39950         Reviewed by Kentaro Hara.
39951
39952         Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.
39953
39954         No new tests.
39955
39956         * CMakeLists.txt:
39957
39958 2012-10-19  Adam Barth  <abarth@webkit.org>
39959
39960         [V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
39961         https://bugs.webkit.org/show_bug.cgi?id=99876
39962
39963         Reviewed by Kentaro Hara.
39964
39965         We want to remove the document parameter to instantiateV8Object. There
39966         isn't always a Document available, so it doesn't make sense to pass it
39967         as a parameter. We're just waiting for a V8 API change so we can still
39968         construct Node wrappers quickly.
39969
39970         This patch removes a use of the document that snuck in. Rather than
39971         passing the ScriptExecutionContext around, we get it from the
39972         CreationContext of the prototype object (and only when we actually need
39973         it).
39974
39975         * Modules/notifications/NotificationCenter.cpp:
39976         * Modules/notifications/NotificationCenter.h:
39977         (NotificationCenter):
39978         * bindings/scripts/CodeGeneratorV8.pm:
39979         (GenerateHeader):
39980         (GenerateConstructorGetter):
39981         (GenerateImplementation):
39982         (GenerateToV8Converters):
39983         * bindings/v8/V8DOMWindowShell.cpp:
39984         (WebCore::V8DOMWindowShell::installDOMWindow):
39985         * bindings/v8/V8DOMWrapper.cpp:
39986         (WebCore::V8DOMWrapper::instantiateV8Object):
39987         * bindings/v8/V8PerContextData.cpp:
39988         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
39989         (WebCore::V8PerContextData::constructorForTypeSlowCase):
39990         * bindings/v8/V8PerContextData.h:
39991         (WebCore::V8PerContextData::createWrapperFromCache):
39992         (WebCore::V8PerContextData::constructorForType):
39993         (V8PerContextData):
39994         * bindings/v8/WorkerContextExecutionProxy.cpp:
39995         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
39996         * bindings/v8/WrapperTypeInfo.h:
39997         (WebCore):
39998         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
39999
40000 2012-10-19  Florin Malita  <fmalita@chromium.org>
40001
40002         Incorrect pattern scaling
40003         https://bugs.webkit.org/show_bug.cgi?id=99870
40004
40005         Reviewed by Dirk Schulze.
40006
40007         The pattern space transform scale should reflect the tile_size(user space)
40008         to tile_image_size ratio, instead of tile_size to absolute_tile_size.
40009
40010         Test: svg/custom/pattern-scaling.svg
40011
40012         * rendering/svg/RenderSVGResourcePattern.cpp:
40013         (WebCore::RenderSVGResourcePattern::applyResource):
40014
40015 2012-10-19  Tony Chang  <tony@chromium.org>
40016
40017         RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
40018         https://bugs.webkit.org/show_bug.cgi?id=97827
40019
40020         Reviewed by Ojan Vafai.
40021
40022         I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
40023         border and padding), so just add an assert.
40024
40025         No new tests, the assert is for code clarity.
40026
40027         * rendering/RenderFlexibleBox.cpp:
40028         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
40029
40030 2012-10-19  Tony Chang  <tony@chromium.org>
40031
40032         Replace calls to updateLogicalHeight with calls to computeLogicalHeight
40033         https://bugs.webkit.org/show_bug.cgi?id=99883
40034
40035         Reviewed by Ojan Vafai.
40036
40037         In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
40038         saving the old height, calling update logical height, then restoring the old height.
40039
40040         No new tests, this is just a refactoring.
40041
40042         * rendering/RenderBlock.cpp:
40043         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
40044         * rendering/RenderBox.cpp:
40045         (WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
40046         (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
40047         (WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.
40048
40049 2012-10-19  Pablo Flouret  <pablof@motorola.com>
40050
40051         Implement setRangeText() on text controls
40052         https://bugs.webkit.org/show_bug.cgi?id=91907
40053
40054         Reviewed by Kent Tamura.
40055
40056         setRangeText() replaces a range of text with some other text, and
40057         adjusts the existing selection according to its parameters.
40058
40059         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
40060
40061         Tests: fast/forms/color/color-setrangetext.html
40062                fast/forms/date/date-setrangetext.html
40063                fast/forms/datetime/datetime-setrangetext.html
40064                fast/forms/datetimelocal/datetimelocal-setrangetext.html
40065                fast/forms/file/file-setrangetext.html
40066                fast/forms/hidden/hidden-setrangetext.html
40067                fast/forms/image/image-setrangetext.html
40068                fast/forms/month/month-setrangetext.html
40069                fast/forms/number/number-setrangetext.html
40070                fast/forms/range/range-setrangetext.html
40071                fast/forms/search/search-setrangetext.html
40072                fast/forms/setrangetext.html
40073                fast/forms/textarea/textarea-setrangetext.html
40074                fast/forms/time/time-setrangetext.html
40075                fast/forms/week/week-setrangetext.html
40076
40077
40078         * bindings/scripts/CodeGeneratorGObject.pm:
40079         (SkipFunction):
40080             The GObject generator doesn't support function overloads, so skip the
40081             version of setRangeText() that has only one argument, its behavior
40082             can be emulated with the four-argument version.
40083
40084         * html/InputType.cpp:
40085         (WebCore::InputType::supportsSelectionAPI):
40086         (WebCore):
40087         * html/InputType.h:
40088         (InputType):
40089             Add supportsSelectionAPI() which indicates whether the various
40090             selection api functions like setRangeText, setSelectionRange, etc.
40091             are supported by this input element.
40092
40093         * html/BaseTextInputType.cpp:
40094         (WebCore::BaseTextInputType::supportsSelectionAPI):
40095         (WebCore):
40096         * html/BaseTextInputType.h:
40097         (BaseTextInputType):
40098             Text-based input types support the selection APIs.
40099
40100         * html/EmailInputType.cpp:
40101         (WebCore::EmailInputType::supportsSelectionAPI):
40102         (WebCore):
40103         * html/EmailInputType.h:
40104         (EmailInputType):
40105             Email inputs don't support the selection APIs.
40106
40107         * html/HTMLInputElement.cpp:
40108         (WebCore::HTMLInputElement::setRangeText):
40109         * html/HTMLInputElement.h:
40110         (HTMLInputElement):
40111             Add a setRangeText override which checks if it should apply to the
40112             input type, and calls the actual implementation on the parent class.
40113         * html/HTMLInputElement.idl:
40114         * html/HTMLTextAreaElement.idl:
40115
40116         * html/HTMLTextFormControlElement.cpp:
40117         (WebCore::HTMLTextFormControlElement::setRangeText):
40118         * html/HTMLTextFormControlElement.h:
40119         (HTMLTextFormControlElement):
40120             setRangeText implementation.
40121
40122
40123 2012-10-19  Luke Macpherson   <macpherson@chromium.org>
40124
40125         Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
40126         https://bugs.webkit.org/show_bug.cgi?id=99782
40127
40128         Reviewed by Sam Weinig.
40129
40130         Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
40131         to use it instead of adding a line to StyleBuilder.
40132         Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
40133         I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.
40134
40135         Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)
40136
40137         * css/StyleResolver.cpp:
40138         (WebCore):
40139         (WebCore::StyleResolver::applyProperty):
40140
40141 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40142
40143         IndexedDB: Hidden indexing events are visible to script via bubbling/capture
40144         https://bugs.webkit.org/show_bug.cgi?id=96566
40145
40146         Reviewed by Tony Chang.
40147
40148         Stop propagation of error events fired at internal indexing requests as a result of
40149         aborting, as they should not be visible to scripts.
40150
40151         Test: storage/indexeddb/index-population.html
40152
40153         * Modules/indexeddb/IDBObjectStore.cpp:
40154         (WebCore::IDBObjectStore::createIndex):
40155         * Modules/indexeddb/IDBRequest.cpp:
40156         (WebCore::IDBRequest::IDBRequest):
40157         (WebCore::IDBRequest::dispatchEvent):
40158         * Modules/indexeddb/IDBRequest.h:
40159         (WebCore::IDBRequest::preventPropagation):
40160         (IDBRequest):
40161
40162 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40163
40164         Remove .get() calls in assertions as suggested by Darin Adler.
40165         
40166         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40167         (PlatformCALayer::appendSublayer):
40168         (PlatformCALayer::insertSublayer):
40169         (PlatformCALayer::replaceSublayer):
40170
40171 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40172
40173         Fix a hang when combining tile cache layers with preserve-3d or reflections
40174         https://bugs.webkit.org/show_bug.cgi?id=99890
40175         <rdar://problem/12539560>
40176
40177         Reviewed by Dean Jackson.
40178
40179         The new tile cache code added an updateSublayers() call when switching to/from
40180         tiled layers. This confused later sublayer rebuilding, causing us to attempt to
40181         add a layer as a child of itself, causing a hang in CA.
40182         
40183         Fix by removing all the explicit calls to updateFoo when updating the structural
40184         layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
40185         on the fact that these flag-dirtying functions get called before the later functions
40186         that process those dirty flags. This is assured by some reordering of the update
40187         function calls.
40188         
40189         A final wrinkle is that ensureStructuralLayer() can change the layer that our
40190         parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
40191         list directly like we used to, just call noteSublayersChanged() on the parent, and have
40192         commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
40193         of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
40194         only do this work if a sublayer requested it).
40195         
40196         Tests: compositing/tiling/preserve3d-tiled.html
40197                compositing/tiling/reflected-tiled.html
40198
40199         * platform/graphics/ca/GraphicsLayerCA.cpp:
40200         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
40201         (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
40202         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
40203         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
40204         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40205         (PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
40206         (PlatformCALayer::insertSublayer): Ditto.
40207         (PlatformCALayer::replaceSublayer): Ditto.
40208
40209 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
40210
40211         AX: aria-hidden=false does not work as expected
40212         https://bugs.webkit.org/show_bug.cgi?id=98787
40213
40214         Reviewed by Beth Dakin.
40215
40216         ARIA requires that aria-hidden=false override an element's native visibility and include that
40217         node in the AX hierarchy.
40218
40219         To accomplish this we have to allow invisible items to be included, as well as items that
40220         have no renderers associated with them.
40221
40222         Test: accessibility/aria-hidden-negates-no-visibility.html
40223
40224         * accessibility/AXObjectCache.cpp:
40225         (WebCore::AXObjectCache::getOrCreate):
40226         * accessibility/AccessibilityARIAGrid.cpp:
40227         (WebCore::AccessibilityARIAGrid::addTableCellChild):
40228         (WebCore::AccessibilityARIAGrid::addChildren):
40229         * accessibility/AccessibilityARIAGrid.h:
40230         (AccessibilityARIAGrid):
40231         * accessibility/AccessibilityNodeObject.cpp:
40232         (WebCore):
40233        (WebCore::AccessibilityNodeObject::boundingBoxRect):
40234         (WebCore::AccessibilityNodeObject::insertChild):
40235         (WebCore::AccessibilityNodeObject::addChild):
40236         (WebCore::AccessibilityNodeObject::addChildren):
40237         (WebCore::AccessibilityNodeObject::textUnderElement):
40238         * accessibility/AccessibilityNodeObject.h:
40239         (AccessibilityNodeObject):
40240         * accessibility/AccessibilityObject.cpp:
40241         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
40242         (WebCore):
40243         * accessibility/AccessibilityObject.h:
40244         (AccessibilityObject):
40245         (WebCore::AccessibilityObject::addChild):
40246         (WebCore::AccessibilityObject::insertChild):
40247         * accessibility/AccessibilityRenderObject.cpp:
40248         (WebCore):
40249         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40250         (WebCore::AccessibilityRenderObject::addHiddenChildren):
40251         (WebCore::AccessibilityRenderObject::addChildren):
40252         * accessibility/AccessibilityRenderObject.h:
40253         (AccessibilityRenderObject):
40254
40255 2012-10-19  Michael Saboff  <msaboff@apple.com>
40256
40257         Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
40258         https://bugs.webkit.org/show_bug.cgi?id=99735
40259
40260         Reviewed by Filip Pizlo.
40261
40262         Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
40263         to chromium platform version of LinkHashChromium.cpp.
40264         Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
40265         new form.
40266
40267         No changes to functionality, so no new tests.
40268
40269         * WebCore.exp.in:
40270         * loader/HistoryController.cpp:
40271         (WebCore::addVisitedLink):
40272         * page/PageGroup.cpp:
40273         (WebCore::PageGroup::addVisitedLink):
40274         * platform/LinkHash.cpp:
40275         (WebCore::visitedLinkHashInline):
40276         (WebCore::visitedLinkHash):
40277         * platform/LinkHash.h:
40278         * platform/chromium/LinkHashChromium.cpp:
40279         (WebCore::visitedLinkHash):
40280
40281 2012-10-19  Michael Saboff  <msaboff@apple.com>
40282
40283         String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
40284         https://bugs.webkit.org/show_bug.cgi?id=99794
40285
40286         Reviewed by Filip Pizlo.
40287
40288         Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.
40289
40290         No new test, added 8 bit path.
40291
40292         * platform/text/cf/StringCF.cpp:
40293         (WTF::String::String):
40294
40295 2012-10-19  Dima Gorbik  <dgorbik@apple.com>
40296
40297         Page should be removed from the cache right after restore was called.
40298         https://bugs.webkit.org/show_bug.cgi?id=99737
40299
40300         Reviewed by Brady Eidson.
40301
40302         The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
40303         but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
40304         This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
40305         behavior in LayoutTests. All the current tests that exercise the page cache do pass.
40306
40307         No new tests.
40308
40309         * loader/FrameLoader.cpp:
40310         (WebCore::FrameLoader::commitProvisionalLoad):
40311
40312 2012-10-19  Max Vujovic  <mvujovic@adobe.com>
40313
40314         [WebGL] getUniformLocation fails for uniform array name without array brackets
40315         https://bugs.webkit.org/show_bug.cgi?id=99854
40316
40317         Reviewed by Dean Jackson.
40318
40319         Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
40320         location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
40321         returns the array location.
40322
40323         In the process of adding a check to the following Khronos WebGL conformance test:
40324         conformance/glsl/misc/glsl-long-variable-names.html
40325
40326         * platform/graphics/ANGLEWebKitBridge.cpp:
40327         (WebCore::getSymbolInfo):
40328             Before, we used to check that the symbol size was greater than one to determine that the
40329             symbol was an array. However, this doesn't identify arrays of length one. Now, we check
40330             if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
40331             names.
40332             If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
40333             name. We set the isArray flag on the symbol, so we don't lose the information that it is
40334             an array.
40335             Then, we create symbols for each array element like before. However, instead of
40336             replacing the "0" in array[0]" with each index, we take the base name "array" and
40337             append array brackets containing each index (e.g. "array" + "[7]").
40338         * platform/graphics/ANGLEWebKitBridge.h:
40339         (ANGLEShaderSymbol):
40340             Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
40341             anymore, this is the only way to identify arrays.
40342
40343 2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
40344
40345         Unreviewed, rolling out r131915.
40346         http://trac.webkit.org/changeset/131915
40347         https://bugs.webkit.org/show_bug.cgi?id=98787
40348
40349         It broke the build on platforms with \!HAVE(ACCESSIBILITY)
40350
40351         * accessibility/AXObjectCache.cpp:
40352         (WebCore::AXObjectCache::getOrCreate):
40353         (WebCore::AXObjectCache::nodeIsTextControl):
40354         * accessibility/AXObjectCache.h:
40355         (WebCore):
40356         * accessibility/AccessibilityARIAGrid.cpp:
40357         (WebCore::AccessibilityARIAGrid::addChild):
40358         (WebCore::AccessibilityARIAGrid::addChildren):
40359         * accessibility/AccessibilityARIAGrid.h:
40360         (AccessibilityARIAGrid):
40361         * accessibility/AccessibilityNodeObject.cpp:
40362         (WebCore::AccessibilityNodeObject::elementRect):
40363         (WebCore::AccessibilityNodeObject::addChildren):
40364         (WebCore::AccessibilityNodeObject::textUnderElement):
40365         * accessibility/AccessibilityNodeObject.h:
40366         (AccessibilityNodeObject):
40367         * accessibility/AccessibilityObject.cpp:
40368         * accessibility/AccessibilityObject.h:
40369         (AccessibilityObject):
40370         * accessibility/AccessibilityRenderObject.cpp:
40371         (WebCore::textIteratorBehaviorForTextRange):
40372         (WebCore):
40373         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40374         (WebCore::AccessibilityRenderObject::addChildren):
40375         * accessibility/AccessibilityRenderObject.h:
40376         (AccessibilityRenderObject):
40377
40378 2012-10-19  Tony Chang  <tony@chromium.org>
40379
40380         Unreviewed, rolling out r131936.
40381         http://trac.webkit.org/changeset/131936
40382         https://bugs.webkit.org/show_bug.cgi?id=99717
40383
40384         Broke the clang build
40385
40386         * WebCore.exp.in:
40387         * inspector/InspectorFrontendClient.h:
40388         (InspectorFrontendClient):
40389         * inspector/InspectorFrontendClientLocal.cpp:
40390         (WebCore::InspectorFrontendClientLocal::requestAttachWindow):
40391         (WebCore):
40392         (WebCore::InspectorFrontendClientLocal::requestDetachWindow):
40393         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40394         * inspector/InspectorFrontendClientLocal.h:
40395         (InspectorFrontendClientLocal):
40396         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40397         * inspector/InspectorFrontendHost.cpp:
40398         (WebCore::InspectorFrontendHost::requestAttachWindow):
40399         (WebCore):
40400         (WebCore::InspectorFrontendHost::requestDetachWindow):
40401         (WebCore::InspectorFrontendHost::requestSetDockSide):
40402         * inspector/InspectorFrontendHost.h:
40403         (InspectorFrontendHost):
40404         * inspector/InspectorFrontendHost.idl:
40405         * inspector/front-end/DockController.js:
40406         (WebInspector.DockController):
40407         (WebInspector.DockController.prototype.setDocked):
40408         (WebInspector.DockController.prototype._innerSetDocked.set if):
40409         (WebInspector.DockController.prototype._innerSetDocked):
40410         (WebInspector.DockController.prototype._updateUI.get states):
40411         (WebInspector.DockController.prototype._updateUI):
40412         (WebInspector.DockController.prototype._toggleDockState):
40413         * inspector/front-end/InspectorFrontendAPI.js:
40414         (InspectorFrontendAPI.setAttachedWindow):
40415         (InspectorFrontendAPI.setDockSide):
40416         * inspector/front-end/InspectorFrontendHostStub.js:
40417         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
40418         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
40419         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40420         * inspector/front-end/externs.js:
40421         (InspectorFrontendHostAPI.prototype.requestAttachWindow):
40422         (InspectorFrontendHostAPI.prototype.requestDetachWindow):
40423
40424 2012-10-09  Martin Robinson  <mrobinson@igalia.com>
40425
40426         REGRESSION (r130699): 5 various fast/ tests started failing
40427         https://bugs.webkit.org/show_bug.cgi?id=98729
40428
40429         Reviewed by Xan Lopez.
40430
40431         Do not try to remove the URL fragment for data URLs. This will likely
40432         just corrupt the URL.
40433
40434         No new tests. This unskips some previously failing tests.
40435
40436         * platform/network/soup/ResourceRequestSoup.cpp:
40437         (WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.
40438
40439 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40440
40441         Use tile caches in place of CATiledLayer
40442         https://bugs.webkit.org/show_bug.cgi?id=99806
40443         <rdar://problem/6474145>
40444
40445         Reviewed by Tim Horton.
40446
40447         Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
40448         layers that exceed the 2000px size threshold.
40449
40450         * platform/graphics/TiledBacking.h:
40451         (TiledBacking): Have normal getter and setter for the visible rect.
40452         * platform/graphics/ca/GraphicsLayerCA.cpp:
40453         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
40454         to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
40455         our current visible rect, which result in no tile area work.
40456         (WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
40457         return the rect, for clarity.
40458         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
40459         visible rect, and use the change flags mechanism to ensure that we recompute
40460         tile areas later.
40461         When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
40462         its own visible rect as the old visible rect.
40463         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
40464         oldVisibleRect so that updateVisibleRect() can use this to see how the
40465         visibleRect is changing.
40466         (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
40467         compares the old and new visible rects, and extends the tile coverage area
40468         in directions where more content is being exposed. It takes care to avoid
40469         "jitter" in the visible rect deltas causing edge tiles to get created then
40470         destroyed by keeping any extra padding that already exists in a direction
40471         where more content is being exposed.
40472         (WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
40473         and use the result to update the TiledBacking's visibleRect.
40474         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
40475         LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
40476         cache layers involve adding an extra layer to the hierarchy (the tile container),
40477         we call updateSublayerList() when changing layer type.
40478         * platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
40479         that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
40480         size changes.
40481         (WebCore::GraphicsLayerCA::visibleRect):
40482         * platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
40483         * platform/graphics/ca/mac/TileCache.mm:
40484         (WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
40485         * rendering/RenderLayerCompositor.cpp:
40486         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
40487         for pages in the page cache, for which the root layer is unattached.
40488         (WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
40489         to setVisibleRect().
40490
40491 2012-10-19  Beth Dakin  <bdakin@apple.com>
40492
40493         https://bugs.webkit.org/show_bug.cgi?id=99768
40494         We should limit the tile cache coverage when a page can't take 
40495         advantage of fast tile scrolling anyway
40496
40497         Reviewed by Simon Fraser.
40498
40499         When sites can't use fast-scrolling, there is no need to inflate the 
40500         tile cache. In fact, we get a performance boost by keeping it small 
40501         on painting-intensive sites. 
40502
40503         Instead of just looking a whether or not the FrameView 
40504         canHaveScrollbar(), consult 
40505         shouldUpdateScrollLayerPositionOnMainThread().
40506         * page/FrameView.cpp:
40507         (WebCore::FrameView::performPostLayoutTasks):
40508         * rendering/RenderLayerBacking.cpp:
40509         (WebCore::RenderLayerBacking::RenderLayerBacking):
40510         
40511         Expose shouldUpdateScrollLayerPositionOnMainThread().
40512         * page/scrolling/ScrollingCoordinator.cpp:
40513         (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
40514         (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
40515         (WebCore):
40516         (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
40517         * page/scrolling/ScrollingCoordinator.h:
40518         (ScrollingCoordinator):
40519
40520         Bug fix. Should be bitwise and.
40521         * platform/graphics/ca/mac/TileCache.mm:
40522         (WebCore::TileCache::tileCoverageRect):
40523
40524 2012-10-19  Mark Lam  <mark.lam@apple.com>
40525
40526         Added WTF::StackStats mechanism.
40527         https://bugs.webkit.org/show_bug.cgi?id=99805.
40528
40529         Reviewed by Geoffrey Garen.
40530
40531         Added StackStats probes in layout methods.
40532
40533         * dom/Document.cpp:
40534         (WebCore::Document::updateLayout):
40535         * rendering/RenderBlock.cpp:
40536         (WebCore::RenderBlock::layout):
40537         * rendering/RenderBox.cpp:
40538         (WebCore::RenderBox::layout):
40539         * rendering/RenderDialog.cpp:
40540         (WebCore::RenderDialog::layout):
40541         * rendering/RenderEmbeddedObject.cpp:
40542         (WebCore::RenderEmbeddedObject::layout):
40543         * rendering/RenderFlowThread.cpp:
40544         (WebCore::RenderFlowThread::layout):
40545         * rendering/RenderFrameSet.cpp:
40546         (WebCore::RenderFrameSet::layout):
40547         * rendering/RenderIFrame.cpp:
40548         (WebCore::RenderIFrame::layout):
40549         * rendering/RenderImage.cpp:
40550         (WebCore::RenderImage::layout):
40551         * rendering/RenderListBox.cpp:
40552         (WebCore::RenderListBox::layout):
40553         * rendering/RenderListItem.cpp:
40554         (WebCore::RenderListItem::layout):
40555         * rendering/RenderListMarker.cpp:
40556         (WebCore::RenderListMarker::layout):
40557         * rendering/RenderMedia.cpp:
40558         (WebCore::RenderMedia::layout):
40559         * rendering/RenderObject.cpp:
40560         (WebCore::RenderObject::layout):
40561         * rendering/RenderObject.h:
40562         * rendering/RenderRegion.cpp:
40563         (WebCore::RenderRegion::layout):
40564         * rendering/RenderReplaced.cpp:
40565         (WebCore::RenderReplaced::layout):
40566         * rendering/RenderReplica.cpp:
40567         (WebCore::RenderReplica::layout):
40568         * rendering/RenderRubyRun.cpp:
40569         (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
40570         * rendering/RenderScrollbarPart.cpp:
40571         (WebCore::RenderScrollbarPart::layout):
40572         * rendering/RenderSlider.cpp:
40573         (WebCore::RenderSlider::layout):
40574         * rendering/RenderTable.cpp:
40575         (WebCore::RenderTable::layout):
40576         * rendering/RenderTableCell.cpp:
40577         (WebCore::RenderTableCell::layout):
40578         * rendering/RenderTableRow.cpp:
40579         (WebCore::RenderTableRow::layout):
40580         * rendering/RenderTableSection.cpp:
40581         (WebCore::RenderTableSection::layout):
40582         * rendering/RenderTextControlSingleLine.cpp:
40583         (WebCore::RenderTextControlSingleLine::layout):
40584         * rendering/RenderTextTrackCue.cpp:
40585         (WebCore::RenderTextTrackCue::layout):
40586         * rendering/RenderVideo.cpp:
40587         (WebCore::RenderVideo::layout):
40588         * rendering/RenderView.cpp:
40589         (WebCore::RenderView::layout):
40590         * rendering/RenderWidget.cpp:
40591         (WebCore::RenderWidget::layout):
40592         * rendering/svg/RenderSVGContainer.cpp:
40593         (WebCore::RenderSVGContainer::layout):
40594         * rendering/svg/RenderSVGForeignObject.cpp:
40595         (WebCore::RenderSVGForeignObject::layout):
40596         * rendering/svg/RenderSVGGradientStop.cpp:
40597         (WebCore::RenderSVGGradientStop::layout):
40598         * rendering/svg/RenderSVGHiddenContainer.cpp:
40599         (WebCore::RenderSVGHiddenContainer::layout):
40600         * rendering/svg/RenderSVGImage.cpp:
40601         (WebCore::RenderSVGImage::layout):
40602         * rendering/svg/RenderSVGResourceContainer.cpp:
40603         (WebCore::RenderSVGResourceContainer::layout):
40604         * rendering/svg/RenderSVGResourceMarker.cpp:
40605         (WebCore::RenderSVGResourceMarker::layout):
40606         * rendering/svg/RenderSVGRoot.cpp:
40607         (WebCore::RenderSVGRoot::layout):
40608         * rendering/svg/RenderSVGShape.cpp:
40609         (WebCore::RenderSVGShape::layout):
40610         * rendering/svg/RenderSVGText.cpp:
40611         (WebCore::RenderSVGText::layout):
40612
40613 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
40614
40615         Web Inspector: merge "docked" state into the "dock side" enum.
40616         https://bugs.webkit.org/show_bug.cgi?id=99717
40617
40618         Reviewed by Vsevolod Vlasov.
40619
40620         Otherwise, it is hard to manage these inter-dependent flags.
40621
40622         * inspector/InspectorFrontendClient.h:
40623         (InspectorFrontendClient):
40624         * inspector/InspectorFrontendClientLocal.cpp:
40625         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40626         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40627         * inspector/InspectorFrontendClientLocal.h:
40628         (InspectorFrontendClientLocal):
40629         * inspector/InspectorFrontendHost.cpp:
40630         (WebCore::InspectorFrontendHost::requestSetDockSide):
40631         * inspector/InspectorFrontendHost.h:
40632         (InspectorFrontendHost):
40633         * inspector/InspectorFrontendHost.idl:
40634         * inspector/front-end/DockController.js:
40635         (WebInspector.DockController):
40636         (WebInspector.DockController.prototype._updateUI.get sides):
40637         (WebInspector.DockController.prototype._updateUI):
40638         (WebInspector.DockController.prototype._toggleDockState):
40639         * inspector/front-end/InspectorFrontendAPI.js:
40640         (InspectorFrontendAPI.setAttachedWindow):
40641         * inspector/front-end/InspectorFrontendHostStub.js:
40642         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40643
40644 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40645
40646         [V8] IndexedDB: Crash when lazy-indexing Date keys
40647         https://bugs.webkit.org/show_bug.cgi?id=99860
40648
40649         Reviewed by Adam Barth.
40650
40651         Missing a scope/context needed when digging values out of Date objects
40652         in an indexing callback.
40653
40654         Test: storage/indexeddb/lazy-index-types.html
40655
40656         * bindings/v8/IDBBindingUtilities.cpp:
40657         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
40658
40659 2012-10-18  Dean Jackson  <dino@apple.com>
40660
40661         Shader translator needs option to clamp uniform array accesses in vertex shaders
40662         https://bugs.webkit.org/show_bug.cgi?id=98977
40663         https://code.google.com/p/angleproject/issues/detail?id=49
40664
40665         Reviewed by Alok Priyadarshi and Ken Russell.
40666
40667         WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
40668         ensure that non-direct array indexing is clamped to the bounds of the array.
40669
40670         Test: fast/canvas/webgl/array-bounds-clamping.html
40671
40672         * platform/graphics/ANGLEWebKitBridge.cpp:
40673         (WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS
40674
40675 2012-10-19  Justin Novosad  <junov@chromium.org>
40676
40677         [Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
40678         https://bugs.webkit.org/show_bug.cgi?id=99856
40679
40680         Reviewed by Stephen White.
40681
40682         Marking internal bitmap copy as immutable to prevent it from being
40683         unnecessarily duplicated in skia by SkBitmapHeap.
40684
40685         No new tests: code path already well covered by existing layout tests 
40686         fast/canvas/canvas-pattern-*
40687
40688         * platform/graphics/skia/PatternSkia.cpp:
40689         (WebCore::Pattern::platformPattern):
40690
40691 2012-10-19  Antti Koivisto  <antti@apple.com>
40692
40693         Maintain a list of active CSS stylesheets
40694         https://bugs.webkit.org/show_bug.cgi?id=99843
40695
40696         Reviewed by Andreas Kling.
40697
40698         Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. 
40699         This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining 
40700         a list of active CSS stylesheets separately simplifies code in number of places.
40701
40702         * css/StyleResolver.cpp:
40703         (WebCore::StyleResolver::StyleResolver):
40704         (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
40705         (WebCore::StyleResolver::appendAuthorStyleSheets):
40706         (WebCore::collectCSSOMWrappers):
40707         * css/StyleResolver.h:
40708         (StyleResolver):
40709         * css/StyleSheetList.cpp:
40710         (WebCore::StyleSheetList::styleSheets):
40711         (WebCore::StyleSheetList::detachFromDocument):
40712         * dom/Document.cpp:
40713         (WebCore::Document::setCompatibilityMode):
40714         * dom/DocumentStyleSheetCollection.cpp:
40715         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
40716         (WebCore::styleSheetsUseRemUnits):
40717         (WebCore::filterEnabledCSSStyleSheets):
40718         (WebCore):
40719         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
40720         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
40721         * dom/DocumentStyleSheetCollection.h:
40722         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
40723         (DocumentStyleSheetCollection):
40724         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
40725
40726 2012-09-08  Alpha Lam  <hclam@chromium.org>
40727
40728         [chromium] Implement deferred image decoding
40729         https://bugs.webkit.org/show_bug.cgi?id=94240
40730
40731         Reviewed by Stephen White.
40732
40733         Objectives:
40734
40735         To record image decoding operations during painting and to defer
40736         decoding operations until rasterization.
40737
40738         Rationale:
40739
40740         This is a key feature that enables impl-side painting which requires
40741         fast recording of drawing operations. The existing decode-on-draw
40742         restricts that recording has to block on expensive decoding operations.
40743         This change allows recording of image decoding operations during paint
40744         time.
40745
40746         Design:
40747
40748         Image decoding happens when a BitmapImage is drawn into a
40749         GraphicsContext. When per-tile painting is enabled GraphicsContext
40750         is backed by SkCanvas in recording mode. This SkCanvas records drawing
40751         and image decoding operations to minimize recording time.
40752
40753         An image decoding operation is recorded as a SkPixelRef object
40754         implemented by LazyDecodingPixelRef. This object references raw encoded
40755         data, regions to be decoded and scaling information.
40756
40757         When used in conjunction with per-tile painting this feature defers
40758         image decoding until the SkCanvas referencing the image is rasterized.
40759
40760         Both recording and rasterization happen on the main thread.
40761
40762         Performance Impact:
40763
40764         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
40765         and does not have an impact when disabled.
40766
40767         This feature is disabled by default.
40768
40769         Upcoming Changes:
40770
40771         1. Implement a full-featured image cache in ImageDecodingStore.
40772         2. Allow rasterization and decoding on impl thread.
40773
40774         Classes Involved:
40775
40776         BitmapImage
40777
40778         BitmapImage is the entry point for deferred image decoding. When
40779         drawing a BitmapImage into a GraphicsContext it makes a request to
40780         create a NativeImageSkia. We substitute the content in NativeImageSkia
40781         such that it is lazily decoded.
40782
40783         DeferredImageDecoder
40784
40785         This is the platform implementation of a image decoder for Chromium.
40786         This is a bridge layer that either delegates calls to the actual
40787         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
40788         to ImageDecodingStore.
40789
40790         ImageDecodingStore
40791
40792         This object manages all encoded images. It keeps track of encoded
40793         data and the corresponding ImageDecoder for doing actual decoding. It
40794         is also responsible for generating lazily decoded SkBitmaps. This
40795         SkBitmap contains a LazyDecodingPixelRef object which references to an
40796         image entry in ImageDecodingStore.
40797
40798         ScaledImageFragment
40799
40800         A container for a scaled image fragment. In addition to bitmap pixels
40801         it contains information about the ID of the image, scale and clipping.
40802
40803         ImageFrameGenerator
40804
40805         This object is responsible for generating decoded pixels. It is also
40806         a container for encoded image data and corresponding image decoder.
40807
40808         LazyDecodingPixelRef
40809
40810         This object is embedded in a SkBitmap to enable lazy decoding. When
40811         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
40812         contains information to locate an image and scaling info, these
40813         information is submitted to ImageDecodingStore to access actual pixels.
40814
40815         Layout tests. There are about 80 tests in this virtual test suite
40816         running this feature in this directory:
40817
40818         platform/chromium/virtual/deferred/fast/images
40819
40820         Unit tests. Added DeferredImageDecoderTest to verify deferred
40821         image decoding behavior.
40822
40823         * WebCore.gypi:
40824         * platform/graphics/ImageSource.cpp:
40825         (WebCore::ImageSource::setData):
40826         * platform/graphics/ImageSource.h:
40827         (WebCore):
40828         (ImageSource):
40829         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
40830         (WebCore):
40831         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
40832         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
40833         (WebCore::DeferredImageDecoder::create):
40834         (WebCore::DeferredImageDecoder::createForTesting):
40835         (WebCore::DeferredImageDecoder::filenameExtension):
40836         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
40837         (WebCore::DeferredImageDecoder::setData):
40838         (WebCore::DeferredImageDecoder::isSizeAvailable):
40839         (WebCore::DeferredImageDecoder::size):
40840         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
40841         (WebCore::DeferredImageDecoder::frameCount):
40842         (WebCore::DeferredImageDecoder::repetitionCount):
40843         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
40844         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
40845         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
40846         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
40847         (WebCore):
40848         (DeferredImageDecoder):
40849         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
40850         (WebCore::ImageDecodingStore::ImageDecodingStore):
40851         (WebCore):
40852         (WebCore::ImageDecodingStore::~ImageDecodingStore):
40853         (WebCore::ImageDecodingStore::instanceOnMainThread):
40854         (WebCore::ImageDecodingStore::initializeOnMainThread):
40855         (WebCore::ImageDecodingStore::shutdown):
40856         (WebCore::ImageDecodingStore::isLazyDecoded):
40857         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
40858         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
40859         (WebCore::ImageDecodingStore::setData):
40860         (WebCore::ImageDecodingStore::lockPixels):
40861         (WebCore::ImageDecodingStore::unlockPixels):
40862         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
40863         (WebCore::ImageDecodingStore::calledOnValidThread):
40864         (WebCore::ImageDecodingStore::lookupFrameCache):
40865         (WebCore::ImageDecodingStore::deleteFrameCache):
40866         * platform/graphics/chromium/ImageDecodingStore.h: Added.
40867         (WebCore):
40868         (ImageDecodingStore):
40869         (WebCore::ImageDecodingStore::create):
40870         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
40871         (WebCore):
40872         (WebCore::ScaledImageFragment::~ScaledImageFragment):
40873         (WebCore::ScaledImageFragment::ScaledImageFragment):
40874         (WebCore::ScaledImageFragment::isEqual):
40875         * platform/graphics/chromium/ScaledImageFragment.h: Added.
40876         (WebCore):
40877         (ScaledImageFragment):
40878         (WebCore::ScaledImageFragment::create):
40879         (WebCore::ScaledImageFragment::bitmap):
40880         (WebCore::ScaledImageFragment::isComplete):
40881         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
40882         (WebCore):
40883         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
40884         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
40885         (WebCore::ImageFrameGenerator::decoder):
40886         (WebCore::ImageFrameGenerator::setData):
40887         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
40888         (WebCore):
40889         (ImageFrameGenerator):
40890         (WebCore::ImageFrameGenerator::create):
40891         (WebCore::ImageFrameGenerator::size):
40892         (WebCore::ImageFrameGenerator::imageId):
40893         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
40894         (WebCore):
40895         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
40896         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
40897         (WebCore::LazyDecodingPixelRef::isScaled):
40898         (WebCore::LazyDecodingPixelRef::isClipped):
40899         (WebCore::LazyDecodingPixelRef::onLockPixels):
40900         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
40901         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
40902         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
40903         (WebCore):
40904         (LazyDecodingPixelRef):
40905         (WebCore::LazyDecodingPixelRef::frameGenerator):
40906         * platform/graphics/skia/NativeImageSkia.cpp:
40907         (WebCore::NativeImageSkia::resizedBitmap):
40908         * platform/image-decoders/ImageDecoder.h:
40909         (ImageFrame):
40910         (WebCore::ImageFrame::setSkBitmap):
40911         (WebCore::ImageFrame::getSkBitmap):
40912
40913 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
40914
40915         [EFL] GraphicsContext3D::m_renderStyle is not initialized
40916         https://bugs.webkit.org/show_bug.cgi?id=99721
40917
40918         Reviewed by Antonio Gomes.
40919
40920         Initialize GraphicsContext3D::m_renderStyle.
40921
40922         No new tests, no new functionality.
40923
40924         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
40925         (WebCore::GraphicsContext3D::GraphicsContext3D):
40926
40927 2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>
40928
40929         Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
40930         https://bugs.webkit.org/show_bug.cgi?id=99804
40931
40932         Reviewed by Julien Chaffraix.
40933
40934         CSS3 text related properties will be implemented under this flag,
40935         including text decoration, text-align-last, and text-justify.
40936
40937         No new functionality, no new test.
40938
40939         * Configurations/FeatureDefines.xcconfig:
40940         * GNUmakefile.am:
40941         * GNUmakefile.features.am:
40942         * css/CSSComputedStyleDeclaration.cpp:
40943         (WebCore):
40944         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
40945         * css/CSSParser.cpp:
40946         (WebCore::CSSParser::parseValue):
40947         (WebCore::CSSParser::addTextDecorationProperty):
40948         (WebCore::CSSParser::parseTextDecoration):
40949         * css/CSSPrimitiveValueMappings.h:
40950         (WebCore):
40951         * css/CSSProperty.cpp:
40952         (WebCore::CSSProperty::isInheritedProperty):
40953         * css/CSSPropertyNames.in:
40954         * css/CSSValueKeywords.in:
40955         * css/StyleBuilder.cpp:
40956         (WebCore::StyleBuilder::StyleBuilder):
40957         * css/StyleResolver.cpp:
40958         (WebCore::StyleResolver::applyProperty):
40959         * rendering/style/RenderStyle.cpp:
40960         (WebCore::RenderStyle::diff):
40961         * rendering/style/RenderStyle.h:
40962         * rendering/style/RenderStyleConstants.h:
40963         (WebCore):
40964         * rendering/style/StyleRareNonInheritedData.cpp:
40965         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
40966         (WebCore::StyleRareNonInheritedData::operator==):
40967         * rendering/style/StyleRareNonInheritedData.h:
40968         (StyleRareNonInheritedData):
40969
40970 2012-10-19  Nate Chapin  <japhet@chromium.org>
40971
40972         Reorder some functions in SubresourceLoader to permit main resources
40973         https://bugs.webkit.org/show_bug.cgi?id=99769
40974
40975         Reviewed by Adam Barth.
40976
40977         Most resource types that go through the memory cache (and therefore
40978         through SubresourceLoader) are not sensitive to the exact ordering of
40979         the callbacks they receive, particularly as it relates to ResourceLoadNotifier
40980         calls.  Main resources are not so lenient.  For main resources to be cacheable
40981         and maintain the current behavior as precisely as possible, we will need to
40982         rearrange SubresourceLoader's willSendRequest() and didReceiveData().
40983
40984         No new tests, refactor only.
40985
40986         * loader/SubresourceLoader.cpp:
40987         (WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
40988             in the request being canceled, plus calls to CachedResource::willSendRequest() and
40989             ResourceLoader::willSendRequest().  MainResourceLoader (which will be a
40990             CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
40991             is called, but the calls are out of order for that, so swap those.
40992         (WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
40993             before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
40994             before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.
40995
40996 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
40997
40998         AX: aria-hidden=false does not work as expected
40999         https://bugs.webkit.org/show_bug.cgi?id=98787
41000
41001         Reviewed by Beth Dakin.
41002
41003         ARIA requires that aria-hidden=false override an element's native visibility and include that
41004         node in the AX hierarchy.
41005  
41006         To accomplish this we have to allow invisible items to be included, as well as items that
41007         have no renderers associated with them.
41008
41009         Test: accessibility/aria-hidden-negates-no-visibility.html
41010
41011         * accessibility/AXObjectCache.cpp:
41012         (WebCore::AXObjectCache::getOrCreate):
41013         * accessibility/AccessibilityARIAGrid.cpp:
41014         (WebCore::AccessibilityARIAGrid::addTableCellChild):
41015         (WebCore::AccessibilityARIAGrid::addChildren):
41016         * accessibility/AccessibilityARIAGrid.h:
41017         (AccessibilityARIAGrid):
41018         * accessibility/AccessibilityNodeObject.cpp:
41019         (WebCore):
41020         (WebCore::AccessibilityNodeObject::boundingBoxRect):
41021         (WebCore::AccessibilityNodeObject::insertChild):
41022         (WebCore::AccessibilityNodeObject::addChild):
41023         (WebCore::AccessibilityNodeObject::addChildren):
41024         (WebCore::AccessibilityNodeObject::textUnderElement):
41025         * accessibility/AccessibilityNodeObject.h:
41026         (AccessibilityNodeObject):
41027         * accessibility/AccessibilityObject.cpp:
41028         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
41029         (WebCore):
41030         * accessibility/AccessibilityObject.h:
41031         (AccessibilityObject):
41032         (WebCore::AccessibilityObject::addChild):
41033         (WebCore::AccessibilityObject::insertChild):
41034         * accessibility/AccessibilityRenderObject.cpp:
41035         (WebCore):
41036         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
41037         (WebCore::AccessibilityRenderObject::addHiddenChildren):
41038         (WebCore::AccessibilityRenderObject::addChildren):
41039         * accessibility/AccessibilityRenderObject.h:
41040         (AccessibilityRenderObject):
41041
41042 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41043
41044         MediaStream API: Rename owner to client in MediaStreamDescriptor
41045         https://bugs.webkit.org/show_bug.cgi?id=99593
41046
41047         Reviewed by Adam Barth.
41048
41049         This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.
41050
41051         No new tests needed, covered by existing tests.
41052
41053         * Modules/mediastream/MediaStream.cpp:
41054         (WebCore::MediaStream::MediaStream):
41055         (WebCore::MediaStream::~MediaStream):
41056         * Modules/mediastream/MediaStream.h:
41057         (MediaStream):
41058         * Modules/mediastream/PeerConnection00.cpp:
41059         (WebCore::PeerConnection00::didRemoveRemoteStream):
41060         * Modules/mediastream/RTCPeerConnection.cpp:
41061         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
41062         * platform/mediastream/MediaStreamCenter.cpp:
41063         (WebCore::MediaStreamCenter::endLocalMediaStream):
41064         (WebCore::MediaStreamCenter::addMediaStreamTrack):
41065         (WebCore::MediaStreamCenter::removeMediaStreamTrack):
41066         * platform/mediastream/MediaStreamDescriptor.h:
41067         (WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
41068         (WebCore::MediaStreamDescriptor::client):
41069         (WebCore::MediaStreamDescriptor::setClient):
41070         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
41071         (MediaStreamDescriptor):
41072
41073 2012-10-19  Shinya Kawanaka  <shinyak@chromium.org>
41074
41075         Elements assigned to <shadow> should not be reprojected.
41076         https://bugs.webkit.org/show_bug.cgi?id=99680
41077
41078         Reviewed by Dimitri Glazkov.
41079
41080         In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
41081         reprojected to content. However, we can select them by <shadow>.
41082
41083         Tests: fast/dom/shadow/content-reprojection-complex.html
41084                fast/dom/shadow/content-reprojection-shadow.html
41085                fast/dom/shadow/shadow-reprojection-prohibited.html
41086
41087         * html/shadow/ContentDistributor.cpp:
41088         (WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
41089         to POOL. Instead, <shadow> itself should be added to POOL.
41090         * html/shadow/HTMLContentElement.h:
41091         (WebCore::isHTMLContentElement):
41092         (WebCore):
41093
41094 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
41095
41096         VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
41097         https://bugs.webkit.org/show_bug.cgi?id=96325
41098
41099         Reviewed by Beth Dakin.
41100
41101          When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
41102          modifies the original findLegend method to take a parameter to determine what should be done.
41103
41104         Test: accessibility/hidden-legend.html
41105
41106         * accessibility/AccessibilityRenderObject.cpp:
41107         (WebCore::AccessibilityRenderObject::titleUIElement):
41108         * rendering/RenderFieldset.cpp:
41109         (WebCore::RenderFieldset::findLegend):
41110         * rendering/RenderFieldset.h:
41111
41112 2012-10-17  Chris Fleizach  <cfleizach@apple.com>
41113
41114         AX: Refactor accessibility name computation so it's more platform independent
41115         https://bugs.webkit.org/show_bug.cgi?id=99502
41116
41117         Reviewed by Beth Dakin.
41118
41119         The current model of determining the accessible text for an object has a lot of Mac biases built in
41120         due to legacy implementation. 
41121
41122         This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
41123         allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
41124         http://www.w3.org/TR/wai-aria/roles#textalternativecomputation
41125
41126         This change tried very hard not to change any test behavior, even though it exposed a number of weird
41127         edge cases where we were treating attributes differently based on element type. 
41128
41129         Future patches will resolve those discrepancies.
41130
41131         * accessibility/AccessibilityImageMapLink.cpp:
41132         (WebCore::AccessibilityImageMapLink::accessibilityText):
41133         * accessibility/AccessibilityImageMapLink.h:
41134         (AccessibilityImageMapLink):
41135         * accessibility/AccessibilityMediaControls.cpp:
41136         (WebCore::AccessibilityMediaControl::accessibilityText):
41137         * accessibility/AccessibilityMediaControls.h:
41138         (AccessibilityMediaControl):
41139         (WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
41140         * accessibility/AccessibilityNodeObject.cpp:
41141         (WebCore::AccessibilityNodeObject::titleElementText):
41142         (WebCore::AccessibilityNodeObject::accessibilityText):
41143         (WebCore::AccessibilityNodeObject::ariaLabeledByText):
41144         (WebCore::AccessibilityNodeObject::alternativeText):
41145         (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
41146         (WebCore::AccessibilityNodeObject::visibleText):
41147         (WebCore::AccessibilityNodeObject::helpText):
41148         (WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
41149         * accessibility/AccessibilityNodeObject.h:
41150         (AccessibilityNodeObject):
41151         * accessibility/AccessibilityObject.h:
41152         (AccessibilityText):
41153         (WebCore::AccessibilityText::AccessibilityText):
41154         (WebCore::AccessibilityObject::isMediaControlLabel):
41155         (AccessibilityObject):
41156         (WebCore::AccessibilityObject::accessibilityText):
41157         (WebCore::AccessibilityObject::setAccessibleName):
41158         (WebCore::AccessibilityObject::accessibilityDescription):
41159         (WebCore::AccessibilityObject::title):
41160         (WebCore::AccessibilityObject::helpText):
41161         (WebCore::AccessibilityObject::stringValue):
41162         (WebCore::AccessibilityObject::textUnderElement):
41163         (WebCore::AccessibilityObject::text):
41164         (WebCore::AccessibilityObject::textLength):
41165         (WebCore::AccessibilityObject::setRoleValue):
41166         (WebCore::AccessibilityObject::roleValue):
41167         (WebCore::AccessibilityObject::selection):
41168         (WebCore::AccessibilityObject::hierarchicalLevel):
41169         * accessibility/AccessibilityRenderObject.cpp:
41170         * accessibility/AccessibilityRenderObject.h:
41171         (AccessibilityRenderObject):
41172         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41173         (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
41174         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
41175         (-[WebAccessibilityObjectWrapper accessibilityDescription]):
41176         (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
41177         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
41178         * platform/LocalizedStrings.cpp:
41179         (WebCore::localizedMediaControlElementHelpText):
41180
41181 2012-10-19  Kent Tamura  <tkent@chromium.org>
41182
41183         Use Localizer::monthFormat to construct input[type=month] UI
41184         https://bugs.webkit.org/show_bug.cgi?id=99818
41185
41186         Reviewed by Kentaro Hara.
41187
41188         Use an LDML format returned by Localizer::monthFormat for
41189         input[type=month] UI.
41190
41191         Because the format may contain symbolic month names and symbolic
41192         stand-alone month names, we need to add:
41193          - Symbolic/numeric detection in DateTimeEditBuilder
41194          - Normal/stand-alone detection in DateTimeEditBuilder
41195          - Symbolic edit field for months
41196
41197         Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
41198               fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
41199
41200         * html/MonthInputType.cpp:
41201         (WebCore::MonthInputType::setupLayoutParameters):
41202         Use Localizer::monthFormat.
41203
41204         * html/shadow/DateTimeEditElement.cpp:
41205         (WebCore::DateTimeEditBuilder::visitField):
41206         - If the number of continuous field character is greater than 2, use
41207         DateTimeSymbolicMonthFieldElement.
41208         - Supports stand-alone month field.
41209
41210         * html/shadow/DateTimeFieldElements.h:
41211         (DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
41212         * html/shadow/DateTimeFieldElements.cpp:
41213         (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
41214         Added.
41215         (WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
41216         (WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
41217         We need to add 1 because the internal integer representation is 0-based
41218         and DateTimeFieldsState uses 1-based month.
41219         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
41220         DateComponents::month is 0-based.
41221         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
41222         We need to subtract 1 because the internal integer representation is 0-based
41223         and DateTimeFieldsState uses 1-based month.
41224
41225         * html/shadow/DateTimeSymbolicFieldElement.h:
41226         (WebCore::DateTimeSymbolicFieldElement::symbolsSize):
41227         Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.
41228
41229 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41230
41231         Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
41232         https://bugs.webkit.org/show_bug.cgi?id=99519
41233
41234         Reviewed by Alexander Pavlov.
41235
41236         Extracted _styleContentSet callback in a class method to make it sniffable by tests.
41237
41238         * inspector/front-end/StylesSourceMapping.js:
41239         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
41240         (WebInspector.StyleFile.prototype._styleContentSet):
41241
41242 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
41243
41244         Web Inspector: add object-src 'none' to the inspector.html
41245         https://bugs.webkit.org/show_bug.cgi?id=99728
41246
41247         Reviewed by Vsevolod Vlasov.
41248
41249         * inspector/front-end/inspector.html:
41250
41251 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41252
41253         Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
41254         https://bugs.webkit.org/show_bug.cgi?id=99823
41255
41256         Reviewed by Yury Semikhatsky.
41257
41258         Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.
41259
41260         * inspector/front-end/ResourceScriptMapping.js:
41261         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
41262         * inspector/front-end/ScriptSnippetModel.js:
41263         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
41264         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
41265         * inspector/front-end/ScriptsNavigator.js:
41266         (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
41267         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
41268         * inspector/front-end/ScriptsPanel.js:
41269         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
41270         * inspector/front-end/Workspace.js:
41271         (WebInspector.Project.prototype.addTemporaryUISourceCode):
41272
41273 2012-10-19  Alexander Pavlov  <apavlov@chromium.org>
41274
41275         Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
41276         https://bugs.webkit.org/show_bug.cgi?id=99729
41277
41278         Reviewed by Vsevolod Vlasov.
41279
41280         Decode only the first line number digit written in a six-character escaped Unicode format.
41281
41282         * inspector/front-end/SASSSourceMapping.js:
41283         (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
41284         (WebInspector.SASSSourceMapping.prototype._resourceAdded):
41285
41286 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41287
41288         MediaStream API: Update the RuntimeEnabledFeatures flags
41289         https://bugs.webkit.org/show_bug.cgi?id=99714
41290
41291         Reviewed by Adam Barth.
41292
41293         Updating the RuntimeEnabledFeatures flags to match reality:
41294         isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
41295         isDeprecatedPeerConnectionEnabled false.
41296
41297         Patch covered by existing tests.
41298
41299         * bindings/generic/RuntimeEnabledFeatures.cpp:
41300         (WebCore):
41301
41302 2012-10-19  Adam Barth  <abarth@webkit.org>
41303
41304         [V8] Simplify GCPrologueVisitor
41305         https://bugs.webkit.org/show_bug.cgi?id=99819
41306
41307         Reviewed by Kentaro Hara.
41308
41309         Previously, GCPrologueVisitor used a complicated traits-based template
41310         design. That's not necessary. We can just implement it directly without
41311         template magic.
41312
41313         The one subtly here is that MessagePort is not actually a subclass of
41314         ActiveDOMObject. The next stage of this cleanup is to make MessagePort
41315         inherit from ActiveDOMObject and remove this special case entirely.
41316
41317         * bindings/v8/V8GCController.cpp:
41318         (WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
41319         (WebCore):
41320         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
41321         (WebCore::NodeVisitor::visitDOMWrapper):
41322         (WebCore::V8GCController::gcPrologue):
41323
41324 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41325
41326         Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
41327         https://bugs.webkit.org/show_bug.cgi?id=99179
41328
41329         Reviewed by Yury Semikhatsky.
41330
41331         Added method "close" to InspectorFrontendHost.
41332         Symantically, this method forces to flush all unsaved buffers for
41333         specified file. In native implementation this turns to be no-op.
41334
41335         In stub implementation "close" causes compilation of blob object an
41336         navigating to blob-schema url.
41337
41338         Removed "canAppend", as appending in now suppurted
41339         by all implementations.
41340
41341         Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
41342         to avoid out-of-memory errors.
41343
41344         * inspector/InspectorFrontendHost.cpp:
41345         (WebCore::InspectorFrontendHost::close): Compiles blob object and
41346         navigates to blob-object url.
41347         (WebCore):
41348         * inspector/InspectorFrontendHost.h: Added "close" method.
41349         * inspector/InspectorFrontendHost.idl: Ditto.
41350         * inspector/front-end/FileManager.js:
41351         (WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
41352         * inspector/front-end/FileUtils.js:
41353         (WebInspector.FileOutputStream.prototype.close):
41354         Invoke "close" on FileManager.
41355         (WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
41356         * inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
41357         * inspector/front-end/HeapSnapshotView.js:
41358         (WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
41359         * inspector/front-end/InspectorFrontendHostStub.js:
41360         (.WebInspector.InspectorFrontendHostStub):
41361         Added "appendable" behaviour emulation.
41362         * inspector/front-end/SourceFrame.js: Added mandatory "close" call.
41363         * inspector/front-end/externs.js: Replaced "canAppend" with "close"
41364
41365 2012-10-18  Dominic Mazzoni  <dmazzoni@google.com>
41366
41367         AX: labelForElement is slow when there are a lot of DOM elements
41368         https://bugs.webkit.org/show_bug.cgi?id=97825
41369
41370         Reviewed by Ryosuke Niwa.
41371
41372         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
41373         quickly map from an id to the label for that id. This speeds up
41374         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
41375         when accessibility was on.
41376
41377         Tests: accessibility/title-ui-element-correctness.html
41378                perf/accessibility-title-ui-element.html
41379
41380         * accessibility/AccessibilityNodeObject.cpp:
41381         (WebCore::AccessibilityNodeObject::labelForElement):
41382         * dom/DocumentOrderedMap.cpp:
41383         (WebCore::keyMatchesLabelForAttribute):
41384         (WebCore):
41385         (WebCore::DocumentOrderedMap::get):
41386         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
41387         * dom/DocumentOrderedMap.h:
41388         (DocumentOrderedMap):
41389         * dom/Element.cpp:
41390         (WebCore::Element::insertedInto):
41391         (WebCore::Element::removedFrom):
41392         (WebCore::Element::updateLabel):
41393         (WebCore):
41394         (WebCore::Element::willModifyAttribute):
41395         * dom/Element.h:
41396         (Element):
41397         * dom/TreeScope.cpp:
41398         (WebCore::TreeScope::TreeScope):
41399         (WebCore::TreeScope::destroyTreeScopeData):
41400         (WebCore::TreeScope::addLabel):
41401         (WebCore):
41402         (WebCore::TreeScope::removeLabel):
41403         (WebCore::TreeScope::labelElementForId):
41404         * dom/TreeScope.h:
41405         (WebCore):
41406         (TreeScope):
41407         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
41408
41409 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41410
41411         Web Inspector: Update localizedStrings.js
41412         https://bugs.webkit.org/show_bug.cgi?id=99701
41413
41414         Reviewed by Yury Semikhatsky.
41415
41416         Fixed most of missing strings and orphans.
41417
41418         * English.lproj/localizedStrings.js:
41419         * inspector/front-end/SettingsScreen.js:
41420
41421 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
41422
41423         Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
41424         https://bugs.webkit.org/show_bug.cgi?id=99457
41425
41426         Reviewed by Yury Semikhatsky.
41427
41428         countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
41429         getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
41430
41431         * inspector/InspectorClient.h:
41432         (WebCore::InspectorClient::dumpUncountedAllocatedObjects):
41433         * inspector/InspectorMemoryAgent.cpp:
41434         (WebCore::reportJSHeapInfo):
41435         (WebCore::reportRenderTreeInfo):
41436         (WebCore):
41437         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
41438         * inspector/MemoryInstrumentationImpl.cpp:
41439         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
41440         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
41441         * inspector/MemoryInstrumentationImpl.h:
41442         (MemoryInstrumentationClientImpl):
41443         (WebCore::MemoryInstrumentationClientImpl::countedObjects):
41444
41445 2012-10-19  Adam Barth  <abarth@webkit.org>
41446
41447         [V8] DOMObjectVisitor does nothing
41448         https://bugs.webkit.org/show_bug.cgi?id=99812
41449
41450         Reviewed by Kentaro Hara.
41451
41452         This code doesn't do anything, even in Debug! We should just remove it.
41453
41454         * bindings/v8/V8GCController.cpp:
41455         (WebCore):
41456         (WebCore::V8GCController::gcPrologue):
41457         (WebCore::V8GCController::gcEpilogue):
41458
41459 2012-10-19  Adam Barth  <abarth@webkit.org>
41460
41461         [V8] Remove unused typedef from V8GCController.cpp
41462         https://bugs.webkit.org/show_bug.cgi?id=99808
41463
41464         Reviewed by Kentaro Hara.
41465
41466         This typedef is not used.
41467
41468         * bindings/v8/V8GCController.cpp:
41469
41470 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
41471
41472         Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
41473         https://bugs.webkit.org/show_bug.cgi?id=99720
41474
41475         Reviewed by Yury Semikhatsky.
41476
41477         Non-inherited properties are now disregarded in inherited styles.
41478
41479         * inspector/front-end/StylesSidebarPane.js:
41480         (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
41481         (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
41482
41483 2012-10-18  Adam Barth  <abarth@webkit.org>
41484
41485         [V8] GrouperVisitor is secretly two entirely separate objects
41486         https://bugs.webkit.org/show_bug.cgi?id=99810
41487
41488         Reviewed by Kentaro Hara.
41489
41490         We can separate out the two things that GrouperVisitor is trying to do
41491         because they have nothing to do with each other.
41492
41493         * bindings/v8/V8GCController.cpp:
41494         (ObjectVisitor):
41495         (WebCore::ObjectVisitor::visitDOMWrapper):
41496         (WebCore):
41497         (WebCore::V8GCController::gcPrologue):
41498
41499 2012-10-18  Kiran Muppala  <cmuppala@apple.com>
41500
41501         Automatically start plugins created within a user gesture, skipping snapshotting
41502         https://bugs.webkit.org/show_bug.cgi?id=99778
41503
41504         Reviewed by Alexey Proskuryakov.
41505
41506         If a user gesture is being processed, do not set the display state of
41507         HTMLPluginImageElement to WaitingForSnapshot.
41508
41509         No new tests, since it only affects when plugins switch from snapshot to running
41510         state.  Does not affect rendering of other elements.
41511
41512         * html/HTMLPlugInImageElement.cpp:
41513         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
41514
41515 2012-10-18  Kent Tamura  <tkent@chromium.org>
41516
41517         Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
41518         https://bugs.webkit.org/show_bug.cgi?id=99787
41519
41520         Reviewed by Kentaro Hara.
41521
41522         This is going to be used for input[type=month] UI. This doesn't affect
41523         any bahevior yet.
41524
41525         Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
41526         layout tests later.
41527
41528         * platform/text/Localizer.h:
41529         (Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
41530         virtual member functions.
41531
41532         * platform/text/LocaleICU.h:
41533         (LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
41534         * platform/text/LocaleICU.cpp:
41535         (WebCore::LocaleICU::shortMonthLabels): Added.
41536         (WebCore::LocaleICU::shortStandAloneMonthLabels): Added.
41537
41538         * platform/text/LocaleNone.cpp:
41539         (LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
41540         (WebCore::LocaleNone::shortMonthLabels):
41541         Added. Always returns English labels.
41542         (WebCore::LocaleNone::shortStandAloneMonthLabels):
41543         Addes. Just calls shortMonthLabels.
41544
41545         * platform/text/LocaleWin.h:
41546         (LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
41547         * platform/text/LocaleWin.cpp:
41548         (WebCore::LocaleWin::shortMonthLabels): Added.
41549         (WebCore::LocaleWin::shortStandAloneMonthLabels):
41550         Added. Always returns shortMonthLabels.
41551
41552         * platform/text/mac/LocaleMac.h:
41553         (LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
41554         * platform/text/mac/LocaleMac.mm:
41555         (WebCore::LocaleMac::shortMonthLabels): Added.
41556         (WebCore::LocaleMac::shortStandAloneMonthLabels): Added.
41557
41558 2012-10-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
41559
41560         Implement value sanitization algorithm for type=datetime
41561         https://bugs.webkit.org/show_bug.cgi?id=76893
41562
41563         Reviewed by Kent Tamura.
41564
41565         Implement the value sanitization algorithm for type=datetime that adjusts
41566         the value to a valid normalized forced-UTC global date and time string.
41567         See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string
41568
41569         Test: fast/forms/datetime/datetime-value-sanitization.html
41570
41571         * html/DateTimeInputType.cpp:
41572         (WebCore::DateTimeInputType::sanitizeValue): Implemented.
41573         (WebCore):
41574         * html/DateTimeInputType.h:
41575         (DateTimeInputType): Add sanitizeValue.
41576         * platform/DateComponents.cpp:
41577         (WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
41578         of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).
41579
41580 2012-10-18  Byungwoo Lee  <bw80.lee@samsung.com>
41581
41582         Fix build warning.
41583         https://bugs.webkit.org/show_bug.cgi?id=99788
41584
41585         Reviewed by Kentaro Hara.
41586
41587         Use UNUSED_PARAM macro for removing -Wunused-parameter.
41588
41589         * rendering/RenderLayer.cpp:
41590         (WebCore::RenderLayer::currentTransform):
41591
41592 2012-10-18  Benjamin Poulain  <bpoulain@apple.com>
41593
41594         [WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
41595         https://bugs.webkit.org/show_bug.cgi?id=99771
41596
41597         Reviewed by Anders Carlsson.
41598
41599         * WebCore.exp.in: The symbol is used by WebCore Test Support, move it
41600         to the general section.
41601
41602 2012-10-18  Adam Barth  <abarth@webkit.org>
41603
41604         [V8] fast/dom/gc-9.html fails for document.styleSheets
41605         https://bugs.webkit.org/show_bug.cgi?id=99786
41606
41607         Reviewed by Kentaro Hara.
41608
41609         V8 needs to know about this IDL attribute as well.
41610
41611         * css/StyleSheetList.idl:
41612
41613 2012-10-18  Adam Barth  <abarth@webkit.org>
41614
41615         [V8] fast/dom/gc-9.html fails for document.implementation
41616         https://bugs.webkit.org/show_bug.cgi?id=99783
41617
41618         Reviewed by Kentaro Hara.
41619
41620         In order to correctly manage the lifetime of document.implementation,
41621         we need to implement GenerateIsReachable=ImplDocument.
41622
41623         * bindings/scripts/CodeGeneratorV8.pm:
41624         (GenerateVisitDOMWrapper):
41625         * bindings/scripts/IDLAttributes.txt:
41626         * dom/DOMImplementation.idl:
41627
41628 2012-10-18  Chris Fleizach  <cfleizach@apple.com>
41629
41630         AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
41631         https://bugs.webkit.org/show_bug.cgi?id=96443
41632
41633         Reviewed by Beth Dakin.
41634
41635         Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
41636         to determine which line this crash is happening on.
41637
41638         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41639         (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
41640
41641 2012-10-18  Alec Flett  <alecflett@chromium.org>
41642
41643         IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
41644         https://bugs.webkit.org/show_bug.cgi?id=99773
41645
41646         Reviewed by Tony Chang.
41647
41648         Refactor to begin separating out metadata from stateful backend objects,
41649         in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.
41650
41651         Also includes some #include dependency cleanup so that the backing store
41652         depends less on the stateful backend objects.
41653
41654         No new tests as this is purely a refactor.
41655
41656         * Modules/indexeddb/IDBBackingStore.h:
41657         (WebCore):
41658         (IDBBackingStore):
41659         * Modules/indexeddb/IDBCursor.h:
41660         * Modules/indexeddb/IDBCursorBackendImpl.h:
41661         (WebCore):
41662         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
41663         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
41664         (WebCore::IDBDatabaseBackendImpl::openInternal):
41665         (WebCore::IDBDatabaseBackendImpl::metadata):
41666         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
41667         (WebCore::IDBDatabaseBackendImpl::setVersion):
41668         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
41669         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
41670         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
41671         (WebCore::IDBDatabaseBackendImpl::openConnection):
41672         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
41673         (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
41674         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
41675         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
41676         (WebCore::IDBDatabaseBackendImpl::resetVersion):
41677         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
41678         (WebCore::IDBDatabaseBackendImpl::id):
41679         (IDBDatabaseBackendImpl):
41680         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
41681         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
41682         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
41683         * Modules/indexeddb/IDBLevelDBBackingStore.h:
41684         (IDBLevelDBBackingStore):
41685         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
41686         * Modules/indexeddb/IDBTransaction.h:
41687         (WebCore):
41688
41689 2012-10-18  Peter Kasting  <pkasting@google.com>
41690
41691         [Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
41692         https://bugs.webkit.org/show_bug.cgi?id=99781
41693
41694         Reviewed by Adam Barth.
41695
41696         No tests, since the actual effects of this bug are fickle and it's not
41697         clear how to extract and check particular subframes of an animated GIF.
41698
41699         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
41700         (WebCore::ImageFrame::copyBitmapData):
41701
41702 2012-10-18  Pan Deng  <pan.deng@intel.com>
41703
41704         [Resource Timing]Implementation of resource timing buffer size restriction functionality
41705         https://bugs.webkit.org/show_bug.cgi?id=84885.
41706
41707         Reviewed by Tony Gentilcore.
41708
41709         http://www.w3.org/TR/2012/CR-resource-timing-20120522/
41710         This patch enable functionality of set buffer size(default is 150 as spec). When buffer is full, resourceTimingBufferFull event will be fired. Incoming entries will be dropped if no more space for them. 
41711
41712         Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
41713                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
41714                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
41715                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
41716                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
41717                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html
41718
41719         * page/Performance.cpp:
41720         (WebCore):
41721         (WebCore::Performance::Performance):
41722         (WebCore::Performance::webkitSetResourceTimingBufferSize):
41723         (WebCore::Performance::addResourceTiming):
41724         (WebCore::Performance::isResourceTimingBufferFull):
41725         * page/Performance.h:
41726         (Performance):
41727
41728 2012-10-18  Ryosuke Niwa  <rniwa@webkit.org>
41729
41730         REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
41731         https://bugs.webkit.org/show_bug.cgi?id=99663
41732
41733         Reviewed by Enrica Casucci and Levi Weintraub.
41734
41735         The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
41736         ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
41737         positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
41738         moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
41739         the length after t2 is merged.
41740
41741         Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
41742         Also use the right offset.
41743
41744         Test: editing/pasteboard/copy-paste-first-line-in-textarea.html
41745
41746         * editing/ReplaceSelectionCommand.cpp:
41747         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
41748
41749 2012-10-18  Claudio Saavedra  <csaavedra@igalia.com>
41750
41751         [GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
41752         https://bugs.webkit.org/show_bug.cgi?id=82882
41753
41754         Reviewed by Xan Lopez.
41755
41756         Based on a patch by Milan Crha <mcrha@redhat.com>
41757
41758         Prevent an invalid access to a pointer while clearing the DOM
41759         object cache.
41760         * bindings/gobject/DOMObjectCache.cpp:
41761         (WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.
41762
41763 2012-10-18  Sheriff Bot  <webkit.review.bot@gmail.com>
41764
41765         Unreviewed, rolling out r131810.
41766         http://trac.webkit.org/changeset/131810
41767         https://bugs.webkit.org/show_bug.cgi?id=99762
41768
41769         Broke linux debug webkit_unit_tests (Requested by
41770         danakj|gardening on #webkit).
41771
41772         * WebCore.gypi:
41773         * platform/graphics/ImageSource.cpp:
41774         (WebCore::ImageSource::setData):
41775         * platform/graphics/ImageSource.h:
41776         (WebCore):
41777         (ImageSource):
41778         * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
41779         * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
41780         * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
41781         * platform/graphics/chromium/ImageDecodingStore.h: Removed.
41782         * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
41783         * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
41784         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
41785         * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
41786         * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
41787         * platform/graphics/chromium/ScaledImageFragment.h: Removed.
41788         * platform/graphics/skia/NativeImageSkia.cpp:
41789         (WebCore::NativeImageSkia::resizedBitmap):
41790         * platform/image-decoders/ImageDecoder.h:
41791         (ImageFrame):
41792
41793 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
41794
41795         MediaStream API: Do some cleanup in the chromium WebKit API
41796         https://bugs.webkit.org/show_bug.cgi?id=99713
41797
41798         Reviewed by Adam Barth.
41799
41800         Removing the deprecated version of WebMediaStreamDescriptor::initialize.
41801
41802         No testing needed since only an unused function is removed.
41803
41804         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
41805
41806 2012-10-18  Alpha Lam  <hclam@chromium.org>
41807
41808         [chromium] Implement deferred image decoding
41809         https://bugs.webkit.org/show_bug.cgi?id=94240
41810
41811         Reviewed by Stephen White.
41812
41813         Objectives:
41814
41815         To record image decoding operations during painting and to defer
41816         decoding operations until rasterization.
41817
41818         Rationale:
41819
41820         This is a key feature that enables impl-side painting which requires
41821         fast recording of drawing operations. The existing decode-on-draw
41822         restricts that recording has to block on expensive decoding operations.
41823         This change allows recording of image decoding operations during paint
41824         time.
41825
41826         Design:
41827
41828         Image decoding happens when a BitmapImage is drawn into a
41829         GraphicsContext. When per-tile painting is enabled GraphicsContext
41830         is backed by SkCanvas in recording mode. This SkCanvas records drawing
41831         and image decoding operations to minimize recording time.
41832
41833         An image decoding operation is recorded as a SkPixelRef object
41834         implemented by LazyDecodingPixelRef. This object references raw encoded
41835         data, regions to be decoded and scaling information.
41836
41837         When used in conjunction with per-tile painting this feature defers
41838         image decoding until the SkCanvas referencing the image is rasterized.
41839
41840         Both recording and rasterization happen on the main thread.
41841
41842         Performance Impact:
41843
41844         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
41845         and does not have an impact when disabled.
41846
41847         This feature is disabled by default.
41848
41849         Upcoming Changes:
41850
41851         1. Implement a full-featured image cache in ImageDecodingStore.
41852         2. Allow rasterization and decoding on impl thread.
41853
41854         Classes Involved:
41855
41856         BitmapImage
41857
41858         BitmapImage is the entry point for deferred image decoding. When
41859         drawing a BitmapImage into a GraphicsContext it makes a request to
41860         create a NativeImageSkia. We substitute the content in NativeImageSkia
41861         such that it is lazily decoded.
41862
41863         DeferredImageDecoder
41864
41865         This is the platform implementation of a image decoder for Chromium.
41866         This is a bridge layer that either delegates calls to the actual
41867         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
41868         to ImageDecodingStore.
41869
41870         ImageDecodingStore
41871
41872         This object manages all encoded images. It keeps track of encoded
41873         data and the corresponding ImageDecoder for doing actual decoding. It
41874         is also responsible for generating lazily decoded SkBitmaps. This
41875         SkBitmap contains a LazyDecodingPixelRef object which references to an
41876         image entry in ImageDecodingStore.
41877
41878         ScaledImageFragment
41879
41880         A container for a scaled image fragment. In addition to bitmap pixels
41881         it contains information about the ID of the image, scale and clipping.
41882
41883         ImageFrameGenerator
41884
41885         This object is responsible for generating decoded pixels. It is also
41886         a container for encoded image data and corresponding image decoder.
41887
41888         LazyDecodingPixelRef
41889
41890         This object is embedded in a SkBitmap to enable lazy decoding. When
41891         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
41892         contains information to locate an image and scaling info, these
41893         information is submitted to ImageDecodingStore to access actual pixels.
41894
41895         Layout tests. There are about 80 tests in this virtual test suite
41896         running this feature in this directory:
41897
41898         platform/chromium/virtual/deferred/fast/images
41899
41900         Unit tests. Added DeferredImageDecoderTest to verify deferred
41901         image decoding behavior.
41902
41903         * WebCore.gypi:
41904         * platform/graphics/ImageSource.cpp:
41905         (WebCore::ImageSource::setData):
41906         * platform/graphics/ImageSource.h:
41907         (WebCore):
41908         (ImageSource):
41909         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
41910         (WebCore):
41911         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
41912         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
41913         (WebCore::DeferredImageDecoder::create):
41914         (WebCore::DeferredImageDecoder::createForTesting):
41915         (WebCore::DeferredImageDecoder::filenameExtension):
41916         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
41917         (WebCore::DeferredImageDecoder::setData):
41918         (WebCore::DeferredImageDecoder::isSizeAvailable):
41919         (WebCore::DeferredImageDecoder::size):
41920         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
41921         (WebCore::DeferredImageDecoder::frameCount):
41922         (WebCore::DeferredImageDecoder::repetitionCount):
41923         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
41924         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
41925         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
41926         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
41927         (WebCore):
41928         (DeferredImageDecoder):
41929         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
41930         (WebCore::ImageDecodingStore::ImageDecodingStore):
41931         (WebCore):
41932         (WebCore::ImageDecodingStore::~ImageDecodingStore):
41933         (WebCore::ImageDecodingStore::instanceOnMainThread):
41934         (WebCore::ImageDecodingStore::initializeOnMainThread):
41935         (WebCore::ImageDecodingStore::shutdown):
41936         (WebCore::ImageDecodingStore::isLazyDecoded):
41937         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
41938         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
41939         (WebCore::ImageDecodingStore::setData):
41940         (WebCore::ImageDecodingStore::lockPixels):
41941         (WebCore::ImageDecodingStore::unlockPixels):
41942         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
41943         (WebCore::ImageDecodingStore::calledOnValidThread):
41944         (WebCore::ImageDecodingStore::lookupFrameCache):
41945         (WebCore::ImageDecodingStore::deleteFrameCache):
41946         * platform/graphics/chromium/ImageDecodingStore.h: Added.
41947         (WebCore):
41948         (ImageDecodingStore):
41949         (WebCore::ImageDecodingStore::create):
41950         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
41951         (WebCore):
41952         (WebCore::ScaledImageFragment::~ScaledImageFragment):
41953         (WebCore::ScaledImageFragment::ScaledImageFragment):
41954         (WebCore::ScaledImageFragment::isEqual):
41955         * platform/graphics/chromium/ScaledImageFragment.h: Added.
41956         (WebCore):
41957         (ScaledImageFragment):
41958         (WebCore::ScaledImageFragment::create):
41959         (WebCore::ScaledImageFragment::bitmap):
41960         (WebCore::ScaledImageFragment::isComplete):
41961         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
41962         (WebCore):
41963         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
41964         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
41965         (WebCore::ImageFrameGenerator::decoder):
41966         (WebCore::ImageFrameGenerator::setData):
41967         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
41968         (WebCore):
41969         (ImageFrameGenerator):
41970         (WebCore::ImageFrameGenerator::create):
41971         (WebCore::ImageFrameGenerator::size):
41972         (WebCore::ImageFrameGenerator::imageId):
41973         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
41974         (WebCore):
41975         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
41976         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
41977         (WebCore::LazyDecodingPixelRef::isScaled):
41978         (WebCore::LazyDecodingPixelRef::isClipped):
41979         (WebCore::LazyDecodingPixelRef::onLockPixels):
41980         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
41981         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
41982         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
41983         (WebCore):
41984         (LazyDecodingPixelRef):
41985         (WebCore::LazyDecodingPixelRef::frameGenerator):
41986         * platform/graphics/skia/NativeImageSkia.cpp:
41987         (WebCore::NativeImageSkia::resizedBitmap):
41988         * platform/image-decoders/ImageDecoder.h:
41989         (ImageFrame):
41990         (WebCore::ImageFrame::setSkBitmap):
41991         (WebCore::ImageFrame::getSkBitmap):
41992
41993 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
41994
41995         [EFL] GraphicsContext3D::m_renderStyle is not initialized
41996         https://bugs.webkit.org/show_bug.cgi?id=99721
41997
41998         Reviewed by Antonio Gomes.
41999
42000         Initialize GraphicsContext3D::m_renderStyle.
42001
42002         No new tests, no new functionality.
42003
42004         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42005         (WebCore::GraphicsContext3D::GraphicsContext3D):
42006
42007 2012-10-18  Max Vujovic  <mvujovic@adobe.com>
42008
42009         [CSS Shaders] Validate types of built-in vertex attributes
42010         https://bugs.webkit.org/show_bug.cgi?id=98972
42011
42012         Reviewed by Dean Jackson.
42013
42014         Reject custom filters in which the author defined built-in attributes with the wrong type.
42015         For example, the GLSL declaration "attribute float a_position" is incorrect because
42016         a_position should be a vec4, not a float.
42017
42018         Test: css3/filters/custom/invalid-custom-filter-attribute-types.html
42019
42020         * platform/graphics/ANGLEWebKitBridge.h:
42021         (WebCore::ANGLEShaderSymbol::isSampler):
42022             Add const qualifier to isSampler method.
42023         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
42024         (WebCore):
42025         (WebCore::builtInAttributeNameToTypeMap):
42026             New file static function. Returns a map of the CSS Custom Filters built-in attribute
42027             names and their expected types.
42028         (WebCore::validateSymbols):
42029             New file static function. Loop through all of the symbols. Reject the shader if we find
42030             a built-in attribute defined with the wrong type.
42031         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
42032             Call the new validateSymbols function. If it returns false, exit the constructor early,
42033             which rejects the program.
42034             Move the loop that checks if any uniform is a sampler into the the validateSymbols
42035             function.
42036
42037 2012-10-18  Mike Reed  <reed@google.com>
42038
42039         Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
42040         https://bugs.webkit.org/show_bug.cgi?id=99752
42041
42042         Reviewed by Stephen White.
42043
42044         Current code does not check if we were able to allocate the pixels, but still returns the canvas.
42045         However, the caller explicitly is checking for null on failure, so it will continue (and possibly
42046         crash later on).
42047         This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
42048         TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.
42049
42050         No new tests. Existing tests exercise ImageBuffer constructor.
42051
42052         * platform/graphics/skia/ImageBufferSkia.cpp:
42053         (WebCore::createNonPlatformCanvas):
42054
42055 2012-10-18  Beth Dakin  <bdakin@apple.com>
42056
42057         https://bugs.webkit.org/show_bug.cgi?id=99668
42058         REGRESSION: Crash in 
42059         WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
42060         -and corresponding-
42061         <rdar://problem/12491901>
42062
42063         Reviewed by Simon Fraser.
42064
42065         http://trac.webkit.org/changeset/130783 changed the lifetime of the 
42066         ScrollingStateTree's rootStateNode. Before that patch, the root state 
42067         node was never destroyed. It was just constantly re-used for 
42068         different RenderLayerBackings. This crash is just one of a few bugs 
42069         that has occurred because of that change. I have fixed the other bugs 
42070         individually, but I think that long-term, it is the safest solution 
42071         to go back to the original ownership model.
42072
42073         So this patch ensures that the state tree will always have a root 
42074         state node. Instead of destroying and re-creating the root node when 
42075         it's scroll ID changes, we just update the ID.
42076
42077         attachToStateTree() now takes an additional ID representing the ID of 
42078         the parent node.
42079         * page/scrolling/ScrollingCoordinator.h:
42080         (WebCore::ScrollingCoordinator::attachToStateTree):
42081
42082         Add a way to set the scrolling node ID.
42083         * page/scrolling/ScrollingStateNode.h:
42084         (WebCore::ScrollingStateNode::setScrollingNodeID):
42085
42086         This code that provided a way to mark all properties as having 
42087         changed was added in http://trac.webkit.org/changeset/130989 as a way 
42088         to ensure we would re-set ScrollingThread's nodes when we destroyed 
42089         and re-created the rootStateNode. Now that we are no longer 
42090         destroying and re-creating the rootStateNode, this code is no longer 
42091         necessary.
42092         * page/scrolling/ScrollingStateScrollingNode.cpp:
42093         * page/scrolling/ScrollingStateScrollingNode.h:
42094
42095         create m_rootStateNode right in the ScrollingStateTree's constructor.
42096         * page/scrolling/ScrollingStateTree.cpp:
42097         (WebCore::ScrollingStateTree::ScrollingStateTree):
42098
42099         Don't let removeNode() destroy m_rootStateNode.
42100         (WebCore::ScrollingStateTree::removeNode):
42101
42102         Also a part of r130989 that is no longer needed.
42103         (WebCore::ScrollingStateTree::rootLayerDidChange():
42104         * page/scrolling/ScrollingStateTree.h:
42105         (WebCore::ScrollingStateTree::rootStateNode):
42106         (ScrollingStateTree):
42107         (WebCore::ScrollingStateTree::setRootStateNode):
42108
42109         attachToStateTree() now takes an additional ID representing the ID of 
42110         the parent node.
42111         * page/scrolling/mac/ScrollingCoordinatorMac.h:
42112         (ScrollingCoordinatorMac):
42113
42114         We no longer need ScrollingStateTree::rootLayerDidChange()
42115         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
42116         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
42117
42118         Do not destroy and re-create the state node. Just update its ID. When 
42119         we support child nodes soon, we will create them in this function.
42120         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
42121
42122         No need to null-check the rootStateNode.
42123         (WebCore::ScrollingCoordinatorMac::clearStateTree):
42124
42125         Send 0 as the parent node ID to attachToStateTree() to represent the 
42126         root node.
42127         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
42128         * rendering/RenderLayerBacking.cpp:
42129
42130         RenderLayerBacking::attachToScrollingCoordinator() now takes a parent 
42131         layer.
42132         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
42133         * rendering/RenderLayerBacking.h:
42134         (RenderLayerBacking):
42135
42136         Since this is the root, send 0 to represent the parent layer.
42137         * rendering/RenderLayerCompositor.cpp:
42138         (WebCore::RenderLayerCompositor::updateBacking):
42139
42140 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
42141
42142         [EFL] GraphicsContext3D::m_renderStyle is not initialized
42143         https://bugs.webkit.org/show_bug.cgi?id=99721
42144
42145         Reviewed by Antonio Gomes.
42146
42147         Initialize GraphicsContext3D::m_renderStyle.
42148
42149         No new tests, no new functionality.
42150
42151         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42152         (WebCore::GraphicsContext3D::GraphicsContext3D):
42153
42154 2012-10-18  Brian White  <bcwhite@chromium.org>
42155
42156         WebKit Doesn't Recognize Content-Language HTTP Header
42157         https://bugs.webkit.org/show_bug.cgi?id=97929
42158
42159         Reviewed by Alexey Proskuryakov.
42160
42161         The HTTP "Content-Language" header may be present and include the
42162         language of the page contents (as opposed to an embedded meta tag).
42163
42164         * loader/FrameLoader.cpp:
42165         (WebCore::FrameLoader::didBeginDocument):
42166
42167 2012-10-18  Jer Noble  <jer.noble@apple.com>
42168
42169         Crash in WebCore::Document::webkitExitFullscreen + 618
42170         https://bugs.webkit.org/show_bug.cgi?id=99496
42171
42172         Reviewed by Eric Carlson.
42173
42174         Prospective fix for null-dereference crash in Document::webkitExitFullscreen().
42175
42176         * dom/Document.cpp:
42177         (WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.
42178
42179 2012-10-18  Pablo Flouret  <pablof@motorola.com>
42180
42181         Implement css3-conditional's @supports rule
42182         https://bugs.webkit.org/show_bug.cgi?id=86146
42183
42184         Reviewed by Antti Koivisto.
42185
42186         The "@supports" rule is a conditional group rule whose condition tests
42187         whether the user agent supports CSS property:value pairs.
42188
42189         http://dev.w3.org/csswg/css3-conditional/#at-supports
42190
42191         Test: css3/supports.html
42192
42193         * Configurations/FeatureDefines.xcconfig:
42194         * GNUmakefile.am:
42195         * GNUmakefile.features.am:
42196             Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
42197
42198         * css/CSSGrammar.y.in:
42199         * css/CSSParser.cpp:
42200         (WebCore):
42201         (WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
42202         (WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
42203         (WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
42204         * css/CSSParser.h: Added new SupportsMode parsing mode.
42205         (CSSParser):
42206
42207 2012-10-18  Marja Hölttä  <marja@chromium.org>
42208
42209         Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
42210         https://bugs.webkit.org/show_bug.cgi?id=99730
42211
42212         Reviewed by Jochen Eisinger.
42213
42214         * loader/cache/CachedResourceLoader.cpp:
42215         (WebCore::CachedResourceLoader::requestSVGDocument):
42216
42217 2012-10-18  Jer Noble  <jer.noble@apple.com>
42218
42219         Fullscreen movie controls behave incorrectly when clicked (and dragged)
42220         https://bugs.webkit.org/show_bug.cgi?id=99610
42221
42222         Reviewed by Eric Carlson.
42223
42224         Do not reset the relative drag position to 0,0 at the beginning of every drag.  Instead,
42225         store the cumulative drag offset and accumulate during each additional drag.
42226
42227         No new tests; modified the fullscreen/video-controls-drag.html test.
42228
42229         * html/shadow/MediaControlElements.cpp:
42230         (WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
42231         (WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
42232         (WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
42233         * html/shadow/MediaControlElements.h:
42234
42235 2012-10-18  Brandon Jones  <bajones@google.com>
42236
42237         Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
42238         https://bugs.webkit.org/show_bug.cgi?id=97400
42239
42240         Reviewed by Kenneth Russell.
42241
42242         Implemented OES_element_index_uint WebGL extension
42243
42244         Test: fast/canvas/webgl/oes-element-index-uint.html
42245
42246         * CMakeLists.txt:
42247         * DerivedSources.make:
42248         * DerivedSources.pri:
42249         * GNUmakefile.list.am:
42250         * Target.pri:
42251         * WebCore.gypi:
42252         * WebCore.xcodeproj/project.pbxproj:
42253         * bindings/js/JSWebGLRenderingContextCustom.cpp:
42254         (WebCore::toJS):
42255         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
42256         (WebCore::toV8Object):
42257         * html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42258         (WebCore):
42259         (WebCore::OESElementIndexUint::OESElementIndexUint):
42260         (WebCore::OESElementIndexUint::~OESElementIndexUint):
42261         (WebCore::OESElementIndexUint::getName):
42262         (WebCore::OESElementIndexUint::create):
42263         * html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42264         (WebCore):
42265         (OESElementIndexUint):
42266         * html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42267         * html/canvas/WebGLExtension.h:
42268         * html/canvas/WebGLRenderingContext.cpp:
42269         (WebCore):
42270         (WebCore::WebGLRenderingContext::validateElementArraySize):
42271         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
42272         (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
42273         (WebCore::WebGLRenderingContext::validateRenderingState):
42274         (WebCore::WebGLRenderingContext::drawElements):
42275         (WebCore::WebGLRenderingContext::getExtension):
42276         (WebCore::WebGLRenderingContext::getSupportedExtensions):
42277         * html/canvas/WebGLRenderingContext.h:
42278         (WebCore):
42279         (WebGLRenderingContext):
42280         * platform/graphics/Extensions3D.h:
42281         (Extensions3D):
42282         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
42283         (WebCore::Extensions3DOpenGL::supportsExtension):
42284
42285 2012-10-18  Jer Noble  <jer.noble@apple.com>
42286
42287         Add diagnostic logging to track per-page media engine usage.
42288         https://bugs.webkit.org/show_bug.cgi?id=99615
42289         <rdar://problem/12476473>
42290
42291         Reviewed by Eric Carlson.
42292
42293         Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.
42294
42295         * html/HTMLMediaElement.cpp:
42296         (WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
42297         (WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
42298         (WebCore::HTMLMediaElement::setReadyState): Ditto.
42299         * loader/FrameLoader.cpp:
42300         (WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.
42301
42302         Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
42303         * page/Page.cpp:
42304         (WebCore::Page::hasSeenAnyMediaEngine):
42305         (WebCore::Page::hasSeenMediaEngine):
42306         (WebCore::Page::sawMediaEngine):
42307         (WebCore::Page::resetSeenMediaEngines):
42308         * page/Page.h:
42309
42310         Add new static logging key definitions:
42311         * page/DiagnosticLoggingKeys.cpp:
42312         (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
42313         (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
42314         * page/DiagnosticLoggingKeys.h:
42315
42316 2012-10-18  Michael Saboff  <msaboff@apple.com>
42317
42318         Add 8-bit path to RenderBlock::handleTrailingSpaces()
42319         https://bugs.webkit.org/show_bug.cgi?id=99731
42320
42321         Reviewed by Dan Bernstein.
42322
42323         Factored out and added findFirstTrailingSpace() templated helper function that is called with the 
42324         approriate character pointer type.
42325
42326         No tests needed, change covered by existing tests.
42327
42328         * rendering/RenderBlockLineLayout.cpp:
42329         (WebCore::findFirstTrailingSpace):
42330         (WebCore::RenderBlock::handleTrailingSpaces):
42331
42332 2012-10-18  Hans Muller  <hmuller@adobe.com>
42333
42334         [CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
42335         https://bugs.webkit.org/show_bug.cgi?id=99216
42336
42337         Reviewed by Dirk Schulze.
42338
42339         Added a FloatRect::extend() method which simplifies writing loops that
42340         accumulate the bounding box for a sequence of FloatPoints. The new method
42341         is used by ExclusionPolygon to initialize the shape's logical and physical
42342         bounding boxes. This a clean-up, not a change in functionality. It's already
42343         covered by the existing fast/exclusions LayoutTests.
42344
42345         * platform/graphics/FloatRect.cpp:
42346         (WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
42347         (WebCore):
42348         * platform/graphics/FloatRect.h:
42349         (FloatRect): Added extend() method.
42350         * rendering/ExclusionPolygon.cpp:
42351         (WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
42352         * rendering/ExclusionShape.cpp:
42353         (WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
42354         * rendering/ExclusionShape.h:
42355         (WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
42356         (ExclusionShape):
42357
42358 2012-10-18  Hans Muller  <hmuller@adobe.com>
42359
42360         [CSS Exclusions] Handle special case "empty" shapes
42361         https://bugs.webkit.org/show_bug.cgi?id=99342
42362
42363         Reviewed by Dirk Schulze.
42364
42365         Provide expclit coverage of the simple "empty" shape-inside shapes.
42366         Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
42367         and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
42368         This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
42369         with 0 radiusX or radiusY, polygons with less than 3 vertices.
42370
42371         Test: fast/exclusions/shape-inside/shape-inside-empty.html
42372
42373         * rendering/ExclusionPolygon.cpp:
42374         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
42375         (WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
42376         (WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
42377         * rendering/ExclusionPolygon.h: Added the isEmpty() method.
42378         * rendering/ExclusionRectangle.cpp:
42379         (WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
42380         (WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
42381         * rendering/ExclusionRectangle.h: Added the isEmpty() method.
42382         * rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
42383         (ExclusionShape):
42384
42385 2012-10-18  Takashi Sakamoto  <tasak@google.com>
42386
42387         REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
42388         https://bugs.webkit.org/show_bug.cgi?id=99587
42389
42390         Reviewed by Dimitri Glazkov.
42391
42392         Since contents in datalist are not shown, summary in datalist is not
42393         shown either. So the summary has no render style. On the other hand,
42394         the summary is implemented by shadow DOM and it has some insertion
42395         point. Its child, e.g. title in the below test, is distributed.
42396         To solve the child's user-modify, looking at shadow host(=summary)'s
42397         style causes null-pointer crash.
42398
42399         Test: fast/dom/shadow/user-modify-in-datalist-crash.html
42400
42401         * css/StyleResolver.cpp:
42402         (WebCore::StyleResolver::styleForElement):
42403         Added a code to check whether the shadow host has any style or not.
42404
42405 2012-10-17  Philippe Normand  <pnormand@igalia.com>
42406
42407         [GTK] AudioBusGtk sometimes fails to load the HRTF database
42408         https://bugs.webkit.org/show_bug.cgi?id=99601
42409
42410         Reviewed by Martin Robinson.
42411
42412         AudioBusGtk now first lookup for the uninstalled resource files,
42413         if the AUDIO_RESOURCES_PATH environment variable is
42414         set. Additionally the audio file reader is now better dealing with
42415         errors, returning an empty AudioBus in such cases and issuing
42416         warnings on the console output. The cleanup of some member
42417         variables was also moved to the destructor.
42418
42419         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
42420         (AudioFileReader):
42421         (WebCore::AudioFileReader::AudioFileReader):
42422         (WebCore::AudioFileReader::~AudioFileReader): Clear and free
42423         member variables. This was done in createBus before.
42424         (WebCore::AudioFileReader::handleMessage): Issue warnings in case
42425         of error and exit from the main loop so the pipeline is not
42426         forever stuck.
42427         (WebCore::AudioFileReader::createBus): Return an empty bus in case
42428         of error.
42429         * platform/audio/gtk/AudioBusGtk.cpp:
42430         (WebCore::AudioBus::loadPlatformResource): Load uninstalled
42431         resources first if AUDIO_RESOURCES_PATH is set.
42432
42433 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42434
42435         Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
42436         https://bugs.webkit.org/show_bug.cgi?id=99718
42437
42438         Reviewed by Vsevolod Vlasov.
42439
42440         Adds stub method that could be executed from the embedder.
42441
42442         * inspector/front-end/InspectorFrontendAPI.js:
42443         (InspectorFrontendAPI.setDockSide):
42444
42445 2012-10-18  Kent Tamura  <tkent@chromium.org>
42446
42447         Add Localizer::monthFormat and implementations
42448         https://bugs.webkit.org/show_bug.cgi?id=99704
42449
42450         Reviewed by Kentaro Hara.
42451
42452         Localizer::monthFormat will be used for constructing input[type=month] UI.
42453
42454         Tests: Add unit tests to Source/WebKit/chromium/tests/.
42455
42456         * platform/text/Localizer.h:
42457         (Localizer): Declare pure virtual monthFormat function.
42458
42459         * platform/text/LocaleNone.cpp:
42460         (LocaleNone): Declare monthFormat.
42461         (WebCore::LocaleNone::monthFormat):
42462         Added. Always reutrns an ISO-8601 format, "yyyy-MM"
42463
42464         * platform/text/LocaleICU.h:
42465         (LocaleICU): Declare monthFormat.
42466         * platform/text/LocaleICU.cpp:
42467         (WebCore::getFormatForSkeleton):
42468         A helper to get a format for the specified skeleton.
42469         The overflow-allocalte-try-again pattern is similar to
42470         LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
42471         (WebCore::LocaleICU::monthFormat):
42472         Added. Calls getFormatForSkeleton with "yyyyMMM".
42473
42474         * platform/text/mac/LocaleMac.h:
42475         (LocaleMac): Declare monthFormat.
42476         * platform/text/mac/LocaleMac.mm:
42477         (WebCore::LocaleMac::monthFormat):
42478         Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".
42479
42480         * platform/text/LocaleWin.h:
42481         (LocaleWin): Declare monthFormat.
42482         * platform/text/LocaleWin.cpp:
42483         (WebCore::LocaleWin::monthFormat):
42484         Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.
42485
42486 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42487
42488         Web Inspector: add X-WebKit-CSP header into inspector.html
42489         https://bugs.webkit.org/show_bug.cgi?id=99710
42490
42491         Reviewed by Vsevolod Vlasov.
42492
42493         A simple sanity measure.
42494
42495         * inspector/front-end/inspector.html:
42496
42497 2012-10-18  Huang Dongsung  <luxtella@company100.net>
42498
42499         [WK2] Add CustomFilterOperation serialization in ArgumentCoder.
42500         https://bugs.webkit.org/show_bug.cgi?id=98733
42501
42502         Reviewed by Noam Rosenthal.
42503
42504         Change CustomFilterOperation::parameters() to const function, because
42505         this method is a getter and a const instance needs to call this method.
42506
42507         No new tests because there is no change in behavior.
42508
42509         * platform/graphics/filters/CustomFilterOperation.h:
42510         (WebCore::CustomFilterOperation::parameters):
42511
42512 2012-10-18  Hayato Ito  <hayato@chromium.org>
42513
42514         treeScopeOfParent doesn't return the TreeScope of the parent
42515         https://bugs.webkit.org/show_bug.cgi?id=98207
42516
42517         Reviewed by Hajime Morita.
42518
42519         A minor clean up. Remove treeScopeOfParent() in Element.cpp.
42520
42521         No tests needed, this is just a clean up.
42522
42523         * dom/Element.cpp:
42524         (WebCore::Element::removedFrom):
42525
42526 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
42527
42528         Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
42529         https://bugs.webkit.org/show_bug.cgi?id=99711
42530
42531         Reviewed by Vsevolod Vlasov.
42532
42533         Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.
42534
42535         * inspector/front-end/CSSCompletions.js:
42536         (WebInspector.CSSCompletions):
42537         (WebInspector.CSSCompletions.requestCSSNameCompletions):
42538         (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
42539         * inspector/front-end/CSSKeywordCompletions.js:
42540         (WebInspector.CSSKeywordCompletions.forProperty):
42541
42542 2012-10-18  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
42543
42544         Unreviewed, do not make UseV8.cmake executable.
42545
42546         * UseV8.cmake: Removed property svn:executable.
42547
42548 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
42549
42550         MediaStream API: Add better RTCPeerConnectionHandler creation logic
42551         https://bugs.webkit.org/show_bug.cgi?id=99308
42552
42553         Reviewed by Adam Barth.
42554
42555         This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
42556         the RTCPeerConnection constructor throws an exception.
42557
42558         Not full testable, existing tests cover the normal case though.
42559
42560         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
42561         (WebCore::RTCPeerConnectionHandler::create):
42562         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
42563         (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
42564         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
42565         (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
42566         (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
42567         (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
42568         (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
42569         (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
42570         (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
42571         (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
42572         (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
42573         (WebCore::RTCPeerConnectionHandlerChromium::addStream):
42574         (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
42575         (WebCore::RTCPeerConnectionHandlerChromium::getStats):
42576         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
42577         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
42578         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
42579         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
42580         (WebCore::RTCPeerConnectionHandlerChromium::stop):
42581         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
42582         (RTCPeerConnectionHandlerChromium):
42583
42584 2012-10-19  Zeno Albisser  <zeno@webkit.org>
42585
42586         Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
42587         https://bugs.webkit.org/show_bug.cgi?id=99320
42588
42589         The current version of Qt5 deployed on the buildbots does not yet have
42590         an implementation for QCocoaNativeInterface::nativeResourceForContext().
42591         Therefore we disable this code path until Qt5/qtbase has been updated to
42592         a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.
42593
42594         Once Qt5 has been updated, this patch must be reverted.
42595
42596         Reviewed by Noam Rosenthal.
42597
42598         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42599         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42600
42601 2012-10-18  Zeno Albisser  <zeno@webkit.org>
42602
42603         GraphicsSurface should not modify the current GL context.
42604         https://bugs.webkit.org/show_bug.cgi?id=99320
42605
42606         Instead of reusing the currently bound GL context for drawing
42607         the texture onto the GraphicsSurface, GraphicsSurface should
42608         create a new context that shares the texture names with a context
42609         provided by the caller.
42610         This way the OpenGL states are clearly separated and we do not
42611         risk interfeering with the currently bound GL context.
42612
42613         Reviewed by Noam Rosenthal.
42614
42615         * platform/graphics/qt/GraphicsContext3DQt.cpp:
42616         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
42617             When creating a GraphicsSurface pass the platform GL context
42618             as a parameter, so it can be used for sharing textures with.
42619         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
42620             Pass the texture instead of the FBO. A Texture can be drawn
42621             directly or bound to another FBO, where a framebuffer
42622             always needs to be blit onto the surface.
42623         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
42624             Pass the platform GL context as a parameter.
42625         * platform/graphics/surfaces/GraphicsSurface.cpp:
42626         (WebCore::GraphicsSurface::create):
42627         (WebCore::GraphicsSurface::copyFromTexture):
42628         * platform/graphics/surfaces/GraphicsSurface.h:
42629         (GraphicsSurface):
42630         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42631         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42632             Create a new GL context that shares the textures with the
42633             context provided by the caller.
42634         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
42635         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42636             Add a convenience function to make the context that
42637             belongs to the surface current.
42638         (GraphicsSurfacePrivate):
42639         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42640             Add a convenience function to make the previously
42641             bound context current again.
42642         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42643             Move blitting of the texture onto the surface
42644             into a separate function within GraphicsSurfacePrivate.
42645         (WebCore::GraphicsSurface::platformCopyFromTexture):
42646             Rename function platformCopyFromFramebuffer to
42647             platformCopyFromTexture, as we are now passing the texture only.
42648         (WebCore::GraphicsSurface::platformCreate):
42649         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
42650         (WebCore):
42651         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42652         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42653             Add a convenience function to make the context that
42654             belongs to the surface current.
42655         (GraphicsSurfacePrivate):
42656         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42657             Add a convenience function to make the previously
42658         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42659             Move blitting of the texture onto the surface
42660             into a separate function within GraphicsSurfacePrivate.
42661         (WebCore::resolveGLMethods):
42662             Resolve additional GL methods necessary for this change.
42663         (WebCore::GraphicsSurface::platformCopyFromTexture):
42664             Rename function platformCopyFromFramebuffer to
42665             platformCopyFromTexture, as we are now passing the texture only.
42666         (WebCore::GraphicsSurface::platformCreate):
42667
42668 2012-10-18  Kent Tamura  <tkent@chromium.org>
42669
42670         Set min-width property instead of width property for date/time fields
42671         https://bugs.webkit.org/show_bug.cgi?id=99673
42672
42673         Reviewed by Hajime Morita.
42674
42675         A field can have a text wider than pre-computed width because of
42676         :first-letter property. So, we should set min-width, not width.
42677
42678         Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html
42679
42680         * html/shadow/DateTimeNumericFieldElement.cpp:
42681         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
42682         Set min-width instead of width.
42683         * html/shadow/DateTimeSymbolicFieldElement.cpp:
42684         (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
42685
42686 2012-10-18  MORITA Hajime  <morrita@google.com>
42687
42688         Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
42689         https://bugs.webkit.org/show_bug.cgi?id=99510
42690
42691         Reviewed by Kent Tamura.
42692
42693         Shadow DOM notification call didn't have checks for mutation detection.
42694         This change adds such checks.
42695
42696         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html
42697
42698         * dom/ContainerNodeAlgorithms.cpp:
42699         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
42700         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
42701
42702 2012-10-17  Kentaro Hara  <haraken@chromium.org>
42703
42704         Unreviewed. Rebaselined run-bindings-tests.
42705
42706         * bindings/scripts/test/V8/V8Float64Array.h:
42707         (V8Float64Array):
42708         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
42709         (V8TestActiveDOMObject):
42710         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
42711         (V8TestCustomNamedGetter):
42712         * bindings/scripts/test/V8/V8TestEventConstructor.h:
42713         (V8TestEventConstructor):
42714         * bindings/scripts/test/V8/V8TestEventTarget.h:
42715         (V8TestEventTarget):
42716         * bindings/scripts/test/V8/V8TestException.h:
42717         (V8TestException):
42718         * bindings/scripts/test/V8/V8TestInterface.h:
42719         (V8TestInterface):
42720         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
42721         (V8TestMediaQueryListListener):
42722         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
42723         (V8TestNamedConstructor):
42724         * bindings/scripts/test/V8/V8TestNode.h:
42725         (V8TestNode):
42726         * bindings/scripts/test/V8/V8TestObj.h:
42727         (V8TestObj):
42728         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
42729         (V8TestSerializedScriptValueInterface):
42730
42731 2012-10-17  Mike West  <mkwst@chromium.org>
42732
42733         Move mixed content logic out of FrameLoader
42734         https://bugs.webkit.org/show_bug.cgi?id=45638
42735
42736         Reviewed by Eric Seidel.
42737
42738         This change moves checks for mixed content out of FrameLoader, and into
42739         a new MixedContentChecker object. It's a pretty straightforward
42740         refactoring with no change to the overall logic, and only minor changes
42741         to the code to reduce repetition.
42742
42743         The only substantive change is renaming the methods from 'checkIf*' to
42744         'can*' to reflect the value of the boolean they return.
42745
42746         The visible functionality shouldn't change; this change should be
42747         covered by existing tests in http/tests/security/mixedContent.
42748
42749         This patch is mostly a revitalization of Eric Sidel's original
42750         patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch
42751
42752         * CMakeLists.txt:
42753         * GNUmakefile.list.am:
42754         * Target.pri:
42755         * WebCore.gypi:
42756         * WebCore.vcproj/WebCore.vcproj:
42757         * WebCore.xcodeproj/project.pbxproj:
42758             Hey, look! A new file!
42759         * loader/FrameLoader.cpp:
42760         (WebCore::FrameLoader::FrameLoader):
42761         * loader/FrameLoader.h:
42762         (WebCore::FrameLoader::mixedContentChecker):
42763         (FrameLoader):
42764         * loader/MixedContentChecker.cpp: Added.
42765         (WebCore):
42766         (WebCore::MixedContentChecker::MixedContentChecker):
42767         (WebCore::MixedContentChecker::client):
42768         (WebCore::asUTF8):
42769         (WebCore::MixedContentChecker::isMixedContent):
42770         (WebCore::MixedContentChecker::canDisplayInsecureContent):
42771         (WebCore::MixedContentChecker::canRunInsecureContent):
42772         (WebCore::MixedContentChecker::logWarning):
42773         * loader/MixedContentChecker.h: Added.
42774         (WebCore):
42775         (MixedContentChecker):
42776             Migrate functionality from FrameLoader::checkIf* to
42777             MixedContentChecker::can*.
42778         * loader/MainResourceLoader.cpp:
42779         (WebCore::MainResourceLoader::willSendRequest):
42780         * loader/SubframeLoader.cpp:
42781         (WebCore::SubframeLoader::pluginIsLoadable):
42782         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
42783         * loader/cache/CachedResourceLoader.cpp:
42784         (WebCore::CachedResourceLoader::checkInsecureContent):
42785             Use the new method locations.
42786
42787 2012-10-17  Dan Bernstein  <mitz@apple.com>
42788
42789         REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
42790         https://bugs.webkit.org/show_bug.cgi?id=99654
42791
42792         Reviewed by Adele Peterson.
42793
42794         When the base character of a combining character sequence is not covered by any one of the
42795         available fonts, there is no point looking for a font that covers the entire sequence, nor
42796         to try to use a combination of fallback fonts for the entire sequence.
42797
42798         * platform/graphics/SimpleFontData.h:
42799         (WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
42800         here and renamed it.
42801         * platform/graphics/mac/ComplexTextController.cpp:
42802         (WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
42803         systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
42804         for a base character with combining marks, regardless of whether the base character was
42805         covered by any font. Changed it to preserve the return value of
42806         fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
42807         any font, while systemFallbackFontData() is used to indicate that no single font in the
42808         fallback list covers all characters in the sequence, but the base character is in some font.
42809         * platform/graphics/mac/ComplexTextController.h:
42810         (ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
42811         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
42812         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
42813         move.
42814         * platform/graphics/mac/FontComplexTextMac.cpp:
42815         (WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
42816         systemFallbackFontData() if no single font in the fallback list covers all characters in the
42817         sequence, while using 0 to signal the base character does not exist in any font.
42818
42819 2012-10-17  Dan Bernstein  <mitz@apple.com>
42820
42821         Try to fix the build after r131701.
42822
42823         * WebCore.exp.in:
42824
42825 2012-10-17  Hayato Ito  <hayato@chromium.org>
42826
42827         Content element does not expose distributedNodes property.
42828         https://bugs.webkit.org/show_bug.cgi?id=99232
42829
42830         Reviewed by Dimitri Glazkov.
42831
42832         Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
42833         static NodeList whose node are distributed to the content element.
42834
42835         Test: fast/dom/shadow/content-element-distributed-nodes.html
42836
42837         * html/shadow/HTMLContentElement.idl:
42838         * html/shadow/InsertionPoint.cpp:
42839         (WebCore::InsertionPoint::getDistributedNodes):
42840         * html/shadow/InsertionPoint.h:
42841         (InsertionPoint):
42842         * testing/Internals.cpp:
42843         * testing/Internals.h:
42844         (Internals):
42845         * testing/Internals.idl:
42846
42847 2012-10-17  Pan Deng  <pan.deng@intel.com>
42848
42849         [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
42850         https://bugs.webkit.org/show_bug.cgi?id=90963
42851
42852         Reviewed by Tony Gentilcore.
42853
42854         This patch implemented mark(), measure(), clearMarks() and clearMeasures() interface of User Timing. Getters are not exposed by Performance Timeline yet, it will be future patch.
42855
42856         Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
42857                http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
42858                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
42859                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
42860                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
42861                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
42862                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
42863                http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
42864
42865         * GNUmakefile.list.am:
42866         * WebCore.gypi:
42867         * page/Performance.cpp:
42868         (WebCore::Performance::webkitGetEntries):
42869         (WebCore::Performance::webkitGetEntriesByType):
42870         (WebCore::Performance::webkitGetEntriesByName):
42871         (WebCore):
42872         (WebCore::Performance::webkitMark):
42873         (WebCore::Performance::webkitClearMarks):
42874         (WebCore::Performance::webkitMeasure):
42875         (WebCore::Performance::webkitClearMeasures):
42876         * page/Performance.h:
42877         (WebCore):
42878         (Performance):
42879         * page/Performance.idl:
42880         * page/PerformanceMark.h: Added.
42881         (WebCore):
42882         (PerformanceMark):
42883         (WebCore::PerformanceMark::create):
42884         (WebCore::PerformanceMark::PerformanceMark):
42885         (WebCore::PerformanceMark::~PerformanceMark):
42886         * page/PerformanceMark.idl: Added.
42887         * page/PerformanceMeasure.h: Added.
42888         (WebCore):
42889         (PerformanceMeasure):
42890         (WebCore::PerformanceMeasure::create):
42891         (WebCore::PerformanceMeasure::PerformanceMeasure):
42892         (WebCore::PerformanceMeasure::~PerformanceMeasure):
42893         * page/PerformanceMeasure.idl: Added.
42894         * page/PerformanceUserTiming.cpp: Added.
42895         (WebCore):
42896         (WebCore::UserTiming::UserTiming):
42897         (WebCore::insertPerformanceEntry):
42898         (WebCore::clearPeformanceEntries):
42899         (WebCore::UserTiming::mark):
42900         (WebCore::UserTiming::clearMarks):
42901         (WebCore::UserTiming::findExistingMarkStartTime):
42902         (WebCore::UserTiming::measure):
42903         (WebCore::UserTiming::clearMeasures):
42904         * page/PerformanceUserTiming.h: Added.
42905         (WebCore):
42906         (UserTiming):
42907         (WebCore::UserTiming::create):
42908
42909 2012-10-17  James Robinson  <jamesr@chromium.org>
42910
42911         Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.
42912
42913         * platform/graphics/GraphicsLayerUpdater.h:
42914         (GraphicsLayerUpdater):
42915
42916 2012-10-17  Ryuan Choi  <ryuan.choi@samsung.com>
42917
42918         Attempt to fix the build after r131680.
42919
42920         Unreviewed build fix.
42921
42922         * dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h
42923
42924 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42925
42926         StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
42927         https://bugs.webkit.org/show_bug.cgi?id=99560
42928
42929         Reviewed by Eric Seidel.
42930
42931         Previously we only compared the first ContentData in the linked
42932         list of ContentData's which meant that if the resolved style
42933         for content had the same prefix we wouldn't update the content.
42934
42935         This patch adds a loop to compare each of the ContentData objects
42936         in the linked list.
42937
42938         Test: fast/css-generated-content/content-property-change.html
42939
42940         * rendering/style/StyleRareNonInheritedData.cpp:
42941         (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
42942
42943 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42944
42945         Remove StyleContentType since it's not used anymore
42946         https://bugs.webkit.org/show_bug.cgi?id=99659
42947
42948         Reviewed by Eric Seidel.
42949
42950         Remove StyleContentType enum since it's not used anymore and
42951         make the is*() type checking methods on ContentData public.
42952
42953         No new tests needed, this is just deleting dead code.
42954
42955         * rendering/style/ContentData.h:
42956         (ContentData):
42957         * rendering/style/RenderStyleConstants.h:
42958
42959 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
42960
42961         Create a GraphicsLayerUpdater class that will do periodic layer flushes for layer trees containing tile caches
42962         https://bugs.webkit.org/show_bug.cgi?id=99518
42963
42964         Reviewed by Dean Jackson.
42965
42966         When using tile caches in place of tiled layers, we need to recompute their
42967         visible area periodically while animations and scrolling are happening.
42968         Make a new class, GraphicsLayerUpdater, to handle this updating.
42969         Internally, it uses DisplayRefreshMonitor to generate the periodic updates.
42970         
42971         GraphicsLayer clients are notified that layers need periodic updates. Clients
42972         are free to make use of GraphicsLayerUpdater to handle this updating, as
42973         RenderLayerCompositor does.
42974         
42975         Also do some minor refactoring of methods in RenderLayerCompositor that
42976         get to Page.
42977
42978         * CMakeLists.txt: Add GraphicsLayerUpdater.cpp to the build.
42979         * GNUmakefile.list.am: Ditto.
42980         * PlatformBlackBerry.cmake: Ditto.
42981         * Target.pri: Ditto.
42982         * WebCore.gypi: Ditto.
42983         * WebCore.vcproj/WebCore.vcproj: Ditto.
42984         * WebCore.xcodeproj/project.pbxproj: Ditto.
42985         * dom/Document.cpp:
42986         (WebCore::Document::windowScreenDidChange): Tell the compositor that the screen
42987         changed, so it can tell the GraphicsLayerUpdater if it has one.
42988         * platform/graphics/GraphicsLayerClient.h:
42989         (WebCore::GraphicsLayerClient::notifyFlushBeforeDisplayRefresh): Method called
42990         for layers that need periodic updates, like tile cache layers.
42991         * platform/graphics/GraphicsLayerUpdater.cpp: Added. Uses DisplayRefreshMonitorManager
42992         to flush layers before the next refresh.
42993         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
42994         (WebCore::GraphicsLayerUpdater::~GraphicsLayerUpdater):
42995         (WebCore::GraphicsLayerUpdater::scheduleUpdate):
42996         (WebCore::GraphicsLayerUpdater::screenDidChange):
42997         (WebCore::GraphicsLayerUpdater::displayRefreshFired):
42998         * platform/graphics/GraphicsLayerUpdater.h: Added.
42999         (GraphicsLayerUpdaterClient): Clients need to implement flushLayers().
43000         (WebCore::GraphicsLayerUpdaterClient::~GraphicsLayerUpdaterClient):
43001         * platform/graphics/ca/GraphicsLayerCA.cpp:
43002         (WebCore::GraphicsLayerCA::recursiveCommitChanges): For tile cache layers,
43003         tell the client that this layer should be updated soon to update the visible rect.
43004         * rendering/RenderLayerBacking.cpp:
43005         (WebCore::RenderLayerBacking::notifyFlushBeforeDisplayRefresh): Pass this message
43006         on to the compositor.
43007         * rendering/RenderLayerBacking.h:
43008         (RenderLayerBacking): Implement notifyFlushBeforeDisplayRefresh.
43009         Add OVERRIDE to all the client overrides.
43010         * rendering/RenderLayerCompositor.cpp:
43011         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): Use helper to get to Page.
43012         (WebCore::RenderLayerCompositor::scheduleLayerFlush): Ditto.
43013         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Soon we're going to be asking
43014         about the current state of animations inside the flush (for visible rect computation), so we
43015         need a AnimationUpdateBlock to make sure all the animation times are in sync.
43016         (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh): Make a GraphicsLayerUpdater
43017         if necessary, and tell it to update soon.
43018         (WebCore::RenderLayerCompositor::flushLayers): The GraphicsLayerUpdater client method.
43019         Just does a flush. For now, considers this Frame as the flush root, which will need fixing for iframes.
43020         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Use helper to get to Page.
43021         (WebCore::RenderLayerCompositor::deviceScaleFactor): Ditto.
43022         (WebCore::RenderLayerCompositor::pageScaleFactor): Ditto.
43023         (WebCore::RenderLayerCompositor::destroyRootLayer): Ditto.
43024         (WebCore::RenderLayerCompositor::windowScreenDidChange): Tell the updater if we have one.
43025         (WebCore::RenderLayerCompositor::scrollingCoordinator): Use helper to get to Page.
43026         (WebCore::RenderLayerCompositor::graphicsLayerFactory): Use helper to get to Page.
43027         (WebCore::RenderLayerCompositor::page): The helper.
43028         * rendering/RenderLayerCompositor.h:
43029         (RenderLayerCompositor): Add OVERRIDE to all the client overrides.
43030
43031 2012-10-17  Eric Seidel  <eric@webkit.org>
43032
43033         Make dom-query.html slightly faster by removing unnecessary ref-churn in StringTraits
43034         https://bugs.webkit.org/show_bug.cgi?id=99652
43035
43036         Reviewed by Adam Barth.
43037
43038         My testing showed this moved dom-query.html from  465560 runs/s to 479019
43039         which is about 2% if I'm doing my math correctly.
43040
43041         I suspect that's due to avoiding the ref-churn we were incurring by using
43042         return-by-value symantics here.
43043
43044         This is just the tip of the iceburg. :)
43045
43046         * bindings/v8/V8StringResource.cpp:
43047         (StringTraits):
43048         * bindings/v8/V8ValueCache.h:
43049         (WebCore::WebCoreStringResource::webcoreString):
43050         (WebCore::WebCoreStringResource::atomicString):
43051
43052 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43053
43054         Move handling of CSSPropertyWebkitLineClamp from StyleResolver into StyleBuilder.
43055         https://bugs.webkit.org/show_bug.cgi?id=99534
43056
43057         Reviewed by Alexis Menard.
43058
43059         One small step towards removing the giant switch statement in StyleResolver, this patch moves line clamp handling into StyleBuilder.
43060
43061         Covered by fast/overflow/line-clamp.html
43062
43063         * css/StyleBuilder.cpp:
43064         (WebCore::StyleBuilder::StyleBuilder):
43065         * css/StyleResolver.cpp:
43066         (WebCore::StyleResolver::applyProperty):
43067
43068 2012-10-17  Andy Estes  <aestes@apple.com>
43069
43070         [WebKit2] Add removeChild: to WKDOMNode and make WKDOMText.data read/write
43071         https://bugs.webkit.org/show_bug.cgi?id=99662
43072
43073         Reviewed by Sam Weinig.
43074
43075         Export needed symbols.
43076
43077         * WebCore.exp.in:
43078
43079 2012-10-17  Adam Barth  <abarth@webkit.org>
43080
43081         [V8] Don't generate code that declares visitDOMWrapper if we're not going to generate the implementation
43082         https://bugs.webkit.org/show_bug.cgi?id=99653
43083
43084         Reviewed by Eric Seidel.
43085
43086         * bindings/scripts/CodeGeneratorV8.pm:
43087         (GenerateHeader):
43088
43089 2012-10-17  David Grogan  <dgrogan@chromium.org>
43090
43091         IndexedDB: Destroy leveldb directory if unknown schema is detected
43092         https://bugs.webkit.org/show_bug.cgi?id=99636
43093
43094         Reviewed by Tony Chang.
43095
43096         chromium browser test in progress at
43097         https://codereview.chromium.org/11196029
43098
43099         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
43100         (WebCore):
43101         (WebCore::isSchemaKnown):
43102         Return true when the schema key doesn't exist because new databases
43103         won't have one.
43104
43105         (WebCore::setUpMetadata):
43106         (WebCore::IDBLevelDBBackingStore::open):
43107         Piggy-back on existing leveldb::destroy code.
43108
43109 2012-10-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>
43110
43111         Incorrect rendering of borders on <col> with span > 1
43112         https://bugs.webkit.org/show_bug.cgi?id=76246
43113
43114         Reviewed by Julien Chaffraix.
43115
43116         The HTML5 rendering specification [10.2.2 - Display Types] states that
43117         "For the purposes of the CSS table model, the col element is expected to
43118         be treated as if it was present as many times as its span attribute
43119         specifies."
43120         We should thus apply a col element's border as if the element is present
43121         as many number of times as its span attribute.
43122
43123         Apart from this, we should also treat the col and its enclosing colgroup
43124         separately while computing the collapsed borders.
43125
43126         Test: fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html
43127
43128         * rendering/RenderTableCell.cpp:
43129         (WebCore::RenderTableCell::computeCollapsedStartBorder):
43130         (WebCore::RenderTableCell::computeCollapsedEndBorder):
43131         Borders from col and its enclosing colgroup element should be handled
43132         separately, while considering the preceeding col's end border (for start
43133         border computation) and the next col's start border (for end border
43134         computation).
43135
43136         Also, have made changes for handling of col elements with span attribute as
43137         per the specification. We now apply the border (start or end) of the col
43138         element irrespective of whether it has any span specified for it or not.
43139
43140 2012-10-17  Tom Sepez  <tsepez@chromium.org>
43141
43142         Crash in ContainerNode::removeAllChildren()
43143         https://bugs.webkit.org/show_bug.cgi?id=98443
43144
43145         Reviewed by Eric Carlson.
43146
43147         This patch makes the errorEventSender added in WebKit Revision 112190 interact
43148         with the updatedHasPendingLoadEvent() mechanism in the same manner as the other
43149         existing event senders.
43150
43151         Test: http/tests/security/video-poster-cross-origin-crash2.html
43152
43153         * loader/ImageLoader.cpp:
43154         (WebCore::ImageLoader::setImage):
43155         (WebCore::ImageLoader::updateFromElement):
43156         (WebCore::ImageLoader::notifyFinished):
43157         (WebCore::ImageLoader::updatedHasPendingEvent):
43158         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
43159         (WebCore::ImageLoader::dispatchPendingLoadEvent):
43160         * loader/ImageLoader.h:
43161         (ImageLoader):
43162
43163 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43164
43165         IndexedDB: Closing connection in upgradeneeded should result in error event
43166         https://bugs.webkit.org/show_bug.cgi?id=99486
43167
43168         Reviewed by Tony Chang.
43169
43170         The IDB spec requires that "...if connection is closed, return a DOMError of type AbortError".
43171         This was being handled during the "enqueue" phase, which was too early either for synchronously
43172         executing scripts or asynchronous messaging in multiprocess ports (crbug.com/150691). Move the
43173         logic to the "dispatch" phase.
43174
43175         Test: storage/indexeddb/intversion-close-in-oncomplete.html
43176
43177         * Modules/indexeddb/IDBOpenDBRequest.cpp:
43178         (WebCore::IDBOpenDBRequest::onSuccess): Move success to error morphing from here...
43179         (WebCore::IDBOpenDBRequest::dispatchEvent): To here.
43180         * Modules/indexeddb/IDBOpenDBRequest.h:
43181         (IDBOpenDBRequest):
43182
43183 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
43184
43185         Use virtual dispatch to create ContentData renderers
43186         https://bugs.webkit.org/show_bug.cgi?id=99646
43187
43188         Reviewed by Eric Seidel.
43189
43190         ContentData are conceptually very similar to Nodes and we can use
43191         the same createRenderer pattern on them to simplify creating
43192         renderers for generated content. Now each ContentData class knows
43193         how to create its own renderer.
43194
43195         Previously we switched over the StyleContentType which required a
43196         case for CONTENT_NONE and made the code look like it could return
43197         null, but this case is actually impossible because no ContentData
43198         class ever has a type of CONTENT_NONE and no null checks are really
43199         needed.
43200
43201         This is the final step in removing dependence on StyleContentType.
43202
43203         No new tests needed, this is just a refactor.
43204
43205         * rendering/RenderObjectChildList.cpp: Remove createRendererForBeforeAfterContent.
43206         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
43207         * rendering/style/ContentData.cpp:
43208         (WebCore::ImageContentData::createRenderer):
43209         (WebCore):
43210         (WebCore::TextContentData::createRenderer):
43211         (WebCore::CounterContentData::createRenderer):
43212         (WebCore::QuoteContentData::createRenderer):
43213         * rendering/style/ContentData.h: Added a new virtual method createRenderer.
43214         (WebCore):
43215         (ContentData):
43216         (ImageContentData):
43217         (TextContentData):
43218         (CounterContentData):
43219         (QuoteContentData):
43220
43221 2012-10-17  Julien Chaffraix  <jchaffraix@webkit.org>
43222
43223         RenderLayer subtrees without any self-painting layer shouldn't be walked during hit testing
43224         https://bugs.webkit.org/show_bug.cgi?id=89393
43225
43226         Reviewed by Eric Seidel.
43227
43228         Performance optimization, covered by existing tests.
43229
43230         Bug 88888 added an peformance optimization for painting. As hit testing is very similar to
43231         painting, it would benefit from the same optimization.
43232
43233         On http://dglazkov.github.com/performance-tests/biggrid.html, with a 10,000 * 100 tables,
43234         it reduces the time to select some text inside a cell from 1-2 seconds to a usable time
43235         (I didn't measure the exact timing).
43236
43237         Note that as in bug 88888, the multi-column code is not covered by this optimization.
43238
43239         * rendering/RenderLayer.cpp:
43240         (WebCore::RenderLayer::hitTest):
43241         This is the entrance to the hit testing code so we check if we can bail out early.
43242
43243         (WebCore::RenderLayer::hitTestList):
43244         If we have no self-painting descendant layers, we can bail out.
43245
43246         (WebCore::RenderLayer::hitTestContents):
43247         (WebCore::RenderLayer::hitTestLayer):
43248         hitTest should filter the layers that call these functions. Added some ASSERT to
43249         make sure we don't mistakenly call them when could avoid it.
43250
43251 2012-10-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>
43252
43253         [Qt] Certain SVG content freezes QtWebKit
43254         https://bugs.webkit.org/show_bug.cgi?id=97258
43255
43256         Reviewed by Simon Hausmann.
43257
43258         Ensure dashpattern is well-formed by avoiding divisions by zero.
43259
43260         Test: svg/stroke/zero-width-hang.html
43261
43262         * platform/graphics/qt/GraphicsContextQt.cpp:
43263         (WebCore::GraphicsContext::setLineDash):
43264
43265 2012-10-17  Alec Flett  <alecflett@chromium.org>
43266
43267         IndexedDB: Explicitly send null/undefined/integers to frontend IDBCallbacks
43268         https://bugs.webkit.org/show_bug.cgi?id=99619
43269
43270         Reviewed by Adam Barth.
43271
43272         Rather than pass SerializedScriptValue tokens from the backend,
43273         send explicit null, (as onSuccess(static_cast<SerializedScriptValue*>(0)))
43274         undefined, (as onSucess()), and integers (as onSuccess(long long))
43275
43276         This reduces backend dependency on things that might require a JS
43277         interpreter on the backend.
43278
43279         No new tests, this is a refactor and existing tests cover
43280         correctness. Tests that might fail include:
43281
43282         Test: storage/indexeddb/index-count.html
43283         Test: storage/indexeddb/objectstore-count.html
43284         Test: storage/indexeddb/database-basics.html
43285
43286         * Modules/indexeddb/IDBCallbacks.h:
43287         (IDBCallbacks):
43288         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
43289         (WebCore::IDBCursorBackendImpl::advanceInternal):
43290         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
43291         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
43292         * Modules/indexeddb/IDBCursorBackendImpl.h:
43293         (WebCore::IDBCursorBackendImpl::value):
43294         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
43295         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
43296         * Modules/indexeddb/IDBIndex.cpp:
43297         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
43298         (WebCore::IDBIndexBackendImpl::openCursorInternal):
43299         (WebCore::IDBIndexBackendImpl::countInternal):
43300         (WebCore::IDBIndexBackendImpl::getInternal):
43301         * Modules/indexeddb/IDBObjectStore.cpp:
43302         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
43303         (WebCore::IDBObjectStoreBackendImpl::getInternal):
43304         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
43305         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
43306         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
43307         (WebCore::IDBObjectStoreBackendImpl::countInternal):
43308         * Modules/indexeddb/IDBRequest.cpp:
43309         (WebCore::IDBRequest::onSuccess):
43310         (WebCore):
43311         * Modules/indexeddb/IDBRequest.h:
43312         * Modules/indexeddb/IDBTransaction.cpp:
43313         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
43314         * Modules/indexeddb/IDBTransactionBackendImpl.h:
43315         * Modules/indexeddb/IDBTransactionBackendInterface.h:
43316         * bindings/v8/IDBBindingUtilities.cpp:
43317         (WebCore::deserializeIDBValue):
43318         * inspector/InspectorIndexedDBAgent.cpp:
43319         (WebCore):
43320
43321 2012-10-17  Nate Chapin  <japhet@chromium.org>
43322
43323         Move ResourceRequest construction out of SubresourceLoader
43324         https://bugs.webkit.org/show_bug.cgi?id=99627
43325
43326         Reviewed by Adam Barth.
43327
43328         CachedResource::load() fills out a bunch of http headers.
43329         SubresourceLoader::create() adds a bunch more. Merge them.
43330         Note that this merge requires a bit more care in CachedRawResource::canReuse(),
43331         because more headers are set directly on CachedResource::m_resourceRequest, rather
43332         than on a copy of it.
43333
43334         No new tests, no functionality change intended.
43335
43336         * loader/SubresourceLoader.cpp:
43337         (WebCore::SubresourceLoader::create):
43338         * loader/cache/CachedRawResource.cpp:
43339         (WebCore::shouldIgnoreHeaderForCacheReuse):
43340         (WebCore):
43341         (WebCore::CachedRawResource::canReuse):
43342         * loader/cache/CachedResource.cpp:
43343         (WebCore::CachedResource::failBeforeStarting):
43344         (WebCore):
43345         (WebCore::CachedResource::addAdditionalRequestHeaders):
43346         (WebCore::CachedResource::load):
43347         * loader/cache/CachedResource.h:
43348         (CachedResource):
43349
43350 2012-10-17  Anders Carlsson  <andersca@apple.com>
43351
43352         Clean up Vector.h
43353         https://bugs.webkit.org/show_bug.cgi?id=99622
43354
43355         Reviewed by Benjamin Poulain.
43356
43357         Fix fallout from removing std::max and std::min using declarations.
43358
43359         * loader/cache/CachedResource.cpp:
43360         (WebCore::CachedResource::currentAge):
43361
43362 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43363
43364         IndexedDB: Enforce unsigned long/unsigned long long ranges
43365         https://bugs.webkit.org/show_bug.cgi?id=99637
43366
43367         Reviewed by Tony Chang.
43368
43369         The IndexedDB spec has [EnforceRange] specified on unsigned long and unsigned long long
43370         arguments, which requires the implementation to throw TypeError for negative values or
43371         values that exceed 2^53-1 (maximum JS number that behaves like an integer) - and 0 is
43372         specifically forbidden by the APIs as well.
43373
43374         A more correct fix in the binding layer is in webkit.org/b/96798 but we can temporarily
43375         address this in the implementation.
43376
43377         Also refactor to prevent IDBFactory.open(name, -1) from triggering an internal code path.
43378
43379         Tests: storage/indexeddb/cursor-advance.html
43380                storage/indexeddb/intversion-bad-parameters.html
43381                storage/indexeddb/intversion-encoding.html
43382
43383         * Modules/indexeddb/IDBCursor.cpp:
43384         (WebCore::IDBCursor::advance): Validate argument range.
43385         * Modules/indexeddb/IDBCursor.h:
43386         (IDBCursor):
43387         * Modules/indexeddb/IDBCursor.idl: Drop "unsigned" qualifier as the binding code is
43388         not yet doing the correct validation.
43389         * Modules/indexeddb/IDBFactory.cpp: Refactor to prevent open(name, -1)
43390         (WebCore):
43391         (WebCore::IDBFactory::open): Validate the int version here, then pass to...
43392         (WebCore::IDBFactory::openInternal): ... this method.
43393         * Modules/indexeddb/IDBFactory.h:
43394         (IDBFactory):
43395         * Modules/indexeddb/IDBFactory.idl: Drop "unsigned" qualifier; meaningless to binding
43396         code right now, can be re-added once webkit.org/b/96798 lands.
43397
43398 2012-10-17  Tony Chang  <tony@chromium.org>
43399
43400         fast/forms/range/input-appearance-range-rtl.html off by one pixel
43401         https://bugs.webkit.org/show_bug.cgi?id=99625
43402
43403         Reviewed by Ojan Vafai.
43404
43405         Previously, we would assume that a vertical slider in RTL would render identically to
43406         a vertical slider in LTR. Due to differing thumb sizes, there is an off by one.
43407
43408         This worked in deprecated flexbox because it doesn't adjust for RTL when applying
43409         box-align: center.
43410
43411         Tests: fast/forms/range/input-appearance-range-rtl.html
43412
43413         * html/shadow/SliderThumbElement.cpp:
43414         (WebCore::RenderSliderContainer::layout): Force LTR for flexbox layout when vertical. We have to restore the old value
43415         just in case the user switches from vertical to horizontal.
43416
43417 2012-10-17  Michael Saboff  <msaboff@apple.com>
43418
43419         Creating a String from an NSString should check for all 8 bit strings
43420         https://bugs.webkit.org/show_bug.cgi?id=99392
43421
43422         Reviewed by Geoffrey Garen.
43423
43424         Use CFStringGetBytes() to try to get Latin1 data to create an 8 bit string.
43425
43426         No functional change, change covered by existing tests.
43427
43428         * platform/text/mac/StringMac.mm:
43429         (WTF::String::String):
43430
43431 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43432
43433         [EFL] Remove redundant OpenGL library addition from the build system.
43434         https://bugs.webkit.org/show_bug.cgi?id=99629
43435
43436         Reviewed by Rob Buis.
43437
43438         * PlatformEfl.cmake: Do not add OPENGL_gl_LIBRARY to
43439         WebCore_LIBRARIES, this is already done in CMakeLists.txt these
43440         days.
43441
43442 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43443
43444         [CMake] Set WebCore_LIBRARIES earlier.
43445         https://bugs.webkit.org/show_bug.cgi?id=99630
43446
43447         Reviewed by Rob Buis.
43448
43449         * CMakeLists.txt: Follow the style we use in other CMakeList.txt
43450         files and set the Foo_LIBRARIES variables before we start checking
43451         for optional features, as they might append other libraries to the
43452         list (it already happens with WTF_USE_3D_GRAPHICS, for example).
43453
43454 2012-10-17  Philip Rogers  <pdr@google.com>
43455
43456         Allow lazy initialization of SVG XML animated properties.
43457         https://bugs.webkit.org/show_bug.cgi?id=84657
43458
43459         Reviewed by Tim Horton.
43460
43461         When animating a property in the shadow tree, instance properties and tearoffs are created
43462         but they simply reference the animated element's animating properties.
43463
43464         When starting an animation for the first time (see SVGAnimateElement::resetAnimatedType),
43465         we initialize the root property and instance properties using startAnimValAnimation(...).
43466         If an instance property is added while the root property is animating, this initialization
43467         will not occur and we crash.
43468
43469         This patch updates the resetAnimValToBaseVal codepath to start (and initialize) an animated
43470         property if it is not already animating. After this patch, instance properties can be added
43471         in the middle of animation and they will be properly started/initialized.
43472
43473         Test: svg/animations/use-while-animating-crash.html
43474
43475         * svg/SVGAnimatedTypeAnimator.h:
43476         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
43477         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
43478         (WebCore::SVGAnimatedTypeAnimator::executeAction):
43479
43480 2012-10-17  Dan Carney  <dcarney@google.com>
43481
43482         Bind isolatedWorldSecurityOrigin to world
43483         https://bugs.webkit.org/show_bug.cgi?id=99582
43484
43485         Reviewed by Adam Barth.
43486
43487         Security origin of isolated worlds was not previously set at the world
43488         level, although it could have been. 
43489
43490         No new tests. No change in functionality.
43491
43492         * bindings/v8/DOMWrapperWorld.cpp:
43493         (WebCore::DOMWrapperWorld::deallocate):
43494         (WebCore):
43495         (WebCore::isolatedWorldSecurityOrigins):
43496         (WebCore::DOMWrapperWorld::isolatedWorldSecurityOrigin):
43497         (WebCore::DOMWrapperWorld::setIsolatedWorldSecurityOrigin):
43498         (WebCore::DOMWrapperWorld::clearIsolatedWorldSecurityOrigin):
43499         * bindings/v8/DOMWrapperWorld.h:
43500         (DOMWrapperWorld):
43501         (WebCore::DOMWrapperWorld::isIsolatedWorldId):
43502         (WebCore::DOMWrapperWorld::isIsolatedWorld):
43503         * bindings/v8/ScriptController.cpp:
43504         (WebCore::ScriptController::resetIsolatedWorlds):
43505         (WebCore::ScriptController::evaluateInIsolatedWorld):
43506         (WebCore::ScriptController::collectIsolatedContexts):
43507         * bindings/v8/ScriptController.h:
43508         (ScriptController):
43509         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
43510         * bindings/v8/V8DOMWindowShell.cpp:
43511         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43512         * bindings/v8/V8DOMWindowShell.h:
43513         (V8DOMWindowShell):
43514         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
43515         (WebCore::V8XMLHttpRequest::constructorCallback):
43516
43517 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
43518
43519         GraphicsLayer visible rect computation needs to use the current animating transform
43520         https://bugs.webkit.org/show_bug.cgi?id=99529
43521
43522         Reviewed by Dean Jackson.
43523
43524         If we're running an accelerated animation of transform
43525         on a GraphicsLayerCA, the current value of the transform won't
43526         be reflected in the GraphicsLayer's m_transform. However,
43527         we need the current value of the transform in order to correctly
43528         compute the visible rect of this layer and descendants.
43529         
43530         Add a function to GraphicsLayerClient to retrieve the current
43531         value of the transform from the client.
43532         
43533         RenderLayer's currentTransform() used to return a transform
43534         with transform-origin baked in; GraphicsLayerClient needs one
43535         that excludes transform-origin, so enhance RenderLayer::currentTransform()
43536         to be able to produce either.
43537
43538         Tests: compositing/visible-rect/animated-from-none.html
43539                compositing/visible-rect/animated.html
43540
43541         * platform/graphics/GraphicsLayerClient.h:
43542         (WebCore):
43543         (GraphicsLayerClient):
43544         (WebCore::GraphicsLayerClient::getCurrentTransform):
43545         * platform/graphics/ca/GraphicsLayerCA.cpp:
43546         (WebCore::GraphicsLayerCA::computeVisibleRect):
43547         * rendering/RenderLayer.cpp:
43548         (WebCore::RenderLayer::currentTransform):
43549         * rendering/RenderLayer.h:
43550         * rendering/RenderLayerBacking.cpp:
43551         (WebCore::RenderLayerBacking::currentTransform):
43552         * rendering/RenderLayerBacking.h:
43553         (RenderLayerBacking):
43554
43555 2012-10-17  Sadrul Habib Chowdhury  <sadrul@chromium.org>
43556
43557         plugins: Allow a plugin to dictate whether it can receive drag events or not.
43558         https://bugs.webkit.org/show_bug.cgi?id=99355
43559
43560         Reviewed by Tony Chang.
43561
43562         When doing a drag over a plugin, ask the plugin whether it can accept
43563         drag/drop to decide whether drag/drop is possible or not. At present,
43564         plugins do not receive drag events through WebCore (i.e. various
43565         implementations of PluginView::handleMouseEvent ignores the
43566         drop-events). This change makes it possible for the ports to ask the
43567         plugin first to decide whether it can (or wants to) accept drag events.
43568         The default implementation remains the same, i.e. plugins do not receive
43569         drag events. For chromium, the overridden implementation uses the
43570         WebPlugin interface to check whether the plugin can accept drag events.
43571
43572         * html/HTMLPlugInElement.cpp:
43573         (WebCore::HTMLPlugInElement::canProcessDrag):
43574         (WebCore):
43575         * html/HTMLPlugInElement.h:
43576         (WebCore):
43577         (HTMLPlugInElement):
43578         * page/DragController.cpp:
43579         (WebCore::DragController::canProcessDrag):
43580         * plugins/PluginViewBase.h:
43581         (WebCore):
43582         (WebCore::PluginViewBase::canProcessDrag):
43583
43584 2012-10-17  Andreas Kling  <kling@webkit.org>
43585
43586         Shrink EventTargetData by making firingEventListeners vector optional.
43587         <http://webkit.org/b/99532>
43588         <rdar://problem/12515099>
43589
43590         Reviewed by Anders Carlsson.
43591
43592         The majority of event listeners never actually fire, and EventTargetData::firingEventListeners
43593         is just sitting there taking up space. Make it an OwnPtr instead, shrinking EventTargetData
43594         by 48 bytes and progressing Membuster3 by 395kB.
43595
43596         * dom/EventTarget.cpp:
43597         (WebCore::EventTarget::removeEventListener):
43598         (WebCore::EventTarget::fireEventListeners):
43599         (WebCore::EventTarget::removeAllEventListeners):
43600         * dom/EventTarget.h:
43601         (WebCore::EventTarget::isFiringEventListeners):
43602
43603 2012-10-17  Christophe Dumez  <christophe.dumez@intel.com>
43604
43605         xss-DENIED-xsl-document-securityOrigin.xml crashes with icon assertion
43606         https://bugs.webkit.org/show_bug.cgi?id=99571
43607
43608         Reviewed by Kenneth Rohde Christiansen.
43609
43610         Check that the iconURL is not empty in IconController::continueLoadWithDecision()
43611         to avoid hitting assertions later when trying to commit this empty URL to the
43612         database. IconController::url() may indeed return an empty URL but there was
43613         no check for it.
43614
43615         No new tests, already covered by http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml.
43616
43617         * loader/icon/IconController.cpp:
43618         (WebCore::IconController::continueLoadWithDecision):
43619
43620 2012-10-17  Byungwoo Lee  <bw80.lee@samsung.com>
43621
43622         Fix build warnings : -Wunused-parameter, -Wunused-variable
43623         https://bugs.webkit.org/show_bug.cgi?id=99539
43624
43625         Reviewed by Kentaro Hara.
43626
43627         Fix build warnings about unused parameter or unused variable when
43628         WTF_USE_TILED_BACKING_STORE option is enabled.
43629
43630         * html/shadow/HTMLContentElement.cpp:
43631         (WebCore::contentTagName):
43632         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
43633         (WebCore::GraphicsContext3D::getImageData):
43634         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
43635         (WebCore::GraphicsContext3DPrivate::createSurface):
43636         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
43637         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
43638         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
43639         * platform/graphics/texmap/TextureMapper.h:
43640         (WebCore::BitmapTexture::canReuseWith):
43641         (WebCore::TextureMapper::beginPainting):
43642         * platform/graphics/texmap/TextureMapperGL.cpp:
43643         (WebCore::TextureMapperGL::drawRepaintCounter):
43644         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
43645         (WebCore::BitmapTextureImageBuffer::updateContents):
43646         * platform/graphics/texmap/TextureMapperImageBuffer.h:
43647         * platform/graphics/texmap/TextureMapperLayer.cpp:
43648         (WebCore::TextureMapperLayer::sortByZOrder):
43649         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
43650         * rendering/RenderLayerCompositor.cpp:
43651         (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
43652
43653 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
43654
43655         Dynamically added elements do not get re-projected.
43656         https://bugs.webkit.org/show_bug.cgi?id=99227
43657
43658         Reviewed by Dimitri Glazkov.
43659
43660         When distribution happens, we have to invalidate its host shadow's distribution, since the children of the host
43661         is changed.
43662
43663         Test: fast/dom/shadow/content-reprojection-dynamic.html
43664
43665         * html/shadow/ContentDistributor.cpp:
43666         (WebCore::ContentDistributor::distribute):
43667
43668 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43669
43670         Web Inspector: no "delete watch expression" context menu item when clicking on the expression value
43671         https://bugs.webkit.org/show_bug.cgi?id=99602
43672
43673         Reviewed by Pavel Feldman.
43674
43675         Add delete items to the watch expression's value's context menu.
43676
43677         * inspector/front-end/ObjectPropertiesSection.js:
43678         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
43679         (WebInspector.ObjectPropertyTreeElement.prototype.populateContextMenu):
43680         * inspector/front-end/WatchExpressionsSidebarPane.js:
43681         (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
43682         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
43683
43684 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43685
43686         Web Inspector: [Regression] Undoing script changes does not restore breakpoints.
43687         https://bugs.webkit.org/show_bug.cgi?id=99598
43688
43689         Reviewed by Pavel Feldman.
43690
43691         workingCopyChanged now dispatches did/willMergeToVM instead of did/willDivergeFromVM
43692         when change returns uiSourceCode to non dirty state.
43693         Added wasDirty parameter to workingCopyChanged event.
43694
43695         Test: inspector/debugger/live-edit-breakpoints.html
43696
43697         * inspector/front-end/ResourceScriptMapping.js:
43698         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
43699         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
43700         * inspector/front-end/UISourceCode.js:
43701         (WebInspector.UISourceCode.prototype.setWorkingCopy):
43702
43703 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43704
43705         [Qt] Avoid re-creating CSSGrammar.cpp with each (incremental) build
43706
43707         Reviewed by Tor Arne Vestbø.
43708
43709         The expected output is CSSGrammar.cpp and the input file used to be CSSGrammar.y,
43710         so ${QMAKE_FILE_BASE}.cpp did the correct transformation. Recently the input has
43711         changed to CSSGrammar.y.in, in which case the ${QMAKE_FILE_BASE} is CSSGrammar.y
43712         unfortunately. The resulting target CSSGrammar.y.cpp will never be created and
43713         therefore the target will always run.
43714
43715         * DerivedSources.pri:
43716
43717 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43718
43719         Unreviewed fix for ImageSourceCG.
43720
43721         * platform/graphics/cg/ImageSourceCG.cpp:
43722         (WebCore::ImageSource::reportMemoryUsage):
43723
43724 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43725
43726         Unreviewed fix for compilation on CG bots.
43727
43728         * platform/graphics/cg/ImageSourceCG.cpp:
43729
43730 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
43731
43732         Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
43733         https://bugs.webkit.org/show_bug.cgi?id=99540
43734
43735         Reviewed by Yury Semikhatsky.
43736
43737         * platform/graphics/ImageSource.cpp:
43738         (WebCore::ImageSource::reportMemoryUsage):
43739         (WebCore):
43740         * platform/graphics/ImageSource.h:
43741         (ImageSource):
43742         * platform/image-decoders/ImageDecoder.cpp:
43743         (WebCore::ImageFrame::reportMemoryUsage):
43744         (WebCore):
43745         (WebCore::ImageDecoder::reportMemoryUsage):
43746         * platform/image-decoders/ImageDecoder.h:
43747         (ImageFrame):
43748         (ImageDecoder):
43749         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
43750         (WebCore::ImageFrame::reportMemoryUsage):
43751         (WebCore):
43752
43753 2012-10-17  Zeno Albisser  <zeno@webkit.org>
43754
43755         [Qt] Fix build on Mac OSX 10.6 and earlier.
43756         https://bugs.webkit.org/show_bug.cgi?id=99595
43757
43758         Reviewed by Simon Hausmann.
43759
43760         * Target.pri:
43761
43762 2012-10-17  Pavel Feldman  <pfeldman@chromium.org>
43763
43764         Web Inspector: display "disconnected" message when remote debugging terminates
43765         https://bugs.webkit.org/show_bug.cgi?id=99316
43766
43767         Reviewed by Yury Semikhatsky.
43768
43769         Otherwise, it is not clear that the front-end is no longer functional.
43770
43771         * inspector/front-end/InspectorFrontendHostStub.js:
43772         (WebInspector.RemoteDebuggingTerminatedScreen):
43773         * inspector/front-end/inspector.js:
43774         (WebInspector.loaded.WebInspector.socket.onclose):
43775         (WebInspector.loaded):
43776
43777 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43778
43779         Web Inspector: delete watch expression button overlaps with the expression value
43780         https://bugs.webkit.org/show_bug.cgi?id=99569
43781
43782         Reviewed by Vsevolod Vlasov.
43783
43784         Delete watch expression button now doesn't overlap with the watch expression.
43785
43786         * inspector/front-end/inspector.css:
43787         (.properties-tree.watch-expressions > li > .value):
43788
43789 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43790
43791         Move handling of CSSPropertyPointerEvents from StyleResolver into StyleBuilder.
43792         https://bugs.webkit.org/show_bug.cgi?id=99536
43793
43794         Reviewed by Alexis Menard.
43795
43796         One small step towards removing the giant switch statement in StyleResolver,
43797         this patch moves pointer event property into StyleBuilder.
43798
43799         Covered by fast/events/pointer-events.html and fast/events/pointer-events-2.html.
43800
43801         * css/StyleBuilder.cpp:
43802         (WebCore::StyleBuilder::StyleBuilder):
43803         * css/StyleResolver.cpp:
43804         (WebCore::StyleResolver::applyProperty):
43805
43806 2012-10-17  Keishi Hattori  <keishi@webkit.org>
43807
43808         Localized date should be based on LDML
43809         https://bugs.webkit.org/show_bug.cgi?id=99570
43810
43811         Reviewed by Kent Tamura.
43812
43813         Localized date should be based on LDML to match the format inside DateTimeEditElement.
43814
43815         No new tests. Covered by LocaleMacTest.formatDate and LocaleWinTest.formatDate.
43816
43817         * platform/text/LocaleICU.cpp: Removed formatDateTime.
43818         * platform/text/LocaleICU.h:
43819         (LocaleICU):
43820         * platform/text/LocaleNone.cpp: Removed formatDateTime.
43821         (LocaleNone):
43822         * platform/text/LocaleWin.cpp: Removed formatDateTime and formatDate.
43823         (WebCore):
43824         * platform/text/LocaleWin.h:
43825         (LocaleWin):
43826         * platform/text/Localizer.cpp:
43827         (WebCore::DateTimeStringBuilder::visitField): Added support for year/month/day.
43828         (WebCore::Localizer::formatDateTime): Creates the formatted string based on the format from dateFormat().
43829         * platform/text/Localizer.h:
43830         * platform/text/mac/LocaleMac.h:
43831         (LocaleMac):
43832         * platform/text/mac/LocaleMac.mm: Removed formatDateTime.
43833
43834 2012-10-17  Harald Alvestrand  <hta@google.com>
43835
43836         Implement the Selector argument to RTCPeerConnection.getStats
43837         https://bugs.webkit.org/show_bug.cgi?id=99460
43838
43839         Reviewed by Adam Barth.
43840
43841         The change adds two new parameters to the RTCStatsRequest object:
43842         stream and component. Together these are enough to identify a
43843         MediaStreamTrack.
43844
43845         Test: fast/mediastream/RTCPeerConnection-statsSelector.html
43846
43847         * Modules/mediastream/MediaStreamTrack.cpp:
43848         (WebCore::MediaStreamTrack::streamDescriptor):
43849         (WebCore):
43850         * Modules/mediastream/MediaStreamTrack.h:
43851         * Modules/mediastream/RTCPeerConnection.cpp:
43852         (WebCore::RTCPeerConnection::getStats):
43853         * Modules/mediastream/RTCStatsRequestImpl.cpp:
43854         (WebCore::RTCStatsRequestImpl::create):
43855         (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
43856         (WebCore::RTCStatsRequestImpl::hasSelector):
43857         (WebCore):
43858         (WebCore::RTCStatsRequestImpl::stream):
43859         (WebCore::RTCStatsRequestImpl::component):
43860         * Modules/mediastream/RTCStatsRequestImpl.h:
43861         (RTCStatsRequestImpl):
43862         * platform/chromium/support/WebRTCStatsRequest.cpp:
43863         (WebKit):
43864         (WebKit::WebRTCStatsRequest::hasSelector):
43865         (WebKit::WebRTCStatsRequest::stream):
43866         (WebKit::WebRTCStatsRequest::component):
43867         * platform/mediastream/RTCStatsRequest.h:
43868         (WebCore):
43869         (RTCStatsRequest):
43870
43871 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43872
43873         [Qt] Enable use of more AllInOne files
43874         https://bugs.webkit.org/show_bug.cgi?id=99579
43875
43876         Reviewed by Tor Arne Vestbø.
43877
43878         The AllInOne files reduce pressure during final link time because the object files contain less duplicated
43879         symbols.
43880
43881         * Target.pri: Add HTMLElementsAllInOne, EditingAllInOne and RenderingAllInOne to the build
43882         * editing/EditingAllInOne.cpp: Place a #if USE(CF) around the inclusion of SmartReplaceCF.cpp
43883         * html/HTMLElementsAllInOne.cpp: Move HTMLPlugInElement.cpp to the top to fix builds on X11 based platforms
43884         where the X headers get confused by the "Region" type that's also declared in WebCore.
43885         * rendering/RenderingAllInOne.cpp: Fix build on case-sensitive file systems (Plugin -> PlugIn) and added a
43886         #if PLATFORM(WIN) around the inclusion of RenderThemeWin.cpp.
43887
43888 2012-10-17  Kent Tamura  <tkent@chromium.org>
43889
43890         REGRESSION(r131421): Text baseline becomes incorrect after re-layout of input[type=time]
43891         https://bugs.webkit.org/show_bug.cgi?id=99572
43892
43893         Reviewed by Kentaro Hara.
43894
43895         We use flexible box since r131421, and it seems text baseline becomes
43896         incorrect if there are text nodes in a flex container.
43897
43898         Test: fast/forms/time-multiple-fields/time-multiple-fields-static-relayout.html
43899
43900         * css/html.css:
43901         (input::-webkit-datetime-edit-text): Added.
43902         * html/shadow/DateTimeEditElement.cpp:
43903         (WebCore::DateTimeEditBuilder::visitLiteral):
43904         Wrap text with an element with ::-webkit-datetime-edit-text.
43905
43906 2012-10-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>, Michal Roj <m.roj@samsung.com>
43907
43908         [WK2][EFL] Implementation of spellchecking feature.
43909         https://bugs.webkit.org/show_bug.cgi?id=91854
43910
43911         Reviewed by Gyuyoung Kim.
43912
43913         * PlatformEfl.cmake:
43914         Add enchant-related compiler flags: header paths and the library flag.
43915
43916 2012-10-17  Alexander Pavlov  <apavlov@chromium.org>
43917
43918         Web Inspector: Avoid style updates when retrieving the inline stylesheet text
43919         https://bugs.webkit.org/show_bug.cgi?id=99576
43920
43921         Reviewed by Vsevolod Vlasov.
43922
43923         Avoid using innerText() to retrieve inline stylesheet text, which may result in style and layout updates.
43924
43925         * inspector/InspectorStyleSheet.cpp:
43926         (WebCore::InspectorStyleSheet::inlineStyleSheetText):
43927
43928 2012-10-17  Patrick Gansterer  <paroga@webkit.org>
43929
43930         Build fix for WinCE after r131365.
43931
43932         * platform/graphics/GlyphBuffer.h:
43933         (WebCore::GlyphBufferAdvance::width):
43934         * platform/graphics/wince/FontWinCE.cpp:
43935         (WebCore::cursorToX):
43936         * platform/graphics/wince/GraphicsContextWinCE.cpp:
43937         (WebCore::GraphicsContext::drawText):
43938
43939 2012-10-17  Mike West  <mkwst@chromium.org>
43940
43941         V8 should throw a more descriptive exception when blocking 'eval' via CSP.
43942         https://bugs.webkit.org/show_bug.cgi?id=94332
43943
43944         Reviewed by Adam Barth.
43945
43946         Following up on https://bugs.webkit.org/show_bug.cgi?id=94331, this
43947         patch wires up the new error message mechanism to V8, and updates the
43948         Chromium test expectations accordingly.
43949
43950         * bindings/v8/ScriptController.cpp:
43951         (WebCore::ScriptController::disableEval):
43952             Pass 'errorMessage' through to V8.
43953         * bindings/v8/V8DOMWindowShell.cpp:
43954         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43955             Grab the error message from ContentSecurityPolicy, and pass it
43956             through to V8.
43957         * bindings/v8/WorkerContextExecutionProxy.cpp:
43958         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
43959         (WebCore::WorkerContextExecutionProxy::evaluate):
43960         (WebCore::WorkerContextExecutionProxy::setEvalAllowed):
43961         * bindings/v8/WorkerContextExecutionProxy.h:
43962         (WorkerContextExecutionProxy):
43963             Convert 'm_disableEvalPending' to a string to store the current
43964             error message, and use it to set the eval state.
43965         * bindings/v8/WorkerScriptController.cpp:
43966         (WebCore::WorkerScriptController::disableEval):
43967             Pass 'errorMessage' through to V8.
43968
43969 2012-10-17  MORITA Hajime  <morrita@google.com>
43970
43971         Assertion failed on HTMLFormControlElement.cpp: updateFromElementCallback()
43972         https://bugs.webkit.org/show_bug.cgi?id=99566
43973
43974         Reviewed by Kent Tamura.
43975
43976         It had a too optimistic assertion. This change removes it.
43977
43978         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing.html
43979
43980         * html/HTMLFormControlElement.cpp:
43981         (WebCore::updateFromElementCallback):
43982
43983 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43984
43985         Web Inspector: When dirty uiSourceCode is saved to disk from scripts navigator context menu working copy is not committed.
43986         https://bugs.webkit.org/show_bug.cgi?id=99555
43987
43988         Reviewed by Yury Semikhatsky.
43989
43990         Save As context menu handler now commits working copy for dirty UISourceCodes.
43991
43992         * inspector/front-end/HandlerRegistry.js:
43993
43994 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43995
43996         Web Inspector: Stylesheets saved with FileManager are not saved to disk when edited from Elements panel.
43997         https://bugs.webkit.org/show_bug.cgi?id=99554
43998
43999         Reviewed by Yury Semikhatsky.
44000
44001         Moved saving to disk from SourceFrame to UISourceCode.
44002
44003         * inspector/front-end/SourceFrame.js:
44004         (WebInspector.SourceFrame.prototype._commitEditing):
44005         * inspector/front-end/UISourceCode.js:
44006         (WebInspector.UISourceCode.prototype._commitContent):
44007
44008 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44009
44010         Web Inspector: [Regression] SASS sources are not saved to disk.
44011         https://bugs.webkit.org/show_bug.cgi?id=99551
44012
44013         Reviewed by Yury Semikhatsky.
44014
44015         Added resource null checks.
44016
44017         * inspector/front-end/StylesSourceMapping.js:
44018         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
44019
44020 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
44021
44022         Clean up ContentData operator overloads
44023         https://bugs.webkit.org/show_bug.cgi?id=99556
44024
44025         Reviewed by Eric Seidel.
44026
44027         Use virtual dispatch for checking ContentData equality instead
44028         of a switch over the type. This the first step in getting rid
44029         of the StyleContentType enum and all the switch statements over
44030         the type().
44031
44032         No tests needed, this is just a refactor.        
44033
44034         * rendering/style/ContentData.cpp:
44035         * rendering/style/ContentData.h:
44036         (ContentData):
44037         (WebCore::operator==):
44038         (WebCore):
44039         (WebCore::operator!=):
44040
44041 2012-10-17  Gabor Rapcsanyi  <rgabor@webkit.org>
44042
44043         NEON intrinsics Gauss filter does not work properly
44044         https://bugs.webkit.org/show_bug.cgi?id=98875
44045
44046         Reviewed by Zoltan Herczeg.
44047
44048         Fixing the NEON intrinsics Gauss filter. The stride parameter
44049         was missing from the intrinsics algorithm. Tested with pixel
44050         checks, now it's working properly.
44051
44052         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44053         (WebCore::boxBlurNEON):
44054
44055 2012-10-17  MORITA Hajime  <morrita@google.com>
44056
44057         Crash on Frame::inScope() part 2
44058         https://bugs.webkit.org/show_bug.cgi?id=99543
44059
44060         Reviewed by Kent Tamura.
44061
44062         FrameTree::scopedChildCount() can be called even when the one of child frames
44063         is in orphan state. This change added a guard for that case.
44064
44065         No new tests. A hard-to-test timing issue.
44066
44067         * page/Frame.cpp:
44068         (WebCore::Frame::inScope):
44069
44070 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
44071
44072         Remove shadowAncestorNode() from VisibleSelection
44073         https://bugs.webkit.org/show_bug.cgi?id=99544
44074
44075         Reviewed by Hajime Morita.
44076
44077         An effort to replace shadowAncestorNode() with shadowHost(), since shadowAncestorNode() is now deprecated.
44078
44079         No new tests, no change in behavior.
44080
44081         * editing/VisibleSelection.cpp:
44082         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Since shadowHost() returns 0 if
44083         an element is not in shadowRoot, it's ok to compare shadowAncestor to 0.
44084
44085 2012-10-17  Douglas Stockwell  <dstockwell@chromium.org>
44086
44087         Content of replaced elements should be trimmed to the content edge curve.
44088         https://bugs.webkit.org/show_bug.cgi?id=63899
44089
44090         Reviewed by Simon Fraser.
44091
44092         When a border-radius is specified the content of replaced elements needs to be clipped to avoid
44093         being painted over the padding or border in the corners. Previously the clip that was applied
44094         was set to the border-edge curve, this patch contracts the clip by the size of the border and
44095         padding (the content-edge curve) to match the css3 spec.
44096         Spec: http://www.w3.org/TR/css3-background/#corner-clipping
44097
44098         Test: fast/replaced/border-radius-clip-content-edge.html
44099
44100         * rendering/RenderBoxModelObject.h:
44101         (RenderBoxModelObject):
44102         * rendering/RenderReplaced.cpp:
44103         (WebCore::RenderReplaced::paint):
44104         * rendering/RenderWidget.cpp:
44105         (WebCore::RenderWidget::paint):
44106
44107 2012-10-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
44108
44109         The HTML5 formtarget/formaction/formenctyp/formmethod/formnovalidate attributes don't work in button tags with nested elements
44110         https://bugs.webkit.org/show_bug.cgi?id=90539
44111
44112         Reviewed by Kent Tamura.
44113
44114         Fix a bug where form(action|enctype|method|target) attributes of <button> are not
44115         honored if the target of the click event is an element nested within the button.
44116
44117         Test: fast/forms/formaction-attribute.html
44118
44119         * loader/FormSubmission.cpp:
44120         (WebCore::FormSubmission::create): Looks for the attributes for form submission
44121         from the nearest FormControlElement ancestor of the event target.
44122
44123 2012-10-16  MORITA Hajime  <morrita@google.com>
44124
44125         [Shadow DOM][V8] WebCore::V8DOMWindow::installPerContextProperties() is slow when shadowDOMEnabled flag is on.
44126         https://bugs.webkit.org/show_bug.cgi?id=99428
44127
44128         Reviewed by Adam Barth.
44129
44130         A benchmark unveiled that installPerContextProperties() could have made DOMWindow setup slower when
44131         - Some properties are added per-context basis by turnin the flag on and
44132         - There are bunch of DOMWindow object in the page (that is, there are many iframes.)
44133
44134         This change eliminates Shadow DOM related per-context properties from DOMWindow for getting rid of that slowness.
44135
44136         * dom/ContextFeatures.cpp:
44137         * dom/ContextFeatures.h: Removed shadowDOMEnabled() method and related enum entry.
44138         * dom/Position.cpp:
44139         (WebCore::Position::Position):
44140         (WebCore::Position::findParent):
44141         * dom/TreeScope.cpp:
44142         (WebCore::TreeScope::getSelection):
44143         * dom/make_names.pl: Re-introduced "runtimeConditional" directive.
44144         (defaultTagPropertyHash):
44145         (printConstructorInterior):
44146         (printFactoryCppFile):
44147         (printWrapperFunctions):
44148         (printWrapperFactoryCppFile):
44149         * html/HTMLTagNames.in:
44150         * html/shadow/HTMLContentElement.cpp:
44151         (WebCore::contentTagName):
44152         * page/DOMWindow.idl:
44153
44154 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
44155
44156         Make RenderObject destruction during detach a top-down operation
44157         https://bugs.webkit.org/show_bug.cgi?id=98336
44158
44159         Reviewed by Eric Seidel.
44160
44161         detach() is a DOM-driven operation that destroys the renderers bottom-up.
44162         While this is correct, it causes extra-work to be done (tree cleaning, ...)
44163         as it doesn't know about the render tree's structure.
44164
44165         The render tree on the other side already supports top-down operations
44166         but it was overriden by the DOM side of detach.
44167
44168         This change only makes ContainerNode::detach do a top-down render tree
44169         destruction. This is a required step towards doing smarter destruction.
44170
44171         Refactoring covered by existing tests.
44172
44173         * dom/ContainerNode.cpp:
44174         (WebCore::ContainerNode::detach):
44175         Changed the method to do a top-down destruction.
44176
44177         * dom/Node.cpp:
44178         (WebCore::Node::detach):
44179         Added this ASSERT that ensures that we have properly cleaned up the
44180         whole DOM subtree. The only exception is child content belonging to a
44181         flow-thread as the code will shuffle the renderers under the flow-thread.
44182
44183         * rendering/RenderObject.cpp:
44184         (WebCore::RenderObject::willBeDestroyed):
44185         As we don't update the node's renderer on the DOM side, do it here.
44186         The upside is that it ensures that we don't left any stray renderer
44187         in the tree.
44188
44189         * rendering/RenderObjectChildList.cpp:
44190         (WebCore::RenderObjectChildList::destroyLeftoverChildren):
44191         Removed the calls to setRenderer as they are redundant with what we do
44192         in willBeDestroyed.
44193
44194         * rendering/RenderTextFragment.cpp:
44195         (WebCore::RenderTextFragment::setText):
44196         Removed some now unneeded code, replaced by an ASSERT. This is because
44197         destroying m_firstLetter would automatically reset the node's renderer
44198         in destroyLeftoverChildren.
44199
44200 2012-10-16  Joseph Pecoraro  <pecoraro@apple.com>
44201
44202         HTMLSelectElement::optionSelectedByUser confuses listIndex and optionIndex
44203         https://bugs.webkit.org/show_bug.cgi?id=99523
44204
44205         Reviewed by Simon Fraser.
44206
44207         There was a call site where the optionIndex was being passed to a
44208         function that expected the listIndex. Convert appropriately.
44209
44210         Extends Test: platform/mac/fast/objc/dom-html-select-activate.html
44211
44212         * html/HTMLSelectElement.cpp:
44213         (WebCore::HTMLSelectElement::optionSelectedByUser):
44214
44215 2012-10-16  Jian Li  <jianli@chromium.org>
44216
44217         Rename feature define ENABLE_WIDGET_REGION to ENABLE_DRAGGBALE_REGION
44218         https://bugs.webkit.org/show_bug.cgi?id=98975
44219
44220         Reviewed by Adam Barth.
44221
44222         Renaming is needed to better match with the draggable region code.
44223
44224         No new tests due to no functional change.
44225
44226         * Configurations/FeatureDefines.xcconfig:
44227         * DerivedSources.make:
44228         * WebCore.exp.in:
44229         * css/CSSComputedStyleDeclaration.cpp:
44230         (WebCore):
44231         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44232         * css/CSSParser.cpp:
44233         (WebCore::CSSParser::parseValue):
44234         * css/CSSProperty.cpp:
44235         (WebCore::CSSProperty::isInheritedProperty):
44236         * css/CSSPropertyNames.in:
44237         * css/CSSValueKeywords.in:
44238         * css/StyleResolver.cpp:
44239         (WebCore::StyleResolver::applyProperty):
44240         * dom/Document.cpp:
44241         (WebCore::Document::Document):
44242         (WebCore):
44243         (WebCore::Document::reportMemoryUsage):
44244         * dom/Document.h:
44245         (WebCore):
44246         (Document):
44247         * page/Chrome.cpp:
44248         (WebCore):
44249         * page/ChromeClient.h:
44250         (ChromeClient):
44251         * page/FrameView.cpp:
44252         (WebCore::FrameView::layout):
44253         (WebCore):
44254         (WebCore::FrameView::paintContents):
44255         * page/FrameView.h:
44256         (FrameView):
44257         * rendering/RenderInline.cpp:
44258         (WebCore):
44259         (WebCore::RenderInline::addAnnotatedRegions):
44260         * rendering/RenderInline.h:
44261         (RenderInline):
44262         * rendering/RenderLayer.cpp:
44263         (WebCore::RenderLayer::scrollTo):
44264         (WebCore::RenderLayer::setHasHorizontalScrollbar):
44265         (WebCore::RenderLayer::setHasVerticalScrollbar):
44266         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
44267         * rendering/RenderListBox.cpp:
44268         (WebCore::RenderListBox::setHasVerticalScrollbar):
44269         * rendering/RenderObject.cpp:
44270         (WebCore::RenderObject::styleWillChange):
44271         (WebCore):
44272         (WebCore::RenderObject::addAnnotatedRegions):
44273         * rendering/RenderObject.h:
44274         (WebCore::AnnotatedRegionValue::operator==):
44275         (AnnotatedRegionValue):
44276         (RenderObject):
44277         * rendering/style/RenderStyle.h:
44278         * rendering/style/RenderStyleConstants.h:
44279         * rendering/style/StyleRareNonInheritedData.cpp:
44280         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
44281         (WebCore::StyleRareNonInheritedData::operator==):
44282         * rendering/style/StyleRareNonInheritedData.h:
44283         (StyleRareNonInheritedData):
44284
44285 2012-10-16  James Simonsen  <simonjam@chromium.org>
44286
44287         [Page Visibility API] View-less documents should report as hidden
44288         https://bugs.webkit.org/show_bug.cgi?id=99410
44289
44290         Reviewed by Tony Gentilcore.
44291
44292         Test: fast/events/page-visibility-null-view.html
44293
44294         * dom/Document.cpp:
44295         (WebCore::Document::visibilityState):
44296
44297 2012-10-16  Michael Saboff  <msaboff@apple.com>
44298
44299         Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
44300         https://bugs.webkit.org/show_bug.cgi?id=99484
44301
44302         Reviewed by Eric Seidel.
44303
44304         Changed macro name to align with it's purpose, therefore changed USE(8BIT_TEXTRUN) to ENABLE(8BIT_TEXTRUN).
44305
44306         No new tests.  Changed macro name, no functional change.
44307
44308         * platform/graphics/TextRun.h:
44309         (WebCore::TextRun::TextRun):
44310         (WebCore::TextRun::subRun):
44311         * rendering/RenderBlock.cpp:
44312         (WebCore::RenderBlock::constructTextRun):
44313         * rendering/RenderBlock.h:
44314         (RenderBlock):
44315
44316 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44317
44318         [Qt] REGRESSION(r131485): It broke the build
44319         https://bugs.webkit.org/show_bug.cgi?id=99499
44320
44321         Unreviewed build (warning) fix.
44322
44323         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44324         (WebCore::TextureMapperShaderProgram::getLocation):
44325
44326 2012-10-16  David Grogan  <dgrogan@chromium.org>
44327
44328         Inspector: Don't fire assert when inspecting an empty db
44329         https://bugs.webkit.org/show_bug.cgi?id=99370
44330
44331         Reviewed by Vsevolod Vlasov.
44332
44333         * inspector/InspectorIndexedDBAgent.cpp:
44334         (WebCore):
44335
44336 2012-10-16  Tony Chang  <tony@chromium.org>
44337
44338         Unreviewed, try to fix the Apple Win build by forcing a rebuild of RenderingAllInOne.cpp.
44339
44340         * rendering/RenderingAllInOne.cpp:
44341
44342 2012-10-16  Andrew Scherkus  <scherkus@chromium.org>
44343
44344         Fix crash in WebCore::MediaControlPanelElement::makeTransparent()
44345         https://bugs.webkit.org/show_bug.cgi?id=97951
44346
44347         Reviewed by Simon Fraser.
44348
44349         No new tests as it's a speculative fix based on crash dump analysis.
44350      
44351         Despite MediaControlPanelElement checking for document()->page() nullity in other places, it forgot one check in makeTransparent().
44352
44353         * html/shadow/MediaControlElements.cpp:
44354         (WebCore::MediaControlPanelElement::makeTransparent):
44355
44356 2012-10-16  Emil A Eklund  <eae@chromium.org>
44357
44358         Remove special-case flooring of baselinePosition for replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44359         https://bugs.webkit.org/show_bug.cgi?id=99376
44360
44361         Reviewed by Levi Weintraub.
44362
44363         In r122769 (bug 91410) we added a special-case handling for
44364         replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44365         to work around positioning issues in a couple of svg tests.
44366         This was needed to compensate for a workaround in the table
44367         painting code that was fixed in r131358 (bug 99364). As such the
44368         special-case handling for replaced elements is no longer needed
44369         in InlineFlowBox::placeBoxesInBlockDirection.
44370
44371         Furthermore this caused problems with caret repainting leaving
44372         residual pixels which motivated this change.
44373
44374         No new tests, have not been able to write a repaint test to
44375         demonstrate the caret repaint issue.
44376
44377         * rendering/InlineFlowBox.cpp:
44378         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
44379
44380 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44381
44382         Some #include hygiene
44383         https://bugs.webkit.org/show_bug.cgi?id=99500
44384
44385         Reviewed by Tony Chang.
44386
44387         Clean up some #includes, mostly related to GraphicsLayer.h. In many
44388         cases this can be replaced by PlatformLayer.h.
44389         
44390         Remove an #include of PluginViewBase.h from Page.h, which was a source
44391         of #include fan-out.
44392
44393         * html/canvas/CanvasRenderingContext2D.h:
44394         * page/Page.h:
44395         * page/scrolling/ScrollingCoordinator.h:
44396         * page/scrolling/ScrollingStateNode.h:
44397         * page/scrolling/mac/ScrollingStateNodeMac.mm:
44398         * platform/graphics/GraphicsContext3D.h:
44399         * platform/graphics/MediaPlayer.h:
44400         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
44401         * platform/graphics/gpu/DrawingBuffer.h:
44402         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
44403         * plugins/PluginViewBase.h:
44404
44405 2012-10-16  Adam Barth  <abarth@webkit.org>
44406
44407         Document::adoptNode shouldn't special-case <iframe>
44408         https://bugs.webkit.org/show_bug.cgi?id=99247
44409
44410         Reviewed by Ryosuke Niwa.
44411
44412         The special case was added in http://trac.webkit.org/changeset/75293 to
44413         fix a bug with magic iframes. Originally, I planned to remove this
44414         special case, but further investigation reveals that other browsers
44415         throw exceptions for other frame owner elements as well. Now we treat
44416         all frame owner elements the same way.
44417
44418         Test: fast/frames/adopt-object-into-itself.html
44419
44420         * dom/Document.cpp:
44421         (WebCore::Document::adoptNode):
44422
44423 2012-10-16  Dominik Röttsches  <dominik.rottsches@intel.com>
44424
44425         Init timeout flag in ResourceErrorMac
44426         https://bugs.webkit.org/show_bug.cgi?id=99478
44427
44428         Reviewed by Alexey Proskuryakov.
44429
44430         On construction from platform error types, initialize the timeout flag 
44431         to true if the error results from a timeout.
44432
44433         No new tests, covered by tests that will be added in bug 74802.
44434
44435         * platform/network/mac/ResourceErrorMac.mm:
44436         (WebCore::ResourceError::platformLazyInit): Initializing timeout flag if the error was a timeout.
44437
44438 2012-10-16  Tony Chang  <tony@chromium.org>
44439
44440         input[type=range] as a flex item renders thumb at wrong position
44441         https://bugs.webkit.org/show_bug.cgi?id=98666
44442
44443         Reviewed by Ojan Vafai.
44444
44445         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
44446         The previous code was trying to set the height to 100% and had a bunch of hacks in
44447         the renderer code to set an explicit height. Using the new flexbox allows us to
44448         remove these renderer hacks.
44449
44450         Test: css3/flexbox/flexitem-stretch-range.html
44451
44452         * css/html.css:
44453         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
44454         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
44455         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
44456         no longer setting top/left in the layout code.
44457         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
44458         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
44459         * html/RangeInputType.cpp:
44460         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
44461         since the height of the control should change when adding/removing a datalist.
44462         * html/shadow/SliderThumbElement.cpp:
44463         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
44464         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
44465         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
44466         we use the intrinsic size.
44467         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
44468         This used to be handled in the thumb's layout method, but I deleted that.
44469         * html/shadow/SliderThumbElement.h:
44470         * rendering/RenderSlider.cpp:
44471         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
44472         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
44473         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
44474         and expects the input to also have a height of 1px.  It worked before because the height of the input
44475         didn't depend on the height of its children.
44476         * rendering/RenderSlider.h: Fix indentation.
44477         (RenderSlider): Use new flexible box.
44478
44479 2012-10-16  Dima Gorbik  <dgorbik@apple.com>
44480
44481         Remove Platform.h include from the header files.
44482         https://bugs.webkit.org/show_bug.cgi?id=98665
44483
44484         Reviewed by Eric Seidel.
44485
44486         We don't want other clients that include WebKit headers to know about Platform.h.
44487
44488         No new tests.
44489
44490         * platform/MemoryPressureHandler.h:
44491         * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
44492         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44493         * platform/graphics/filters/arm/FELightingNEON.h:
44494
44495 2012-10-16  Xianzhu Wang  <wangxianzhu@chromium.org>
44496
44497         [Chromium] Android: Need a way to get appropriate font for some specific characters.
44498         https://bugs.webkit.org/show_bug.cgi?id=67587
44499
44500         Reviewed by Adam Barth.
44501
44502         Use the new Skia API SkGetFallbackFamilyNameForChar() to get the family name for individual characters.
44503
44504         No new tests. The following existing tests pass with the change:
44505         fast/writing-mode/vertical-subst-font-vert-no-dflt.html
44506         fast/dynamic/text-combine.html
44507         fast/writing-mode/japanese-rl-text.html
44508         fast/writing-mode/japanese-rl-selection.html
44509         fast/writing-mode/japanese-lr-text.html
44510         fast/repaint/japanese-rl-selection-repaint.html
44511         fast/writing-mode/border-vertical-lr.html
44512
44513         * platform/graphics/chromium/FontCacheAndroid.cpp:
44514         (WebCore::FontCache::getFontDataForCharacters):
44515
44516 2012-10-16  Tommy Widenflycht  <tommyw@google.com>
44517
44518         MediaStream API: Add the chromium API for RTCDataChannel
44519         https://bugs.webkit.org/show_bug.cgi?id=99435
44520
44521         Reviewed by Adam Barth.
44522
44523         Adding WebRTCDataChannel.
44524
44525         Test: fast/mediastream/RTCPeerConnection-datachannel.html
44526
44527         * WebCore.gypi:
44528         * platform/chromium/support/WebRTCDataChannel.cpp: Added.
44529         (WebKit):
44530         (ExtraDataContainer):
44531         (WebKit::ExtraDataContainer::ExtraDataContainer):
44532         (WebKit::ExtraDataContainer::extraData):
44533         (WebKit::WebRTCDataChannel::WebRTCDataChannel):
44534         (WebKit::WebRTCDataChannel::initialize):
44535         (WebKit::WebRTCDataChannel::assign):
44536         (WebKit::WebRTCDataChannel::reset):
44537         (WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
44538         (WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
44539         (WebKit::WebRTCDataChannel::extraData):
44540         (WebKit::WebRTCDataChannel::setExtraData):
44541         (WebKit::WebRTCDataChannel::label):
44542         (WebKit::WebRTCDataChannel::reliable):
44543         (WebKit::WebRTCDataChannel::setBufferedAmount):
44544         (WebKit::WebRTCDataChannel::readyStateChanged):
44545         (WebKit::WebRTCDataChannel::dataArrived):
44546         (WebKit::WebRTCDataChannel::error):
44547         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
44548         (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
44549         (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
44550         (WebCore):
44551         (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
44552         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
44553         (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
44554
44555 2012-10-16  Brady Eidson  <beidson@apple.com>
44556
44557         Update indentation in *ResourceLoader headers to match modern WebKit style
44558         https://bugs.webkit.org/show_bug.cgi?id=99487
44559
44560         Reviewed by Beth Dakin.
44561
44562         I'm going to be working on these classes and the indentation is driving me crazy.
44563
44564         * loader/MainResourceLoader.h:
44565         (WebCore):
44566         (MainResourceLoader):
44567         (WebCore::MainResourceLoader::isLoadingMultipartContent):
44568
44569         * loader/NetscapePlugInStreamLoader.h:
44570         (WebCore):
44571         (NetscapePlugInStreamLoaderClient):
44572         (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
44573         (WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
44574         (WebCore::NetscapePlugInStreamLoaderClient::~NetscapePlugInStreamLoaderClient):
44575         (NetscapePlugInStreamLoader):
44576
44577         * loader/ResourceLoader.h:
44578         (WebCore):
44579         (ResourceLoader):
44580         (WebCore::ResourceLoader::documentLoader):
44581         (WebCore::ResourceLoader::originalRequest):
44582         (WebCore::ResourceLoader::identifier):
44583         (WebCore::ResourceLoader::didReceiveCachedMetadata):
44584         (WebCore::ResourceLoader::willStopBufferingData):
44585         (WebCore::ResourceLoader::shouldUseCredentialStorage):
44586         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
44587         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
44588         (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
44589         (WebCore::ResourceLoader::receivedCancellation):
44590         (WebCore::ResourceLoader::url):
44591         (WebCore::ResourceLoader::handle):
44592         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
44593         (WebCore::ResourceLoader::reachedTerminalState):
44594         (WebCore::ResourceLoader::request):
44595         (WebCore::ResourceLoader::cancelled):
44596         (WebCore::ResourceLoader::defersLoading):
44597
44598 2012-10-16  Beth Dakin  <bdakin@apple.com>
44599
44600         https://bugs.webkit.org/show_bug.cgi?id=99254
44601         Make ScrollingTree an actual tree of nodes, and have it reflect the 
44602         ScrollingStateTree
44603
44604         Reviewed by Simon Fraser.
44605
44606         This patch finally makes the ScrollingTree over on the 
44607         ScrollingThread aware of the changes that we have been making to the 
44608         ScrollingStateTree.
44609
44610         First, it makes ScrollingTreeNode a much more generic class, similar 
44611         to ScrollingStateNode. It is an abstract class and we will add other 
44612         types of nodes such as ScrollingTreeFixedNodes that will inherit from 
44613         this class. 
44614
44615         All of the scrolling functionality that was in ScrollingTreeNode has 
44616         been moved to ScrollingTreeScrollingNode. And likewise, 
44617         ScrollingTreeNodeMac has been re-named to 
44618         ScrollingTreeScrollingNodeMac. 
44619
44620         And finally, instead of just updating and creating the root node, 
44621         ScrollingTree now recurses through the whole ScrollingStateTree to 
44622         create and update a full tree of nodes.
44623
44624         New files and moves files.
44625         * WebCore.xcodeproj/project.pbxproj:
44626
44627         Add a getter for the children vector since we need to recurse it in 
44628         ScrollingTree.
44629         * page/scrolling/ScrollingStateNode.h:
44630         (WebCore::ScrollingStateNode::children):
44631         (ScrollingStateNode):
44632
44633         m_rootNode is now a ScrollingTreeScrollingNode.
44634         * page/scrolling/ScrollingTree.cpp:
44635         (WebCore::ScrollingTree::ScrollingTree):
44636
44637         Instead of just updating the root node, call two new functions that 
44638         will take care of updating the whole tree.
44639         (WebCore::ScrollingTree::commitNewTreeState):
44640
44641         This function ecurses through the ScrollingStateTree and updates the 
44642         corresponding ScrollingTreeNodes.
44643         (WebCore::ScrollingTree::updateNodesFromStateNode):
44644
44645         This function takes the ScrollingStateTree's list of removed nodes 
44646         and removes the corresponding nodes from the ScrollingTree. It will 
44647         destroy the nodes after removing it as long as it's not the root 
44648         node. I think it's the safest choice for now to never remove the root 
44649         node. 
44650         (WebCore::ScrollingTree::removeDestroyedNodes):
44651
44652         ScrollingTree now keeps a HashMap mapping ScrollingNodeIDs to 
44653         ScrollingTreeNodes.
44654         * page/scrolling/ScrollingTree.h:
44655
44656         All of the scrolling-related functionality has been moved from this 
44657         class to new class ScrollingTreeScrollingNode. And some basic tree 
44658         traversal functionality has been added.
44659         * page/scrolling/ScrollingTreeNode.cpp:
44660         (WebCore::ScrollingTreeNode::ScrollingTreeNode):
44661         (WebCore::ScrollingTreeNode::appendChild):
44662         (WebCore::ScrollingTreeNode::removeChild):
44663         * page/scrolling/ScrollingTreeNode.h:
44664         (WebCore):
44665         (ScrollingTreeNode):
44666         (WebCore::ScrollingTreeNode::scrollingNodeID):
44667         (WebCore::ScrollingTreeNode::setScrollingNodeID):
44668         (WebCore::ScrollingTreeNode::parent):
44669         (WebCore::ScrollingTreeNode::setParent):
44670         (WebCore::ScrollingTreeNode::scrollingTree):
44671
44672         This class contains all of the scrolling-related work that used to be 
44673         done in ScrollingTreeNode.
44674         * page/scrolling/ScrollingTreeScrollingNode.cpp: Added.
44675         (WebCore):
44676         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
44677         (WebCore::ScrollingTreeScrollingNode::~ScrollingTreeScrollingNode):
44678         (WebCore::ScrollingTreeScrollingNode::update):
44679         * page/scrolling/ScrollingTreeScrollingNode.h: Added.
44680         (WebCore):
44681         (ScrollingTreeScrollingNode):
44682         (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionOnMainThread):
44683         (WebCore::ScrollingTreeScrollingNode::viewportRect):
44684         (WebCore::ScrollingTreeScrollingNode::contentsSize):
44685         (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
44686         (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
44687         (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
44688         (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
44689         (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
44690         (WebCore::ScrollingTreeScrollingNode::scrollOrigin):
44691
44692         I noticed this whitespace error and had to fix it.
44693         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
44694         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
44695
44696         Include ScrollingTreeScrollingNodeMac.h instead of 
44697         ScrollingTreeNodeMac.h
44698         * page/scrolling/mac/ScrollingTreeMac.mm:
44699
44700         This class was just re-named.
44701         * page/scrolling/mac/ScrollingTreeNodeMac.h: Removed.
44702         * page/scrolling/mac/ScrollingTreeNodeMac.mm: Removed.
44703         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: Copied from page/scrolling/mac/ScrollingTreeNodeMac.h.
44704         (ScrollingTreeScrollingNodeMac):
44705         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeNodeMac.mm.
44706         (WebCore::ScrollingTreeScrollingNode::create):
44707         (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
44708         (WebCore::ScrollingTreeScrollingNodeMac::~ScrollingTreeScrollingNodeMac):
44709         (WebCore::ScrollingTreeScrollingNodeMac::update):
44710         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
44711         (WebCore::ScrollingTreeScrollingNodeMac::allowsHorizontalStretching):
44712         (WebCore::ScrollingTreeScrollingNodeMac::allowsVerticalStretching):
44713         (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
44714         (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
44715         (WebCore::ScrollingTreeScrollingNodeMac::canScrollHorizontally):
44716         (WebCore::ScrollingTreeScrollingNodeMac::canScrollVertically):
44717         (WebCore::ScrollingTreeScrollingNodeMac::shouldRubberBandInDirection):
44718         (WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
44719         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollBy):
44720         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
44721         (WebCore::ScrollingTreeScrollingNodeMac::startSnapRubberbandTimer):
44722         (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
44723         (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
44724         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
44725         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
44726         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
44727         (WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
44728         (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
44729         (WebCore::ScrollingTreeScrollingNodeMac::scrollBy):
44730         (WebCore::ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
44731         (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
44732         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
44733
44734 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44735
44736         Add a new layer type for the page tiled cache layer
44737         https://bugs.webkit.org/show_bug.cgi?id=99491
44738
44739         Reviewed by Dean Jackson.
44740
44741         In preparation for using tile cache layers in place of CATiledLayer,
44742         add a new PlatformCALayer layer type LayerTypePageTileCacheLayer,
44743         since the page tile cache will have some different behavior from
44744         other tile cache layers.
44745         
44746         Generalize code that was looking at LayerTypeTileCacheLayer to use
44747         usesTileCacheLayer() if it applies to both types of tile caches.
44748
44749         * platform/graphics/ca/GraphicsLayerCA.cpp:
44750         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
44751         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Show the tile
44752         wash for tiled layers as well as layers with transforms (the tile
44753         wash is just for debugging).
44754         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
44755         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
44756         * platform/graphics/ca/PlatformCALayer.h:
44757         (WebCore::PlatformCALayer::usesTileCacheLayer):
44758         (PlatformCALayer):
44759         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
44760         (PlatformCALayer::PlatformCALayer):
44761         (PlatformCALayer::~PlatformCALayer):
44762         (PlatformCALayer::tiledBacking):
44763         * platform/graphics/mac/WebLayer.mm:
44764         (drawLayerContents): Avoid double-drawing the repaint counter in tile cache layers.
44765
44766 2012-10-16  Stephen Chenney  <schenney@chromium.org> 
44767         An feImage that tries to render itself should be stopped
44768         https://bugs.webkit.org/show_bug.cgi?id=94652
44769
44770         Reviewed by Eric Seidel.
44771
44772         An SVG feImage filter element will accept, as the src to render, an
44773         SVG document that makes use of the feImage itself. This causes the
44774         feImage to try to draw itself while already in the process of drawing
44775         itself. Various problems arise from this. The invariant we wish to
44776         maintain is that no element in the src tree of an feImage element
44777         refers to that feImage.
44778
44779         This patch adds a flag to all FilterData objects that tracks whether or
44780         not the filter is currently applying itself, and avoids applying the
44781         filter recursively.
44782
44783         While it may seem better to catch this problem when the src is set, or
44784         when the filter is built, that turns out to be challenging and
44785         inefficient. Say we choose to test when the src atttribute is set. To
44786         do so would require looking through all of the DOM nodes that will be
44787         rendered for the src, finding all resources used, and checking if any
44788         of them make use fo the feImage element that we are setting the source
44789         for. The infrastructure is not in place to do that, and it would
44790         involve walking a potentially very large portion of the DOM in order
44791         to detect a very rare situation. Note that it is not enough just to
44792         walk the DOM directly under the src; we also need to recursively follow any
44793         resource links to see if they use the feImage (e.g. patterns or
44794         masks or use or ...).
44795
44796         If we instead try to use the renderer node to find self referencing,
44797         we need to recursively walk a potentially very large render tree,
44798         tracing all resources in search of the feImage. This would need to be
44799         done every time the filter is built, which is again a significant
44800         overhead for a situation that is very unlikely to occur. And we do not
44801         have methods that make it easy to find feImage filter effect nodes; they are
44802         hidden behind filter resource nodes.
44803
44804         Hence the runtime check to catch the problem. The check must be in
44805         FilterData and RenderSVGResourceFilter code because we must prevent
44806         the destruction of the feImage when we encounter it recursively.
44807
44808         This patch also renames FilterData::builded to FilterData::isBuilt.
44809
44810         Test: svg/filters/feImage-self-referencing.html
44811
44812         * rendering/svg/RenderSVGResourceFilter.cpp:
44813         (WebCore::ApplyingFilterEffectGuard): Guard to ensure that, in the future, we always
44814         clear the isApplying flag even if the postApplyResource method returns early.
44815         (WebCore::RenderSVGResourceFilter::applyResource): Do not apply a resource that is already applying and
44816         rename builded to isBuilt.
44817         (WebCore::RenderSVGResourceFilter::postApplyResource): Mark a resource as applying and clear after
44818         it is done. Abort if a resource is already applying when the method begins. Rename builded to isBuilt.
44819         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Rename builded to isBuilt.
44820         * rendering/svg/RenderSVGResourceFilter.h:
44821         (WebCore::FilterData::FilterData):
44822         (FilterData): Add isApplying and rename builded to isBuilt.
44823
44824 2012-10-16  Nate Chapin  <japhet@chromium.org>
44825
44826         sendResourceLoadCallbacks() is poorly named
44827         https://bugs.webkit.org/show_bug.cgi?id=99482
44828
44829         Reviewed by Alexey Proskuryakov.
44830
44831         In both CachedResource and ResourceLoader, rename sendResourceLoadCallbacks()
44832         to shouldSendResourceLoadCallbacks() to better indicate that it is a simple getter.
44833
44834         No new tests, simple renaming.
44835
44836         * loader/FrameLoader.cpp:
44837         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
44838         * loader/ResourceLoader.h:
44839         (WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
44840         * loader/cache/CachedResource.h:
44841         (WebCore::CachedResource::shouldSendResourceLoadCallbacks):
44842
44843 2012-10-16  Chris Rogers  <crogers@google.com>
44844
44845         Rename some AudioNodes
44846         https://bugs.webkit.org/show_bug.cgi?id=99358
44847
44848         Reviewed by Daniel Bates.
44849
44850         Here's a list of the node names, showing the changing ones:
44851             AudioBufferSourceNode
44852             MediaElementAudioSourceNode
44853             MediaStreamAudioSourceNode
44854             JavaScriptAudioNode ------------> ScriptProcessorNode
44855             RealtimeAnalyserNode ------------> AnalyserNode
44856             AudioGainNode ------------> GainNode
44857             DelayNode
44858             BiquadFilterNode
44859             AudioPannerNode ------------> PannerNode
44860             ConvolverNode
44861             AudioChannelSplitter ------------> ChannelSplitterNode
44862             AudioChannelMerger ------------> ChannelMergerNode
44863             DynamicsCompressorNode
44864             Oscillator ------------> OscillatorNode
44865
44866         * CMakeLists.txt:
44867         * DerivedSources.make:
44868         * DerivedSources.pri:
44869         * GNUmakefile.list.am:
44870         * Modules/webaudio/AnalyserNode.cpp: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp.
44871         * Modules/webaudio/AnalyserNode.idl: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl.
44872         * Modules/webaudio/AudioBufferSourceNode.cpp:
44873         (WebCore::AudioBufferSourceNode::setPannerNode):
44874         * Modules/webaudio/AudioBufferSourceNode.h:
44875         (AudioBufferSourceNode):
44876         * Modules/webaudio/AudioContext.cpp:
44877         (WebCore::AudioContext::createJavaScriptNode):
44878         (WebCore::AudioContext::createPanner):
44879         (WebCore::AudioContext::createAnalyser):
44880         (WebCore::AudioContext::createGainNode):
44881         (WebCore::AudioContext::createChannelSplitter):
44882         (WebCore::AudioContext::createChannelMerger):
44883         (WebCore::AudioContext::createOscillator):
44884         * Modules/webaudio/AudioContext.h:
44885         (WebCore):
44886         (AudioContext):
44887         * Modules/webaudio/AudioContext.idl:
44888         * Modules/webaudio/ChannelMergerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.cpp.
44889         * Modules/webaudio/ChannelMergerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.h.
44890         (WebCore):
44891         (ChannelMergerNode):
44892         * Modules/webaudio/ChannelMergerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.idl.
44893         * Modules/webaudio/ChannelSplitterNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.cpp.
44894         * Modules/webaudio/ChannelSplitterNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.h.
44895         (WebCore):
44896         (ChannelSplitterNode):
44897         * Modules/webaudio/ChannelSplitterNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.idl.
44898         * Modules/webaudio/DOMWindowWebAudio.idl:
44899         * Modules/webaudio/GainNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.cpp.
44900         * Modules/webaudio/GainNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.h.
44901         * Modules/webaudio/GainNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.idl.
44902         * Modules/webaudio/OscillatorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/Oscillator.cpp.
44903         * Modules/webaudio/OscillatorNode.h: Renamed from Source/WebCore/Modules/webaudio/Oscillator.h.
44904         * Modules/webaudio/OscillatorNode.idl: Renamed from Source/WebCore/Modules/webaudio/Oscillator.idl.
44905         * Modules/webaudio/PannerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.cpp.
44906         * Modules/webaudio/PannerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.h.
44907         (WebCore):
44908         * Modules/webaudio/PannerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.idl.
44909         * Modules/webaudio/ScriptProcessorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.cpp.
44910         * Modules/webaudio/ScriptProcessorNode.h: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.h.
44911         (WebCore):
44912         * Modules/webaudio/ScriptProcessorNode.idl: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.idl.
44913         * Modules/webaudio/WaveTable.cpp:
44914         (WebCore::WaveTable::createSine):
44915         (WebCore::WaveTable::createSquare):
44916         (WebCore::WaveTable::createSawtooth):
44917         (WebCore::WaveTable::createTriangle):
44918         (WebCore::WaveTable::generateBasicWaveform):
44919         * Target.pri:
44920         * UseJSC.cmake:
44921         * WebCore.gypi:
44922         * WebCore.xcodeproj/project.pbxproj:
44923         * bindings/js/JSScriptProcessorNodeCustom.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp.
44924         (WebCore):
44925         (WebCore::JSScriptProcessorNode::visitChildren):
44926         * dom/EventTarget.h:
44927         (WebCore):
44928         * dom/EventTargetFactory.in:
44929
44930 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44931
44932         [Texmap] Refactor TextureMapperShaderManager to be clearer
44933         https://bugs.webkit.org/show_bug.cgi?id=86048
44934
44935         Reviewed by Martin Robinson.
44936
44937         Previous implementation of TextureMapperShaderManager was very verbose, calling for too
44938         many casts and ambiguous ownership.
44939         This refactor does the following:
44940         1. TextureMapperShaderProgram is one class without subclasses.
44941         2. Uniform/Attribute accessors are generated by special macros (TEXMAP_DECLARE_...) that
44942            generate both the C++ access function, as well as the GLSL name of the variable. This
44943            allows adding/removing variables from a shader without adding broiler-plate code like
44944            before.
44945
44946         After this change TextureMapperShaderManager has only one responsibility - dealing with
44947         TextureMapperGL's built-in shaders and their lifecycle. Preparing filters etc. is done
44948         in TextureMapperGL.
44949
44950         This is a refactor without new functionality. It has been verified to not break any existing
44951         relevant test.
44952
44953         * platform/graphics/texmap/TextureMapperGL.cpp:
44954         (WebCore::TextureMapperGL::drawBorder):
44955         (WebCore::TextureMapperGL::drawQuad):
44956         (WebCore::TextureMapperGL::drawTextureRectangleARB):
44957         (WebCore::TextureMapperGL::drawTexture):
44958         (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
44959         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
44960         (WebCore::TextureMapperGL::beginClip):
44961             Use the MACRO-generated uniform accessors.
44962
44963         (WebCore):
44964         (WebCore::keyForFilterType):
44965         (WebCore::getPassesRequiredForFilter):
44966         (WebCore::gauss):
44967         (WebCore::gaussianKernel):
44968         (WebCore::prepareFilterProgram):
44969         (WebCore::TextureMapperGL::drawFiltered):
44970         (WebCore::BitmapTextureGL::applyFilters):
44971             Move the filter logic to TextureMapperGL
44972
44973         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44974         (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
44975         (WebCore::TextureMapperShaderProgram::getLocation):
44976         (ShaderSpec):
44977         (WebCore::ShaderSpec::ShaderSpec):
44978         (WebCore::getShaderSpec):
44979         (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
44980         (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
44981         (WebCore::TextureMapperShaderManager::getShaderProgram):
44982         * platform/graphics/texmap/TextureMapperShaderManager.h:
44983         (WebCore):
44984         (WebCore::TextureMapperShaderProgram::programID):
44985         (WebCore::TextureMapperShaderProgram::context):
44986         (WebCore::TextureMapperShaderProgram::create):
44987         (TextureMapperShaderProgram):
44988         (TextureMapperShaderManager):
44989             See description.
44990
44991 2012-10-16  Nico Weber  <thakis@chromium.org>
44992
44993         [chromium/mac] Make spelling indicator HighDPI
44994         https://bugs.webkit.org/show_bug.cgi?id=99417
44995
44996         Reviewed by Stephen White.
44997
44998         This is the mac version of http://trac.webkit.org/changeset/130940
44999         Since the mac and non-mac code are very similar again, merge the two
45000         code paths again.
45001
45002         Covered by editing/spelling/(inline-spelling|grammar)-markers-hidpi.html
45003
45004         * platform/graphics/skia/GraphicsContextSkia.cpp:
45005         (WebCore::GraphicsContext::drawLineForDocumentMarker):
45006
45007 2012-10-16  Tony Chang  <tony@chromium.org>
45008
45009         in a column flexbox, input overflows the box when stretched
45010         https://bugs.webkit.org/show_bug.cgi?id=99273
45011
45012         Reviewed by Ojan Vafai.
45013
45014         Fix a bug where we didn't properly subtract padding and border when overriding the child size.
45015         We didn't see this because of a performance optimization in RenderBox where we stretch children.
45016         Also apply this performance optimization in new flexbox for form controls.
45017
45018         Test: css3/flexbox/stretch-input-in-column.html
45019
45020         * rendering/RenderBox.cpp:
45021         (WebCore::flexboxChildHasStretchAlignment):
45022         (WebCore::isStretchingVerticalFlexboxChild):
45023         (WebCore::RenderBox::sizesLogicalWidthToFitContent): Apply performance optimization to form controls in new flexbox.
45024         * rendering/RenderFlexibleBox.cpp:
45025         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Properly subtract border and padding.
45026
45027 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
45028
45029         REGRESSION (r128787): Fixed position div causes other elements to not update correctly
45030         https://bugs.webkit.org/show_bug.cgi?id=98579
45031
45032         Reviewed by Beth Dakin.
45033
45034         RenderLayers cache repaint rects which are computed relative to the repaint container.
45035         Repaint containers depend on whether a RenderLayerBacking has its own backing store,
45036         so if that changes, we need to recompute repaint rects for all descendants.
45037         
45038         Test: compositing/repaint/requires-backing-repaint.html
45039
45040         * rendering/RenderLayerBacking.cpp:
45041         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
45042
45043 2012-10-16  Zan Dobersek  <zandobersek@gmail.com>
45044
45045         [GStreamer] GstBuffer ref race in WebKitWebAudioSrcLoop
45046         https://bugs.webkit.org/show_bug.cgi?id=95833
45047
45048         Reviewed by Philippe Normand.
45049
45050         The render bus used in GStreamer's implementation of AudioDestination no longer
45051         allocates memory for each of its channels. Rather than that, when looping, the
45052         data is rendered into a channel-specific GstBuffer. Each buffer is then chained
45053         to the appropriate GstPad, as has been the case before.
45054
45055         No new tests - there are tests covering this change but they are not yet working
45056         on the GTK port or any other GStreamer implementation of Web Audio.
45057
45058         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
45059         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
45060         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
45061         (_WebKitWebAudioSourcePrivate): Remove an unused member variable.
45062         (webkit_web_audio_src_init): Remove an unnecessary line.
45063         (webKitWebAudioSrcConstructed): Ditto.
45064         (webKitWebAudioSrcLoop):
45065
45066 2012-10-16  Pablo Flouret  <pablof@motorola.com>
45067
45068         Pre-process CSSGrammar.y before running through bison.
45069         https://bugs.webkit.org/show_bug.cgi?id=94290
45070
45071         Reviewed by Tony Chang.
45072
45073         Running CSSGrammar.y through a preprocessor allows the use of feature
45074         defines in all places of the yacc file (i.e. not just in C blocks).
45075         Mostly useful to be able to keep every part of a feature under feature
45076         flags for self-documenting purposes.
45077
45078         No new tests, CSSGrammar.y should be generated correctly and everything
45079         should keep working as before.
45080
45081         * CMakeLists.txt:
45082         * DerivedSources.make:
45083         * DerivedSources.pri:
45084         * GNUmakefile.am:
45085             Modify build systems to use makegrammar.pl to generate the .y files
45086             and run those through bison.
45087
45088         * WebCore.gyp/WebCore.gyp:
45089             Add a new action to preprocess the CSSGrammar.y.in file before the
45090             bison rule is run.
45091
45092         * WebCore.vcproj/WebCore.vcproj:
45093         * WebCore.xcodeproj/project.pbxproj:
45094             Add the new .y.in / .y.includes files.
45095
45096         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
45097             Also moved the top declarations section that has includes, defines,
45098             etc. to its own file. These shouldn't be touched by the first
45099             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
45100             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
45101             yet.
45102         * css/CSSGrammar.y.includes: Added.
45103             The aforementioned declarations header section. After the .y.in file
45104             is processed it will be concatenated with this one to make the
45105             CSSGrammar.y file.
45106
45107         * css/makegrammar.pl:
45108             Modify the script to handle .y.in files.
45109
45110 2012-10-16  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
45111
45112         Implement testRunner.dumpSelectionRect() in WebKitTestRunner
45113         https://bugs.webkit.org/show_bug.cgi?id=69545
45114
45115         Reviewed by Simon Fraser.
45116
45117         * WebCore.exp.in:
45118
45119 2012-10-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>
45120
45121         [Qt] Implement fastBoundingPath/boundingPath distinction.
45122         https://bugs.webkit.org/show_bug.cgi?id=99471
45123
45124         Reviewed by Noam Rosenthal.
45125
45126         Tested by existing test: svg/custom/getBBox-path.svg
45127
45128         * platform/graphics/Path.cpp:
45129         * platform/graphics/qt/PathQt.cpp:
45130         (WebCore::Path::fastBoundingRect):
45131         (WebCore::Path::boundingRect):
45132
45133 2012-10-16  Rob Buis  <rbuis@rim.com>
45134
45135         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
45136         https://bugs.webkit.org/show_bug.cgi?id=99302
45137
45138         Reviewed by Yong Li.
45139
45140         Fix a warning introduced by r131335. Since in release BBLOG is empty, only enable this block in debug builds.
45141
45142         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
45143         (WebCore::GraphicsContext3D::compileShader):
45144
45145 2012-10-16  Antoine Quint  <graouts@apple.com>
45146
45147         Inspector should allow reading the compositing debug settings
45148         https://bugs.webkit.org/show_bug.cgi?id=99458
45149
45150         Reviewed by Timothy Hatcher.
45151
45152         * inspector/Inspector.json:
45153         * inspector/InspectorPageAgent.cpp:
45154         (WebCore::InspectorPageAgent::getCompositingBordersVisible):
45155         * inspector/InspectorPageAgent.h:
45156
45157 2012-10-16  Dan Bernstein  <mitz@apple.com>
45158
45159         Code to reverse a GlyphBuffer range is repeated in several places
45160         https://bugs.webkit.org/show_bug.cgi?id=99424
45161
45162         Reviewed by Adele Peterson.
45163
45164         * platform/graphics/FontFastPath.cpp:
45165         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
45166         GlyphBuffer::reverse.
45167         * platform/graphics/GlyphBuffer.h:
45168         (WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
45169         (WebCore::GlyphBuffer::swap): Made private.
45170         * platform/graphics/WidthIterator.cpp:
45171         (WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
45172         corrected their bounds.
45173         * platform/graphics/mac/FontComplexTextMac.cpp:
45174         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
45175         GlyphBuffer::range.
45176
45177 2012-10-16  Nate Chapin  <japhet@chromium.org>
45178
45179         Re-order CachedRawResource::data() to set m_data earlier
45180         https://bugs.webkit.org/show_bug.cgi?id=99361
45181
45182         Reviewed by Adam Barth.
45183
45184         Currently, we calculate the diff between the data parameter and m_data, call
45185         dataReceived(), then set m_data to data. If something inside dataReceived()
45186         tries to access m_data via CachedResource::resourceBuffer(), it will see the
45187         old data instead of the new data, which seems inconsistent.
45188
45189         No new tests, as no one appears to try to access m_data within dataReceived() currently.
45190
45191         * loader/cache/CachedRawResource.cpp:
45192         (WebCore::CachedRawResource::data):
45193
45194 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
45195
45196         Fold setCellLogicalWidths logic into RenderTableSection layout
45197         https://bugs.webkit.org/show_bug.cgi?id=99382
45198
45199         Reviewed by Eric Seidel.
45200
45201         setCellLogicalWidths was implemented as a pre-phase to laying out
45202         the table's sections. This split was artificial as any change in
45203         the columns' logical width should trigger a sections' relayout, which
45204         could propagate and mark the cells / rows as needed.
45205
45206         Merging setCellLogicalWidths into RenderTableSection::layout removes
45207         an unneeded cells walking and some clunkiness from our implementation.
45208
45209         Refactoring covered by the existing tests.
45210
45211         * rendering/RenderTable.cpp:
45212         (WebCore::RenderTable::RenderTable): Initialize our new boolean.
45213         (WebCore::RenderTable::layout):
45214         If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
45215         are marked for layout if there is the logical width change.
45216
45217         * rendering/RenderTable.h:
45218         (WebCore::RenderTable):
45219         Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).
45220
45221         (WebCore::RenderTable::setColumnPosition):
45222         If a column position changed, register that our column logical widths changed. This is not
45223         totally true, so added a comment about when it will be wrong.
45224
45225         * rendering/RenderTableCell.h:
45226         * rendering/RenderTableCell.cpp:
45227         (WebCore::RenderTableCell::setCellLogicalWidth):
45228         Updated the function to mark the cell and the row for layout. Also changed the argument to
45229         be an 'int' as this was what was passed in.
45230
45231         * rendering/RenderTableSection.cpp:
45232         (WebCore::RenderTableSection::layout):
45233         * rendering/RenderTableSection.h:
45234         Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
45235         the table layout's logical widths first so that rows are marked as needing layout as appropriate.
45236
45237 2012-10-16  Takashi Sakamoto  <tasak@google.com>
45238
45239         [Meta] [Shadow] contenteditable attribute for distributed nodes.
45240         https://bugs.webkit.org/show_bug.cgi?id=90017
45241
45242         Reviewed by Dimitri Glazkov.
45243
45244         If an element is distributed to an insertion point, the element's
45245         webkit-user-modify is inherited from its shadow host.
45246
45247         No new tests, because the existing test: user-modify-inheritance.html
45248         covers this change.
45249
45250         * css/StyleResolver.cpp:
45251         (WebCore::StyleResolver::styleForElement):
45252         After an element inherits a style from its parent, override user-modify
45253         by using the shadow host's style if the element is distributed.
45254
45255 2012-10-16  Vsevolod Vlasov  <vsevik@chromium.org>
45256
45257         Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.
45258         https://bugs.webkit.org/show_bug.cgi?id=99469
45259
45260         Reviewed by Pavel Feldman.
45261
45262         * WebCore.gypi:
45263         * WebCore.vcproj/WebCore.vcproj:
45264         * inspector/compile-front-end.py:
45265         * inspector/front-end/BreakpointManager.js:
45266         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
45267         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
45268         * inspector/front-end/CompilerScriptMapping.js:
45269         * inspector/front-end/JavaScriptSource.js: Removed.
45270         * inspector/front-end/JavaScriptSourceFrame.js:
45271         (WebInspector.JavaScriptSourceFrame):
45272         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
45273         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
45274         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
45275         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
45276         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
45277         (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
45278         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45279         (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
45280         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45281         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
45282         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
45283         (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
45284         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
45285         (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
45286         (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
45287         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
45288         * inspector/front-end/NetworkUISourceCodeProvider.js:
45289         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
45290         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
45291         * inspector/front-end/ResourceScriptMapping.js:
45292         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
45293         * inspector/front-end/ScriptSnippetModel.js:
45294         (WebInspector.ScriptSnippetModel):
45295         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
45296         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
45297         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
45298         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
45299         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
45300         (WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
45301         (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
45302         (WebInspector.SnippetScriptFile):
45303         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45304         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45305         * inspector/front-end/ScriptsNavigator.js:
45306         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
45307         (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
45308         * inspector/front-end/ScriptsPanel.js:
45309         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
45310         (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
45311         (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
45312         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
45313         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
45314         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
45315         * inspector/front-end/SnippetJavaScriptSourceFrame.js:
45316         (WebInspector.SnippetJavaScriptSourceFrame):
45317         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
45318         * inspector/front-end/StyleSheetOutlineDialog.js:
45319         (WebInspector.StyleSheetOutlineDialog):
45320         (WebInspector.StyleSheetOutlineDialog.show):
45321         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
45322         * inspector/front-end/StyleSource.js: Removed.
45323         * inspector/front-end/WebKit.qrc:
45324         * inspector/front-end/inspector.html:
45325
45326 2012-10-15  Jer Noble  <jer.noble@apple.com>
45327
45328         WebAudio: limit output level to 0db
45329         https://bugs.webkit.org/show_bug.cgi?id=95792
45330         <rdar://problem/11966135>
45331
45332         Reviewed by Chris Rogers.
45333
45334         Clamp the output buffer data to the range of [-1,1], which limits
45335         output volume to 0db. This ensures that malicious or poorly-written
45336         pages will not be able to blow through the system volume limit by
45337         creating >0db buffers and effects.
45338
45339         No new tests; added ManualTests/webaudio/limit-level-0db.html.
45340
45341         Clamp the output vector to values of [-1,1]:
45342         * platform/audio/mac/AudioDestinationMac.cpp:
45343         (WebCore::AudioDestinationMac::render):
45344
45345         Add a VectorMath wrapper for vDSP_clip to provide accelerated vector threshold operations:
45346         * platform/audio/VectorMath.h:
45347         * platform/audio/VectorMath.cpp:
45348         (VectorMath):
45349         (WebCore::VectorMath::vclip):
45350
45351 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
45352
45353         Web Inspector: Extract domain specific editing handling logic from UISourceCode (step 2).
45354         https://bugs.webkit.org/show_bug.cgi?id=99301
45355
45356         Reviewed by Pavel Feldman.
45357
45358         StyleFile and ScriptFile now listen for the UISourceCode WorkingCopyChanged/Committed events and process
45359         them instead of being called explicitly.
45360
45361         * inspector/front-end/JavaScriptSourceFrame.js:
45362         (WebInspector.JavaScriptSourceFrame):
45363         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45364         (WebInspector.JavaScriptSourceFrame.prototype._willMergeToVM):
45365         (WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
45366         (WebInspector.JavaScriptSourceFrame.prototype._willDivergeFromVM):
45367         (WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
45368         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
45369         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45370         * inspector/front-end/ResourceScriptMapping.js:
45371         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
45372         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
45373         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
45374         (WebInspector.ResourceScriptFile):
45375         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
45376         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
45377         * inspector/front-end/ScriptSnippetModel.js:
45378         (WebInspector.SnippetScriptFile):
45379         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45380         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45381         * inspector/front-end/StylesSourceMapping.js:
45382         (WebInspector.StyleFile):
45383         (WebInspector.StyleFile.prototype._workingCopyCommitted):
45384         (WebInspector.StyleFile.prototype._workingCopyChanged):
45385         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
45386         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
45387         (WebInspector.StyleFile.prototype.addRevision):
45388         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
45389         * inspector/front-end/UISourceCode.js:
45390         (WebInspector.UISourceCode.prototype.setWorkingCopy):
45391         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
45392
45393 2012-10-16  Alexander Pavlov  <apavlov@chromium.org>
45394
45395         Web Inspector: [Elements] Double-click to live edit style tags changes text to 'undefined' in some situations
45396         https://bugs.webkit.org/show_bug.cgi?id=99336
45397
45398         Reviewed by Vsevolod Vlasov.
45399
45400         Before editing text nodes, set their textContent to the nodeValue() of the corresponding WebInspector.DOMNode in the UI.
45401         Drive-by: fix text node editing artifact in the DOM tree.
45402
45403         * inspector/front-end/ElementsTreeOutline.js:
45404         (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
45405         (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
45406
45407 2012-10-16  Mike West  <mkwst@chromium.org>
45408
45409         Web Inspector: Whitelist safe styles for 'console.log('%c...', ...)'.
45410         https://bugs.webkit.org/show_bug.cgi?id=98945
45411
45412         Reviewed by Pavel Feldman.
45413
45414         Support for styling console messages via '%c' landed without any
45415         parsing of the style information provided. This means that it's fairly
45416         simple to accidentally or maliciously break the console with cleverly
45417         styled messages. To mitigate this risk, whitelisting a safe subset of
45418         CSS seems appropriate.
45419
45420         As a first pass at a reasonable whitelist, this patch allows
45421         'background[-*]', 'border[-*]', 'color[-*]', 'font[-*]',
45422         'margin[-*]', 'padding[-*]', 'text[-*]', '-webkit-background[-*]',
45423         '-webkit-border[-*]', '-webkit-font[-*]', '-webkit-margin[-*]',
45424         '-webkit-padding[-*]', and '-webkit-text[-*]'.
45425
45426         Test: inspector/console/console-format-style-whitelist.html
45427
45428         * inspector/front-end/ConsoleMessage.js:
45429         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
45430             Create a buffer element onto which the user-provided styles are
45431             applied. Whitelisted styles are transfered from the buffer onto
45432             the actual console message.
45433         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.isWhitelistedProperty):
45434              Returns true if the specific style is whitelisted. Expects styles
45435              in the hyphenated form (that is, '-webkit-padding-start' rather than
45436              CSSOM's 'webkitPaddingStart').
45437
45438 2012-10-16  Luke Macpherson   <macpherson@chromium.org>
45439
45440         Handle CSSPropertyOpacity in StyleBuilder.
45441         https://bugs.webkit.org/show_bug.cgi?id=99418
45442
45443         Reviewed by Alexis Menard.
45444
45445         One small step in moving from the huge switch in StyleResolver::applyProperty() to the StyleBuilder approach.
45446
45447         Covered by many existing tests, for example fast/text/complex-text-opacity.html.
45448
45449         * css/StyleBuilder.cpp:
45450         (WebCore::StyleBuilder::StyleBuilder):
45451         * css/StyleResolver.cpp:
45452         (WebCore::StyleResolver::applyProperty):
45453
45454 2012-10-16  Kent Tamura  <tkent@chromium.org>
45455
45456         Fix some appearance glitches of multiple fields input elements
45457         https://bugs.webkit.org/show_bug.cgi?id=99412
45458
45459         A follow-up change for r131421.
45460
45461         * css/themeWin.css:
45462         (input[type="text"]): Don't reset paddings for date/time types.
45463
45464 2012-10-16  Kenichi Ishibashi  <bashi@chromium.org>
45465
45466         hb_face_t instances should not depend on FontPlatformData
45467         https://bugs.webkit.org/show_bug.cgi?id=99430
45468
45469         Reviewed by Kent Tamura.
45470
45471         Use platform specific font data (e.g. SkTypeface) to get
45472         font tables for harfbuzz-ng.
45473
45474         No new tests. No changes in behavior.
45475
45476         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
45477         (WebCore::harfbuzzCairoGetTable): Takes cairo_scaled_font_t* as userData.
45478         (WebCore::HarfBuzzNGFace::createFace):
45479         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp:
45480         (WebCore::harfbuzzCoreTextGetTable): Takes CGFontRef as userData.
45481         (WebCore::HarfBuzzNGFace::createFace):
45482         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
45483         (WebCore::harfbuzzSkiaGetTable): Takes SkFontID as userData.
45484         (WebCore::HarfBuzzNGFace::createFace):
45485
45486 2012-10-16  Sheriff Bot  <webkit.review.bot@gmail.com>
45487
45488         Unreviewed, rolling out r131418.
45489         http://trac.webkit.org/changeset/131418
45490         https://bugs.webkit.org/show_bug.cgi?id=99431
45491
45492         since 131403 seems innocent (Requested by shinyak|_ on
45493         #webkit).
45494
45495         * dom/Document.cpp:
45496         (WebCore::isValidNameNonASCII):
45497         (WebCore):
45498         (WebCore::Document::isValidName):
45499
45500 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
45501
45502         Web Inspector: NMI Instrument InspectorOverlay. It costs us ~9Mb because it creates page size canvas.
45503         https://bugs.webkit.org/show_bug.cgi?id=99426
45504
45505         Reviewed by Yury Semikhatsky.
45506
45507         New object type InspectorOverlay was added. InspectorOverlay was instrumented.
45508         The instrumentation code automatically visits all the objects that can be reached via m_overlayPage.
45509
45510         * dom/WebCoreMemoryInstrumentation.cpp:
45511         (WebCore):
45512         * dom/WebCoreMemoryInstrumentation.h:
45513         (WebCoreMemoryTypes):
45514         * inspector/InspectorOverlay.cpp:
45515         (WebCore::InspectorOverlay::reportMemoryUsage):
45516         (WebCore):
45517         * inspector/InspectorOverlay.h:
45518         (InspectorOverlay):
45519
45520 2012-10-16  Kent Tamura  <tkent@chromium.org>
45521
45522         Remove unused functions in Locale* classes
45523         https://bugs.webkit.org/show_bug.cgi?id=99425
45524
45525         Reviewed by Yuta Kitamura.
45526
45527         Locale*::currentLocale has been unused since LocalizedDate* and
45528         LocalizedNumber* were removed.
45529
45530         No new tests. This shouldn't change any behavior.
45531
45532         * platform/text/LocaleICU.cpp: Remove createForCurrentLocale and currentLocale.
45533         * platform/text/LocaleICU.h: Ditto.
45534         * platform/text/LocaleWin.cpp: Remove currentLocale.
45535         * platform/text/LocaleWin.h: Ditto.
45536         * platform/text/mac/LocaleMac.h: Remove currentLocale.
45537         * platform/text/mac/LocaleMac.mm: Ditto.
45538
45539 2012-10-15  Kent Tamura  <tkent@chromium.org>
45540
45541         Fix some appearance glitches of multiple fields input elements
45542         https://bugs.webkit.org/show_bug.cgi?id=99412
45543
45544         Reviewed by Kentaro Hara.
45545
45546         1. If CSS-specified width is wider than the intrinsic width of an input,
45547         the spin button and the picker indicator triangle should be put at the
45548         right side of the content area.
45549
45550         2. Remove top, right, and bottom paddings to match input[type=number]
45551         appearance as possible.
45552
45553         3. Remove unnecessary position:relative for spin buttons.
45554
45555         4. Center content vertically if the height is taller than the intrinsic height.
45556
45557         Tests: Update all of rendering tests for input element with multiple fields UI.
45558
45559         * css/html.css:
45560         (input[type="date"]):
45561         - Specify display:-webkit-inline-flex and -webkit-align-items:stretch to center contents.
45562         - Remove top/right/bottom paddings.
45563         (input[type="datetime"]): Ditto.
45564         (input[type="datetime-local"]): Ditto.
45565         (input[type="month"]): Ditto.
45566         (input[type="time"]): Ditto.
45567         (input[type="week"]): Ditto.
45568         (input::-webkit-datetime-edit):
45569         - Switch to the starndard flexible box from the legacy one.
45570         - Add white-space:pre to avoid to collapse white spaces.
45571         (input::-webkit-datetime-edit-gap):
45572         Added. This element is added to push a spin button to the right side.
45573         (input::-webkit-date-and-time-container):
45574         Add -webkit-flex:1 for the input flexible box.
45575         Sort properties.
45576         (input[type="week"]::-webkit-inner-spin-button):
45577         - Use this in date, datetime, datetime-local, and week types.
45578         - Add display:inline-block because other elements in -webkit-datetime-edit is inilne.
45579         - Add position:static to cancel position:relative below.
45580
45581         * html/shadow/DateTimeEditElement.cpp:
45582         (WebCore::DateTimeEditElement::layout):
45583         Add an element with -webkit-datetime-edit-gap before a spin button.
45584
45585 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45586
45587         Web Inspector: can't click delete button if watch expression is very long
45588         https://bugs.webkit.org/show_bug.cgi?id=99414
45589
45590         Reviewed by Vsevolod Vlasov.
45591
45592         Minus button in watch expression section doesn't overlap with the
45593         expression/value anymore.
45594
45595         * inspector/front-end/inspector.css:
45596         (.properties-tree.watch-expressions > li.hovered):
45597
45598 2012-10-15  Sheriff Bot  <webkit.review.bot@gmail.com>
45599
45600         Unreviewed, rolling out r131403.
45601         http://trac.webkit.org/changeset/131403
45602         https://bugs.webkit.org/show_bug.cgi?id=99420
45603
45604         Suspicious to cause Performance test failing (Requested by
45605         shinyak|gardenin on #webkit).
45606
45607         * dom/Document.cpp:
45608         (WebCore::Document::isValidName):
45609
45610 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45611
45612         Web Inspector: restore watch expression expansion state
45613         https://bugs.webkit.org/show_bug.cgi?id=99304
45614
45615         Reviewed by Pavel Feldman.
45616
45617         Expand watch expression value and its properties if they were expanded
45618         before update.
45619
45620         Test: inspector/debugger/watch-expressions-preserve-expansion.html
45621
45622         * inspector/front-end/WatchExpressionsSidebarPane.js:
45623         (WebInspector.WatchExpressionTreeElement.prototype.onexpand):
45624         (WebInspector.WatchExpressionTreeElement.prototype.oncollapse):
45625         (WebInspector.WatchExpressionTreeElement.prototype.onattach):
45626         (WebInspector.WatchExpressionTreeElement.prototype._expression):
45627         (WebInspector.WatchedPropertyTreeElement):
45628         (WebInspector.WatchedPropertyTreeElement.prototype.onattach):
45629         (WebInspector.WatchedPropertyTreeElement.prototype.onexpand):
45630         (WebInspector.WatchedPropertyTreeElement.prototype.oncollapse):
45631         (WebInspector.WatchedPropertyTreeElement.prototype._propertyPath):
45632
45633 2012-10-15  Mike West  <mkwst@chromium.org>
45634
45635         Warn when CSP headers don't separate directives with ';'.
45636         https://bugs.webkit.org/show_bug.cgi?id=99274
45637
45638         Reviewed by Adam Barth.
45639
45640         A recent bug report exhibited confusion as to what role, exactly,
45641         semicolons play in Content Security Policy definitions. This patch
45642         adjusts the parser to warn web authors if a directive name is
45643         encountered while parsing a source list, which would almost certainly
45644         point to a missing semicolon. For example, something like:
45645
45646             script-src 'self' object-src 'self' style-src *
45647
45648         would throw two warnings, noting that 'object-src' and 'style-src' are
45649         probably meant as directives, and not as source expressions in the
45650         'script-src' source list.
45651
45652         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html
45653
45654         * page/ContentSecurityPolicy.cpp:
45655         (WebCore::CSPSourceList::parse):
45656             Throw the new warning onto the console if the hostname of a source
45657             expression matches a CSP directive name.
45658         (WebCore::CSPDirectiveList::addDirective):
45659             Use the exciting new static variables so that the names of various
45660             directives are available outside of CSPDirectiveList::addDirective.
45661             These were previously defined as local static ASCIILiterals. Now
45662             they're static const char[] in an anonymous namespace.
45663         (WebCore::ContentSecurityPolicy::isDirectiveName):
45664             Static method that compares a string to all the known directive
45665             names, returning true if there's a (case-insensitive) match.
45666         (WebCore):
45667         (WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression):
45668             A new warning message which should be printed when a directive name
45669             is encountered as a source expression. Matching the directive name
45670             is done via a new 'isDirectiveName' function which lives in an
45671             anonymous namespace along with the other CSP helper functions.
45672         * page/ContentSecurityPolicy.h:
45673             Added 'reportDirectiveAsSourceExpression' signature.
45674
45675 2012-10-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
45676
45677         Unreviewed, rolling out r131349.
45678         http://trac.webkit.org/changeset/131349
45679         https://bugs.webkit.org/show_bug.cgi?id=97173
45680
45681         Revert r131349 because API test is broken by this commit.
45682
45683         * platform/efl/RunLoopEfl.cpp:
45684         (WebCore::RunLoop::RunLoop):
45685         (WebCore::RunLoop::~RunLoop):
45686
45687 2012-10-15  Nate Chapin  <japhet@chromium.org>
45688
45689         ResourceLoader::sendResourceLoadCallbacks() is backwards
45690         https://bugs.webkit.org/show_bug.cgi?id=99366
45691
45692         Reviewed by Daniel Bates.
45693
45694         No new tests, this function is uncalled but will be used
45695         in a later patch.
45696
45697         * loader/ResourceLoader.h:
45698         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
45699
45700 2012-10-15  Dan Bernstein  <mitz@apple.com>
45701
45702         REGRESSION (r131365): WidthIterator::advance() is needlessly passed a GlyphBuffer in many cases
45703         https://bugs.webkit.org/show_bug.cgi?id=99413
45704
45705         Reviewed by Adele Peterson.
45706
45707         r131365 made Font::width() always pass a GlyphBuffer pointer to floatWidthForSimpleText and
45708         from there down to WidthIterator::advance(). However, when measuring the width of a run, a
45709         GlyphBuffer is only needed if font transforms (kerning and ligatures) need to be applied.
45710
45711         No new test, because there is no change in behavior.
45712
45713         * platform/graphics/Font.cpp:
45714         (WebCore::Font::width): Removed the local GlyphBuffer that was passed down to
45715         floatWidthForSimpleText().
45716         * platform/graphics/Font.h: Removed the GlyphBuffer* parameter to floatWidthForSimpleText.
45717         All but the above caller were passing 0.
45718         * platform/graphics/FontFastPath.cpp:
45719         (WebCore::Font::floatWidthForSimpleText): Removed the GlyphBuffer* parameter and added a
45720         local GlyphBuffer, which is passed by reference to WidthIterator::advance() only if
45721         typesetting features require it.
45722         (WebCore::Font::offsetForPositionForSimpleText): Updated for change to
45723         floatWidthForSimpleText.
45724         * platform/graphics/pango/FontPango.cpp:
45725         (WebCore::Font::floatWidthForComplexText): Ditto.
45726
45727 2012-10-15  Pablo Flouret  <pablof@motorola.com>
45728
45729         Add force parameter to DOMTokenList.toggle
45730         https://bugs.webkit.org/show_bug.cgi?id=99375
45731
45732         Reviewed by Darin Adler.
45733
45734         See http://dom.spec.whatwg.org/#dom-domtokenlist-toggle and
45735         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18463
45736
45737         Essentially, the optional boolean force parameter, if present, makes
45738         toggle always add or remove a class.
45739
45740         No new tests, modified fast/dom/HTMLElement/script-tests/class-list.js
45741
45742         * html/DOMTokenList.cpp:
45743         (WebCore::DOMTokenList::toggle):
45744         (WebCore):
45745         * html/DOMTokenList.h:
45746         (DOMTokenList):
45747         * html/DOMTokenList.idl:
45748             New toggle() overload that takes a force parameter and calls
45749             addInternal() or removeInternal() based on it.
45750
45751 2012-10-15  Dan Bernstein  <mitz@apple.com>
45752
45753         Layout Test fast/text/justify-ideograph-leading-expansion.html is failing an assertion chromium mac
45754         https://bugs.webkit.org/show_bug.cgi?id=99406
45755
45756         Reviewed by Darin Adler.
45757
45758         * platform/graphics/WidthIterator.cpp:
45759         * platform/graphics/WidthIterator.h:
45760         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
45761         shorter than 2 characters. 1-character runs are invariant under font transforms, and therefore
45762         Font::codePath() sends them through WidthIterator even on platforms where WidthIterator
45763         does not support kerning and ligatures.
45764
45765 2012-10-15  Michael Saboff  <msaboff@apple.com>
45766
45767         Add 8 bit patch to Document::isValidName() for the non ASCII case
45768         https://bugs.webkit.org/show_bug.cgi?id=99402
45769
45770         Reviewed by Darin Adler.
45771
45772         Added 8 bit path to complete the processing of an 8 bit names without up-converting.
45773
45774         * dom/Document.cpp:
45775         (WebCore::isValidNameNonASCII):
45776         (WebCore::Document::isValidName):
45777
45778 2012-10-15  Vlad Grecescu  <igrecesc@adobe.com>, Douglas Stockwell  <dstockwell@chromium.org>
45779
45780         Support for background-clip:content-box and padding-box with border-radius
45781         https://bugs.webkit.org/show_bug.cgi?id=23166
45782
45783         Reviewed by Simon Fraser.
45784
45785         Test: fast/css/background-clip-radius-values.html
45786
45787         * rendering/RenderBoxModelObject.cpp:
45788         (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
45789         (WebCore):
45790         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
45791         * rendering/RenderBoxModelObject.h:
45792
45793 2012-10-15  Byungwoo Lee  <bw80.lee@samsung.com>
45794
45795         Fix unused parameter build warning.
45796         https://bugs.webkit.org/show_bug.cgi?id=99400
45797
45798         Reviewed by Gyuyoung Kim.
45799
45800         Remove the name of unused parameters to fix the build warning (-Wunused-parameter).
45801
45802         * platform/network/soup/ResourceErrorSoup.cpp:
45803         (WebCore::ResourceError::tlsError):
45804
45805 2012-10-15  Kenichi Ishibashi  <bashi@chromium.org>
45806
45807         [WebSocket] WebSocketInflater should handle BFINAL = 1 blocks
45808         https://bugs.webkit.org/show_bug.cgi?id=99282
45809
45810         Reviewed by Yuta Kitamura.
45811
45812         Reset decompression state if WebSocketInflater decompress a block with
45813         BFINAL set to 1.
45814
45815         Test: http/tests/websocket/tests/hybi/deflate-frame-set-bfinal.html
45816
45817         * Modules/websockets/WebSocketDeflater.cpp:
45818         (WebCore::WebSocketInflater::addBytes):
45819         Reset decompression state if inflate() returns Z_STREAM_END, which means the BFINAL
45820         of the current block was set to 1.
45821         (WebCore::WebSocketInflater::finish): Add an assertion.
45822
45823 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
45824
45825         Fix GraphicsLayer visible rect computation when scrolling in WebKit1
45826         https://bugs.webkit.org/show_bug.cgi?id=99385
45827
45828         Reviewed by Dean Jackson, Tim Horton.
45829
45830         RenderLayerCompositor always used frameView->frameRect() as the visible
45831         rect on the root used for GraphicsLayer visibleRect computation. This
45832         was wrong for subframes, which require a rect with an origin of (0,0)
45833         and size of the contentsSize().
45834         
45835         It was also wrong when the scrolling is not represented in the GraphicsLayer
45836         tree. When scrolling is done elsewhere, we need to use the ScrollView's
45837         visibleContentRect().
45838
45839         Tests: compositing/visible-rect/scrolled.html
45840                compositing/visible-rect/iframe-and-layers.html
45841                compositing/visible-rect/iframe-no-layers.html
45842
45843         * rendering/RenderLayerCompositor.cpp:
45844         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
45845
45846 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
45847
45848         Remove page visibility hidden histograms
45849         https://bugs.webkit.org/show_bug.cgi?id=99360
45850
45851         Reviewed by Ojan Vafai.
45852
45853         The 2 page visibility hidden histograms were added in http://webkit.org/b/85537 to
45854         investigate a potential optimization where we would destroy the render tree when
45855         a tab was hidden. The optimization was abandoned but the histograms were never
45856         removed. They are too narrow to be reused so this change removes them.
45857
45858         * page/Page.cpp:
45859         (WebCore::Page::setVisibilityState):
45860
45861 2012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>
45862
45863         REGRESSION: Build break after r131373 when ACCELERATED_COMPOSITING disabled
45864         https://bugs.webkit.org/show_bug.cgi?id=99397
45865
45866         Unreviewed, build fix.
45867
45868         * page/scrolling/ScrollingCoordinator.cpp:
45869         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
45870
45871 2012-10-14  Kent Tamura  <tkent@chromium.org>
45872
45873         Input elements with multiple fields UI should set appropriate direction for browser locale automatically
45874         https://bugs.webkit.org/show_bug.cgi?id=99291
45875
45876         Reviewed by Hajime Morita.
45877
45878         Input elemnts with multiple fields UI ignores HTML dir attribute or CSS
45879         direction property, and their direction should be decided by the browser
45880         locale. If the browser locale is a RTL language, date/time input fields
45881         show formats/digits for the RTL language. The layout should be always
45882         RTL regardless of the direction in such case.
45883
45884         Test: fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n.html
45885
45886         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
45887         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
45888         Set approriate dir attribute value to the child element of the UA shadow root.
45889
45890 2012-10-15  Andreas Kling  <kling@webkit.org>
45891
45892         StyleResolver: Garbage collect the matched properties cache on a timer.
45893         <http://webkit.org/b/98625>
45894
45895         Reviewed by Eric Seidel.
45896
45897         Sweeping the matched properties cache once every 100 additions ended up choking RoboHornet's
45898         svgresize.html benchmark. Move it to a single-shot timer that's refreshed every 100 additions
45899         and defers the actual sweep for 60 seconds.
45900
45901         * css/StyleResolver.cpp:
45902         (WebCore::StyleResolver::StyleResolver):
45903         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
45904         (WebCore::StyleResolver::addToMatchedPropertiesCache):
45905         * css/StyleResolver.h:
45906         (StyleResolver):
45907
45908 2012-10-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
45909
45910         [GStreamer] GstCaps are leaked when building with gstreamer-1.0
45911         https://bugs.webkit.org/show_bug.cgi?id=99362
45912
45913         Reviewed by Martin Robinson.
45914
45915         Implement GRefPtr<GstCaps> adoptGRef(GstCaps*).
45916
45917         Change webkitGstGetPadCaps signature to return a GRefPtr<GstCaps>, and
45918         use GRefPtr<GstCaps> also in webkitVideoSinkRender to simply GstCaps
45919         refeference count.
45920
45921         Covered by existing tests.
45922
45923         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
45924         (WTF::adoptGRef):
45925         (WTF):
45926         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
45927         (WTF):
45928         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
45929         (webkitGstGetPadCaps):
45930         * platform/graphics/gstreamer/GStreamerVersioning.h:
45931         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
45932         (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
45933         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
45934         (webkitVideoSinkRender):
45935
45936 2012-10-15  Tony Chang  <tony@chromium.org>
45937
45938         Unreviewed, rolling out r131367.
45939         http://trac.webkit.org/changeset/131367
45940         https://bugs.webkit.org/show_bug.cgi?id=98666
45941
45942         crashes on Apple Mac
45943
45944         * css/html.css:
45945         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
45946         (input[type="range"]::-webkit-slider-runnable-track):
45947         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
45948         * css/mediaControlsChromium.css:
45949         (input[type="range"]::-webkit-media-slider-thumb):
45950         * css/mediaControlsChromiumAndroid.css:
45951         (input[type="range"]::-webkit-media-slider-thumb):
45952         * html/RangeInputType.cpp:
45953         (WebCore::RangeInputType::listAttributeTargetChanged):
45954         * html/shadow/SliderThumbElement.cpp:
45955         (WebCore::RenderSliderThumb::layout):
45956         (WebCore):
45957         (WebCore::RenderSliderContainer::RenderSliderContainer):
45958         (RenderSliderContainer):
45959         (WebCore::RenderSliderContainer::layout):
45960         * html/shadow/SliderThumbElement.h:
45961         (RenderSliderThumb):
45962         * rendering/RenderSlider.cpp:
45963         (WebCore):
45964         (WebCore::RenderSlider::RenderSlider):
45965         (WebCore::RenderSlider::layout):
45966         * rendering/RenderSlider.h:
45967         (WebCore):
45968         (RenderSlider):
45969         (WebCore::RenderSlider::renderName):
45970         (WebCore::RenderSlider::isSlider):
45971         (WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
45972         (WebCore::toRenderSlider):
45973
45974 2012-10-15  Dan Bernstein  <mitz@apple.com>
45975
45976         Try to fix the build again after r131375.
45977
45978         * platform/graphics/WidthIterator.h:
45979         (WebCore::WidthIterator::shouldApplyFontTransforms): Removed the length check from here.
45980
45981 2012-10-15  Dan Bernstein  <mitz@apple.com>
45982
45983         Try to fix assertion failures on ports that do not support kerning and ligatures on the fast
45984         code path after r131365.
45985
45986         * platform/graphics/WidthIterator.cpp:
45987         (WebCore::applyFontTransforms): Changed the early return condition to not bother with 1-glyph
45988         sequences.
45989         * platform/graphics/WidthIterator.h:
45990         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
45991         shorter than 2 characters.
45992
45993 2012-10-15  Dan Bernstein  <mitz@apple.com>
45994
45995         Try to fix the Chromium Mac build after r131365.
45996
45997         * platform/graphics/GlyphBuffer.h:
45998         (WebCore::GlyphBufferAdvance::height): Added.
45999         * platform/graphics/skia/FontSkia.cpp:
46000         (WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.
46001
46002 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
46003
46004         Ensure that GraphicsLayer positions are updated while doing threaded scrolling
46005         https://bugs.webkit.org/show_bug.cgi?id=99372
46006
46007         Reviewed by Anders Carlsson.
46008
46009         When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
46010         but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
46011         works incorrectly.
46012         
46013         Threaded scrolling is not testabled in layout tests.
46014
46015         * page/scrolling/ScrollingCoordinator.cpp:
46016         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
46017         * platform/graphics/GraphicsLayer.h:
46018         (GraphicsLayer):
46019         (WebCore::GraphicsLayer::syncPosition):
46020
46021 2012-10-15  Tommy Widenflycht  <tommyw@google.com>
46022
46023         MediaStream API: Implement RTCDataChannel
46024         https://bugs.webkit.org/show_bug.cgi?id=99080
46025
46026         Reviewed by Adam Barth.
46027
46028         This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
46029         Since the data channel belongs to a peer connection object I have reused part of its infrastructure.
46030
46031         Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.
46032
46033         * CMakeLists.txt:
46034         * GNUmakefile.list.am:
46035         * Modules/mediastream/RTCDataChannel.cpp: Added.
46036         (WebCore):
46037         (WebCore::RTCDataChannel::create):
46038         (WebCore::RTCDataChannel::RTCDataChannel):
46039         (WebCore::RTCDataChannel::~RTCDataChannel):
46040         (WebCore::RTCDataChannel::label):
46041         (WebCore::RTCDataChannel::reliable):
46042         (WebCore::RTCDataChannel::readyState):
46043         (WebCore::RTCDataChannel::bufferedAmount):
46044         (WebCore::RTCDataChannel::binaryType):
46045         (WebCore::RTCDataChannel::setBinaryType):
46046         (WebCore::RTCDataChannel::send):
46047         (WebCore::RTCDataChannel::close):
46048         (WebCore::RTCDataChannel::readyStateChanged):
46049         (WebCore::RTCDataChannel::dataArrived):
46050         (WebCore::RTCDataChannel::error):
46051         (WebCore::RTCDataChannel::descriptor):
46052         (WebCore::RTCDataChannel::interfaceName):
46053         (WebCore::RTCDataChannel::scriptExecutionContext):
46054         (WebCore::RTCDataChannel::stop):
46055         (WebCore::RTCDataChannel::eventTargetData):
46056         (WebCore::RTCDataChannel::ensureEventTargetData):
46057         * Modules/mediastream/RTCDataChannel.h: Added.
46058         (WebCore):
46059         (RTCDataChannel):
46060         (WebCore::RTCDataChannel::refEventTarget):
46061         (WebCore::RTCDataChannel::derefEventTarget):
46062         * Modules/mediastream/RTCDataChannel.idl: Added.
46063         * Modules/mediastream/RTCDataChannelEvent.cpp: Added.
46064         (WebCore):
46065         (WebCore::RTCDataChannelEvent::create):
46066         (WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
46067         (WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
46068         (WebCore::RTCDataChannelEvent::channel):
46069         (WebCore::RTCDataChannelEvent::interfaceName):
46070         * Modules/mediastream/RTCDataChannelEvent.h: Added.
46071         (WebCore):
46072         (RTCDataChannelEvent):
46073         * Modules/mediastream/RTCDataChannelEvent.idl: Added.
46074         * Modules/mediastream/RTCPeerConnection.cpp:
46075         (WebCore::RTCPeerConnection::createDataChannel):
46076         (WebCore):
46077         (WebCore::RTCPeerConnection::close):
46078         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
46079         (WebCore::RTCPeerConnection::stop):
46080         * Modules/mediastream/RTCPeerConnection.h:
46081         (WebCore):
46082         (RTCPeerConnection):
46083         * Modules/mediastream/RTCPeerConnection.idl:
46084         * WebCore.gypi:
46085         * dom/EventNames.h:
46086         (WebCore):
46087         * dom/EventNames.in:
46088         * dom/EventTargetFactory.in:
46089         * platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
46090         (WebCore):
46091         (WebCore::RTCDataChannelDescriptor::create):
46092         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
46093         (WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
46094         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
46095         (WebCore::RTCDataChannelDescriptor::dataArrived):
46096         (WebCore::RTCDataChannelDescriptor::error):
46097         * platform/mediastream/RTCDataChannelDescriptor.h: Added.
46098         (WebCore):
46099         (RTCDataChannelDescriptorClient):
46100         (WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
46101         (RTCDataChannelDescriptor):
46102         (ExtraData):
46103         (WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
46104         (WebCore::RTCDataChannelDescriptor::client):
46105         (WebCore::RTCDataChannelDescriptor::setClient):
46106         (WebCore::RTCDataChannelDescriptor::label):
46107         (WebCore::RTCDataChannelDescriptor::reliable):
46108         (WebCore::RTCDataChannelDescriptor::readyState):
46109         (WebCore::RTCDataChannelDescriptor::bufferedAmount):
46110         (WebCore::RTCDataChannelDescriptor::setBufferedAmount):
46111         (WebCore::RTCDataChannelDescriptor::extraData):
46112         (WebCore::RTCDataChannelDescriptor::setExtraData):
46113         * platform/mediastream/RTCPeerConnectionHandler.cpp:
46114         (RTCPeerConnectionHandlerDummy):
46115         (WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
46116         (WebCore):
46117         (WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
46118         (WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
46119         (WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
46120         * platform/mediastream/RTCPeerConnectionHandler.h:
46121         (WebCore):
46122         (RTCPeerConnectionHandler):
46123         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
46124         (WebCore):
46125         (RTCPeerConnectionHandlerClient):
46126         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
46127         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
46128         (WebCore):
46129         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
46130         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
46131         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
46132         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
46133         (RTCPeerConnectionHandlerChromium):
46134
46135 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46136
46137         IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
46138         https://bugs.webkit.org/show_bug.cgi?id=99097
46139
46140         Reviewed by Tony Chang.
46141
46142         Include the error causing the abort in the callback from back end to
46143         front end so it can be exposed on the IDBTransaction.error property.
46144
46145         Test: lazy-index-population.html
46146
46147         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
46148         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
46149         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
46150         * Modules/indexeddb/IDBDatabaseCallbacks.h:
46151         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
46152         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
46153         (WebCore::IDBObjectStoreBackendImpl::putInternal):
46154         * Modules/indexeddb/IDBTransaction.cpp:
46155         (WebCore::IDBTransaction::onAbort):
46156         * Modules/indexeddb/IDBTransaction.h:
46157         (IDBTransaction):
46158         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
46159         (WebCore::IDBTransactionBackendImpl::abort):
46160         (WebCore):
46161         (WebCore::IDBTransactionBackendImpl::commit):
46162         * Modules/indexeddb/IDBTransactionBackendImpl.h:
46163         (IDBTransactionBackendImpl):
46164         * Modules/indexeddb/IDBTransactionCallbacks.h:
46165         (IDBTransactionCallbacks):
46166         * inspector/InspectorIndexedDBAgent.cpp:
46167         (WebCore):
46168
46169 2012-10-15  Mike Reed  <reed@google.com>
46170
46171         In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
46172         https://bugs.webkit.org/show_bug.cgi?id=99326
46173
46174         Reviewed by Stephen White.
46175
46176         No new tests -- existing layouttests exercise this, esp. 
46177           png-partial-load-no-alpha.html
46178           webp-partial-load.html
46179         These two fail if skia is told that these are opaque, which it is w/o this CL.
46180
46181         At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
46182         This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
46183         in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.
46184
46185         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
46186         (WebCore::ImageFrame::ImageFrame):
46187         (WebCore::ImageFrame::operator=):
46188         (WebCore::ImageFrame::zeroFillPixelData):
46189         (WebCore::ImageFrame::hasAlpha):
46190         (WebCore::ImageFrame::setHasAlpha):
46191         (WebCore::ImageFrame::setStatus):
46192
46193 2012-10-12  Tony Chang  <tony@chromium.org>
46194
46195         input[type=range] as a flex item renders thumb at wrong position
46196         https://bugs.webkit.org/show_bug.cgi?id=98666
46197
46198         Reviewed by Ojan Vafai.
46199
46200         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
46201         The previous code was trying to set the height to 100% and had a bunch of hacks in
46202         the renderer code to set an explicit height. Using the new flexbox allows us to
46203         remove these renderer hacks.
46204
46205         Test: css3/flexbox/flexitem-stretch-range.html
46206
46207         * css/html.css:
46208         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
46209         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
46210         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
46211         no longer setting top/left in the layout code.
46212         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
46213         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
46214         * html/RangeInputType.cpp:
46215         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
46216         since the height of the control should change when adding/removing a datalist.
46217         * html/shadow/SliderThumbElement.cpp:
46218         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
46219         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
46220         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
46221         we use the intrinsic size.
46222         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
46223         This used to be handled in the thumb's layout method, but I deleted that.
46224         * html/shadow/SliderThumbElement.h:
46225         * rendering/RenderSlider.cpp:
46226         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
46227         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
46228         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
46229         and expects the input to also have a height of 1px.  It worked before because the height of the input
46230         didn't depend on the height of its children.
46231         * rendering/RenderSlider.h: Fix indentation.
46232         (RenderSlider): Use new flexible box.
46233
46234 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
46235
46236         Make RenderTable columns() and columnPositions() return a const reference
46237         https://bugs.webkit.org/show_bug.cgi?id=99339
46238
46239         Reviewed by Abhishek Arya.
46240
46241         The 2 getters were returning a non-const reference. This means that callers
46242         could have modified the Vector's where only FixedTableLayout and AutoTableLayout
46243         were expected to (for columnPositions(), no one should modify columns()).
46244
46245         Refactoring covered by existing tests.
46246
46247         * rendering/AutoTableLayout.cpp:
46248         (WebCore::AutoTableLayout::layout):
46249         * rendering/FixedTableLayout.cpp:
46250         (WebCore::FixedTableLayout::layout):
46251         Updated those functions to use the new setter.
46252
46253         * rendering/RenderTable.h:
46254         (WebCore::RenderTable::columns):
46255         (WebCore::RenderTable::columnPositions):
46256         Made the 2 functions return a const reference. They are also const now!
46257
46258         (WebCore::RenderTable::setColumnPosition):
46259         Added this setter.
46260
46261         * rendering/RenderTableSection.cpp:
46262         (WebCore::RenderTableSection::addCell):
46263         (WebCore::RenderTableSection::setCellLogicalWidths):
46264         (WebCore::RenderTableSection::dirtiedColumns):
46265         Updated to use a const reference.
46266
46267 2012-10-15  Dan Bernstein  <mitz@apple.com>
46268
46269         WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
46270         https://bugs.webkit.org/show_bug.cgi?id=99113
46271
46272         Reviewed by Tim Horton.
46273
46274         * WebCore.exp.in: Exported wkCTFontTransformGlyphs.
46275         * platform/graphics/Font.cpp:
46276         (WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
46277         (WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
46278         features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
46279         typesetting features.
46280         * platform/graphics/FontFastPath.cpp:
46281         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
46282         WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
46283         about how this is not entirely correct when kerning or ligatures are enabled.
46284         (WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
46285         WidthIterator::advance() when advancing to or from the range of interest.
46286         (WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
46287         WidthIterator::advanceOneCharacter().
46288         * platform/graphics/SimpleFontData.h:
46289         (WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
46290         available.
46291         * platform/graphics/WidthIterator.cpp:
46292         (WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
46293         data member.
46294         (OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
46295         characters treated as spaces.
46296         (WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
46297         required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
46298         maintaining the advances of characters that are treated as spaces and the characters
46299         preceding them, if necessary.
46300         (WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
46301         of each contiguous run of glyphs from the same font. Also added code to maintain a vector
46302         of spaces and characters treated as space.
46303         (WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
46304         a reference.
46305         * platform/graphics/WidthIterator.h:
46306         (WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
46307         instances support the typesetting features of the given font. Returns true if the font is
46308         not a screen font and its typesetting features are kerning, ligatures or both.
46309         (WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
46310         features include kerning or ligatures.
46311         * platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
46312         wkCTFontTransformGlyphs.
46313         * platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
46314         * rendering/svg/SVGTextMetricsBuilder.cpp:
46315         (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
46316         WidthIterator::advance().
46317         * rendering/svg/SVGTextRunRenderingContext.cpp:
46318         (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.
46319
46320 2012-10-15  Mark Lam  <mark.lam@apple.com>
46321
46322         Fix build broken by r131348.
46323         https://bugs.webkit.org/show_bug.cgi?id=97533.
46324
46325         Not reviewed.
46326
46327         * rendering/RenderView.cpp:
46328         (WebCore::RenderView::layoutContent):
46329
46330 2012-10-15  Andreas Kling  <kling@webkit.org>
46331
46332         Remove WTF::fastDeleteAllValues().
46333         <http://webkit.org/b/99345>
46334
46335         Reviewed by Eric Seidel.
46336
46337         It was only used to fastDelete() a class that was already overriding operator delete
46338         by way of WTF_MAKE_FAST_ALLOCATED anyway.
46339
46340         * css/CSSParser.cpp:
46341         (WebCore::CSSParser::~CSSParser):
46342
46343 2012-10-15  Levi Weintraub  <leviw@chromium.org>
46344
46345         Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
46346         https://bugs.webkit.org/show_bug.cgi?id=99194
46347
46348         Reviewed by Eric Seidel.
46349
46350         Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
46351         these two types of elements would cause us to increase our preferred width forever.
46352
46353         Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html
46354
46355         * rendering/RenderBlock.cpp:
46356         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
46357
46358 2012-10-15  Emil A Eklund  <eae@chromium.org>
46359
46360         Revert rounding change in RenderTable::paintObject
46361         https://bugs.webkit.org/show_bug.cgi?id=99364
46362
46363         Reviewed by Levi Weintraub.
46364
46365         Bug 91410 changed RenderTable::paintObject to round the offset
46366         in order to avoid table-background bleed through. The root cause
46367         for that has since been fixed and the rounding workaround is no
46368         longer needed. This change reverts the code change from bug
46369         91410 while preserving the test added as a part of that change
46370         as it now passes without the workaround.
46371
46372         No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html
46373
46374         * rendering/RenderTable.cpp:
46375         (WebCore::RenderTable::paintObject):
46376         Remove unnecessary rounding.
46377
46378 2012-10-15  Michelangelo De Simone  <michelangelo@webkit.org>
46379
46380         [CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
46381         https://bugs.webkit.org/show_bug.cgi?id=96448
46382
46383         Reviewed by Kenneth Rohde Christiansen.
46384
46385         CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
46386         the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
46387         that m_programType encoded the very same information. Dependencies have been updated to reflect
46388         this change.
46389
46390         Current tests already cover this code.
46391
46392         * css/CSSComputedStyleDeclaration.cpp: 
46393         (WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
46394         by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
46395         * css/StyleResolver.cpp:
46396         (WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
46397         new filter program.
46398         * platform/graphics/filters/CustomFilterProgram.cpp:
46399         (WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
46400         reflect the need of setting the program type explicitly.
46401         (WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
46402         type explicitly.
46403         * platform/graphics/filters/CustomFilterProgram.h:
46404         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
46405         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
46406         (WebCore::CustomFilterProgramInfo::hash): ditto
46407         (WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
46408         the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
46409         * platform/graphics/filters/CustomFilterProgramInfo.h:
46410         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
46411         (WebCore::CustomFilterProgramMixSettings::operator==): ditto
46412         (CustomFilterProgramInfo):
46413         (WebCore::CustomFilterProgramInfo::programType):
46414         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
46415         created according to the program type.
46416         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
46417         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
46418         has been replaced with a check for the program type.
46419         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
46420         * rendering/style/StyleCustomFilterProgram.h:
46421         (WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
46422         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto
46423
46424 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46425
46426         IndexedDB: Key paths should support non-ASCII identifiers
46427         https://bugs.webkit.org/show_bug.cgi?id=98814
46428
46429         Reviewed by Kentaro Hara.
46430
46431         Update the parser for key paths to use the unicode classes from
46432         the IdentifierName production in ECMA-262.
46433
46434         Test: storage/indexeddb/keypath-basics.html
46435
46436         * Modules/indexeddb/IDBKeyPath.cpp:
46437         (WebCore):
46438         (WebCore::IDBKeyPathLexer::lexIdentifier):
46439
46440 2012-10-15  Yael Aharon  <yael.aharon@intel.com>
46441
46442         [EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
46443         https://bugs.webkit.org/show_bug.cgi?id=99325
46444
46445         Reviewed by Kenneth Rohde Christiansen.
46446
46447         Based on a patch from Regina Chung.
46448         This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
46449         The gl context is used as key in a hash map and cannot be NULL.
46450
46451         No new tests. Accelerated compositing is not yet enabled in the EFL port.
46452
46453         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
46454         (WebCore::GraphicsContext3D::GraphicsContext3D):
46455
46456 2012-10-15  Mike West  <mkwst@chromium.org>
46457
46458         Console messages containing long URLs should cut at some reasonable length.
46459         https://bugs.webkit.org/show_bug.cgi?id=97980
46460
46461         Reviewed by Pavel Feldman.
46462
46463         This patch lightly modifies the current styling of linkified URLs inside
46464         console messages in order to cut them down to some reasonable size for
46465         viewing. The middle of the URL is snipped out such that the whole
46466         thing fits into 150 characters. This only effects the displayed text;
46467         the link's href isn't changed; the link remains available via the
46468         context menu, accessible via the title attribute, and clicking it still
46469         takes the user directly to the resource in question.
46470
46471         Test: inspector/console/console-trim-long-urls.html
46472
46473         * inspector/front-end/ResourceUtils.js:
46474         (WebInspector.linkifyURLAsNode):
46475             Trim the middle of the URL to bring the whole string down to  down
46476             to 150 characters, and set the link's title to the full URL.
46477
46478 2012-10-15  Tony Chang  <tony@chromium.org>
46479
46480         Add computeLogicalHeight override methods to RenderView and RenderMultiColumnSet
46481         https://bugs.webkit.org/show_bug.cgi?id=99348
46482
46483         Reviewed by Ojan Vafai.
46484
46485         Add computeLogicalHeight to the last 2 RenderBoxes that override the method.
46486         I'm unable to remove RenderMultiColumnSet::updateLogicalHeight and make the method
46487         non-virtual since it sets ComputedColumnHeight.  I'd like to remove this
46488         eventually.
46489
46490         No new tests, this is just a code refactor.
46491
46492         * rendering/RenderMultiColumnSet.cpp:
46493         (WebCore::RenderMultiColumnSet::updateLogicalHeight): Set computedColumnHeight.
46494         (WebCore::RenderMultiColumnSet::computeLogicalHeight):
46495         (WebCore):
46496         * rendering/RenderMultiColumnSet.h:
46497         (RenderMultiColumnSet):
46498         * rendering/RenderView.cpp:
46499         (WebCore::RenderView::computeLogicalHeight):
46500         * rendering/RenderView.h:
46501
46502 2012-10-15  Eunmi Lee  <eunmi15.lee@samsung.com>
46503
46504         [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
46505         https://bugs.webkit.org/show_bug.cgi?id=97173
46506
46507         Reviewed by Gyuyoung Kim.
46508
46509         Remove codes to initialize and shutdown the EFL libraries from
46510         RunLoopEfl.cpp. Initialization and shutdown will be done in the
46511         ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
46512         process.
46513
46514         No new tests. This patch doesn't change behavior.
46515
46516         * platform/efl/RunLoopEfl.cpp:
46517         (WebCore::RunLoop::RunLoop):
46518         (WebCore::RunLoop::~RunLoop):
46519
46520 2012-10-15  Mihnea Ovidenie  <mihnea@adobe.com>
46521
46522         [CSSRegions]Add support for auto-height regions (without region-breaks)
46523         https://bugs.webkit.org/show_bug.cgi?id=97533
46524
46525         Reviewed by Julien Chaffraix.
46526
46527         Implement the 2pass layout algorithm for computing the height of regions with auto logical height, without taking region breaks into account.
46528         The algorithm is described in the CSSRegions spec: http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps
46529
46530         When the flow thread contains regions with auto logical height, a 2pass layout algorithm is needed to determine the height of auto logical height regions.
46531         In each step of the layout, the regions are laid out before the flow thread is laid out.
46532
46533         In the first pass of layout (normal layout phase), the content of the flow thread is laid out unconstrained in the regions. The region marked as having auto logical height
46534         displays all the corresponding content from the flow thread (taking min-height and max-height into account), and the height of the content displayed
46535         determines the overridden logical content height. Thus, after the first pass of layout, each auto logical height region will store the logical height
46536         value for the second pass in its overridden logical content height property.
46537
46538         In the second pass of layout (constrained flow threads layout phase), when the content of the flow thread is laid out constrained in the regions, the regions are laid out again and they are using
46539         the overridden logical content height from the first pass to update their logical height. Then, the flow thread content is laid out in the associated region chain,
46540         for which the auto logical height regions have proper logical height.
46541
46542         A future patch will properly take region breaks into account for the first pass of layout.
46543
46544         Tests: fast/regions/autoheight-abspos-region.html
46545                fast/regions/autoheight-floatright-region.html
46546                fast/regions/autoheight-horizontal-bt.html
46547                fast/regions/autoheight-inlineblock-normalflow-region.html
46548                fast/regions/autoheight-maxheight-region.html
46549                fast/regions/autoheight-minheight-region.html
46550                fast/regions/autoheight-normalflow-region.html
46551                fast/regions/autoheight-vertical-lr.html
46552                fast/regions/autoheight-vertical-rl.html
46553
46554         * rendering/FlowThreadController.cpp:
46555         (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
46556         For all the auto logical height regions, resets their associated overrideLogicalContentHeight.
46557         Those regions are marked as needing layout (along with their ancestors).
46558         (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
46559         Mark all the auto logical height regions and their associated flow thread as needing layout (along with their ancestors).
46560         * rendering/FlowThreadController.h:
46561         * rendering/RenderBox.cpp:
46562         Add helper functions to clear out individual logical content width/height.
46563         (WebCore::RenderBox::clearOverrideLogicalContentHeight):
46564         (WebCore::RenderBox::clearOverrideLogicalContentWidth):
46565         (WebCore::RenderBox::clearOverrideSize):
46566         * rendering/RenderBox.h:
46567         * rendering/RenderFlowThread.cpp:
46568         (WebCore::RenderFlowThread::layout):
46569         (WebCore::RenderFlowThread::computeLogicalHeight):
46570         If the flow thread has an auto logical height region for which we did not yet compute the overrideLogicalContentHeight value,
46571         bail out early since we cannot compute the flow thread logical height.
46572         (WebCore::RenderFlowThread::regionAtBlockOffset):
46573         If the offset is inside an auto logical height region for which we did not compute the overrideLogicalContentHeight, then we consider this region tall enough to accommodate all
46574         the content and we return this region. Otherwise, for an auto logical height region, we use either the overrideLogicalContentHeight (if we are in the first layout phase) or
46575         the logicalHeight if we are in the second layout phase (because the overriderLogicalContentHeight was already transferred into region logical height).
46576         (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
46577         (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
46578         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
46579         (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
46580         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
46581         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
46582         (WebCore::RenderFlowThread::addForcedRegionBreak):
46583         Simulate a region break at the specified offset. It will be extended to properly process the region breaks. At this moment, only one auto height region for a thread
46584         can have its height properly computed.
46585         * rendering/RenderFlowThread.h:
46586         * rendering/RenderNamedFlowThread.cpp:
46587         (WebCore::boxIntersectsRegion):
46588         * rendering/RenderRegion.cpp:
46589         (WebCore::RenderRegion::updateLogicalHeight):
46590         If the auto logical height region has an overrideLogicalContentHeight and we are in the second pass of layout,
46591         we use the overrideLogicalContentHeight to update the region logical height.
46592         (WebCore::RenderRegion::needsOverrideLogicalContentHeightComputation):
46593         * rendering/RenderRegion.h:
46594         * rendering/RenderView.cpp:
46595         (WebCore::RenderView::RenderView):
46596         (WebCore::RenderView::layoutContent):
46597         Added a new function to contain the RenderView block layout and flow threads layout.
46598         (WebCore::RenderView::checkLayoutState):
46599         Helper function keeping the original asserts from RenderView, used in more than one place.
46600         (WebCore::RenderView::layout):
46601         * rendering/RenderView.h:
46602         (WebCore::RenderView::normalLayoutPhase):
46603         (WebCore::RenderView::constrainedFlowThreadsLayoutPhase):
46604
46605 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46606
46607         Web Inspector: Fix memory leak in TreeOutline
46608         https://bugs.webkit.org/show_bug.cgi?id=99307
46609
46610         Reviewed by Alexander Pavlov.
46611
46612         Added cleanup of empty buckets in elements cache.
46613
46614         * inspector/front-end/treeoutline.js:
46615
46616 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46617
46618         Web Inspector: Hide useless controls in remote-debugging mode.
46619         https://bugs.webkit.org/show_bug.cgi?id=99300
46620
46621         Reviewed by Vsevolod Vlasov.
46622
46623         "Close inspector" and "change docking mode" buttons seem to be rather
46624         useless in remote debugging mode.
46625
46626         * inspector/front-end/inspector.css:
46627         (body.remote .toolbar-item.close-left, body.remote .toolbar-item.close-right):
46628         (body.remote .dock-status-bar-item):
46629
46630 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46631
46632         [EFL][WK2] Implement Favicons API
46633         https://bugs.webkit.org/show_bug.cgi?id=99087
46634
46635         Reviewed by Kenneth Rohde Christiansen.
46636
46637         Moved ewk_util from WebKit to WebCore and rename it
46638         to CairoUtilityEfl so that the code can be shared
46639         between WebKit1 and WebKit2. Some related utility
46640         code was also moved from RenderThemeEfl to
46641         CairoUtilityEfl.
46642
46643         No new tests, no behavior change.
46644
46645         * PlatformEfl.cmake:
46646         * platform/efl/RenderThemeEfl.cpp:
46647         * platform/graphics/efl/CairoUtilitiesEfl.cpp: Renamed from Source/WebKit/efl/ewk/ewk_util.cpp.
46648         (WebCore):
46649         (WebCore::evasObjectFromCairoImageSurface):
46650         (WebCore::createSurfaceForBackingStore):
46651         * platform/graphics/efl/CairoUtilitiesEfl.h: Renamed from Source/WebKit/efl/ewk/ewk_util_private.h.
46652         (WebCore):
46653
46654 2012-10-15  Beth Dakin  <bdakin@apple.com>
46655
46656         https://bugs.webkit.org/show_bug.cgi?id=99350
46657         REGRESSION (r131238): Repro crash in 
46658        WebCore::ScrollingStateTree::removeNode(WebCore::ScrollingStateNode*) 
46659         opening pdf page
46660         -and corresponding-
46661         <rdar://problem/12499839>
46662
46663         Reviewed by Simon Fraser.
46664
46665         We have to null-check node here. It won't be found if  
46666         clearStateTree() was recently called.
46667         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
46668         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
46669
46670 2012-10-15  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
46671
46672         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
46673         https://bugs.webkit.org/show_bug.cgi?id=99302
46674
46675         Reviewed by Rob Buis.
46676
46677         RIM PR: 210884
46678         The marco BBLOG() is defined as a no-op in release mode which will
46679         save a function call in the release build.
46680         Internally reviewed by Charles Wei.
46681
46682         No new tests since there's no functional change.
46683
46684         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
46685         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
46686         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
46687         (WebCore::GraphicsContext3D::logFrameBufferStatus):
46688         * platform/graphics/blackberry/LayerCompositingThread.cpp:
46689         (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
46690         * platform/graphics/blackberry/VideoLayerWebKitThread.cpp:
46691         (WebCore::VideoLayerWebKitThread::setHolePunchRect):
46692         (WebCore::VideoLayerWebKitThread::boundsChanged):
46693         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
46694         (WebCore::GraphicsContext3D::compileShader):
46695
46696 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46697
46698         [EFL] Provide logging for OnlineState detection code
46699         https://bugs.webkit.org/show_bug.cgi?id=99299
46700
46701         Reviewed by Kenneth Rohde Christiansen.
46702
46703         Add logging to NetworkStateNotifierEfl.cpp to facilitate
46704         debugging of this functionality.
46705
46706         No new tests, no behavior change.
46707
46708         * platform/network/efl/NetworkStateNotifierEfl.cpp:
46709         (WebCore::NetworkStateNotifier::updateState):
46710
46711 2012-10-15  MORITA Hajime  <morrita@google.com>
46712
46713         [Regression r131167] run-webkit-tests fails
46714         https://bugs.webkit.org/show_bug.cgi?id=99279
46715
46716         Reviewed by Kentaro Hara.
46717
46718         CodeGeneratorV8.pm assumed that there are only two objects which have constructor getters and
46719         overlooked TestObj. This fix relaxes that assumption to accept it.
46720
46721         No new tests. Fixing an existing test.
46722
46723         * bindings/scripts/CodeGeneratorV8.pm:
46724         (GenerateConstructorGetter):
46725         * bindings/scripts/test/V8/V8TestObj.cpp:
46726         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
46727
46728 2012-10-15  Joe Mason  <jmason@rim.com>
46729
46730         [BlackBerry] Fix WebSockets which was disabled by recent string changes
46731         https://bugs.webkit.org/show_bug.cgi?id=99248
46732
46733         Reviewed by George Staikos.
46734
46735         PR 223681: The signature of FilterStream::notifyStatusReceived changed to take a
46736         BlackBerry::Platform::String instead of a char *. But SocketStreamHandleBlackBerry was not
46737         updated to the new signature, so the status message is not getting passed on because it is
46738         not calling the correct override.
46739
46740         No new tests because this is fixing a regression.
46741
46742         * platform/network/blackberry/SocketStreamHandle.h:
46743         (SocketStreamHandle):
46744         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46745         (WebCore::SocketStreamHandle::notifyStatusReceived):
46746
46747 2012-10-15  Rob Buis  <rbuis@rim.com>
46748
46749         Remove RenderTextControl::isSelectableElement
46750         https://bugs.webkit.org/show_bug.cgi?id=99334
46751
46752         Reviewed by Andreas Kling.
46753
46754         It seems this method is not used anymore.
46755
46756         * WebCore.order:
46757         * rendering/RenderTextControl.h:
46758
46759 2012-10-15  Mike West  <mkwst@chromium.org>
46760
46761         CSP source expressions should support paths at file-level granularity.
46762         https://bugs.webkit.org/show_bug.cgi?id=99250
46763
46764         Reviewed by Adam Barth.
46765
46766         After a bit of discussion on public-webappsec[1], path support for CSP
46767         source expressions has been tuned to support file-level granularity. In
46768         particular, this means that:
46769
46770         - 'example.com/js' matches a file named 'js'
46771         - 'example.com/js/' matches all files under a directory named 'js'
46772           (note the trailing slash)
46773         - 'example.com/js/file.js' matches only a file named 'file.js'
46774           inside a directory named 'js'
46775
46776         Though this is part of the CSP 1.1 spec, it continues to be exposed
46777         outside the CSP_NEXT flag for back-compatibility.
46778
46779         Test cases have been added to the existing
46780         http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
46781         in order ensure that the new functionality works correctly.
46782
46783         * page/ContentSecurityPolicy.cpp:
46784         (WebCore::CSPSource::pathMatches):
46785             If the path ends with '/', do a prefix check. If not, check for an
46786             exact match.
46787         (WebCore::CSPSourceList::parsePath):
46788             Don't automatically append a '/' to paths.
46789
46790 2012-10-15  George Staikos  <staikos@webkit.org>
46791
46792         [BlackBerry] Adapt to Platform API changes in string handling
46793         https://bugs.webkit.org/show_bug.cgi?id=99248
46794
46795         Reviewed by Yong Li.
46796
46797         Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.
46798
46799         * html/track/TextTrack.cpp:
46800         (WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
46801         * page/blackberry/SettingsBlackBerry.cpp:
46802         (WebCore):
46803         (WebCore::Settings::initializeDefaultFontFamilies):
46804         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
46805         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
46806         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
46807         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
46808         * platform/blackberry/PasteboardBlackBerry.cpp:
46809         (WebCore::Pasteboard::writeSelection):
46810         (WebCore::Pasteboard::writeURL):
46811         (WebCore::Pasteboard::writePlainText):
46812         (WebCore::Pasteboard::plainText):
46813         (WebCore::Pasteboard::documentFragment):
46814         * platform/blackberry/ReadOnlyLatin1String.h: Removed.
46815         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
46816         (WebCore::MediaPlayerPrivate::getSupportedTypes):
46817         (WebCore::MediaPlayerPrivate::supportsType):
46818         (WebCore::MediaPlayerPrivate::setCertificatePath):
46819         (WebCore::MediaPlayerPrivate::load):
46820         (WebCore::generateProtectionSpaceFromMMRAuthChallenge):
46821         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
46822         (WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
46823         (WebCore::MediaPlayerPrivate::lookupMediaStream):
46824         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
46825         (MediaPlayerPrivate):
46826         (WebCore::MediaPlayerPrivate::engineDescription):
46827         * platform/network/blackberry/DNSBlackBerry.cpp:
46828         (WebCore::prefetchDNS):
46829         * platform/network/blackberry/NetworkJob.cpp:
46830         (WebCore::NetworkJob::initialize):
46831         (WebCore::NetworkJob::notifyStatusReceived):
46832         (WebCore::NetworkJob::notifyHeadersReceived):
46833         (WebCore::NetworkJob::handleNotifyClose):
46834         (WebCore::NetworkJob::sendRequestWithCredentials):
46835         * platform/network/blackberry/NetworkJob.h:
46836         (NetworkJob):
46837         * platform/network/blackberry/NetworkManager.cpp:
46838         (WebCore::NetworkManager::startJob):
46839         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
46840         (WebCore::ResourceRequest::initializePlatformRequest):
46841         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46842         (WebCore::SocketStreamHandle::SocketStreamHandle):
46843         * platform/text/blackberry/StringBlackBerry.cpp:
46844         (WTF::String::String):
46845         (WTF::String::operator BlackBerry::Platform::String):
46846         * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
46847
46848 2012-10-15  Jay Civelli  <jcivelli@chromium.org>
46849
46850         Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
46851         its current position is at a segment boundary (4096) ends up adding an
46852         unitialized segment (with uninitialized memory) to the SharedBuffer.
46853         https://bugs.webkit.org/show_bug.cgi?id=99000
46854
46855         Reviewed by Adam Barth.
46856
46857         * platform/SharedBuffer.cpp:
46858         (WebCore::SharedBuffer::append):
46859
46860 2012-10-15  Luke Macpherson   <macpherson@chromium.org>
46861
46862         Make CSS variable names case-insensitive.
46863         https://bugs.webkit.org/show_bug.cgi?id=98712
46864
46865         Reviewed by Tony Chang.
46866
46867         This patch modifies the parser to normalize all variable names to lower case,
46868         making variable definitions consistent with other property names, which are also case insensitive.
46869         Spec: http://dev.w3.org/csswg/css-variables/#defining-variables
46870
46871         Test: fast/css/variables/case-insensitive.html
46872
46873         * css/CSSParser.cpp:
46874         (WebCore::CSSParser::createPrimitiveNumericValue):
46875         (WebCore):
46876         (WebCore::CSSParser::createPrimitiveVariableNameValue):
46877         (WebCore::CSSParser::parseValidPrimitive):
46878         (WebCore::CSSParser::parseValue):
46879         (WebCore::CSSParser::storeVariableDeclaration):
46880         (WebCore::CSSParserString::lowerSubstring):
46881         Added function to compute a lower case substring as an AtomicString from a CSSParserString.
46882         * css/CSSParser.h:
46883         (CSSParser):
46884         * css/CSSParserValues.h:
46885         (CSSParserString):
46886         (WebCore::CSSParserString::lowerSubstring):
46887
46888 2012-10-15  Michael Saboff  <msaboff@apple.com>
46889
46890         Update RenderText to use String instead of UChar* for text
46891         https://bugs.webkit.org/show_bug.cgi?id=96979
46892
46893         Reviewed by Dan Bernstein.
46894
46895         RenderText now uses a String for text.  It keeps a cached LCHar* or UChar* pointer to the
46896         actual text data for performance.  Added a characterAt() indexed accessor to RenderText to avoid the
46897         somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n].  This is
46898         now written as rt->characterAt(n).
46899         Enabled patch in the HTML parser to create 8 bit text data.  Modified TextRun to create 
46900         text runs using 8 bit string data where possible.  Added several flavors of RenderBlock::constructTextRun
46901         to create TextRuns from RenderText objects including with an offset.  Added an LChar flavor of constructTextRun()
46902         as well.  Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
46903         parameter.  
46904         Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN).  Enabled WTF_USE_8BIT_TEXTRUN
46905         for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific code is
46906         updated to TextRun's with 8 bit data.
46907         Added many 8/16 bit aware paths.  Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.
46908
46909         No function change therefore no new tests.
46910
46911         * html/parser/HTMLTokenizer.cpp:
46912         (WebCore::vectorEqualsString):
46913         (WebCore::HTMLTokenizer::nextToken):
46914         * html/parser/HTMLTokenizer.h:
46915         (HTMLTokenizer):
46916         * html/track/WebVTTTokenizer.cpp:
46917         (WebCore::vectorEqualsString):
46918         (WebCore::WebVTTTokenizer::nextToken):
46919         * html/track/WebVTTTokenizer.h:
46920         (WebVTTTokenizer):
46921         * platform/graphics/Font.h:
46922         (WebCore::Font::glyphDataForCharacter):
46923         * platform/graphics/FontFastPath.cpp:
46924         (WebCore):
46925         * platform/graphics/TextRun.h:
46926         (WebCore::TextRun::TextRun):
46927         (WebCore::TextRun::subRun):
46928         (TextRun):
46929         * platform/graphics/mac/ComplexTextController.cpp:
46930         (WebCore::TextLayout::isNeeded):
46931         (WebCore::TextLayout::constructTextRun):
46932         * rendering/InlineFlowBox.cpp:
46933         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
46934         * rendering/InlineIterator.h:
46935         (WebCore::InlineIterator::atTextParagraphSeparator):
46936         (WebCore::InlineIterator::current):
46937         (WebCore::InlineIterator::previousInSameNode):
46938         * rendering/InlineTextBox.cpp:
46939         (WebCore::adjustCharactersAndLengthForHyphen):
46940         (WebCore::InlineTextBox::paint):
46941         (WebCore::InlineTextBox::paintSelection):
46942         (WebCore::InlineTextBox::constructTextRun):
46943         * rendering/InlineTextBox.h:
46944         (InlineTextBox):
46945         * rendering/RenderBlock.cpp:
46946         (WebCore::constructTextRunInternal):
46947         (WebCore::RenderBlock::constructTextRun):
46948         * rendering/RenderBlock.h:
46949         (RenderBlock):
46950         * rendering/RenderBlockLineLayout.cpp:
46951         (WebCore::endsWithASCIISpaces):
46952         (WebCore::reachedEndOfTextRenderer):
46953         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
46954         (WebCore::shouldSkipWhitespaceAfterStartObject):
46955         (WebCore::textWidth):
46956         (WebCore::tryHyphenating):
46957         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
46958         * rendering/RenderCombineText.cpp:
46959         (WebCore::RenderCombineText::getStringToRender):
46960         (WebCore::RenderCombineText::combineText):
46961         * rendering/RenderCombineText.h:
46962         (RenderCombineText):
46963         * rendering/RenderText.cpp:
46964         (SameSizeAsRenderText):
46965         (WebCore::RenderText::RenderText):
46966         (WebCore::RenderText::widthFromCache):
46967         (WebCore::RenderText::computePreferredLogicalWidths):
46968         (WebCore::RenderText::setTextInternal):
46969         (WebCore::RenderText::width):
46970         * rendering/RenderText.h:
46971         (WebCore::RenderText::is8Bit):
46972         (WebCore::RenderText::characters8):
46973         (WebCore::RenderText::characters16):
46974         (WebCore::RenderText::characterAt):
46975         (WebCore::RenderText::operator[]):
46976         (RenderText):
46977         * xml/parser/MarkupTokenBase.h:
46978         (WebCore::MarkupTokenBase::appendToCharacter):
46979         (MarkupTokenBase):
46980         (WebCore::MarkupTokenBase::isAll8BitData):
46981
46982 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
46983
46984         Web Inspector: Scripts for dynamically added script elements are not shown in sources panel.
46985         https://bugs.webkit.org/show_bug.cgi?id=99324
46986
46987         Reviewed by Pavel Feldman.
46988
46989         NetworkUISourceCodeProvider now adds uiSourceCodes for dynamic anonymous scripts
46990         and dynamic scripts loaded before inspector was opened.
46991
46992         Tests: http/tests/inspector-enabled/dynamic-scripts.html
46993                inspector/debugger/dynamic-scripts.html
46994
46995         * inspector/front-end/NetworkLog.js:
46996         (WebInspector.NetworkLog.prototype.requestForURL):
46997         * inspector/front-end/NetworkUISourceCodeProvider.js:
46998         (WebInspector.NetworkUISourceCodeProvider):
46999         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
47000         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
47001
47002 2012-10-15  Dominik Röttsches  <dominik.rottsches@intel.com>
47003
47004         REGRESSION(130613): Reintroduces crashes when using soup's timeout functionality
47005         https://bugs.webkit.org/show_bug.cgi?id=99311
47006
47007         Reviewed by Gustavo Noronha Silva.
47008
47009         Removing the cleanupSoupRequestOperation call, since the cancel() call will eventually trigger the
47010         cleanup already setting the right flag. Cleaning the handle already here will result in crashes when
47011         using the soup timeout functionality.
47012         The explicit cleanup call reintroduced in r130613, after it had been previously removed in r130348.
47013
47014         No new tests, tests that catch this will be part of bug 74802 for XHR timeout support.
47015
47016         * platform/network/soup/ResourceHandleSoup.cpp:
47017         (WebCore::requestTimeoutCallback):
47018
47019 2012-10-15  Ilya Tikhonovsky  <loislo@chromium.org>
47020
47021         Web Inspector: convert manual size calculation of different WebKit things into MemoryInstrumentation.
47022         https://bugs.webkit.org/show_bug.cgi?id=99309
47023
47024         Reviewed by Yury Semikhatsky.
47025
47026         JSHeap, DOMStorage and HeapProfiler data were counted manually.
47027         Now we count the sizes more generic way.
47028
47029         * dom/WebCoreMemoryInstrumentation.cpp:
47030         * dom/WebCoreMemoryInstrumentation.h:
47031         (WebCoreMemoryTypes): new string identifiers were added for Inspector's data.
47032         * inspector/InspectorBaseAgent.cpp:
47033         (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface): common data members were moved from template to base class.
47034         (WebCore::InspectorBaseAgentInterface::reportMemoryUsage): NMI instrumentation was added to the base template.
47035         * inspector/InspectorBaseAgent.h:
47036         (InspectorBaseAgentInterface): ditto
47037         (WebCore::InspectorBaseAgent::InspectorBaseAgent): ditto
47038         * inspector/InspectorController.cpp:
47039         (WebCore::InspectorController::reportMemoryUsage): NMI instrumentation was added to the class.
47040         * inspector/InspectorController.h:
47041         * inspector/InspectorDOMStorageAgent.cpp:
47042         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage): NMI instrumentation was added to the class.
47043         * inspector/InspectorDOMStorageAgent.h:
47044         * inspector/InspectorDOMStorageResource.cpp:
47045         (WebCore::InspectorDOMStorageResource::reportMemoryUsage): NMI instrumentation was added to the class.
47046         * inspector/InspectorDOMStorageResource.h:
47047         * inspector/InspectorMemoryAgent.cpp:
47048         (WebCore::reportJSHeapInfo): these methods now use MemoryInstrumentation for reporting the size of underlying data.
47049         (WebCore::reportRenderTreeInfo):
47050         (WebCore::collectDomTreeInfo):
47051         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47052         (WebCore::InspectorMemoryAgent::reportMemoryUsage): NMI instrumentation was added to the class.
47053         * inspector/InspectorMemoryAgent.h:
47054         * inspector/InspectorProfilerAgent.cpp:
47055         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
47056         * inspector/InspectorProfilerAgent.h:
47057         (InspectorProfilerAgent): NMI instrumentation was added to the class.
47058         * inspector/MemoryInstrumentationImpl.cpp: allocatedObjects map was converted from InspectorMemoryAgent::getProcessMemoryDistribution local variable to member variable.
47059         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject):
47060         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47061         (WebCore::MemoryInstrumentationImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47062         * inspector/MemoryInstrumentationImpl.h:
47063         (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
47064         (WebCore::MemoryInstrumentationClientImpl::allocatedObjects):
47065         (WebCore::MemoryInstrumentationClientImpl::checkInstrumentedObjects):
47066         * inspector/front-end/NativeMemorySnapshotView.js:
47067         (WebInspector.MemoryBlockViewProperties._initialize):
47068         (WebInspector.NativeMemoryBarChart.prototype._updateView):
47069         * page/Page.cpp:
47070         (WebCore::Page::reportMemoryUsage): NMI instrumentation was added to the class.
47071         * page/Page.h:
47072
47073 2012-10-15  Kent Tamura  <tkent@chromium.org>
47074
47075         Improve code of LocaleMac.mm
47076         https://bugs.webkit.org/show_bug.cgi?id=98383
47077
47078         Reviewed by Darin Adler.
47079
47080         - Use isNull instead of isEmpty because isNull is more efficient.
47081         - create*Formatter should return RetainPtr to avoid to retain in each of callsites.
47082         - Explicit String conversion is not needed.
47083
47084         No new tests. This doesn't change any behavior.
47085
47086         * platform/text/mac/LocaleMac.h:
47087         (LocaleMac):
47088         - Change the return types of createShortDateFormatter,
47089         createTimeFormatter, and createShortTimeFormatter from NSDateFormatter*
47090         to RetainPtr<NSDateFormatter>.
47091         - Omit 'create' from their names.
47092         - Add m_gregorianCalendar.
47093         * platform/text/mac/LocaleMac.mm:
47094         (WebCore::createDateTimeFormatter):
47095         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47096         Add an NSCalendar argument.
47097         (WebCore::LocaleMac::shortDateFormatter):
47098         Renamed from createShortTimeFormatter.
47099         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47100         (WebCore::LocaleMac::parseDateTime): Follow the return type change and the renaming.
47101         (WebCore::LocaleMac::formatDateTime): Ditto. Also, remove explicit String construction.
47102         (WebCore::LocaleMac::dateFormatText): Ditto. Also, use isNull.
47103         (WebCore::LocaleMac::monthLabels): Follow the return type change and the renaming.
47104         (WebCore::LocaleMac::weekDayShortLabels): Ditto.
47105         (WebCore::LocaleMac::timeFormatter):
47106         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47107         Renamed from createTimeFormatter.
47108         (WebCore::LocaleMac::shortTimeFormatter): Ditto.
47109         (WebCore::LocaleMac::dateFormat):
47110         Use isNull. Remove explicit String construction. Follow the return type
47111         change and the renaming.
47112         (WebCore::LocaleMac::timeFormat): ditto.
47113         (WebCore::LocaleMac::shortTimeFormat): ditto.
47114         (WebCore::LocaleMac::timeAMPMLabels):
47115         Remove explicit String construction. Follow the return type change.
47116         (WebCore::LocaleMac::initializeLocalizerData):
47117         Remove explicit String construction.
47118
47119 2012-10-12  Ilya Tikhonovsky  <loislo@chromium.org>
47120
47121         Web Inspector: NMI remove hand made object builders with automatic builder.
47122         https://bugs.webkit.org/show_bug.cgi?id=99186
47123
47124         Reviewed by Yury Semikhatsky.
47125
47126         Old builders were replaced with single automatic builder.
47127         It does the next things:
47128         a) deduplicates entries in the MemoryInstrumentationClient's map and converts objectType pointers to String;
47129         b) creates parent entries and assigns their aggregated sizes;
47130         c) creates the hierarchy of MemoryBlocks recursively.
47131
47132         * dom/WebCoreMemoryInstrumentation.cpp:
47133         (WebCore):
47134         * dom/WebCoreMemoryInstrumentation.h:
47135         (WebCoreMemoryTypes):
47136         * inspector/InspectorMemoryAgent.cpp:
47137         (WebCore):
47138         (WebCore::jsHeapInfo):
47139         (WebCore::renderTreeInfo):
47140         (WebCore::addPlatformComponentsInfo):
47141         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47142         * inspector/MemoryInstrumentationImpl.cpp:
47143         (WebCore::MemoryInstrumentationClientImpl::sizesMap):
47144         (WebCore):
47145         * inspector/MemoryInstrumentationImpl.h:
47146         (WebCore):
47147         (MemoryInstrumentationClientImpl):
47148
47149 2012-10-14  Sam Weinig  <sam@webkit.org>
47150
47151         Simplify user content in WebKit2 by using WebCore::UserStyleSheet and WebCore::UserScript directly
47152         https://bugs.webkit.org/show_bug.cgi?id=99276
47153
47154         Reviewed by Anders Carlsson.
47155
47156         Add default constructors for UserScript and UserStyleSheet so they can be used in CoreIPC encoding/decoding.
47157
47158         * page/UserScript.h:
47159         (WebCore::UserScript::UserScript):
47160         (UserScript):
47161         * page/UserStyleSheet.h:
47162         (WebCore::UserStyleSheet::UserStyleSheet):
47163         (UserStyleSheet):
47164
47165 2012-10-14  Jon Lee  <jonlee@apple.com>
47166
47167         Allow notification origin permission request when no js callback is provided
47168         https://bugs.webkit.org/show_bug.cgi?id=63615
47169         <rdar://problem/11059590>
47170
47171         Reviewed by Sam Weinig.
47172
47173         Instead of throwing a type error when no callback is provided, we pass a null callback.
47174
47175         Test: http/tests/notifications/legacy/request-no-callback.html
47176
47177         * bindings/js/JSDesktopNotificationsCustom.cpp:
47178         (WebCore::JSNotificationCenter::requestPermission):
47179
47180 2012-10-12  Anders Carlsson  <andersca@apple.com>
47181
47182         Move QDataStream functions into HistoryItemQt.cpp
47183         https://bugs.webkit.org/show_bug.cgi?id=99203
47184
47185         Reviewed by Andreas Kling.
47186
47187         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47188         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47189         be moved into a separate header instead of polluting headers unnecessarily.
47190
47191         * history/qt/HistoryItemQt.cpp:
47192         (operator<<):
47193         (operator>>):
47194         * platform/FractionalLayoutUnit.h:
47195         * platform/graphics/IntPoint.h:
47196
47197 2012-10-14  Sam Weinig  <sam@webkit.org>
47198
47199         Make UserScript and UserStyleSheet value objects that are copyable
47200         https://bugs.webkit.org/show_bug.cgi?id=99275
47201
47202         Reviewed by Tim Horton.
47203
47204         Simplify UserScript and UserStyleSheet and make them more easily usable
47205         without sticking them in an OwnPtr.
47206
47207         * WebCore.exp.in:
47208         Update exports.
47209
47210         * page/PageGroup.cpp:
47211         (WebCore::PageGroup::addUserScriptToWorld):
47212         (WebCore::PageGroup::addUserStyleSheetToWorld):
47213         * page/PageGroup.h:
47214         (PageGroup):
47215         * page/UserContentURLPattern.cpp:
47216         (WebCore::UserContentURLPattern::matchesPatterns):
47217         * page/UserContentURLPattern.h:
47218         (UserContentURLPattern):
47219         Update to not assume whitelist and blacklist are in Vector<String>*.
47220
47221         * page/UserScript.h:
47222         (UserScript):
47223         (WebCore::UserScript::UserScript):
47224         (WebCore::UserScript::whitelist):
47225         (WebCore::UserScript::blacklist):
47226         * page/UserStyleSheet.h:
47227         (UserStyleSheet):
47228         (WebCore::UserStyleSheet::UserStyleSheet):
47229         (WebCore::UserStyleSheet::whitelist):
47230         (WebCore::UserStyleSheet::blacklist):
47231         Switch OwnPtr<Vector<String> > to Vector<String> and remove Noncopyable restriction.
47232
47233 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47234
47235         [wk2] Implement PDFPlugin
47236         https://bugs.webkit.org/show_bug.cgi?id=99206
47237
47238         Unreviewed build fix, export __ZN7WebCore8IntPointC1ERK7CGPoint.
47239
47240         * WebCore.exp.in:
47241
47242 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47243
47244         [wk2] Implement PDFPlugin
47245         https://bugs.webkit.org/show_bug.cgi?id=99206
47246
47247         Reviewed by Dan Bernstein.
47248
47249         Add a plug-in that uses PDFKit to display PDFs, instead of using PDFKit in the
47250         UIProcess for full-page PDFs. This new plugin will also be used for inline PDFs
47251         in place of SimplePDFPlugin (née BuiltInPDFView).
47252
47253         * WebCore.exp.in:
47254         Export a few more methods to WebKit(2).
47255
47256         * WebCore.xcodeproj/project.pbxproj:
47257         Expose Pasteboard.h as a private header so PDFPlugin can use it.
47258
47259         * platform/ScrollableArea.h:
47260         Make invalidateScrollbar/invalidateScrollCorner virtual.
47261
47262 2012-10-14  Antoine Quint  <graouts@apple.com>
47263
47264         InspectorPageAgent should expose a method to control the compositing debug settings.
47265         https://bugs.webkit.org/show_bug.cgi?id=99253
47266
47267         Reviewed by Timothy Hatcher.
47268
47269         * inspector/Inspector.json:
47270         * inspector/InspectorPageAgent.cpp:
47271         (WebCore::InspectorPageAgent::setCompositingBordersVisible):
47272         * inspector/InspectorPageAgent.h:
47273
47274 2012-10-13  Chris Rogers  <crogers@google.com>
47275
47276         WebAudioBus needs support for resizing bus to a smaller size
47277         https://bugs.webkit.org/show_bug.cgi?id=99215
47278
47279         Reviewed by Dimitri Glazkov.
47280
47281         Upgrade AudioBus and WebAudioBus to support resizing to a smaller size, once it has been created.
47282         This is useful, for example, when decoding VBR formats and the actual length can't be exactly determined
47283         until the entire file is decoded.
47284
47285         * platform/audio/AudioBus.cpp:
47286         (WebCore::AudioBus::resizeSmaller):
47287         (WebCore):
47288         * platform/audio/AudioBus.h:
47289         (AudioBus):
47290         * platform/audio/AudioChannel.cpp:
47291         (WebCore::AudioChannel::resizeSmaller):
47292         (WebCore):
47293         * platform/audio/AudioChannel.h:
47294         (AudioChannel):
47295         * platform/chromium/support/WebAudioBus.cpp:
47296         (WebKit::WebAudioBus::resizeSmaller):
47297         (WebKit):
47298
47299 2012-10-13  Gregg Tavares  <gman@google.com>
47300
47301         Add warning for unrenderable textures
47302         https://bugs.webkit.org/show_bug.cgi?id=99235
47303
47304         Reviewed by Kenneth Russell.
47305
47306         Unrenderable textures are often hard to debug. Adds a message to that
47307         appears in the JavaScript console to help developers find the issue.
47308
47309         No new tests as no new functionality.
47310
47311         * html/canvas/WebGLRenderingContext.cpp:
47312         (WebCore):
47313         (WebCore::WebGLRenderingContext::drawArrays):
47314         (WebCore::WebGLRenderingContext::drawElements):
47315         (WebCore::WebGLRenderingContext::handleNPOTTextures):
47316         * html/canvas/WebGLRenderingContext.h:
47317         (WebGLRenderingContext):
47318
47319 2012-10-13  Geoffrey Garen  <ggaren@apple.com>
47320
47321         Not reviewed.
47322
47323         Updated bindings test results.
47324
47325         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
47326         (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
47327
47328 2012-10-12  Geoffrey Garen  <ggaren@apple.com>
47329
47330         I pity da foo' who's converting numbers to strings
47331         https://bugs.webkit.org/show_bug.cgi?id=99197
47332
47333         Reviewed by Gavin Barraclough.
47334
47335         40% speedup on PerformanceTests/Dromaeo/dom-traverse.html. Probably speeds
47336         some other things up too.
47337
47338         Credit to Eric Seidel for spotting this.
47339
47340         * bindings/scripts/CodeGeneratorJS.pm:
47341         (GenerateImplementation): getOwnPropertySlotByIndex doesn't need to prefer
47342         string lookup in the static table because our static tables don't contain
47343         properties that are numbers.
47344
47345         I believe this is low-hanging fruit left behind by Phil's
47346         getOwnPropertySlotByIndex optimization, but it's also possible that this was a
47347         regression at some point. I didn't check.
47348
47349 2012-10-13  Adam Barth  <abarth@webkit.org>
47350
47351         Remove dead code in Node.idl
47352         https://bugs.webkit.org/show_bug.cgi?id=99237
47353
47354         Reviewed by Maciej Stachowiak.
47355
47356         We don't implement this feature. This code is dead and should be
47357         removed.
47358
47359         * dom/Node.idl:
47360
47361 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47362
47363         Fix GraphicsLayerCA visible rect computation in the face of perspective and preserve-3d
47364         https://bugs.webkit.org/show_bug.cgi?id=99212
47365
47366         Reviewed by Tim Horton.
47367
47368         GraphicsLayerCA::computeVisibleRect() was incorrect for layer trees with perspective
47369         and preserve-3d, so fix that, and add some tests.
47370         
47371         Perspective is implemented via childrenTransform(); if our parent has one,
47372         we have to left-multiply this into the transformation matrix.
47373         
47374         We have to test both this layer and its parent when deciding whether to accumulate
47375         or flatten.
47376         
47377         Use state.mappedQuad() rather than state.lastPlanarQuad(), because the last planar
47378         quad might be for some distant ancestor, and there may be intermediate preserve-3d
47379         layers.
47380
47381         Tests: compositing/visible-rect/3d-transform-style.html
47382                compositing/visible-rect/3d-transformed.html
47383                compositing/visible-rect/nested-transform.html
47384
47385         * platform/graphics/ca/GraphicsLayerCA.cpp:
47386         (WebCore::GraphicsLayerCA::computeVisibleRect):
47387
47388 2012-10-11  Simon Fraser  <simon.fraser@apple.com>
47389
47390         Move TransformState code into its own member function, and remove a test that was prematurely added
47391         https://bugs.webkit.org/show_bug.cgi?id=99117
47392
47393         Reviewed by Tim Horton.
47394
47395         The code that manipulates the TransformState and computes the visible rect is going to get
47396         more complex, so move it into a new member function.
47397
47398         * platform/graphics/ca/GraphicsLayerCA.cpp:
47399         (WebCore::GraphicsLayerCA::computeVisibleRect):
47400         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47401         * platform/graphics/ca/GraphicsLayerCA.h:
47402         (GraphicsLayerCA):
47403
47404 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47405
47406         Add some initial visible rect tests and tweak the visible wash layer
47407         https://bugs.webkit.org/show_bug.cgi?id=99095
47408
47409         Reviewed by Tim Horton.
47410
47411         Make the m_visibleTileWashLayer more useful by showing it for all
47412         layers with transforms, not just tiled layers. This is a debugging
47413         layer normally disabled, but enabled by #defining VISIBLE_TILE_WASH.
47414
47415         Tests: compositing/visible-rect/2d-transformed.html
47416                compositing/visible-rect/3d-transformed.html
47417                compositing/visible-rect/clipped-by-viewport copy.html
47418                compositing/visible-rect/clipped-by-viewport.html
47419                compositing/visible-rect/clipped-visible-rect.html
47420
47421         * platform/graphics/ca/GraphicsLayerCA.cpp:
47422         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47423         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
47424         * platform/graphics/ca/GraphicsLayerCA.h:
47425
47426 2012-10-12  Pablo Flouret  <pablof@motorola.com>
47427
47428         Teach GeneratorGObject about [ImplementedAs] extended attribute in functions
47429         https://bugs.webkit.org/show_bug.cgi?id=99214
47430
47431         Reviewed by Kentaro Hara.
47432
47433         No new tests, updated the binding tests results.
47434
47435         * bindings/scripts/CodeGeneratorGObject.pm:
47436         (GenerateFunction):
47437         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
47438         (webkit_dom_test_obj_orange):
47439
47440 2012-10-12  Beth Dakin  <bdakin@apple.com>
47441
47442         https://bugs.webkit.org/show_bug.cgi?id=99211
47443         When ScrollingStateNodes are destroyed, they should be removed 
47444         ScrollingCoordinator's HashMap
47445
47446         Reviewed by Sam Weinig.
47447
47448         This patch adds a new member variable to ScrollingStateTree. It's a 
47449         Vector of ScrollingNodeIDs. It will contain the IDs of nodes that 
47450         have been removed from the tree since the last time the tree was 
47451         committed.
47452         * page/scrolling/ScrollingStateTree.cpp:
47453         (WebCore::ScrollingStateTree::ScrollingStateTree):
47454
47455         When we do commit, copy the Vector over into the cloned tree, and 
47456         then clear our own Vector.
47457         (WebCore::ScrollingStateTree::commit):
47458
47459         Call didRemoveNode().
47460         (WebCore::ScrollingStateTree::removeNode):
47461
47462         Append the removed node's id to the vector.
47463         (WebCore::ScrollingStateTree::didRemoveNode):
47464         (WebCore):
47465         * page/scrolling/ScrollingStateTree.h:
47466         (ScrollingStateTree):
47467
47468         Call didRemoveNode().
47469         * page/scrolling/ScrollingStateNode.cpp:
47470         (WebCore::ScrollingStateNode::removeChild):
47471
47472         Fix the FIXME!
47473         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47474         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
47475
47476 2012-10-12  Brady Eidson  <beidson@apple.com>
47477
47478         Setup basic NetworkProcess messaging and initialization.
47479         https://bugs.webkit.org/show_bug.cgi?id=99198
47480
47481         Reviewed by Sam Weinig.
47482
47483         * English.lproj/Localizable.strings: Update for the Network Process UI name.
47484
47485 2012-10-12  Levi Weintraub  <leviw@chromium.org>
47486
47487         Remove unnecessary mode identifiers added in r131111
47488         https://bugs.webkit.org/show_bug.cgi?id=99208
47489
47490         Reviewed by Emil A Eklund.
47491
47492         Removing unnecessary mode identifiers from coordinate conversion methods. These
47493         were added in http://trac.webkit.org/changeset/131111
47494
47495         No new tests. No change in behavior.
47496
47497         * rendering/RenderBox.h:
47498         (RenderBox):
47499         * rendering/RenderBoxModelObject.h:
47500         (RenderBoxModelObject):
47501         * rendering/RenderInline.h:
47502         (RenderInline):
47503         * rendering/RenderObject.h:
47504         (RenderObject):
47505         * rendering/RenderView.h:
47506         (RenderView):
47507         * rendering/svg/RenderSVGForeignObject.h:
47508         (RenderSVGForeignObject):
47509         * rendering/svg/RenderSVGInline.h:
47510         (RenderSVGInline):
47511         * rendering/svg/RenderSVGModelObject.h:
47512         (RenderSVGModelObject):
47513         * rendering/svg/RenderSVGRoot.h:
47514         (RenderSVGRoot):
47515         * rendering/svg/RenderSVGText.h:
47516         (RenderSVGText):
47517
47518 2012-10-12  Sheriff Bot  <webkit.review.bot@gmail.com>
47519
47520         Unreviewed, rolling out r131224.
47521         http://trac.webkit.org/changeset/131224
47522         https://bugs.webkit.org/show_bug.cgi?id=99210
47523
47524         It broke the build (Requested by andersca on #webkit).
47525
47526         * history/qt/HistoryItemQt.cpp:
47527         * platform/FractionalLayoutUnit.h:
47528         (WebCore):
47529         (WebCore::operator<<):
47530         (WebCore::operator>>):
47531         * platform/graphics/IntPoint.h:
47532         (WebCore):
47533         (WebCore::operator<<):
47534         (WebCore::operator>>):
47535
47536 2012-10-12  Anders Carlsson  <andersca@apple.com>
47537
47538         Move QDataStream functions into HistoryItemQt.cpp
47539         https://bugs.webkit.org/show_bug.cgi?id=99203
47540
47541         Reviewed by Andreas Kling.
47542
47543         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47544         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47545         be moved into a separate header instead of polluting headers unnecessarily.
47546
47547         * history/qt/HistoryItemQt.cpp:
47548         (operator<<):
47549         (operator>>):
47550         * platform/FractionalLayoutUnit.h:
47551         * platform/graphics/IntPoint.h:
47552
47553 2012-10-12  Beth Dakin  <bdakin@apple.com>
47554
47555         https://bugs.webkit.org/show_bug.cgi?id=99204
47556         ScrollingStateNodes should keep track of their IDs
47557
47558         Reviewed by Simon Fraser.
47559
47560         There is a HashMap in ScrollingCoordinatorMac that maps 
47561         ScrollingNodeIDs to ScrollingStateNodes. The nodes themselves should 
47562         keep track of this id. Then the id can be used to make sure 
47563         ScrollingStateNodes remove themselves from the HashMap when they are 
47564         destroyed, and it will also be useful for associating 
47565         ScrollingStateNodes with ScrollingTreeNodes over on the scrolling 
47566         thread.
47567   
47568         This patch only has the ScrollingStateNodes cache the id. I will 
47569         actually make use of the id in follow-up patches.
47570
47571         * page/scrolling/ScrollingStateNode.cpp:
47572         (WebCore::ScrollingStateNode::ScrollingStateNode):
47573         * page/scrolling/ScrollingStateNode.h:
47574         (ScrollingStateNode):
47575         (WebCore::ScrollingStateNode::scrollingNodeID):
47576         * page/scrolling/ScrollingStateScrollingNode.cpp:
47577         (WebCore::ScrollingStateScrollingNode::create):
47578         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
47579         * page/scrolling/ScrollingStateScrollingNode.h:
47580         (ScrollingStateScrollingNode):
47581         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47582         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
47583
47584 2012-10-01  Jer Noble  <jer.noble@apple.com>
47585
47586         Add LSKD support to MediaPlayerPrivateAVFoundation.
47587         https://bugs.webkit.org/show_bug.cgi?id=98090
47588
47589         Reviewed by Anders Carlsson.
47590
47591         Add support for LSKD key system to MediaPlayerPrivateAVFoundation.
47592
47593         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47594         (MediaPlayerPrivateAVFoundationObjC): Add m_loaderDelegate, m_keyURIToRequestMap, and m_sessionToRequestMap.
47595         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47596         (globalLoaderDelegateQueue): Static accessor for the dispatch queue to use for the loader delegate.
47597         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
47598         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Add the loader delegate to the AVURLAsset.
47599         (WebCore::keySystemIsSupported): Convenience function; checks that the key system matches "com.apple.lskd"
47600         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Check the key system matches.
47601         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Fire a needkey event with an initData containing
47602             the key URI.
47603         (WebCore::extractKeyURIKeyIdAndCertificateFromInitData): Extract the keyURI, keyID, and the app certificate from the initData.
47604         (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Generate a streaming key request from AVFoundation and 
47605             fire a keymessage event.
47606         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Pass to AVFoundation through the AVAssetResourceLoader.
47607         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelKeyRequest): Release the loader delegate.
47608         (-[WebCoreAVFLoaderDelegate initWithCallback:]): Simple constructor.
47609         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): Pass to the MediaPlayerPrivateAVFoundationObjC.
47610
47611 2012-10-12  James Simonsen  <simonjam@chromium.org>
47612
47613         [RequestAnimationFrame] Remove vendor prefix
47614         https://bugs.webkit.org/show_bug.cgi?id=99116
47615
47616         Reviewed by Adam Barth.
47617
47618         Test: Existing rAF tests without prefix.
47619
47620         * dom/Document.cpp:
47621         (WebCore::Document::requestAnimationFrame):
47622         (WebCore::Document::cancelAnimationFrame):
47623         * dom/Document.h:
47624         (Document):
47625         * page/DOMWindow.cpp:
47626         (WebCore::DOMWindow::requestAnimationFrame):
47627         (WebCore::DOMWindow::cancelAnimationFrame):
47628         * page/DOMWindow.h:
47629         (DOMWindow):
47630         * page/DOMWindow.idl:
47631
47632 2012-10-12  Andreas Kling  <kling@webkit.org>
47633
47634         REGRESSION: Rapid memory growth calling DOM APIs with large strings.
47635         <http://webkit.org/b/98498>
47636         <rdar://problem/12443926>
47637
47638         Reviewed by Geöff Gären and Änders Cärlssön.
47639
47640         Prevent the selector query cache from growing indefinitely by setting a relaxed limit of 256 entries.
47641         If the cache fills up, remove a random entry before inserting a new one.
47642
47643         While this is unlikely to be a problem on real websites, we definitely shouldn't be adding boundless
47644         caches to WebKit.
47645
47646         * dom/SelectorQuery.cpp:
47647         (WebCore::SelectorQueryCache::add):
47648
47649 2012-10-12  Roger Fong  <roger_fong@apple.com>
47650
47651         Update method signature for platformCALayerShowRepaintCounter in MediaPlayerPlayerPrivateAVFoundationCF's LayerClient class.
47652         https://bugs.webkit.org/show_bug.cgi?id=99190
47653
47654         Reviewed by Simon Fraser.
47655
47656         LayerClient's base class (PlatformCALayerClient) method signature for abstract method platformCALayerShowRepaintCounter
47657         was updated in http://trac.webkit.org/changeset/130676 so it needs to be changed in LayerClient as well.
47658
47659         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
47660         (WebCore::LayerClient::platformCALayerShowRepaintCounter):
47661
47662 2012-10-12  Scott Graham  <scottmg@chromium.org>
47663
47664         Local disable of stack corruption warning when compiling on VS2012
47665         https://bugs.webkit.org/show_bug.cgi?id=99106
47666
47667         Reviewed by Ryosuke Niwa.
47668
47669         Warning is:
47670
47671         ...\FEConvolveMatrix.cpp(274) : warning C4789: buffer 'totals' of size 12 bytes will be overrun; 4 bytes will be written starting at offset 12.
47672
47673         And similar at lines 281, 355, and 365. This appears to be incorrect
47674         as the writes at offset 12 occur only when preserveAlphaValues is
47675         false, and when it's false, totals will be 16 bytes long.
47676
47677         No new tests.
47678
47679         * platform/graphics/filters/FEConvolveMatrix.cpp:
47680         (WebCore):
47681
47682 2012-10-11  Emil A Eklund  <eae@chromium.org>
47683
47684         [Sub pixel layout] Change RenderBox to not round logicalTop/Left for RenderReplaced
47685         https://bugs.webkit.org/show_bug.cgi?id=99108
47686
47687         Reviewed by Levi Weintraub.
47688
47689         Change RenderBox::computePositionedLogicalHeightReplaced and
47690         computePositionedLogicalWidthReplaced to not round position.
47691
47692         Covered by existing tests.
47693
47694         * rendering/InlineFlowBox.cpp:
47695         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
47696         Floor baselinePosition for replaced elements to match logic in
47697         RootInlineBox::ascentAndDescentForBox where the ascent is
47698         computed from the floored baselinePosition.
47699         
47700         * rendering/RenderBox.cpp:
47701         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
47702         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
47703         Remove .round() call for m_position, preserving precision.
47704
47705 2012-10-01  Jer Noble  <jer.noble@apple.com>
47706
47707         Enable ENCRYPTED_MEDIA support on Mac.
47708         https://bugs.webkit.org/show_bug.cgi?id=98044
47709
47710         Reviewed by Anders Carlsson.
47711
47712         Enable the ENCRYPTED_MEDIA conditional on the Mac port.
47713
47714         No new tests; Existing media/encrypted-media tests require org.w3.clearkey support, which is not implemented.
47715
47716         * Configurations/FeatureDefines.xcconfig: Enable the ENCRYPTED_MEDIA flag.
47717         * DerivedSources.make: Add the MediaKeyError and MediaKeyEvent classes.
47718         * WebCore.xcodeproj/project.pbxproj: Ditto.
47719         * bindings/js/JSDictionary.cpp:
47720         (WebCore::JSDictionary::convertValue): Add convertValue functions for Uint8Array and MediaKeyError.
47721         * bindings/js/JSDictionary.h:
47722         * html/HTMLMediaElement.cpp:
47723         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): Throw an error if no "needkey"
47724             handler is registered.
47725         * html/HTMLMediaElement.h:
47726         * html/HTMLMediaElement.idl: Change keySystem to DefaultIsUndefined.
47727         * platform/graphics/MediaPlayer.cpp:
47728         (WebCore::MediaPlayer::keyNeeded): Return a bool indicating whether the process was aborted
47729             due to a lack of "needkey" listener.
47730         * platform/graphics/MediaPlayer.h:
47731         (WebCore::MediaPlayerClient::mediaPlayerKeyAdded): Remove unused parameter names.
47732         (WebCore::MediaPlayerClient::mediaPlayerKeyError): Ditto.
47733         (WebCore::MediaPlayerClient::mediaPlayerKeyMessage): Ditto.
47734         (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded): Ditto.
47735         * platform/graphics/MediaPlayerPrivate.h:
47736         (WebCore::MediaPlayerPrivateInterface::addKey): Ditto.
47737         (WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Ditto.
47738         (WebCore::MediaPlayerPrivateInterface::cancelKeyRequest): Ditto.
47739         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47740         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47741         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Call extendedSupportsType.
47742         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Stub. Pass through to supportsType.
47743         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
47744         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
47745         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Call extendedSupportsType.
47746         (WebCore::MediaPlayerPrivateQTKit::extendedSupportsType): Stub. Pass through to supportsType.
47747
47748 2012-10-12  Jaehun Lim  <ljaehun.lim@samsung.com>
47749
47750         Check parameter's safety first
47751         https://bugs.webkit.org/show_bug.cgi?id=99136
47752
47753         Reviewed by Chris Rogers.
47754
47755         Pointer parameter was used before NULL checking.
47756         This patch moves safety checking statements to the head of the function.
47757
47758         No new tests. No behavior change.
47759
47760         * platform/audio/AudioChannel.cpp:
47761         (WebCore::AudioChannel::copyFromRange):
47762         (WebCore::AudioChannel::sumFrom):
47763         * platform/audio/EqualPowerPanner.cpp:
47764         (WebCore::EqualPowerPanner::pan):
47765
47766 2012-10-12  Andreas Kling  <kling@webkit.org>
47767
47768         RenderBR should share its constant newline string between instances.
47769         <http://webkit.org/b/99121>
47770
47771         Reviewed by Anders Carlsson.
47772
47773         * rendering/RenderBR.cpp:
47774         (WebCore::newlineString):
47775         (WebCore::RenderBR::RenderBR):
47776
47777 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47778
47779         Web Inspector: [Styles] !important priority not honored inside the same declaration
47780         https://bugs.webkit.org/show_bug.cgi?id=99170
47781
47782         Reviewed by Yury Semikhatsky.
47783
47784         Property priorities were not considered inside the same CSS rule. !important properties should stay active
47785         even if followed by non-!important properties with the same name.
47786
47787         * inspector/InspectorStyleSheet.cpp:
47788         (WebCore::InspectorStyle::styleWithProperties):
47789         * inspector/front-end/StylesSidebarPane.js:
47790         (WebInspector.StylePropertiesSection.prototype.onpopulate):
47791         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
47792
47793 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47794
47795         Web Inspector: use hard-coded zoom factors instead of 1.2 powers.
47796         https://bugs.webkit.org/show_bug.cgi?id=99173
47797
47798         Reviewed by Vsevolod Vlasov.
47799
47800         Overwise we step too fast.
47801
47802         * inspector/front-end/inspector.js:
47803         (WebInspector._zoomIn):
47804         (WebInspector._zoomOut):
47805         (WebInspector):
47806
47807 2012-10-12  Yury Semikhatsky  <yurys@chromium.org>
47808
47809         Web Inspector: move delete watch expression farther from the expand triangle
47810         https://bugs.webkit.org/show_bug.cgi?id=99166
47811
47812         Reviewed by Pavel Feldman.
47813
47814         Aligned 'delete watch expression' button on the right side (was on the left) so
47815         that it is hard to click it when expanding watched value.
47816
47817         * inspector/front-end/inspector.css:
47818         (.properties-tree.watch-expressions):
47819         (.section .properties .delete-button):
47820
47821 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47822
47823         Web Inspector: trim filename in the call stack sidebar
47824         https://bugs.webkit.org/show_bug.cgi?id=99169
47825
47826         Reviewed by Yury Semikhatsky.
47827
47828         Otherwise long file names are rendered poorly.
47829
47830         * inspector/front-end/CallStackSidebarPane.js:
47831         (WebInspector.CallStackSidebarPane.Placard.prototype._update):
47832         * inspector/front-end/inspector.css:
47833         (.placard .subtitle):
47834
47835 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
47836
47837         Web Inspector: Resume button in element inspector -> scripts has tooltip 'pause script execution'
47838         https://bugs.webkit.org/show_bug.cgi?id=99165
47839
47840         Reviewed by Pavel Feldman.
47841
47842         Pause/resume button title is now updated when debugger is paused/resumed.
47843
47844         * English.lproj/localizedStrings.js:
47845         * inspector/front-end/ScriptsPanel.js:
47846         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
47847         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
47848         (WebInspector.ScriptsPanel.prototype._updateButtonTitle):
47849         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
47850
47851 2012-10-12  Kentaro Hara  <haraken@chromium.org>
47852
47853         Unreviewed. Fix run-binding-tests failures introduced in r131167.
47854
47855         * bindings/scripts/CodeGeneratorV8.pm:
47856         (GenerateConstructorGetter):
47857         * bindings/scripts/test/V8/V8TestObj.cpp:
47858         (WebCore):
47859         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
47860         (WebCore::V8TestObj::installPerContextProperties):
47861         (WebCore::V8TestObj::installPerContextPrototypeProperties):
47862         (WebCore::V8TestObj::wrapSlow):
47863         * bindings/scripts/test/V8/V8TestObj.h:
47864         (V8TestObj):
47865
47866 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47867
47868         Web Inspector: relies on current Function.prototype.bind in the frame
47869         https://bugs.webkit.org/show_bug.cgi?id=99164
47870
47871         Reviewed by Yury Semikhatsky.
47872
47873         InjectedScriptSource should not depend on the bind override.
47874
47875         Test: inspector/console/console-bind-fake.html
47876
47877         * inspector/InjectedScriptSource.js:
47878         (.):
47879
47880 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47881
47882         Web Inspector: [Styles] Colors should be "As authored" by default
47883         https://bugs.webkit.org/show_bug.cgi?id=99017
47884
47885         Reviewed by Vsevolod Vlasov.
47886
47887         Use "original" as the default value of WebInspector.settings.colorFormat.
47888
47889         * inspector/front-end/Settings.js:
47890
47891 2012-10-12  Takashi Sakamoto  <tasak@google.com>
47892
47893         [WebKit IDL] move extended attributes to left of interface, exception...
47894         https://bugs.webkit.org/show_bug.cgi?id=99012
47895
47896         Reviewed by Kentaro Hara.
47897
47898         According to WebIDL spec, moved all extended attributes to the left
47899         of interface / attribute / readonly attribute / exception.
47900
47901         No new tests. I ran run-bindings-tests and all tests passed.
47902
47903         * Modules/battery/BatteryManager.idl:
47904         * Modules/battery/NavigatorBattery.idl:
47905         * Modules/filesystem/DOMFileSystem.idl:
47906         * Modules/filesystem/DOMFileSystemSync.idl:
47907         * Modules/filesystem/DOMWindowFileSystem.idl:
47908         * Modules/filesystem/DataTransferItemFileSystem.idl:
47909         * Modules/filesystem/DirectoryEntry.idl:
47910         * Modules/filesystem/DirectoryEntrySync.idl:
47911         * Modules/filesystem/DirectoryReader.idl:
47912         * Modules/filesystem/DirectoryReaderSync.idl:
47913         * Modules/filesystem/EntriesCallback.idl:
47914         * Modules/filesystem/Entry.idl:
47915         * Modules/filesystem/EntryArray.idl:
47916         * Modules/filesystem/EntryArraySync.idl:
47917         * Modules/filesystem/EntryCallback.idl:
47918         * Modules/filesystem/EntrySync.idl:
47919         * Modules/filesystem/ErrorCallback.idl:
47920         * Modules/filesystem/FileCallback.idl:
47921         * Modules/filesystem/FileEntry.idl:
47922         * Modules/filesystem/FileEntrySync.idl:
47923         * Modules/filesystem/FileSystemCallback.idl:
47924         * Modules/filesystem/FileWriter.idl:
47925         * Modules/filesystem/FileWriterCallback.idl:
47926         * Modules/filesystem/FileWriterSync.idl:
47927         * Modules/filesystem/HTMLInputElementFileSystem.idl:
47928         * Modules/filesystem/Metadata.idl:
47929         * Modules/filesystem/MetadataCallback.idl:
47930         * Modules/filesystem/WorkerContextFileSystem.idl:
47931         * Modules/gamepad/Gamepad.idl:
47932         * Modules/gamepad/GamepadList.idl:
47933         * Modules/gamepad/NavigatorGamepad.idl:
47934         * Modules/geolocation/Geolocation.idl:
47935         * Modules/geolocation/Geoposition.idl:
47936         * Modules/geolocation/NavigatorGeolocation.idl:
47937         * Modules/geolocation/PositionCallback.idl:
47938         * Modules/geolocation/PositionError.idl:
47939         * Modules/geolocation/PositionErrorCallback.idl:
47940         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
47941         * Modules/indexeddb/IDBAny.idl:
47942         * Modules/indexeddb/IDBCursor.idl:
47943         * Modules/indexeddb/IDBCursorWithValue.idl:
47944         * Modules/indexeddb/IDBDatabase.idl:
47945         * Modules/indexeddb/IDBDatabaseException.idl:
47946         * Modules/indexeddb/IDBFactory.idl:
47947         * Modules/indexeddb/IDBIndex.idl:
47948         * Modules/indexeddb/IDBKey.idl:
47949         * Modules/indexeddb/IDBKeyRange.idl:
47950         * Modules/indexeddb/IDBObjectStore.idl:
47951         * Modules/indexeddb/IDBOpenDBRequest.idl:
47952         * Modules/indexeddb/IDBRequest.idl:
47953         * Modules/indexeddb/IDBTransaction.idl:
47954         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
47955         * Modules/indexeddb/IDBVersionChangeEvent.idl:
47956         * Modules/indexeddb/IDBVersionChangeRequest.idl:
47957         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
47958         * Modules/intents/DOMWindowIntents.idl:
47959         * Modules/intents/DeliveredIntent.idl:
47960         * Modules/intents/NavigatorIntents.idl:
47961         * Modules/mediasource/MediaSource.idl:
47962         * Modules/mediasource/SourceBuffer.idl:
47963         * Modules/mediasource/SourceBufferList.idl:
47964         * Modules/mediastream/DOMWindowMediaStream.idl:
47965         * Modules/mediastream/IceCallback.idl:
47966         * Modules/mediastream/IceCandidate.idl:
47967         * Modules/mediastream/LocalMediaStream.idl:
47968         * Modules/mediastream/MediaStream.idl:
47969         * Modules/mediastream/MediaStreamEvent.idl:
47970         * Modules/mediastream/MediaStreamList.idl:
47971         * Modules/mediastream/MediaStreamTrack.idl:
47972         * Modules/mediastream/MediaStreamTrackEvent.idl:
47973         * Modules/mediastream/MediaStreamTrackList.idl:
47974         * Modules/mediastream/NavigatorMediaStream.idl:
47975         * Modules/mediastream/NavigatorUserMediaError.idl:
47976         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
47977         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
47978         * Modules/mediastream/PeerConnection00.idl:
47979         * Modules/mediastream/RTCErrorCallback.idl:
47980         * Modules/mediastream/RTCIceCandidate.idl:
47981         * Modules/mediastream/RTCIceCandidateEvent.idl:
47982         * Modules/mediastream/RTCPeerConnection.idl:
47983         * Modules/mediastream/RTCSessionDescription.idl:
47984         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
47985         * Modules/mediastream/RTCStatsCallback.idl:
47986         * Modules/mediastream/RTCStatsElement.idl:
47987         * Modules/mediastream/RTCStatsReport.idl:
47988         * Modules/mediastream/RTCStatsResponse.idl:
47989         * Modules/mediastream/SessionDescription.idl:
47990         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
47991         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
47992         * Modules/networkinfo/NetworkInfoConnection.idl:
47993         * Modules/notifications/DOMWindowNotifications.idl:
47994         * Modules/notifications/Notification.idl:
47995         * Modules/notifications/NotificationCenter.idl:
47996         * Modules/notifications/NotificationPermissionCallback.idl:
47997         * Modules/notifications/WorkerContextNotifications.idl:
47998         * Modules/proximity/DeviceProximityEvent.idl:
47999         * Modules/quota/DOMWindowQuota.idl:
48000         * Modules/quota/StorageInfo.idl:
48001         * Modules/quota/StorageInfoErrorCallback.idl:
48002         * Modules/quota/StorageInfoQuotaCallback.idl:
48003         * Modules/quota/StorageInfoUsageCallback.idl:
48004         * Modules/speech/DOMWindowSpeech.idl:
48005         * Modules/speech/SpeechGrammar.idl:
48006         * Modules/speech/SpeechGrammarList.idl:
48007         * Modules/speech/SpeechRecognition.idl:
48008         * Modules/speech/SpeechRecognitionAlternative.idl:
48009         * Modules/speech/SpeechRecognitionError.idl:
48010         * Modules/speech/SpeechRecognitionEvent.idl:
48011         * Modules/speech/SpeechRecognitionResult.idl:
48012         * Modules/speech/SpeechRecognitionResultList.idl:
48013         * Modules/vibration/NavigatorVibration.idl:
48014         * Modules/webaudio/AudioBuffer.idl:
48015         * Modules/webaudio/AudioBufferCallback.idl:
48016         * Modules/webaudio/AudioBufferSourceNode.idl:
48017         * Modules/webaudio/AudioChannelMerger.idl:
48018         * Modules/webaudio/AudioChannelSplitter.idl:
48019         * Modules/webaudio/AudioContext.idl:
48020         * Modules/webaudio/AudioDestinationNode.idl:
48021         * Modules/webaudio/AudioGain.idl:
48022         * Modules/webaudio/AudioGainNode.idl:
48023         * Modules/webaudio/AudioListener.idl:
48024         * Modules/webaudio/AudioNode.idl:
48025         * Modules/webaudio/AudioPannerNode.idl:
48026         * Modules/webaudio/AudioParam.idl:
48027         * Modules/webaudio/AudioProcessingEvent.idl:
48028         * Modules/webaudio/AudioSourceNode.idl:
48029         * Modules/webaudio/BiquadFilterNode.idl:
48030         * Modules/webaudio/ConvolverNode.idl:
48031         * Modules/webaudio/DOMWindowWebAudio.idl:
48032         * Modules/webaudio/DelayNode.idl:
48033         * Modules/webaudio/DynamicsCompressorNode.idl:
48034         * Modules/webaudio/JavaScriptAudioNode.idl:
48035         * Modules/webaudio/MediaElementAudioSourceNode.idl:
48036         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
48037         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
48038         * Modules/webaudio/Oscillator.idl:
48039         * Modules/webaudio/RealtimeAnalyserNode.idl:
48040         * Modules/webaudio/WaveShaperNode.idl:
48041         * Modules/webaudio/WaveTable.idl:
48042         * Modules/webdatabase/DOMWindowWebDatabase.idl:
48043         * Modules/webdatabase/Database.idl:
48044         * Modules/webdatabase/DatabaseCallback.idl:
48045         * Modules/webdatabase/DatabaseSync.idl:
48046         * Modules/webdatabase/SQLError.idl:
48047         * Modules/webdatabase/SQLException.idl:
48048         * Modules/webdatabase/SQLResultSet.idl:
48049         * Modules/webdatabase/SQLResultSetRowList.idl:
48050         * Modules/webdatabase/SQLStatementCallback.idl:
48051         * Modules/webdatabase/SQLStatementErrorCallback.idl:
48052         * Modules/webdatabase/SQLTransaction.idl:
48053         * Modules/webdatabase/SQLTransactionCallback.idl:
48054         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
48055         * Modules/webdatabase/SQLTransactionSync.idl:
48056         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
48057         * Modules/webdatabase/WorkerContextWebDatabase.idl:
48058         * Modules/websockets/CloseEvent.idl:
48059         * Modules/websockets/DOMWindowWebSocket.idl:
48060         * Modules/websockets/WebSocket.idl:
48061         * Modules/websockets/WorkerContextWebSocket.idl:
48062         * bindings/scripts/test/TestCallback.idl:
48063         * bindings/scripts/test/TestCustomNamedGetter.idl:
48064         * bindings/scripts/test/TestDomainSecurity.idl:
48065         * bindings/scripts/test/TestEventConstructor.idl:
48066         * bindings/scripts/test/TestEventTarget.idl:
48067         * bindings/scripts/test/TestInterface.idl:
48068         * bindings/scripts/test/TestNamedConstructor.idl:
48069         * bindings/scripts/test/TestNode.idl:
48070         * bindings/scripts/test/TestObj.idl:
48071         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
48072         * bindings/scripts/test/TestSupplemental.idl:
48073         * bindings/scripts/test/TestTypedArray.idl:
48074         * css/CSSCharsetRule.idl:
48075         * css/CSSImportRule.idl:
48076         * css/CSSPageRule.idl:
48077         * css/CSSRule.idl:
48078         * css/CSSRuleList.idl:
48079         * css/CSSStyleDeclaration.idl:
48080         * css/CSSStyleRule.idl:
48081         * css/CSSStyleSheet.idl:
48082         * css/CSSUnknownRule.idl:
48083         * css/CSSValue.idl:
48084         * css/CSSValueList.idl:
48085         * css/MediaList.idl:
48086         * css/MediaQueryListListener.idl:
48087         * css/StyleMedia.idl:
48088         * css/StyleSheet.idl:
48089         * css/StyleSheetList.idl:
48090         * css/WebKitCSSFilterValue.idl:
48091         * css/WebKitCSSKeyframesRule.idl:
48092         * css/WebKitCSSMatrix.idl:
48093         * css/WebKitCSSRegionRule.idl:
48094         * css/WebKitCSSTransformValue.idl:
48095         * dom/Attr.idl:
48096         * dom/BeforeLoadEvent.idl:
48097         * dom/CharacterData.idl:
48098         * dom/ClientRectList.idl:
48099         * dom/Clipboard.idl:
48100         * dom/CustomEvent.idl:
48101         * dom/DOMCoreException.idl:
48102         * dom/DOMImplementation.idl:
48103         * dom/DOMNamedFlowCollection.idl:
48104         * dom/DOMStringList.idl:
48105         * dom/DOMStringMap.idl:
48106         * dom/DataTransferItem.idl:
48107         * dom/DataTransferItemList.idl:
48108         * dom/DeviceMotionEvent.idl:
48109         * dom/DeviceOrientationEvent.idl:
48110         * dom/Document.idl:
48111         * dom/DocumentType.idl:
48112         * dom/Element.idl:
48113         * dom/Entity.idl:
48114         * dom/ErrorEvent.idl:
48115         * dom/Event.idl:
48116         * dom/EventException.idl:
48117         * dom/EventListener.idl:
48118         * dom/EventTarget.idl:
48119         * dom/HashChangeEvent.idl:
48120         * dom/MessageChannel.idl:
48121         * dom/MessageEvent.idl:
48122         * dom/MessagePort.idl:
48123         * dom/MouseEvent.idl:
48124         * dom/MutationCallback.idl:
48125         * dom/MutationObserver.idl:
48126         * dom/MutationRecord.idl:
48127         * dom/NamedNodeMap.idl:
48128         * dom/Node.idl:
48129         * dom/NodeFilter.idl:
48130         * dom/NodeIterator.idl:
48131         * dom/NodeList.idl:
48132         * dom/Notation.idl:
48133         * dom/OverflowEvent.idl:
48134         * dom/PageTransitionEvent.idl:
48135         * dom/PopStateEvent.idl:
48136         * dom/ProcessingInstruction.idl:
48137         * dom/ProgressEvent.idl:
48138         * dom/PropertyNodeList.idl:
48139         * dom/RangeException.idl:
48140         * dom/RequestAnimationFrameCallback.idl:
48141         * dom/ShadowRoot.idl:
48142         * dom/StringCallback.idl:
48143         * dom/Touch.idl:
48144         * dom/TouchEvent.idl:
48145         * dom/TouchList.idl:
48146         * dom/TreeWalker.idl:
48147         * dom/WebKitAnimationEvent.idl:
48148         * dom/WebKitNamedFlow.idl:
48149         * dom/WebKitTransitionEvent.idl:
48150         * editing/DOMTransaction.idl:
48151         * editing/UndoManager.idl:
48152         * fileapi/Blob.idl:
48153         * fileapi/File.idl:
48154         * fileapi/FileError.idl:
48155         * fileapi/FileException.idl:
48156         * fileapi/FileList.idl:
48157         * fileapi/FileReader.idl:
48158         * fileapi/FileReaderSync.idl:
48159         * html/DOMFormData.idl:
48160         * html/DOMSettableTokenList.idl:
48161         * html/DOMTokenList.idl:
48162         * html/DOMURL.idl:
48163         * html/HTMLAllCollection.idl:
48164         * html/HTMLAnchorElement.idl:
48165         * html/HTMLAppletElement.idl:
48166         * html/HTMLAreaElement.idl:
48167         * html/HTMLAudioElement.idl:
48168         * html/HTMLBRElement.idl:
48169         * html/HTMLBaseElement.idl:
48170         * html/HTMLBaseFontElement.idl:
48171         * html/HTMLBodyElement.idl:
48172         * html/HTMLButtonElement.idl:
48173         * html/HTMLCanvasElement.idl:
48174         * html/HTMLCollection.idl:
48175         * html/HTMLDListElement.idl:
48176         * html/HTMLDataListElement.idl:
48177         * html/HTMLDetailsElement.idl:
48178         * html/HTMLDialogElement.idl:
48179         * html/HTMLDirectoryElement.idl:
48180         * html/HTMLDivElement.idl:
48181         * html/HTMLDocument.idl:
48182         * html/HTMLElement.idl:
48183         * html/HTMLEmbedElement.idl:
48184         * html/HTMLFieldSetElement.idl:
48185         * html/HTMLFontElement.idl:
48186         * html/HTMLFormElement.idl:
48187         * html/HTMLFrameElement.idl:
48188         * html/HTMLFrameSetElement.idl:
48189         * html/HTMLHRElement.idl:
48190         * html/HTMLHeadElement.idl:
48191         * html/HTMLHeadingElement.idl:
48192         * html/HTMLHtmlElement.idl:
48193         * html/HTMLIFrameElement.idl:
48194         * html/HTMLImageElement.idl:
48195         * html/HTMLInputElement.idl:
48196         * html/HTMLIntentElement.idl:
48197         * html/HTMLKeygenElement.idl:
48198         * html/HTMLLIElement.idl:
48199         * html/HTMLLabelElement.idl:
48200         * html/HTMLLegendElement.idl:
48201         * html/HTMLLinkElement.idl:
48202         * html/HTMLMapElement.idl:
48203         * html/HTMLMarqueeElement.idl:
48204         * html/HTMLMediaElement.idl:
48205         * html/HTMLMenuElement.idl:
48206         * html/HTMLMetaElement.idl:
48207         * html/HTMLMeterElement.idl:
48208         * html/HTMLModElement.idl:
48209         * html/HTMLOListElement.idl:
48210         * html/HTMLObjectElement.idl:
48211         * html/HTMLOptGroupElement.idl:
48212         * html/HTMLOptionElement.idl:
48213         * html/HTMLOptionsCollection.idl:
48214         * html/HTMLOutputElement.idl:
48215         * html/HTMLParagraphElement.idl:
48216         * html/HTMLParamElement.idl:
48217         * html/HTMLPreElement.idl:
48218         * html/HTMLProgressElement.idl:
48219         * html/HTMLPropertiesCollection.idl:
48220         * html/HTMLQuoteElement.idl:
48221         * html/HTMLScriptElement.idl:
48222         * html/HTMLSelectElement.idl:
48223         * html/HTMLSourceElement.idl:
48224         * html/HTMLStyleElement.idl:
48225         * html/HTMLTableCaptionElement.idl:
48226         * html/HTMLTableCellElement.idl:
48227         * html/HTMLTableColElement.idl:
48228         * html/HTMLTableElement.idl:
48229         * html/HTMLTableRowElement.idl:
48230         * html/HTMLTableSectionElement.idl:
48231         * html/HTMLTextAreaElement.idl:
48232         * html/HTMLTitleElement.idl:
48233         * html/HTMLTrackElement.idl:
48234         * html/HTMLUListElement.idl:
48235         * html/HTMLVideoElement.idl:
48236         * html/ImageData.idl:
48237         * html/MediaController.idl:
48238         * html/MediaError.idl:
48239         * html/MediaKeyError.idl:
48240         * html/MediaKeyEvent.idl:
48241         * html/MicroDataItemValue.idl:
48242         * html/RadioNodeList.idl:
48243         * html/TimeRanges.idl:
48244         * html/ValidityState.idl:
48245         * html/VoidCallback.idl:
48246         * html/canvas/ArrayBuffer.idl:
48247         * html/canvas/ArrayBufferView.idl:
48248         * html/canvas/CanvasRenderingContext.idl:
48249         * html/canvas/CanvasRenderingContext2D.idl:
48250         * html/canvas/DataView.idl:
48251         * html/canvas/EXTTextureFilterAnisotropic.idl:
48252         * html/canvas/Float32Array.idl:
48253         * html/canvas/Float64Array.idl:
48254         * html/canvas/Int16Array.idl:
48255         * html/canvas/Int32Array.idl:
48256         * html/canvas/Int8Array.idl:
48257         * html/canvas/OESStandardDerivatives.idl:
48258         * html/canvas/OESTextureFloat.idl:
48259         * html/canvas/OESVertexArrayObject.idl:
48260         * html/canvas/Uint16Array.idl:
48261         * html/canvas/Uint32Array.idl:
48262         * html/canvas/Uint8Array.idl:
48263         * html/canvas/Uint8ClampedArray.idl:
48264         * html/canvas/WebGLActiveInfo.idl:
48265         * html/canvas/WebGLBuffer.idl:
48266         * html/canvas/WebGLCompressedTextureS3TC.idl:
48267         * html/canvas/WebGLContextAttributes.idl:
48268         * html/canvas/WebGLContextEvent.idl:
48269         * html/canvas/WebGLDebugRendererInfo.idl:
48270         * html/canvas/WebGLDebugShaders.idl:
48271         * html/canvas/WebGLDepthTexture.idl:
48272         * html/canvas/WebGLFramebuffer.idl:
48273         * html/canvas/WebGLLoseContext.idl:
48274         * html/canvas/WebGLProgram.idl:
48275         * html/canvas/WebGLRenderbuffer.idl:
48276         * html/canvas/WebGLRenderingContext.idl:
48277         * html/canvas/WebGLShader.idl:
48278         * html/canvas/WebGLShaderPrecisionFormat.idl:
48279         * html/canvas/WebGLTexture.idl:
48280         * html/canvas/WebGLUniformLocation.idl:
48281         * html/canvas/WebGLVertexArrayObjectOES.idl:
48282         * html/shadow/HTMLContentElement.idl:
48283         * html/shadow/HTMLShadowElement.idl:
48284         * html/track/TextTrack.idl:
48285         * html/track/TextTrackCue.idl:
48286         * html/track/TextTrackCueList.idl:
48287         * html/track/TextTrackList.idl:
48288         * html/track/TrackEvent.idl:
48289         * inspector/InjectedScriptHost.idl:
48290         * inspector/InspectorFrontendHost.idl:
48291         * inspector/JavaScriptCallFrame.idl:
48292         * inspector/ScriptProfile.idl:
48293         * inspector/ScriptProfileNode.idl:
48294         * loader/appcache/DOMApplicationCache.idl:
48295         * page/AbstractView.idl:
48296         * page/BarInfo.idl:
48297         * page/Console.idl:
48298         * page/Coordinates.idl:
48299         * page/Crypto.idl:
48300         * page/DOMSecurityPolicy.idl:
48301         * page/DOMSelection.idl:
48302         * page/DOMWindow.idl:
48303         * page/DOMWindowPagePopup.idl:
48304         * page/EventSource.idl:
48305         * page/History.idl:
48306         * page/Location.idl:
48307         * page/MemoryInfo.idl:
48308         * page/Navigator.idl:
48309         * page/PagePopupController.idl:
48310         * page/Performance.idl:
48311         * page/PerformanceEntry.idl:
48312         * page/PerformanceEntryList.idl:
48313         * page/PerformanceNavigation.idl:
48314         * page/PerformanceResourceTiming.idl:
48315         * page/PerformanceTiming.idl:
48316         * page/Screen.idl:
48317         * page/SpeechInputEvent.idl:
48318         * page/SpeechInputResult.idl:
48319         * page/SpeechInputResultList.idl:
48320         * page/WebKitAnimation.idl:
48321         * page/WebKitAnimationList.idl:
48322         * page/WebKitPoint.idl:
48323         * page/WorkerNavigator.idl:
48324         * plugins/DOMMimeType.idl:
48325         * plugins/DOMMimeTypeArray.idl:
48326         * plugins/DOMPlugin.idl:
48327         * plugins/DOMPluginArray.idl:
48328         * storage/Storage.idl:
48329         * storage/StorageEvent.idl:
48330         * svg/ElementTimeControl.idl:
48331         * svg/SVGAElement.idl:
48332         * svg/SVGAltGlyphDefElement.idl:
48333         * svg/SVGAltGlyphElement.idl:
48334         * svg/SVGAltGlyphItemElement.idl:
48335         * svg/SVGAngle.idl:
48336         * svg/SVGAnimateColorElement.idl:
48337         * svg/SVGAnimateElement.idl:
48338         * svg/SVGAnimateMotionElement.idl:
48339         * svg/SVGAnimateTransformElement.idl:
48340         * svg/SVGAnimatedAngle.idl:
48341         * svg/SVGAnimatedBoolean.idl:
48342         * svg/SVGAnimatedEnumeration.idl:
48343         * svg/SVGAnimatedInteger.idl:
48344         * svg/SVGAnimatedLength.idl:
48345         * svg/SVGAnimatedLengthList.idl:
48346         * svg/SVGAnimatedNumber.idl:
48347         * svg/SVGAnimatedNumberList.idl:
48348         * svg/SVGAnimatedPreserveAspectRatio.idl:
48349         * svg/SVGAnimatedRect.idl:
48350         * svg/SVGAnimatedString.idl:
48351         * svg/SVGAnimatedTransformList.idl:
48352         * svg/SVGAnimationElement.idl:
48353         * svg/SVGCircleElement.idl:
48354         * svg/SVGClipPathElement.idl:
48355         * svg/SVGColor.idl:
48356         * svg/SVGComponentTransferFunctionElement.idl:
48357         * svg/SVGCursorElement.idl:
48358         * svg/SVGDefsElement.idl:
48359         * svg/SVGDescElement.idl:
48360         * svg/SVGDocument.idl:
48361         * svg/SVGElement.idl:
48362         * svg/SVGElementInstance.idl:
48363         * svg/SVGElementInstanceList.idl:
48364         * svg/SVGEllipseElement.idl:
48365         * svg/SVGException.idl:
48366         * svg/SVGExternalResourcesRequired.idl:
48367         * svg/SVGFEBlendElement.idl:
48368         * svg/SVGFEColorMatrixElement.idl:
48369         * svg/SVGFEComponentTransferElement.idl:
48370         * svg/SVGFECompositeElement.idl:
48371         * svg/SVGFEConvolveMatrixElement.idl:
48372         * svg/SVGFEDiffuseLightingElement.idl:
48373         * svg/SVGFEDisplacementMapElement.idl:
48374         * svg/SVGFEDistantLightElement.idl:
48375         * svg/SVGFEDropShadowElement.idl:
48376         * svg/SVGFEFloodElement.idl:
48377         * svg/SVGFEFuncAElement.idl:
48378         * svg/SVGFEFuncBElement.idl:
48379         * svg/SVGFEFuncGElement.idl:
48380         * svg/SVGFEFuncRElement.idl:
48381         * svg/SVGFEGaussianBlurElement.idl:
48382         * svg/SVGFEImageElement.idl:
48383         * svg/SVGFEMergeElement.idl:
48384         * svg/SVGFEMergeNodeElement.idl:
48385         * svg/SVGFEMorphologyElement.idl:
48386         * svg/SVGFEOffsetElement.idl:
48387         * svg/SVGFEPointLightElement.idl:
48388         * svg/SVGFESpecularLightingElement.idl:
48389         * svg/SVGFESpotLightElement.idl:
48390         * svg/SVGFETileElement.idl:
48391         * svg/SVGFETurbulenceElement.idl:
48392         * svg/SVGFilterElement.idl:
48393         * svg/SVGFilterPrimitiveStandardAttributes.idl:
48394         * svg/SVGFitToViewBox.idl:
48395         * svg/SVGFontElement.idl:
48396         * svg/SVGFontFaceElement.idl:
48397         * svg/SVGFontFaceFormatElement.idl:
48398         * svg/SVGFontFaceNameElement.idl:
48399         * svg/SVGFontFaceSrcElement.idl:
48400         * svg/SVGFontFaceUriElement.idl:
48401         * svg/SVGForeignObjectElement.idl:
48402         * svg/SVGGElement.idl:
48403         * svg/SVGGlyphElement.idl:
48404         * svg/SVGGlyphRefElement.idl:
48405         * svg/SVGGradientElement.idl:
48406         * svg/SVGHKernElement.idl:
48407         * svg/SVGImageElement.idl:
48408         * svg/SVGLangSpace.idl:
48409         * svg/SVGLength.idl:
48410         * svg/SVGLengthList.idl:
48411         * svg/SVGLineElement.idl:
48412         * svg/SVGLinearGradientElement.idl:
48413         * svg/SVGLocatable.idl:
48414         * svg/SVGMPathElement.idl:
48415         * svg/SVGMarkerElement.idl:
48416         * svg/SVGMaskElement.idl:
48417         * svg/SVGMatrix.idl:
48418         * svg/SVGMetadataElement.idl:
48419         * svg/SVGMissingGlyphElement.idl:
48420         * svg/SVGNumber.idl:
48421         * svg/SVGNumberList.idl:
48422         * svg/SVGPaint.idl:
48423         * svg/SVGPathElement.idl:
48424         * svg/SVGPathSeg.idl:
48425         * svg/SVGPathSegArcAbs.idl:
48426         * svg/SVGPathSegArcRel.idl:
48427         * svg/SVGPathSegClosePath.idl:
48428         * svg/SVGPathSegCurvetoCubicAbs.idl:
48429         * svg/SVGPathSegCurvetoCubicRel.idl:
48430         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
48431         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
48432         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
48433         * svg/SVGPathSegCurvetoQuadraticRel.idl:
48434         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
48435         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
48436         * svg/SVGPathSegLinetoAbs.idl:
48437         * svg/SVGPathSegLinetoHorizontalAbs.idl:
48438         * svg/SVGPathSegLinetoHorizontalRel.idl:
48439         * svg/SVGPathSegLinetoRel.idl:
48440         * svg/SVGPathSegLinetoVerticalAbs.idl:
48441         * svg/SVGPathSegLinetoVerticalRel.idl:
48442         * svg/SVGPathSegList.idl:
48443         * svg/SVGPathSegMovetoAbs.idl:
48444         * svg/SVGPathSegMovetoRel.idl:
48445         * svg/SVGPatternElement.idl:
48446         * svg/SVGPoint.idl:
48447         * svg/SVGPointList.idl:
48448         * svg/SVGPolygonElement.idl:
48449         * svg/SVGPolylineElement.idl:
48450         * svg/SVGPreserveAspectRatio.idl:
48451         * svg/SVGRadialGradientElement.idl:
48452         * svg/SVGRect.idl:
48453         * svg/SVGRectElement.idl:
48454         * svg/SVGRenderingIntent.idl:
48455         * svg/SVGSVGElement.idl:
48456         * svg/SVGScriptElement.idl:
48457         * svg/SVGSetElement.idl:
48458         * svg/SVGStopElement.idl:
48459         * svg/SVGStringList.idl:
48460         * svg/SVGStylable.idl:
48461         * svg/SVGStyleElement.idl:
48462         * svg/SVGSwitchElement.idl:
48463         * svg/SVGSymbolElement.idl:
48464         * svg/SVGTRefElement.idl:
48465         * svg/SVGTSpanElement.idl:
48466         * svg/SVGTests.idl:
48467         * svg/SVGTextContentElement.idl:
48468         * svg/SVGTextElement.idl:
48469         * svg/SVGTextPathElement.idl:
48470         * svg/SVGTextPositioningElement.idl:
48471         * svg/SVGTitleElement.idl:
48472         * svg/SVGTransform.idl:
48473         * svg/SVGTransformList.idl:
48474         * svg/SVGTransformable.idl:
48475         * svg/SVGURIReference.idl:
48476         * svg/SVGUnitTypes.idl:
48477         * svg/SVGUseElement.idl:
48478         * svg/SVGVKernElement.idl:
48479         * svg/SVGViewElement.idl:
48480         * svg/SVGViewSpec.idl:
48481         * svg/SVGZoomAndPan.idl:
48482         * svg/SVGZoomEvent.idl:
48483         * testing/InternalSettings.idl:
48484         * testing/Internals.idl:
48485         * testing/MallocStatistics.idl:
48486         * workers/AbstractWorker.idl:
48487         * workers/DedicatedWorkerContext.idl:
48488         * workers/SharedWorker.idl:
48489         * workers/SharedWorkerContext.idl:
48490         * workers/Worker.idl:
48491         * workers/WorkerContext.idl:
48492         * workers/WorkerLocation.idl:
48493         * xml/DOMParser.idl:
48494         * xml/XMLHttpRequest.idl:
48495         * xml/XMLHttpRequestException.idl:
48496         * xml/XMLHttpRequestProgressEvent.idl:
48497         * xml/XMLHttpRequestUpload.idl:
48498         * xml/XMLSerializer.idl:
48499         * xml/XPathEvaluator.idl:
48500         * xml/XPathException.idl:
48501         * xml/XPathNSResolver.idl:
48502         * xml/XPathResult.idl:
48503         * xml/XSLTProcessor.idl:
48504         Moved extended attributes.
48505
48506 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48507
48508         Web Inspector: never expand global scope automatically
48509         https://bugs.webkit.org/show_bug.cgi?id=99159
48510
48511         Reviewed by Vsevolod Vlasov.
48512
48513         Otherwise, stepping is slow.
48514
48515         * inspector/front-end/ScopeChainSidebarPane.js:
48516         (WebInspector.ScopeChainSidebarPane.prototype.update):
48517
48518 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
48519
48520         Web Inspector: Refactor UISourceCode, make it possible to distinguish working copy changes/commits from formatting.
48521         https://bugs.webkit.org/show_bug.cgi?id=98911
48522
48523         Reviewed by Pavel Feldman.
48524
48525         ContentChanged was dispatched both when working copy was committed and UISourceCode was formatted before.
48526         WorkingCopyChanged event was dispatched when working copy was set.
48527         Now there are three explicit events: WorkingCopyChanged, WorkingCopyCommitted, FormattedChanged.
48528         No events are dispatched now during revisions restoring.
48529         Reverting to revisions is now implemented based on the working copy editing.
48530
48531         * inspector/front-end/JavaScriptSourceFrame.js:
48532         (WebInspector.JavaScriptSourceFrame):
48533         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
48534         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
48535         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
48536         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
48537         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48538         * inspector/front-end/NavigatorView.js:
48539         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
48540         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
48541         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
48542         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
48543         * inspector/front-end/TabbedEditorContainer.js:
48544         (WebInspector.TabbedEditorContainer.prototype._addUISourceCodeListeners):
48545         (WebInspector.TabbedEditorContainer.prototype._removeUISourceCodeListeners):
48546         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
48547         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
48548         * inspector/front-end/UISourceCode.js:
48549         (WebInspector.UISourceCode):
48550         (WebInspector.UISourceCode.prototype._commitContent):
48551         (WebInspector.UISourceCode.prototype.addRevision):
48552         (WebInspector.UISourceCode.prototype._restoreRevisionHistory):
48553         (WebInspector.UISourceCode.prototype.revertToOriginal):
48554         (WebInspector.UISourceCode.prototype.revertAndClearHistory):
48555         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48556         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48557         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged):
48558         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
48559         (WebInspector.UISourceCode.prototype.setFormatted):
48560         (WebInspector.Revision.prototype.revertToThis):
48561         * inspector/front-end/UISourceCodeFrame.js:
48562         (WebInspector.UISourceCodeFrame):
48563         (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
48564         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
48565         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyChanged):
48566         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyCommitted):
48567         (WebInspector.UISourceCodeFrame.prototype._innerSetContent):
48568
48569 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48570
48571         [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
48572         https://bugs.webkit.org/show_bug.cgi?id=90142
48573
48574         Reviewed by Simon Hausmann.
48575
48576         Added a setter for the certificate of ResourceError.
48577
48578         No change in behavior so no new tests.
48579
48580         * platform/network/cf/ResourceError.h:
48581         (ResourceError):
48582         * platform/network/cf/ResourceErrorCF.cpp:
48583         (WebCore):
48584         (WebCore::ResourceError::setCertificate):
48585
48586 2012-10-12  MORITA Hajime  <morrita@google.com>
48587
48588         [V8] PerContextEnabled methods should be installed when the constructor is created
48589         https://bugs.webkit.org/show_bug.cgi?id=99129
48590
48591         Reviewed by Kentaro Hara.
48592
48593         Before this change, generated installPerContextProperties() method
48594         injected both per-context attributes and functions, and functions
48595         were injected into the prototye object.  This means that the
48596         functions are injected into the prototype repeatedly for each
48597         intance creation.  This injection can be happened only once per
48598         prototype object, which is clearer and is faster.
48599
48600         This change introduces installPerContextPrototypeProperties()
48601         generated method, which is designed to be called for each time when the prototype
48602         object is created.
48603
48604         To do that, WrapperTypeInfo is extended to hold an additional
48605         function pointer to an installPerContextPrototypeProperties()
48606         implementation so that we call it from V8PerContextData::constructorForTypeSlowCase(),
48607         where the prototype instance is created.
48608
48609         Other changes:
48610         - Added some modification to pass around the parameter to constructorForTypeSlowCase().
48611         - installPerContextProperties() are now always generated for simplicity. Empty implementations are inlined thus
48612           no speed penalty.
48613
48614         No new tests. Covered by existing tests.
48615
48616         * Modules/notifications/NotificationCenter.cpp:
48617         (WebCore::NotificationCenter::document):
48618         * Modules/notifications/NotificationCenter.h:
48619         (NotificationCenter):
48620         * bindings/scripts/CodeGeneratorV8.pm:
48621         (GenerateHeader):
48622         (GenerateConstructorGetter):
48623         (GenerateNamedConstructorCallback):
48624         (GenerateImplementation): Extracted per-context function additions to new installPerContextPrototypeProperties() function.
48625         (GenerateToV8Converters):
48626         * bindings/scripts/test/V8/V8Float64Array.cpp:
48627         (WebCore):
48628         (WebCore::V8Float64Array::wrapSlow):
48629         * bindings/scripts/test/V8/V8Float64Array.h:
48630         (WebCore::V8Float64Array::installPerContextProperties):
48631         (WebCore::V8Float64Array::installPerContextPrototypeProperties):
48632         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48633         (WebCore):
48634         (WebCore::V8TestActiveDOMObject::wrapSlow):
48635         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
48636         (WebCore::V8TestActiveDOMObject::installPerContextProperties):
48637         (WebCore::V8TestActiveDOMObject::installPerContextPrototypeProperties):
48638         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
48639         (WebCore):
48640         (WebCore::V8TestCustomNamedGetter::wrapSlow):
48641         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
48642         (WebCore::V8TestCustomNamedGetter::installPerContextProperties):
48643         (WebCore::V8TestCustomNamedGetter::installPerContextPrototypeProperties):
48644         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
48645         (WebCore):
48646         (WebCore::V8TestEventConstructor::wrapSlow):
48647         * bindings/scripts/test/V8/V8TestEventConstructor.h:
48648         (WebCore::V8TestEventConstructor::installPerContextProperties):
48649         (WebCore::V8TestEventConstructor::installPerContextPrototypeProperties):
48650         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
48651         (WebCore):
48652         (WebCore::V8TestEventTarget::wrapSlow):
48653         * bindings/scripts/test/V8/V8TestEventTarget.h:
48654         (WebCore::V8TestEventTarget::installPerContextProperties):
48655         (WebCore::V8TestEventTarget::installPerContextPrototypeProperties):
48656         * bindings/scripts/test/V8/V8TestException.cpp:
48657         (WebCore):
48658         (WebCore::V8TestException::wrapSlow):
48659         * bindings/scripts/test/V8/V8TestException.h:
48660         (WebCore::V8TestException::installPerContextProperties):
48661         (WebCore::V8TestException::installPerContextPrototypeProperties):
48662         * bindings/scripts/test/V8/V8TestInterface.cpp:
48663         (WebCore):
48664         (WebCore::V8TestInterface::wrapSlow):
48665         * bindings/scripts/test/V8/V8TestInterface.h:
48666         (WebCore::V8TestInterface::installPerContextProperties):
48667         (WebCore::V8TestInterface::installPerContextPrototypeProperties):
48668         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
48669         (WebCore):
48670         (WebCore::V8TestMediaQueryListListener::wrapSlow):
48671         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
48672         (WebCore::V8TestMediaQueryListListener::installPerContextProperties):
48673         (WebCore::V8TestMediaQueryListListener::installPerContextPrototypeProperties):
48674         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
48675         (WebCore):
48676         (WebCore::V8TestNamedConstructor::wrapSlow):
48677         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
48678         (WebCore::V8TestNamedConstructor::installPerContextProperties):
48679         (WebCore::V8TestNamedConstructor::installPerContextPrototypeProperties):
48680         * bindings/scripts/test/V8/V8TestNode.cpp:
48681         (WebCore):
48682         (WebCore::V8TestNode::wrapSlow):
48683         * bindings/scripts/test/V8/V8TestNode.h:
48684         (WebCore::V8TestNode::installPerContextProperties):
48685         (WebCore::V8TestNode::installPerContextPrototypeProperties):
48686         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
48687         (WebCore):
48688         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
48689         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
48690         (WebCore::V8TestSerializedScriptValueInterface::installPerContextProperties):
48691         (WebCore::V8TestSerializedScriptValueInterface::installPerContextPrototypeProperties):
48692         * bindings/v8/NPV8Object.cpp:
48693         (WebCore::npObjectTypeInfo):
48694         * bindings/v8/V8DOMWindowShell.cpp:
48695         (WebCore::V8DOMWindowShell::installDOMWindow):
48696         * bindings/v8/V8DOMWrapper.cpp:
48697         (WebCore::V8DOMWrapper::instantiateV8Object):
48698         * bindings/v8/V8PerContextData.cpp:
48699         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
48700         (WebCore::V8PerContextData::constructorForTypeSlowCase): Now invokes installPerContextPrototypeProperties()
48701         * bindings/v8/V8PerContextData.h:
48702         (WebCore::V8PerContextData::createWrapperFromCache):
48703         (WebCore::V8PerContextData::constructorForType):
48704         (V8PerContextData):
48705         * bindings/v8/WorkerContextExecutionProxy.cpp:
48706         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
48707         * bindings/v8/WrapperTypeInfo.h:
48708         (WebCore):
48709         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties): Added.
48710         (WrapperTypeInfo):
48711         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
48712         (WebCore):
48713
48714 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48715
48716         Web Inspector: Add "goto tab 1,2,3" hotkeys
48717         https://bugs.webkit.org/show_bug.cgi?id=99157
48718
48719         Reviewed by Alexander Pavlov.
48720
48721         Ctrl/Cmd + digit shortcuts should select corresponding tabs
48722
48723         * inspector/front-end/InspectorView.js:
48724         (WebInspector.InspectorView.prototype._keyDown):
48725         (WebInspector.InspectorView.prototype._keyDownInternal):
48726
48727 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48728
48729         Web Inspector: Extract domain specific editing handling logic from UISourceCode descendants (step 1).
48730         https://bugs.webkit.org/show_bug.cgi?id=98912
48731
48732         Reviewed by Pavel Feldman.
48733
48734         This is the first step that introduces StyleFile and ScriptFile and extracts domain specific editing handling logic.
48735         StyleFile and ScriptFile should listen for the UISourceCode events and process them, this will be done in the next patch.
48736
48737         * inspector/front-end/BreakpointManager.js:
48738         (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
48739         * inspector/front-end/JavaScriptSource.js:
48740         * inspector/front-end/JavaScriptSourceFrame.js:
48741         (WebInspector.JavaScriptSourceFrame):
48742         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48743         * inspector/front-end/ResourceScriptMapping.js:
48744         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
48745         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
48746         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
48747         (WebInspector.ScriptFile):
48748         (WebInspector.ScriptFile.prototype.hasDivergedFromVM):
48749         (WebInspector.ScriptFile.prototype.isDivergingFromVM):
48750         (WebInspector.ScriptFile.prototype.addEventListener):
48751         (WebInspector.ScriptFile.prototype.removeEventListener):
48752         (WebInspector.ResourceScriptFile):
48753         (WebInspector.ResourceScriptFile.prototype.workingCopyCommitted):
48754         (WebInspector.ResourceScriptFile.prototype.workingCopyChanged):
48755         (WebInspector.ResourceScriptFile.prototype.fireHasDivergedFromVMChanged):
48756         (WebInspector.ResourceScriptFile.prototype.hasDivergedFromVM):
48757         (WebInspector.ResourceScriptFile.prototype.isDivergingFromVM):
48758         * inspector/front-end/ScriptSnippetModel.js:
48759         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
48760         (WebInspector.SnippetScriptFile):
48761         (WebInspector.SnippetScriptFile.prototype.hasDivergedFromVM):
48762         (WebInspector.SnippetScriptFile.prototype.setHasDivergedFromVM):
48763         (WebInspector.SnippetScriptFile.prototype.isDivergingFromVM):
48764         (WebInspector.SnippetScriptFile.prototype.setIsDivergingFromVM):
48765         (WebInspector.SnippetScriptFile.prototype.workingCopyCommitted):
48766         (WebInspector.SnippetScriptFile.prototype.workingCopyChanged):
48767         * inspector/front-end/ScriptsPanel.js:
48768         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
48769         * inspector/front-end/StyleSource.js:
48770         * inspector/front-end/StylesSourceMapping.js:
48771         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
48772         (WebInspector.StylesSourceMapping.prototype._addUISourceCode):
48773         (WebInspector.StyleFile):
48774         (WebInspector.StyleFile.prototype.workingCopyCommitted):
48775         (WebInspector.StyleFile.prototype.workingCopyChanged):
48776         (WebInspector.StyleFile.prototype._callOrSetTimeout):
48777         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
48778         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
48779         * inspector/front-end/UISourceCode.js:
48780         (WebInspector.UISourceCode.prototype.scriptFile):
48781         (WebInspector.UISourceCode.prototype.setScriptFile):
48782         (WebInspector.UISourceCode.prototype.styleFile):
48783         (WebInspector.UISourceCode.prototype.setStyleFile):
48784         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48785         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48786
48787 2012-10-12  Zeno Albisser  <zeno@webkit.org>
48788
48789         [Qt][WK2] GraphicsSurfaceGLX should keep track of previous GL context.
48790         https://bugs.webkit.org/show_bug.cgi?id=99076
48791
48792         In GraphicsSurfaceGLX/GraphicsSurfacePrivate we create a new
48793         QOpenGLContext for resolving GL methods.
48794         This context is implicitly made current on creation.
48795         Therefore we need to keep track of the previously bound context
48796         and make that one current again after calling create.
48797
48798         Reviewed by Kenneth Rohde Christiansen.
48799
48800         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
48801         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
48802
48803 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48804
48805         Unreviewed, rolling out r130389.
48806         http://trac.webkit.org/changeset/130389
48807         https://bugs.webkit.org/show_bug.cgi?id=98048
48808
48809         It broke chromium
48810
48811         * WebCore.exp.in:
48812         * page/Settings.cpp:
48813         (WebCore::Settings::setAcceleratedCompositingEnabled):
48814         * page/Settings.h:
48815         (WebCore::Settings::setForceCompositingMode):
48816         (WebCore::Settings::forceCompositingMode):
48817
48818 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48819
48820         Web Inspector: Show request body source in request headers view.
48821         https://bugs.webkit.org/show_bug.cgi?id=99145
48822
48823         Reviewed by Pavel Feldman.
48824
48825         Added view source toggle to query parameters and form data elements.
48826
48827         * inspector/front-end/NetworkPanel.js: fixed queryString getter usage.
48828         (WebInspector.NetworkDataGridNode.prototype._fileName):
48829         (WebInspector.NetworkDataGridNode.NameComparator):
48830         * inspector/front-end/NetworkRequest.js: Extracted queryString getter.
48831         (WebInspector.NetworkRequest.prototype.queryString):
48832         (WebInspector.NetworkRequest.prototype.get queryParameters):
48833         * inspector/front-end/RequestHeadersView.js:
48834         (WebInspector.RequestHeadersView.prototype._refreshQueryString):
48835         (WebInspector.RequestHeadersView.prototype._refreshFormData):
48836         (WebInspector.RequestHeadersView.prototype._populateTreeElementWithSourceText):
48837         extracted common method to populate elememnt with raw source text.
48838         (WebInspector.RequestHeadersView.prototype._refreshParams.toggleViewSource):
48839         (WebInspector.RequestHeadersView.prototype._refreshParams):
48840         (WebInspector.RequestHeadersView.prototype._toggleURLDecoding):
48841         (WebInspector.RequestHeadersView.prototype._refreshHeadersText):
48842         * inspector/front-end/networkPanel.css:A removed redundant raw-form-data style rule.
48843
48844 2012-10-12  Shinya Kawanaka  <shinyak@chromium.org>
48845
48846         Optimzie SelectorCheckingContext memory layout
48847         https://bugs.webkit.org/show_bug.cgi?id=99139
48848
48849         Reviewed by Hajime Morita.
48850
48851         Since VisitedMatchType and PseudoId are both enum, we can make SelectorChecker more compact
48852         if these two fields are continuously placed.
48853
48854         No new tests, no change in behavior.
48855
48856         * css/SelectorChecker.h:
48857         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
48858         (SelectorCheckingContext):
48859
48860 2012-10-12  Kenichi Ishibashi  <bashi@chromium.org>
48861
48862         [WebSocket] Add "Cache-Control: no-cache" to handshake request
48863         https://bugs.webkit.org/show_bug.cgi?id=98000
48864
48865         Reviewed by Yuta Kitamura.
48866
48867         Add no-cache headers to opening handshake.
48868         This is for compatibility improvement.
48869         Some proxies rewrite "Connection: upgrade" to "Connection: close"
48870         when a request doesn't contain no-cache headers.
48871
48872         Test: http/tests/websocket/tests/hybi/nocache.html
48873
48874         * Modules/websockets/WebSocketHandshake.cpp:
48875         (WebCore::WebSocketHandshake::clientHandshakeMessage):
48876         (WebCore::WebSocketHandshake::clientHandshakeRequest):
48877
48878 2012-10-11  Andy Estes  <aestes@apple.com>
48879
48880         Add some basic methods and properties to the injected bundle Objective-C DOM API
48881         https://bugs.webkit.org/show_bug.cgi?id=99137
48882
48883         Reviewed by Sam Weinig.
48884
48885         Export needed symbols.
48886
48887         * WebCore.exp.in:
48888
48889 2012-10-11  Rik Cabanier  <cabanier@adobe.com>
48890
48891         Bad copy constructor in StyleRareNonInheritedData
48892         https://bugs.webkit.org/show_bug.cgi?id=98950
48893
48894         Reviewed by Eric Seidel.
48895
48896         Typo in copy constructor caused blendmode to always be the default.
48897
48898         * rendering/style/StyleRareNonInheritedData.cpp:
48899         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
48900
48901 2012-10-11  Takashi Sakamoto  <tasak@google.com>
48902
48903         [WebKit IDL] remove all module from idl files.
48904         https://bugs.webkit.org/show_bug.cgi?id=99007
48905
48906         Reviewed by Kentaro Hara.
48907
48908         Since current WebIDL spec doesn't support "module", remove
48909         module from all idl files.
48910
48911         No new tests. I ran run-bindings-tests and no error was reported.
48912
48913         * Modules/battery/BatteryManager.idl:
48914         * Modules/battery/NavigatorBattery.idl:
48915         * Modules/filesystem/DOMFileSystem.idl:
48916         * Modules/filesystem/DOMFileSystemSync.idl:
48917         * Modules/filesystem/DOMWindowFileSystem.idl:
48918         * Modules/filesystem/DataTransferItemFileSystem.idl:
48919         * Modules/filesystem/DirectoryEntry.idl:
48920         * Modules/filesystem/DirectoryEntrySync.idl:
48921         * Modules/filesystem/DirectoryReader.idl:
48922         * Modules/filesystem/DirectoryReaderSync.idl:
48923         * Modules/filesystem/EntriesCallback.idl:
48924         * Modules/filesystem/Entry.idl:
48925         * Modules/filesystem/EntryArray.idl:
48926         * Modules/filesystem/EntryArraySync.idl:
48927         * Modules/filesystem/EntryCallback.idl:
48928         * Modules/filesystem/EntrySync.idl:
48929         * Modules/filesystem/ErrorCallback.idl:
48930         * Modules/filesystem/FileCallback.idl:
48931         * Modules/filesystem/FileEntry.idl:
48932         * Modules/filesystem/FileEntrySync.idl:
48933         * Modules/filesystem/FileSystemCallback.idl:
48934         * Modules/filesystem/FileWriter.idl:
48935         * Modules/filesystem/FileWriterCallback.idl:
48936         * Modules/filesystem/FileWriterSync.idl:
48937         * Modules/filesystem/HTMLInputElementFileSystem.idl:
48938         * Modules/filesystem/Metadata.idl:
48939         * Modules/filesystem/MetadataCallback.idl:
48940         * Modules/filesystem/WorkerContextFileSystem.idl:
48941         * Modules/gamepad/Gamepad.idl:
48942         * Modules/gamepad/GamepadList.idl:
48943         * Modules/gamepad/NavigatorGamepad.idl:
48944         * Modules/geolocation/Geolocation.idl:
48945         * Modules/geolocation/Geoposition.idl:
48946         * Modules/geolocation/NavigatorGeolocation.idl:
48947         * Modules/geolocation/PositionCallback.idl:
48948         * Modules/geolocation/PositionError.idl:
48949         * Modules/geolocation/PositionErrorCallback.idl:
48950         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
48951         * Modules/indexeddb/IDBAny.idl:
48952         * Modules/indexeddb/IDBCursor.idl:
48953         * Modules/indexeddb/IDBCursorWithValue.idl:
48954         * Modules/indexeddb/IDBDatabase.idl:
48955         * Modules/indexeddb/IDBDatabaseException.idl:
48956         * Modules/indexeddb/IDBFactory.idl:
48957         * Modules/indexeddb/IDBIndex.idl:
48958         * Modules/indexeddb/IDBKey.idl:
48959         * Modules/indexeddb/IDBKeyRange.idl:
48960         * Modules/indexeddb/IDBObjectStore.idl:
48961         * Modules/indexeddb/IDBOpenDBRequest.idl:
48962         * Modules/indexeddb/IDBRequest.idl:
48963         * Modules/indexeddb/IDBTransaction.idl:
48964         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
48965         * Modules/indexeddb/IDBVersionChangeEvent.idl:
48966         * Modules/indexeddb/IDBVersionChangeRequest.idl:
48967         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
48968         * Modules/intents/DOMWindowIntents.idl:
48969         * Modules/intents/DeliveredIntent.idl:
48970         * Modules/intents/Intent.idl:
48971         * Modules/intents/IntentResultCallback.idl:
48972         * Modules/intents/NavigatorIntents.idl:
48973         * Modules/mediasource/MediaSource.idl:
48974         * Modules/mediasource/SourceBuffer.idl:
48975         * Modules/mediasource/SourceBufferList.idl:
48976         * Modules/mediastream/DOMWindowMediaStream.idl:
48977         * Modules/mediastream/IceCallback.idl:
48978         * Modules/mediastream/IceCandidate.idl:
48979         * Modules/mediastream/LocalMediaStream.idl:
48980         * Modules/mediastream/MediaStream.idl:
48981         * Modules/mediastream/MediaStreamEvent.idl:
48982         * Modules/mediastream/MediaStreamList.idl:
48983         * Modules/mediastream/MediaStreamTrack.idl:
48984         * Modules/mediastream/MediaStreamTrackEvent.idl:
48985         * Modules/mediastream/MediaStreamTrackList.idl:
48986         * Modules/mediastream/NavigatorMediaStream.idl:
48987         * Modules/mediastream/NavigatorUserMediaError.idl:
48988         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
48989         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
48990         * Modules/mediastream/PeerConnection00.idl:
48991         * Modules/mediastream/RTCErrorCallback.idl:
48992         * Modules/mediastream/RTCIceCandidate.idl:
48993         * Modules/mediastream/RTCIceCandidateEvent.idl:
48994         * Modules/mediastream/RTCPeerConnection.idl:
48995         * Modules/mediastream/RTCSessionDescription.idl:
48996         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
48997         * Modules/mediastream/RTCStatsCallback.idl:
48998         * Modules/mediastream/RTCStatsElement.idl:
48999         * Modules/mediastream/RTCStatsReport.idl:
49000         * Modules/mediastream/RTCStatsResponse.idl:
49001         * Modules/mediastream/SessionDescription.idl:
49002         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
49003         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
49004         * Modules/networkinfo/NetworkInfoConnection.idl:
49005         * Modules/notifications/DOMWindowNotifications.idl:
49006         * Modules/notifications/Notification.idl:
49007         * Modules/notifications/NotificationCenter.idl:
49008         * Modules/notifications/NotificationPermissionCallback.idl:
49009         * Modules/notifications/WorkerContextNotifications.idl:
49010         * Modules/proximity/DeviceProximityEvent.idl:
49011         * Modules/quota/DOMWindowQuota.idl:
49012         * Modules/quota/StorageInfo.idl:
49013         * Modules/quota/StorageInfoErrorCallback.idl:
49014         * Modules/quota/StorageInfoQuotaCallback.idl:
49015         * Modules/quota/StorageInfoUsageCallback.idl:
49016         * Modules/speech/DOMWindowSpeech.idl:
49017         * Modules/speech/SpeechGrammar.idl:
49018         * Modules/speech/SpeechGrammarList.idl:
49019         * Modules/speech/SpeechRecognition.idl:
49020         * Modules/speech/SpeechRecognitionAlternative.idl:
49021         * Modules/speech/SpeechRecognitionError.idl:
49022         * Modules/speech/SpeechRecognitionEvent.idl:
49023         * Modules/speech/SpeechRecognitionResult.idl:
49024         * Modules/speech/SpeechRecognitionResultList.idl:
49025         * Modules/vibration/NavigatorVibration.idl:
49026         * Modules/webaudio/AudioBuffer.idl:
49027         * Modules/webaudio/AudioBufferCallback.idl:
49028         * Modules/webaudio/AudioBufferSourceNode.idl:
49029         * Modules/webaudio/AudioChannelMerger.idl:
49030         * Modules/webaudio/AudioChannelSplitter.idl:
49031         * Modules/webaudio/AudioContext.idl:
49032         * Modules/webaudio/AudioDestinationNode.idl:
49033         * Modules/webaudio/AudioGain.idl:
49034         * Modules/webaudio/AudioGainNode.idl:
49035         * Modules/webaudio/AudioListener.idl:
49036         * Modules/webaudio/AudioNode.idl:
49037         * Modules/webaudio/AudioPannerNode.idl:
49038         * Modules/webaudio/AudioParam.idl:
49039         * Modules/webaudio/AudioProcessingEvent.idl:
49040         * Modules/webaudio/AudioSourceNode.idl:
49041         * Modules/webaudio/BiquadFilterNode.idl:
49042         * Modules/webaudio/ConvolverNode.idl:
49043         * Modules/webaudio/DOMWindowWebAudio.idl:
49044         * Modules/webaudio/DelayNode.idl:
49045         * Modules/webaudio/DynamicsCompressorNode.idl:
49046         * Modules/webaudio/JavaScriptAudioNode.idl:
49047         * Modules/webaudio/MediaElementAudioSourceNode.idl:
49048         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
49049         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
49050         * Modules/webaudio/Oscillator.idl:
49051         * Modules/webaudio/RealtimeAnalyserNode.idl:
49052         * Modules/webaudio/WaveShaperNode.idl:
49053         * Modules/webaudio/WaveTable.idl:
49054         * Modules/webdatabase/DOMWindowWebDatabase.idl:
49055         * Modules/webdatabase/Database.idl:
49056         * Modules/webdatabase/DatabaseCallback.idl:
49057         * Modules/webdatabase/DatabaseSync.idl:
49058         * Modules/webdatabase/SQLError.idl:
49059         * Modules/webdatabase/SQLException.idl:
49060         * Modules/webdatabase/SQLResultSet.idl:
49061         * Modules/webdatabase/SQLResultSetRowList.idl:
49062         * Modules/webdatabase/SQLStatementCallback.idl:
49063         * Modules/webdatabase/SQLStatementErrorCallback.idl:
49064         * Modules/webdatabase/SQLTransaction.idl:
49065         * Modules/webdatabase/SQLTransactionCallback.idl:
49066         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
49067         * Modules/webdatabase/SQLTransactionSync.idl:
49068         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
49069         * Modules/webdatabase/WorkerContextWebDatabase.idl:
49070         * Modules/websockets/CloseEvent.idl:
49071         * Modules/websockets/DOMWindowWebSocket.idl:
49072         * Modules/websockets/WebSocket.idl:
49073         * Modules/websockets/WorkerContextWebSocket.idl:
49074         * bindings/scripts/test/TestCallback.idl:
49075         * bindings/scripts/test/TestCustomNamedGetter.idl:
49076         * bindings/scripts/test/TestDomainSecurity.idl:
49077         * bindings/scripts/test/TestEventConstructor.idl:
49078         * bindings/scripts/test/TestEventTarget.idl:
49079         * bindings/scripts/test/TestException.idl:
49080         * bindings/scripts/test/TestInterface.idl:
49081         * bindings/scripts/test/TestMediaQueryListListener.idl:
49082         * bindings/scripts/test/TestNamedConstructor.idl:
49083         * bindings/scripts/test/TestNode.idl:
49084         * bindings/scripts/test/TestObj.idl:
49085         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
49086         * bindings/scripts/test/TestSupplemental.idl:
49087         * bindings/scripts/test/TestTypedArray.idl:
49088         * css/CSSCharsetRule.idl:
49089         * css/CSSFontFaceRule.idl:
49090         * css/CSSImportRule.idl:
49091         * css/CSSMediaRule.idl:
49092         * css/CSSPageRule.idl:
49093         * css/CSSPrimitiveValue.idl:
49094         * css/CSSRule.idl:
49095         * css/CSSRuleList.idl:
49096         * css/CSSStyleDeclaration.idl:
49097         * css/CSSStyleRule.idl:
49098         * css/CSSStyleSheet.idl:
49099         * css/CSSUnknownRule.idl:
49100         * css/CSSValue.idl:
49101         * css/CSSValueList.idl:
49102         * css/Counter.idl:
49103         * css/MediaList.idl:
49104         * css/MediaQueryList.idl:
49105         * css/MediaQueryListListener.idl:
49106         * css/RGBColor.idl:
49107         * css/Rect.idl:
49108         * css/StyleMedia.idl:
49109         * css/StyleSheet.idl:
49110         * css/StyleSheetList.idl:
49111         * css/WebKitCSSFilterValue.idl:
49112         * css/WebKitCSSKeyframeRule.idl:
49113         * css/WebKitCSSKeyframesRule.idl:
49114         * css/WebKitCSSMatrix.idl:
49115         * css/WebKitCSSRegionRule.idl:
49116         * css/WebKitCSSTransformValue.idl:
49117         * dom/Attr.idl:
49118         * dom/BeforeLoadEvent.idl:
49119         * dom/CDATASection.idl:
49120         * dom/CharacterData.idl:
49121         * dom/ClientRect.idl:
49122         * dom/ClientRectList.idl:
49123         * dom/Clipboard.idl:
49124         * dom/Comment.idl:
49125         * dom/CompositionEvent.idl:
49126         * dom/CustomEvent.idl:
49127         * dom/DOMCoreException.idl:
49128         * dom/DOMError.idl:
49129         * dom/DOMImplementation.idl:
49130         * dom/DOMNamedFlowCollection.idl:
49131         * dom/DOMStringList.idl:
49132         * dom/DOMStringMap.idl:
49133         * dom/DataTransferItem.idl:
49134         * dom/DataTransferItemList.idl:
49135         * dom/DeviceMotionEvent.idl:
49136         * dom/DeviceOrientationEvent.idl:
49137         * dom/Document.idl:
49138         * dom/DocumentFragment.idl:
49139         * dom/DocumentType.idl:
49140         * dom/Element.idl:
49141         * dom/Entity.idl:
49142         * dom/EntityReference.idl:
49143         * dom/ErrorEvent.idl:
49144         * dom/Event.idl:
49145         * dom/EventException.idl:
49146         * dom/EventListener.idl:
49147         * dom/EventTarget.idl:
49148         * dom/HashChangeEvent.idl:
49149         * dom/KeyboardEvent.idl:
49150         * dom/MessageChannel.idl:
49151         * dom/MessageEvent.idl:
49152         * dom/MessagePort.idl:
49153         * dom/MouseEvent.idl:
49154         * dom/MutationCallback.idl:
49155         * dom/MutationEvent.idl:
49156         * dom/MutationObserver.idl:
49157         * dom/MutationRecord.idl:
49158         * dom/NamedNodeMap.idl:
49159         * dom/Node.idl:
49160         * dom/NodeFilter.idl:
49161         * dom/NodeIterator.idl:
49162         * dom/NodeList.idl:
49163         * dom/Notation.idl:
49164         * dom/OverflowEvent.idl:
49165         * dom/PageTransitionEvent.idl:
49166         * dom/PopStateEvent.idl:
49167         * dom/ProcessingInstruction.idl:
49168         * dom/ProgressEvent.idl:
49169         * dom/PropertyNodeList.idl:
49170         * dom/Range.idl:
49171         * dom/RangeException.idl:
49172         * dom/RequestAnimationFrameCallback.idl:
49173         * dom/ShadowRoot.idl:
49174         * dom/StringCallback.idl:
49175         * dom/Text.idl:
49176         * dom/TextEvent.idl:
49177         * dom/Touch.idl:
49178         * dom/TouchEvent.idl:
49179         * dom/TouchList.idl:
49180         * dom/TreeWalker.idl:
49181         * dom/UIEvent.idl:
49182         * dom/WebKitAnimationEvent.idl:
49183         * dom/WebKitNamedFlow.idl:
49184         * dom/WebKitTransitionEvent.idl:
49185         * dom/WheelEvent.idl:
49186         * editing/DOMTransaction.idl:
49187         * editing/UndoManager.idl:
49188         * fileapi/Blob.idl:
49189         * fileapi/File.idl:
49190         * fileapi/FileError.idl:
49191         * fileapi/FileException.idl:
49192         * fileapi/FileList.idl:
49193         * fileapi/FileReader.idl:
49194         * fileapi/FileReaderSync.idl:
49195         * html/DOMFormData.idl:
49196         * html/DOMSettableTokenList.idl:
49197         * html/DOMTokenList.idl:
49198         * html/DOMURL.idl:
49199         * html/HTMLAllCollection.idl:
49200         * html/HTMLAnchorElement.idl:
49201         * html/HTMLAppletElement.idl:
49202         * html/HTMLAreaElement.idl:
49203         * html/HTMLAudioElement.idl:
49204         * html/HTMLBRElement.idl:
49205         * html/HTMLBaseElement.idl:
49206         * html/HTMLBaseFontElement.idl:
49207         * html/HTMLBodyElement.idl:
49208         * html/HTMLButtonElement.idl:
49209         * html/HTMLCanvasElement.idl:
49210         * html/HTMLCollection.idl:
49211         * html/HTMLDListElement.idl:
49212         * html/HTMLDataListElement.idl:
49213         * html/HTMLDetailsElement.idl:
49214         * html/HTMLDialogElement.idl:
49215         * html/HTMLDirectoryElement.idl:
49216         * html/HTMLDivElement.idl:
49217         * html/HTMLDocument.idl:
49218         * html/HTMLElement.idl:
49219         * html/HTMLEmbedElement.idl:
49220         * html/HTMLFieldSetElement.idl:
49221         * html/HTMLFontElement.idl:
49222         * html/HTMLFormElement.idl:
49223         * html/HTMLFrameElement.idl:
49224         * html/HTMLFrameSetElement.idl:
49225         * html/HTMLHRElement.idl:
49226         * html/HTMLHeadElement.idl:
49227         * html/HTMLHeadingElement.idl:
49228         * html/HTMLHtmlElement.idl:
49229         * html/HTMLIFrameElement.idl:
49230         * html/HTMLImageElement.idl:
49231         * html/HTMLInputElement.idl:
49232         * html/HTMLIntentElement.idl:
49233         * html/HTMLKeygenElement.idl:
49234         * html/HTMLLIElement.idl:
49235         * html/HTMLLabelElement.idl:
49236         * html/HTMLLegendElement.idl:
49237         * html/HTMLLinkElement.idl:
49238         * html/HTMLMapElement.idl:
49239         * html/HTMLMarqueeElement.idl:
49240         * html/HTMLMediaElement.idl:
49241         * html/HTMLMenuElement.idl:
49242         * html/HTMLMetaElement.idl:
49243         * html/HTMLMeterElement.idl:
49244         * html/HTMLModElement.idl:
49245         * html/HTMLOListElement.idl:
49246         * html/HTMLObjectElement.idl:
49247         * html/HTMLOptGroupElement.idl:
49248         * html/HTMLOptionElement.idl:
49249         * html/HTMLOptionsCollection.idl:
49250         * html/HTMLOutputElement.idl:
49251         * html/HTMLParagraphElement.idl:
49252         * html/HTMLParamElement.idl:
49253         * html/HTMLPreElement.idl:
49254         * html/HTMLProgressElement.idl:
49255         * html/HTMLPropertiesCollection.idl:
49256         * html/HTMLQuoteElement.idl:
49257         * html/HTMLScriptElement.idl:
49258         * html/HTMLSelectElement.idl:
49259         * html/HTMLSourceElement.idl:
49260         * html/HTMLSpanElement.idl:
49261         * html/HTMLStyleElement.idl:
49262         * html/HTMLTableCaptionElement.idl:
49263         * html/HTMLTableCellElement.idl:
49264         * html/HTMLTableColElement.idl:
49265         * html/HTMLTableElement.idl:
49266         * html/HTMLTableRowElement.idl:
49267         * html/HTMLTableSectionElement.idl:
49268         * html/HTMLTextAreaElement.idl:
49269         * html/HTMLTitleElement.idl:
49270         * html/HTMLTrackElement.idl:
49271         * html/HTMLUListElement.idl:
49272         * html/HTMLUnknownElement.idl:
49273         * html/HTMLVideoElement.idl:
49274         * html/ImageData.idl:
49275         * html/MediaController.idl:
49276         * html/MediaError.idl:
49277         * html/MediaKeyError.idl:
49278         * html/MediaKeyEvent.idl:
49279         * html/MicroDataItemValue.idl:
49280         * html/RadioNodeList.idl:
49281         * html/TextMetrics.idl:
49282         * html/TimeRanges.idl:
49283         * html/ValidityState.idl:
49284         * html/VoidCallback.idl:
49285         * html/canvas/ArrayBuffer.idl:
49286         * html/canvas/ArrayBufferView.idl:
49287         * html/canvas/CanvasGradient.idl:
49288         * html/canvas/CanvasPattern.idl:
49289         * html/canvas/CanvasRenderingContext.idl:
49290         * html/canvas/CanvasRenderingContext2D.idl:
49291         * html/canvas/DataView.idl:
49292         * html/canvas/EXTTextureFilterAnisotropic.idl:
49293         * html/canvas/Float32Array.idl:
49294         * html/canvas/Float64Array.idl:
49295         * html/canvas/Int16Array.idl:
49296         * html/canvas/Int32Array.idl:
49297         * html/canvas/Int8Array.idl:
49298         * html/canvas/OESStandardDerivatives.idl:
49299         * html/canvas/OESTextureFloat.idl:
49300         * html/canvas/OESVertexArrayObject.idl:
49301         * html/canvas/Uint16Array.idl:
49302         * html/canvas/Uint32Array.idl:
49303         * html/canvas/Uint8Array.idl:
49304         * html/canvas/Uint8ClampedArray.idl:
49305         * html/canvas/WebGLActiveInfo.idl:
49306         * html/canvas/WebGLBuffer.idl:
49307         * html/canvas/WebGLCompressedTextureS3TC.idl:
49308         * html/canvas/WebGLContextAttributes.idl:
49309         * html/canvas/WebGLContextEvent.idl:
49310         * html/canvas/WebGLDebugRendererInfo.idl:
49311         * html/canvas/WebGLDebugShaders.idl:
49312         * html/canvas/WebGLDepthTexture.idl:
49313         * html/canvas/WebGLFramebuffer.idl:
49314         * html/canvas/WebGLLoseContext.idl:
49315         * html/canvas/WebGLProgram.idl:
49316         * html/canvas/WebGLRenderbuffer.idl:
49317         * html/canvas/WebGLRenderingContext.idl:
49318         * html/canvas/WebGLShader.idl:
49319         * html/canvas/WebGLShaderPrecisionFormat.idl:
49320         * html/canvas/WebGLTexture.idl:
49321         * html/canvas/WebGLUniformLocation.idl:
49322         * html/canvas/WebGLVertexArrayObjectOES.idl:
49323         * html/shadow/HTMLContentElement.idl:
49324         * html/shadow/HTMLShadowElement.idl:
49325         * html/track/TextTrack.idl:
49326         * html/track/TextTrackCue.idl:
49327         * html/track/TextTrackCueList.idl:
49328         * html/track/TextTrackList.idl:
49329         * html/track/TrackEvent.idl:
49330         * inspector/InjectedScriptHost.idl:
49331         * inspector/InspectorFrontendHost.idl:
49332         * inspector/JavaScriptCallFrame.idl:
49333         * inspector/ScriptProfile.idl:
49334         * inspector/ScriptProfileNode.idl:
49335         * loader/appcache/DOMApplicationCache.idl:
49336         * page/AbstractView.idl:
49337         * page/BarInfo.idl:
49338         * page/Console.idl:
49339         * page/Coordinates.idl:
49340         * page/Crypto.idl:
49341         * page/DOMSecurityPolicy.idl:
49342         * page/DOMSelection.idl:
49343         * page/DOMWindow.idl:
49344         * page/DOMWindowPagePopup.idl:
49345         * page/EventSource.idl:
49346         * page/History.idl:
49347         * page/Location.idl:
49348         * page/MemoryInfo.idl:
49349         * page/Navigator.idl:
49350         * page/PagePopupController.idl:
49351         * page/Performance.idl:
49352         * page/PerformanceEntry.idl:
49353         * page/PerformanceEntryList.idl:
49354         * page/PerformanceNavigation.idl:
49355         * page/PerformanceResourceTiming.idl:
49356         * page/PerformanceTiming.idl:
49357         * page/Screen.idl:
49358         * page/SpeechInputEvent.idl:
49359         * page/SpeechInputResult.idl:
49360         * page/SpeechInputResultList.idl:
49361         * page/WebKitAnimation.idl:
49362         * page/WebKitAnimationList.idl:
49363         * page/WebKitPoint.idl:
49364         * page/WorkerNavigator.idl:
49365         * plugins/DOMMimeType.idl:
49366         * plugins/DOMMimeTypeArray.idl:
49367         * plugins/DOMPlugin.idl:
49368         * plugins/DOMPluginArray.idl:
49369         * storage/Storage.idl:
49370         * storage/StorageEvent.idl:
49371         * svg/ElementTimeControl.idl:
49372         * svg/SVGAElement.idl:
49373         * svg/SVGAltGlyphDefElement.idl:
49374         * svg/SVGAltGlyphElement.idl:
49375         * svg/SVGAltGlyphItemElement.idl:
49376         * svg/SVGAngle.idl:
49377         * svg/SVGAnimateColorElement.idl:
49378         * svg/SVGAnimateElement.idl:
49379         * svg/SVGAnimateMotionElement.idl:
49380         * svg/SVGAnimateTransformElement.idl:
49381         * svg/SVGAnimatedAngle.idl:
49382         * svg/SVGAnimatedBoolean.idl:
49383         * svg/SVGAnimatedEnumeration.idl:
49384         * svg/SVGAnimatedInteger.idl:
49385         * svg/SVGAnimatedLength.idl:
49386         * svg/SVGAnimatedLengthList.idl:
49387         * svg/SVGAnimatedNumber.idl:
49388         * svg/SVGAnimatedNumberList.idl:
49389         * svg/SVGAnimatedPreserveAspectRatio.idl:
49390         * svg/SVGAnimatedRect.idl:
49391         * svg/SVGAnimatedString.idl:
49392         * svg/SVGAnimatedTransformList.idl:
49393         * svg/SVGAnimationElement.idl:
49394         * svg/SVGCircleElement.idl:
49395         * svg/SVGClipPathElement.idl:
49396         * svg/SVGColor.idl:
49397         * svg/SVGComponentTransferFunctionElement.idl:
49398         * svg/SVGCursorElement.idl:
49399         * svg/SVGDefsElement.idl:
49400         * svg/SVGDescElement.idl:
49401         * svg/SVGDocument.idl:
49402         * svg/SVGElement.idl:
49403         * svg/SVGElementInstance.idl:
49404         * svg/SVGElementInstanceList.idl:
49405         * svg/SVGEllipseElement.idl:
49406         * svg/SVGException.idl:
49407         * svg/SVGExternalResourcesRequired.idl:
49408         * svg/SVGFEBlendElement.idl:
49409         * svg/SVGFEColorMatrixElement.idl:
49410         * svg/SVGFEComponentTransferElement.idl:
49411         * svg/SVGFECompositeElement.idl:
49412         * svg/SVGFEConvolveMatrixElement.idl:
49413         * svg/SVGFEDiffuseLightingElement.idl:
49414         * svg/SVGFEDisplacementMapElement.idl:
49415         * svg/SVGFEDistantLightElement.idl:
49416         * svg/SVGFEDropShadowElement.idl:
49417         * svg/SVGFEFloodElement.idl:
49418         * svg/SVGFEFuncAElement.idl:
49419         * svg/SVGFEFuncBElement.idl:
49420         * svg/SVGFEFuncGElement.idl:
49421         * svg/SVGFEFuncRElement.idl:
49422         * svg/SVGFEGaussianBlurElement.idl:
49423         * svg/SVGFEImageElement.idl:
49424         * svg/SVGFEMergeElement.idl:
49425         * svg/SVGFEMergeNodeElement.idl:
49426         * svg/SVGFEMorphologyElement.idl:
49427         * svg/SVGFEOffsetElement.idl:
49428         * svg/SVGFEPointLightElement.idl:
49429         * svg/SVGFESpecularLightingElement.idl:
49430         * svg/SVGFESpotLightElement.idl:
49431         * svg/SVGFETileElement.idl:
49432         * svg/SVGFETurbulenceElement.idl:
49433         * svg/SVGFilterElement.idl:
49434         * svg/SVGFilterPrimitiveStandardAttributes.idl:
49435         * svg/SVGFitToViewBox.idl:
49436         * svg/SVGFontElement.idl:
49437         * svg/SVGFontFaceElement.idl:
49438         * svg/SVGFontFaceFormatElement.idl:
49439         * svg/SVGFontFaceNameElement.idl:
49440         * svg/SVGFontFaceSrcElement.idl:
49441         * svg/SVGFontFaceUriElement.idl:
49442         * svg/SVGForeignObjectElement.idl:
49443         * svg/SVGGElement.idl:
49444         * svg/SVGGlyphElement.idl:
49445         * svg/SVGGlyphRefElement.idl:
49446         * svg/SVGGradientElement.idl:
49447         * svg/SVGHKernElement.idl:
49448         * svg/SVGImageElement.idl:
49449         * svg/SVGLangSpace.idl:
49450         * svg/SVGLength.idl:
49451         * svg/SVGLengthList.idl:
49452         * svg/SVGLineElement.idl:
49453         * svg/SVGLinearGradientElement.idl:
49454         * svg/SVGLocatable.idl:
49455         * svg/SVGMPathElement.idl:
49456         * svg/SVGMarkerElement.idl:
49457         * svg/SVGMaskElement.idl:
49458         * svg/SVGMatrix.idl:
49459         * svg/SVGMetadataElement.idl:
49460         * svg/SVGMissingGlyphElement.idl:
49461         * svg/SVGNumber.idl:
49462         * svg/SVGNumberList.idl:
49463         * svg/SVGPaint.idl:
49464         * svg/SVGPathElement.idl:
49465         * svg/SVGPathSeg.idl:
49466         * svg/SVGPathSegArcAbs.idl:
49467         * svg/SVGPathSegArcRel.idl:
49468         * svg/SVGPathSegClosePath.idl:
49469         * svg/SVGPathSegCurvetoCubicAbs.idl:
49470         * svg/SVGPathSegCurvetoCubicRel.idl:
49471         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
49472         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
49473         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
49474         * svg/SVGPathSegCurvetoQuadraticRel.idl:
49475         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
49476         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
49477         * svg/SVGPathSegLinetoAbs.idl:
49478         * svg/SVGPathSegLinetoHorizontalAbs.idl:
49479         * svg/SVGPathSegLinetoHorizontalRel.idl:
49480         * svg/SVGPathSegLinetoRel.idl:
49481         * svg/SVGPathSegLinetoVerticalAbs.idl:
49482         * svg/SVGPathSegLinetoVerticalRel.idl:
49483         * svg/SVGPathSegList.idl:
49484         * svg/SVGPathSegMovetoAbs.idl:
49485         * svg/SVGPathSegMovetoRel.idl:
49486         * svg/SVGPatternElement.idl:
49487         * svg/SVGPoint.idl:
49488         * svg/SVGPointList.idl:
49489         * svg/SVGPolygonElement.idl:
49490         * svg/SVGPolylineElement.idl:
49491         * svg/SVGPreserveAspectRatio.idl:
49492         * svg/SVGRadialGradientElement.idl:
49493         * svg/SVGRect.idl:
49494         * svg/SVGRectElement.idl:
49495         * svg/SVGRenderingIntent.idl:
49496         * svg/SVGSVGElement.idl:
49497         * svg/SVGScriptElement.idl:
49498         * svg/SVGSetElement.idl:
49499         * svg/SVGStopElement.idl:
49500         * svg/SVGStringList.idl:
49501         * svg/SVGStylable.idl:
49502         * svg/SVGStyleElement.idl:
49503         * svg/SVGSwitchElement.idl:
49504         * svg/SVGSymbolElement.idl:
49505         * svg/SVGTRefElement.idl:
49506         * svg/SVGTSpanElement.idl:
49507         * svg/SVGTests.idl:
49508         * svg/SVGTextContentElement.idl:
49509         * svg/SVGTextElement.idl:
49510         * svg/SVGTextPathElement.idl:
49511         * svg/SVGTextPositioningElement.idl:
49512         * svg/SVGTitleElement.idl:
49513         * svg/SVGTransform.idl:
49514         * svg/SVGTransformList.idl:
49515         * svg/SVGTransformable.idl:
49516         * svg/SVGURIReference.idl:
49517         * svg/SVGUnitTypes.idl:
49518         * svg/SVGUseElement.idl:
49519         * svg/SVGVKernElement.idl:
49520         * svg/SVGViewElement.idl:
49521         * svg/SVGViewSpec.idl:
49522         * svg/SVGZoomAndPan.idl:
49523         * svg/SVGZoomEvent.idl:
49524         * testing/InternalSettings.idl:
49525         * testing/Internals.idl:
49526         * testing/MallocStatistics.idl:
49527         * workers/AbstractWorker.idl:
49528         * workers/DedicatedWorkerContext.idl:
49529         * workers/SharedWorker.idl:
49530         * workers/SharedWorkerContext.idl:
49531         * workers/Worker.idl:
49532         * workers/WorkerContext.idl:
49533         * workers/WorkerLocation.idl:
49534         * xml/DOMParser.idl:
49535         * xml/XMLHttpRequest.idl:
49536         * xml/XMLHttpRequestException.idl:
49537         * xml/XMLHttpRequestProgressEvent.idl:
49538         * xml/XMLHttpRequestUpload.idl:
49539         * xml/XMLSerializer.idl:
49540         * xml/XPathEvaluator.idl:
49541         * xml/XPathException.idl:
49542         * xml/XPathExpression.idl:
49543         * xml/XPathNSResolver.idl:
49544         * xml/XPathResult.idl:
49545         * xml/XSLTProcessor.idl:
49546         Removed "module".
49547
49548 2012-10-11  Beth Dakin  <bdakin@apple.com>
49549
49550         https://bugs.webkit.org/show_bug.cgi?id=98700
49551         ScrollingCoordinator is a hot mess of if-defs
49552
49553         Reviewed by Anders Carlsson.
49554
49555         This patch moves all of the threaded scrolling code in 
49556         ScrollingCoordinator into a new class called ScrollingCoordinatorMac 
49557         which inherits from ScrollingCoordinator. 
49558
49559         It also adds ScrollingCoordinatorChromium to do Chromium-specific work. 
49560         ScrollingCoordinator itself does work that is cross-platform. 
49561         
49562         Finally, this patch also eliminates ScrollingCoordinatorNone. 
49563         ScrollingCoordinator is now sufficient for platforms that relied on 
49564         ScrollingCoordinatorNone to build.
49565
49566         * CMakeLists.txt:
49567         * GNUmakefile.list.am:
49568         * Target.pri:
49569         * WebCore.exp.in:
49570         * WebCore.xcodeproj/project.pbxproj:
49571         * page/scrolling/ScrollingCoordinator.cpp:
49572         (WebCore::ScrollingCoordinator::create):
49573         (WebCore):
49574         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
49575         (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
49576         (WebCore::ScrollingCoordinator::pageDestroyed):
49577         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
49578         (WebCore::ScrollingCoordinator::computeCurrentWheelEventHandlerCount):
49579         (WebCore::ScrollingCoordinator::scrollLayerForFrameView):
49580         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
49581         * page/scrolling/ScrollingCoordinator.h:
49582         (WebCore):
49583         (ScrollingCoordinator):
49584         (WebCore::ScrollingCoordinator::scrollingTree):
49585         (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded):
49586         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
49587         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
49588         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
49589         (WebCore::ScrollingCoordinator::handleWheelEvent):
49590         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
49591         (WebCore::ScrollingCoordinator::attachToStateTree):
49592         (WebCore::ScrollingCoordinator::detachFromStateTree):
49593         (WebCore::ScrollingCoordinator::clearStateTree):
49594         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
49595         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
49596         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
49597         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
49598         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
49599         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
49600         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
49601         * page/scrolling/ScrollingCoordinatorNone.cpp: Removed.
49602         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
49603         (WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
49604         (WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
49605         (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
49606         (WebCore):
49607         (WebCore::ScrollingCoordinatorChromium::frameViewRootLayerDidChange):
49608         (WebCore::ScrollingCoordinatorChromium::frameViewHorizontalScrollbarLayerDidChange):
49609         (WebCore::ScrollingCoordinatorChromium::frameViewVerticalScrollbarLayerDidChange):
49610         (WebCore::ScrollingCoordinatorChromium::setScrollLayer):
49611         (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
49612         (WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
49613         (WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
49614         (WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
49615         (WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
49616         (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
49617         (WebCore::ScrollingCoordinatorChromium::recomputeWheelEventHandlerCountForFrameView):
49618         * page/scrolling/chromium/ScrollingCoordinatorChromium.h: Added.
49619         (WebCore):
49620         (ScrollingCoordinatorChromium):
49621         (WebCore::ScrollingCoordinatorChromium::supportsFixedPositionLayers):
49622         * page/scrolling/mac/ScrollingCoordinatorMac.h: Added.
49623         (WebCore):
49624         (ScrollingCoordinatorMac):
49625         (ScrollParameters):
49626         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
49627         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
49628         (WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
49629         (WebCore::ScrollingCoordinatorMac::pageDestroyed):
49630         (WebCore):
49631         (WebCore::ScrollingCoordinatorMac::scrollingTree):
49632         (WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
49633         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
49634         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
49635         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
49636         (WebCore::ScrollingCoordinatorMac::frameViewHorizontalScrollbarLayerDidChange):
49637         (WebCore::ScrollingCoordinatorMac::frameViewVerticalScrollbarLayerDidChange):
49638         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
49639         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
49640         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition):
49641         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
49642         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
49643         (WebCore::ScrollingCoordinatorMac::clearStateTree):
49644         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
49645         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
49646         (WebCore::ScrollingCoordinatorMac::setScrollLayerForNode):
49647         (WebCore::ScrollingCoordinatorMac::setNonFastScrollableRegionForNode):
49648         (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
49649         (WebCore::ScrollingCoordinatorMac::setWheelEventHandlerCountForNode):
49650         (WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
49651         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollLayerPosition):
49652         (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
49653         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):
49654         (WebCore::ScrollingCoordinatorMac::commitTreeState):
49655
49656 2012-10-11  Takashi Sakamoto  <tasak@google.com>
49657
49658         [Shadow DOM] Insertion points need resetStyleInheritance
49659         https://bugs.webkit.org/show_bug.cgi?id=93922
49660
49661         Reviewed by Dimitri Glazkov.
49662
49663         Implemented resetStyleInheritance of insertion points.
49664         Its spec link is http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-html-content-element-reset-style-inheritance
49665
49666         Test: fast/dom/shadow/insertion-point-resetStyleInheritance.html
49667
49668         * css/StyleResolver.cpp:
49669         (WebCore::isResetStyleInheritance):
49670         Added a new function to check whether there exists any insertion
49671         point which has reset-style-inhertiance flag set to be true.
49672         (WebCore::StyleResolver::initForStyleResolve):
49673         Modified to use the above function to check reset-style-inheritance.
49674         * html/shadow/HTMLContentElement.idl:
49675         * html/shadow/HTMLShadowElement.idl:
49676         Added a new attribute for reset-style-inheritance.
49677         * html/shadow/InsertionPoint.cpp:
49678         (WebCore::InsertionPoint::InsertionPoint):
49679         Initialized a new member variable for reset-style-inheritance.
49680         (WebCore::InsertionPoint::resetStyleInheritance):
49681         (WebCore::InsertionPoint::setResetStyleInheritance):
49682         Implemented setter/getter for reset-style-inheritance.
49683         * html/shadow/InsertionPoint.h:
49684         (InsertionPoint):
49685         Added a new member variable for reset-style-inheritance.
49686
49687 2012-10-11  Anders Carlsson  <andersca@apple.com>
49688
49689         Attempt to fix build broken by r131125.
49690
49691         * page/PageSerializer.cpp:
49692         (WebCore::PageSerializer::addImageToResources):
49693         KURL::utf8String() is apparently a USE(GOOGLEURL) feature. Call url.string().utf8() instead.
49694
49695 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49696
49697         [Chromium] Use harfbuzz-ng by default on Linux
49698         https://bugs.webkit.org/show_bug.cgi?id=97281
49699
49700         Reviewed by Tony Chang.
49701
49702         Switch old harfbuzz to harfbuzz-ng on chromium linux port.
49703
49704         No new tests. Existing tests should cover this switch.
49705         Test expectations will be updated.
49706
49707         * WebCore.gyp/WebCore.gyp:
49708
49709 2012-10-11  Nat Duca  <nduca@chromium.org>
49710
49711         Expose high-resolution on requestAnimationFrame callback
49712         https://bugs.webkit.org/show_bug.cgi?id=66683
49713
49714         This changes requestAnimationFrame's animationStartTime argument
49715         to be a high resolution DOM timestamp, per disucssion here:
49716         http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
49717
49718         Reviewed by James Robinson.
49719
49720         Covered by existing requestAnimationFrame tests.
49721
49722         * dom/Document.cpp:
49723         (WebCore::Document::serviceScriptedAnimations):
49724         * dom/Document.h:
49725         (Document):
49726         * dom/ScriptedAnimationController.cpp:
49727         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
49728         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
49729         (WebCore):
49730         (WebCore::ScriptedAnimationController::windowScreenDidChange):
49731         (WebCore::ScriptedAnimationController::scheduleAnimation):
49732         (WebCore::ScriptedAnimationController::animationTimerFired):
49733         (WebCore::ScriptedAnimationController::displayRefreshFired):
49734         * dom/ScriptedAnimationController.h:
49735         (ScriptedAnimationController):
49736         * page/FrameView.cpp:
49737         (WebCore::FrameView::serviceScriptedAnimations):
49738         * page/FrameView.h:
49739         (FrameView):
49740         * platform/graphics/DisplayRefreshMonitor.cpp:
49741         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
49742         (WebCore::DisplayRefreshMonitor::notifyClients):
49743         * platform/graphics/DisplayRefreshMonitor.h:
49744         (DisplayRefreshMonitor):
49745         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
49746         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49747         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
49748         (WebCore):
49749         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
49750         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49751
49752 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49753
49754         Unreviewed, rolling out r131100.
49755         http://trac.webkit.org/changeset/131100
49756         https://bugs.webkit.org/show_bug.cgi?id=99127
49757
49758         Caused an ASSERT (Requested by abarth|gardening on #webkit).
49759
49760         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
49761         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
49762
49763 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49764
49765         [Chromium] Improve vertical text rendering of HarfBuzzShaper (Re-land)
49766         https://bugs.webkit.org/show_bug.cgi?id=98979
49767
49768         Reviewed by Tony Chang.
49769
49770         - Specify 'vert' and 'vrt2' features when we render vertical text.
49771         - Set appropriate script so that harfbuzz-ng can use the features.
49772
49773         No new tests. fast/text/international/text-spliced-font.html should cover this change.
49774         This change will affect after switching to harfbuzz-ng.
49775
49776         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49777         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49778         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
49779         (WebCore):
49780         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
49781         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49782         (HarfBuzzNGFace): Added m_scriptForVerticalText.
49783         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49784         (WebCore::HarfBuzzShaper::setFontFeatures):
49785         Set 'vert' and 'vrt2' features when orientation() == Vertical.
49786         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49787         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
49788
49789 2012-10-11  Jay Civelli  <jcivelli@chromium.org>
49790
49791         Fix for a crasher when generating MHTML for a page containing SVG images.
49792         https://bugs.webkit.org/show_bug.cgi?id=99105
49793
49794         Reviewed by Adam Barth.
49795
49796         * page/PageSerializer.cpp:
49797         (WebCore::PageSerializer::serializeCSSStyleSheet):
49798         (WebCore::PageSerializer::addImageToResources):
49799
49800 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49801
49802         Unreviewed, rolling out r131107.
49803         http://trac.webkit.org/changeset/131107
49804         https://bugs.webkit.org/show_bug.cgi?id=99126
49805
49806         Causes an ASSERT (Requested by abarth|gardening on #webkit).
49807
49808         * accessibility/AccessibilityNodeObject.cpp:
49809         (WebCore::AccessibilityNodeObject::labelForElement):
49810         * dom/DocumentOrderedMap.cpp:
49811         * dom/DocumentOrderedMap.h:
49812         (DocumentOrderedMap):
49813         * dom/Element.cpp:
49814         (WebCore::Element::insertedInto):
49815         (WebCore::Element::removedFrom):
49816         (WebCore):
49817         (WebCore::Element::willModifyAttribute):
49818         * dom/Element.h:
49819         (Element):
49820         * dom/TreeScope.cpp:
49821         (WebCore::TreeScope::TreeScope):
49822         * dom/TreeScope.h:
49823         (WebCore):
49824         (TreeScope):
49825
49826 2012-10-11  Tim Horton  <timothy_horton@apple.com>
49827
49828         LocalCurrentGraphicsContext will never restore the current context to null
49829         https://bugs.webkit.org/show_bug.cgi?id=99122
49830
49831         Reviewed by Simon Fraser.
49832
49833         LocalCurrentGraphicsContext is meant to cause temporary changes to
49834         NSGraphicsContext's currentContext. However, if it is entered when
49835         currentContext is null, it will not restore to null, as a null
49836         m_savedNSGraphicsContext was being used to indicate that the current and
49837         passed-in graphics contexts were equal (and thus no save/restore was required).
49838
49839         Add a separate flag for whether or not we need to restore the context.
49840
49841         Also flip the order of calls to restore graphics context state so that
49842         exiting LocalCurrentGraphicsContext does things in exactly the opposite
49843         of entry.
49844
49845         * platform/mac/LocalCurrentGraphicsContext.h:
49846         (LocalCurrentGraphicsContext):
49847         * platform/mac/LocalCurrentGraphicsContext.mm:
49848         (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
49849         (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
49850
49851 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49852
49853         Unreviewed, rolling out r131109.
49854         http://trac.webkit.org/changeset/131109
49855         https://bugs.webkit.org/show_bug.cgi?id=99124
49856
49857         Does not compile on chromium-mac (Requested by
49858         abarth|gardening on #webkit).
49859
49860         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49861         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49862         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49863         (HarfBuzzNGFace):
49864         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49865         (WebCore::HarfBuzzShaper::setFontFeatures):
49866         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49867
49868 2012-10-11  Beth Dakin  <bdakin@apple.com>
49869
49870         https://bugs.webkit.org/show_bug.cgi?id=99111
49871         ScrollingStateNode should keep its Vector of children in an OwnPtr
49872
49873         Reviewed by Ada Chan.
49874
49875         Vector<OwnPtr<ScrollingStateNode> >* m_children; is now:
49876          OwnPtr<Vector<OwnPtr<ScrollingStateNode> > > m_children;
49877         * page/scrolling/ScrollingStateNode.cpp:
49878         (WebCore::ScrollingStateNode::ScrollingStateNode):
49879         (WebCore::ScrollingStateNode::~ScrollingStateNode):
49880         (WebCore::ScrollingStateNode::appendChild):
49881         * page/scrolling/ScrollingStateNode.h:
49882         (ScrollingStateNode):
49883
49884 2012-10-11  Levi Weintraub  <leviw@chromium.org>
49885
49886         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
49887         https://bugs.webkit.org/show_bug.cgi?id=98571
49888
49889         Reviewed by Emil A Eklund.
49890
49891         Refactoring all coordinate-switching functionality to use a single "mode" flag
49892         as opposed to having a bunch of boolean values. This enables the same set of
49893         options across the board, and a consistent interface. This was previously
49894         done for mapLocalToContainer.
49895
49896         The imptetus for this for this stems from the one logical change in this patch
49897         which only effects sub-pixel layout. FrameView::convertToRenderer and
49898         convertFromRenderer return IntPoint coordinates, and need to also snap transform
49899         offsets to determine proper rects for scrolling.
49900
49901         Unlabeled functions below are simply being updated to these new interfaces.
49902
49903         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
49904
49905         * WebCore.exp.in:
49906         * dom/ContainerNode.cpp:
49907         (WebCore::ContainerNode::getUpperLeftCorner):
49908         (WebCore::ContainerNode::getLowerRightCorner):
49909         * dom/Element.cpp:
49910         (WebCore::Element::boundsInRootViewSpace):
49911         * dom/MouseRelatedEvent.cpp:
49912         (WebCore::MouseRelatedEvent::computeRelativePosition):
49913         * dom/Node.cpp:
49914         (WebCore::Node::convertToPage):
49915         (WebCore::Node::convertFromPage):
49916         * html/HTMLSelectElement.cpp:
49917         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
49918         * html/shadow/SliderThumbElement.cpp:
49919         (WebCore::SliderThumbElement::setPositionFromPoint):
49920         * html/shadow/SpinButtonElement.cpp:
49921         (WebCore::SpinButtonElement::defaultEventHandler):
49922         * page/FrameView.cpp:
49923         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
49924         them to TransformState, which transforms the coordinates.
49925         (WebCore::FrameView::convertFromRenderer): Ditto.
49926         * rendering/LayoutState.cpp:
49927         (WebCore::LayoutState::LayoutState):
49928         * rendering/RenderBlock.cpp:
49929         (WebCore::RenderBlock::absoluteQuads):
49930         * rendering/RenderBox.cpp:
49931         (WebCore::RenderBox::absoluteQuads):
49932         (WebCore::RenderBox::mapLocalToContainer):
49933         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
49934         * rendering/RenderBox.h:
49935         (RenderBox):
49936         * rendering/RenderBoxModelObject.cpp:
49937         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
49938         * rendering/RenderBoxModelObject.h:
49939         (RenderBoxModelObject):
49940         * rendering/RenderEmbeddedObject.cpp:
49941         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
49942         * rendering/RenderFrameSet.cpp:
49943         (WebCore::RenderFrameSet::userResize):
49944         * rendering/RenderGeometryMap.cpp:
49945         (WebCore::RenderGeometryMap::absolutePoint):
49946         * rendering/RenderInline.cpp:
49947         (WebCore::RenderInline::mapLocalToContainer):
49948         * rendering/RenderInline.h:
49949         (RenderInline):
49950         * rendering/RenderLayer.cpp:
49951         (WebCore::RenderLayer::absoluteToContents):
49952         (WebCore::RenderLayer::calculateClipRects):
49953         * rendering/RenderMediaControls.cpp:
49954         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
49955         * rendering/RenderMenuList.cpp:
49956         (WebCore::RenderMenuList::showPopup):
49957         * rendering/RenderObject.cpp:
49958         (WebCore::RenderObject::localToAbsolute):
49959         (WebCore::RenderObject::absoluteToLocal):
49960         (WebCore::RenderObject::mapLocalToContainer):
49961         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
49962         (WebCore::RenderObject::localToContainerQuad):
49963         (WebCore::RenderObject::localToContainerPoint):
49964         * rendering/RenderObject.h:
49965         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
49966         now used for other conversion methods.
49967         (WebCore::RenderObject::localToAbsoluteQuad):
49968         * rendering/RenderTheme.cpp:
49969         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
49970         * rendering/RenderView.cpp:
49971         (WebCore::RenderView::mapLocalToContainer):
49972         (WebCore::RenderView::mapAbsoluteToLocalPoint):
49973         * rendering/RenderView.h:
49974         (RenderView):
49975         * rendering/svg/RenderSVGForeignObject.cpp:
49976         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
49977         * rendering/svg/RenderSVGForeignObject.h:
49978         (RenderSVGForeignObject):
49979         * rendering/svg/RenderSVGInline.cpp:
49980         (WebCore::RenderSVGInline::mapLocalToContainer):
49981         * rendering/svg/RenderSVGInline.h:
49982         (RenderSVGInline):
49983         * rendering/svg/RenderSVGModelObject.cpp:
49984         (WebCore::RenderSVGModelObject::mapLocalToContainer):
49985         * rendering/svg/RenderSVGModelObject.h:
49986         (RenderSVGModelObject):
49987         * rendering/svg/RenderSVGRoot.cpp:
49988         (WebCore::RenderSVGRoot::mapLocalToContainer):
49989         * rendering/svg/RenderSVGRoot.h:
49990         (RenderSVGRoot):
49991         * rendering/svg/RenderSVGText.cpp:
49992         (WebCore::RenderSVGText::mapLocalToContainer):
49993         * rendering/svg/RenderSVGText.h:
49994         (RenderSVGText):
49995         * rendering/svg/SVGRenderSupport.cpp:
49996         (WebCore::SVGRenderSupport::mapLocalToContainer):
49997         * svg/SVGSVGElement.cpp:
49998         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
49999
50000 2012-10-11  Adam Barth  <abarth@webkit.org>
50001
50002         Incorrect/Illegal static cast in FrameView.cpp
50003         https://bugs.webkit.org/show_bug.cgi?id=98943
50004
50005         Reviewed by Eric Seidel.
50006
50007         HTMLFrameElementBase is the common base class for <frame> and <iframe>.
50008
50009         * page/FrameView.cpp:
50010         (WebCore::FrameView::init):
50011
50012 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
50013
50014         [Chromium] Improve vertical text rendering of HarfBuzzShaper
50015         https://bugs.webkit.org/show_bug.cgi?id=98979
50016
50017         Reviewed by Tony Chang.
50018
50019         - Specify 'vert' and 'vrt2' features when we render vertical text.
50020         - Set appropriate script so that harfbuzz-ng can use the features.
50021
50022         No new tests. fast/text/international/text-spliced-font.html should cover this change.
50023         This change will affect after switching to harfbuzz-ng.
50024
50025         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
50026         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
50027         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
50028         (WebCore):
50029         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
50030         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
50031         (HarfBuzzNGFace): Added m_scriptForVerticalText.
50032         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
50033         (WebCore::HarfBuzzShaper::setFontFeatures):
50034         Set 'vert' and 'vrt2' features when orientation() == Vertical.
50035         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
50036         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
50037
50038 2012-10-11  Dominic Mazzoni  <dmazzoni@google.com>
50039
50040         AX: labelForElement is slow when there are a lot of DOM elements
50041         https://bugs.webkit.org/show_bug.cgi?id=97825
50042
50043         Reviewed by Ryosuke Niwa.
50044
50045         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
50046         quickly map from an id to the label for that id. This speeds up
50047         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
50048         when accessibility was on.
50049
50050         Tests: accessibility/title-ui-element-correctness.html
50051                perf/accessibility-title-ui-element.html
50052
50053         * accessibility/AccessibilityNodeObject.cpp:
50054         (WebCore::AccessibilityNodeObject::labelForElement):
50055         * dom/DocumentOrderedMap.cpp:
50056         (WebCore::keyMatchesLabelForAttribute):
50057         (WebCore):
50058         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
50059         * dom/DocumentOrderedMap.h:
50060         (DocumentOrderedMap):
50061         * dom/Element.cpp:
50062         (WebCore::Element::insertedInto):
50063         (WebCore::Element::removedFrom):
50064         (WebCore::Element::updateLabel):
50065         (WebCore):
50066         (WebCore::Element::willModifyAttribute):
50067         * dom/Element.h:
50068         (Element):
50069         * dom/TreeScope.cpp:
50070         (WebCore::TreeScope::TreeScope):
50071         (WebCore::TreeScope::addLabel):
50072         (WebCore):
50073         (WebCore::TreeScope::removeLabel):
50074         (WebCore::TreeScope::labelElementForId):
50075         * dom/TreeScope.h:
50076         (WebCore):
50077         (TreeScope):
50078         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
50079
50080 2012-10-11  James Simonsen  <simonjam@chromium.org>
50081
50082         unprefix window.performance.webkitNow()
50083         https://bugs.webkit.org/show_bug.cgi?id=88278
50084
50085         Reviewed by Tony Gentilcore.
50086
50087         Test: fast/dom/Window/window-properties-performance.html
50088               fast/performance/performance-now-timestamps.html
50089
50090         * page/Performance.cpp:
50091         (WebCore::Performance::now):
50092         * page/Performance.h:
50093         (Performance):
50094         * page/Performance.idl:
50095
50096 2012-10-11  Roger Fong  <roger_fong@apple.com>
50097
50098         [WebGL] [Mac] only the mapped symbol for the first element of a uniform/attribute array is stored.
50099         https://bugs.webkit.org/show_bug.cgi?id=98966
50100
50101         Reviewed by Dean Jackson.
50102
50103         We currently do not add name/mappedName symbol pairs for each element of a uniform/attribute array.
50104         This is because we only add a number of symbols equal to how many symbols the shader compiler tells us there are.
50105         The shader compiler treats an array as a single uniform. We need to be adding in symbols to the map for each element of the array ourselves.
50106         The mappedName of each array element is the same between elements except for the "[index]" at the end so this is easy to do.
50107
50108         Tested using Khronos WebGL conformance suite:
50109         conformance/glsl/misc/glsl-long-variable-names.html
50110
50111         * platform/graphics/ANGLEWebKitBridge.cpp:
50112         (WebCore::getSymbolInfo):
50113
50114 2012-10-11  Andreas Kling  <kling@webkit.org>
50115
50116         ElementAttributeData shouldn't be managing Element's callbacks.
50117         <http://webkit.org/b/98987>
50118
50119         Reviewed by Anders Carlsson.
50120
50121         Dispatch the following attribute-related Element callbacks from within Element
50122         instead of ElementAttributeData. Also made them private.
50123
50124             - willModifyAttribute
50125             - didModifyAttribute
50126             - didAddAttribute
50127             - didRemoveAttribute
50128
50129         No behavior change, just making ElementAttributeData a bit dumber (a good thing.)
50130
50131         * dom/Element.cpp:
50132         (WebCore::Element::detachAttribute):
50133         (WebCore::Element::removeAttribute):
50134         (WebCore::Element::setAttributeInternal):
50135         (WebCore::Element::removeAttributeInternal):
50136         (WebCore::Element::addAttributeInternal):
50137         * dom/Element.h:
50138         * dom/ElementAttributeData.cpp:
50139         (WebCore::ElementAttributeData::addAttribute):
50140         (WebCore::ElementAttributeData::removeAttribute):
50141         * dom/ElementAttributeData.h:
50142
50143 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50144
50145         [CSS Shaders] Make custom filters use a premultiplied buffer.
50146         https://bugs.webkit.org/show_bug.cgi?id=98396
50147
50148         Reviewed by Dean Jackson.
50149
50150         Currently, a GLSL css_Composite function returns a premultiplied color, so
50151         FECustomFilter must make a premultiplied buffer in the case when an author is
50152         using the CSS mix function.
50153
50154         In addition, there are two performance benefits when FECustomFilter uses a premultiplied buffer.
50155         1. FilterEffect::asImageBuffer is faster.
50156         2. In the future when Accelerated Compositing implementations use
50157         FECustomFilter, they do not need to convert an unmultiplied buffer to a
50158         premultiplied buffer.
50159
50160         Test: css3/filters/custom/custom-filter-composite-fractional-source-alpha.html
50161
50162         * platform/graphics/filters/FECustomFilter.cpp:
50163         (WebCore::FECustomFilter::applyShader):
50164
50165 2012-10-11  Rob Buis  <rbuis@rim.com>
50166
50167         [CMAKE] Do not add include dirs twice
50168         https://bugs.webkit.org/show_bug.cgi?id=99099
50169
50170         Reviewed by Yong Li.
50171
50172         Do not add WebCore_INCLUDE_DIRECTORIES to WebCoreTestSupport_INCLUDE_DIRECTORIES, the includes_directory
50173         call does this for us.
50174
50175         * CMakeLists.txt:
50176
50177 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50178
50179         [CSS Shaders] Implement all composite operators except destination and lighter.
50180         https://bugs.webkit.org/show_bug.cgi?id=97859
50181
50182         Reviewed by Dean Jackson.
50183
50184         Add expressions for all composite operators except destination and
50185         lighter. The expressions are lifted directly from the CSS Compositing
50186         and Blending spec [1]. WebKit adds these compositing expressions to the
50187         author's shader.
50188
50189         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
50190
50191         Test: css3/filters/custom/custom-filter-composite-operators.html
50192
50193         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
50194         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
50195
50196 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50197
50198         IndexedDB: IDL types defined in spec should be visible to scripts
50199         https://bugs.webkit.org/show_bug.cgi?id=99093
50200
50201         Reviewed by Adam Barth.
50202
50203         Interfaces defined in the spec WebIDL, such as IDBCursorWithValue, should be exposed
50204         to scripts as properties of the global object. A few types were missing - add them.
50205
50206         Test: storage/indexeddb/interfaces.html
50207
50208         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
50209         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
50210
50211 2012-10-11  Geoffrey Garen  <ggaren@apple.com>
50212
50213         Removed ASSERT_CLASS_FITS_IN_CELL
50214         https://bugs.webkit.org/show_bug.cgi?id=97634
50215
50216         Reviewed by Mark Hahnenberg.
50217
50218         * bindings/js/JSDOMWindowShell.cpp:
50219         (WebCore):
50220         * bindings/js/JSImageConstructor.cpp:
50221         (WebCore):
50222         * bindings/js/JSNodeFilterCondition.cpp:
50223         (WebCore):
50224         * bindings/js/JSWorkerContextBase.cpp:
50225         (WebCore):
50226         * bindings/scripts/CodeGeneratorJS.pm:
50227         (GenerateImplementation):
50228         * bindings/scripts/test/JS/JSFloat64Array.cpp:
50229         (WebCore):
50230         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
50231         (WebCore):
50232         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
50233         (WebCore):
50234         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
50235         (WebCore):
50236         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
50237         (WebCore):
50238         * bindings/scripts/test/JS/JSTestException.cpp:
50239         (WebCore):
50240         * bindings/scripts/test/JS/JSTestInterface.cpp:
50241         (WebCore):
50242         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
50243         (WebCore):
50244         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
50245         (WebCore):
50246         * bindings/scripts/test/JS/JSTestNode.cpp:
50247         (WebCore):
50248         * bindings/scripts/test/JS/JSTestObj.cpp:
50249         (WebCore):
50250         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
50251         (WebCore):
50252         * bridge/runtime_method.cpp:
50253         (JSC):
50254
50255 2012-10-10  Brady Eidson  <beidson@apple.com>
50256
50257         Switch ResourceLoader::resourceData() from SharedBuffer to ResourceBuffer
50258         https://bugs.webkit.org/show_bug.cgi?id=98976
50259
50260         Reviewed by Anders Carlsson.
50261
50262         No new tests (No change in behavior).
50263
50264         * WebCore.exp.in:
50265         * html/ImageDocument.cpp:
50266         (WebCore::ImageDocumentParser::appendBytes):
50267         (WebCore::ImageDocumentParser::finish):
50268         * inspector/InspectorPageAgent.cpp:
50269         (WebCore::InspectorPageAgent::mainResourceContent):
50270         (WebCore::InspectorPageAgent::sharedBufferContent):
50271         (WebCore):
50272         (WebCore::InspectorPageAgent::dataContent):
50273         * inspector/InspectorPageAgent.h:
50274         * inspector/InspectorResourceAgent.cpp:
50275         (WebCore::InspectorResourceAgent::didFinishLoading):
50276         (WebCore::InspectorResourceAgent::didFailLoading):
50277         * loader/DocumentLoader.cpp:
50278         (WebCore::DocumentLoader::mainResourceData):
50279         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
50280         (WebCore::DocumentLoader::maybeCreateArchive):
50281         (WebCore::DocumentLoader::mainResource):
50282         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent):
50283         * loader/DocumentLoader.h:
50284         (WebCore):
50285         (DocumentLoader):
50286         * loader/ResourceBuffer.cpp:
50287         (WebCore::ResourceBuffer::append):
50288         (WebCore):
50289         (WebCore::ResourceBuffer::clear):
50290         * loader/ResourceBuffer.h:
50291         (ResourceBuffer):
50292         * loader/ResourceLoader.cpp:
50293         (WebCore::ResourceLoader::resourceData):
50294         (WebCore::ResourceLoader::addData):
50295         (WebCore::ResourceLoader::willStopBufferingData):
50296         * loader/ResourceLoader.h:
50297         (WebCore):
50298         (ResourceLoader):
50299         * loader/SubresourceLoader.cpp:
50300         (WebCore::SubresourceLoader::didReceiveResponse):
50301         (WebCore::SubresourceLoader::sendDataToResource):
50302         (WebCore::SubresourceLoader::didFinishLoading):
50303         * loader/appcache/ApplicationCacheGroup.cpp:
50304         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
50305
50306 2012-10-11  Konrad Piascik  <kpiascik@rim.com>
50307
50308         Web Inspector: node search does not work with elements on touch start listener
50309         https://bugs.webkit.org/show_bug.cgi?id=95252
50310
50311         Reviewed by Pavel Feldman.
50312
50313         Added new InspectorInstrumentation::handleTouchEvent() method which
50314         will prevent a touch handler from firing and inspect and element if we
50315         are already searching for a node to highlight.
50316         Now when a user has chosen to inspect element (magnifying glass icon)
50317         and touches on a page the event will be directed to inspector and
50318         handled appropriately.
50319
50320         Not testable.
50321
50322         * inspector/InspectorDOMAgent.cpp:
50323         (WebCore::InspectorDOMAgent::handleTouchEvent):
50324         (WebCore):
50325         * inspector/InspectorDOMAgent.h:
50326         (InspectorDOMAgent):
50327         * inspector/InspectorInstrumentation.cpp:
50328         (WebCore):
50329         (WebCore::InspectorInstrumentation::handleTouchEventImpl):
50330         * inspector/InspectorInstrumentation.h:
50331         (InspectorInstrumentation):
50332         (WebCore::InspectorInstrumentation::handleTouchEvent):
50333         (WebCore):
50334         * page/EventHandler.cpp:
50335         (WebCore::EventHandler::handleTouchEvent):
50336
50337 2012-10-11  Otto Derek Cheung  <otcheung@rim.com>
50338
50339         [BlackBerry] Credentials for HTTPS urls are saved in the HTTP protection space
50340         https://bugs.webkit.org/show_bug.cgi?id=99082
50341
50342         Reviewed by Rob Buis.
50343
50344         Adding support for secure ProtectionSpaces in Credentials
50345         to prevent credentials from being overwritten/used when the user
50346         accesses both versions of the same url.
50347
50348         PR 199457
50349
50350         The issue was the secure/non-secure version of the same protocol
50351         were using the same ProtectionSpace enum in the network stack. When
50352         the credentials are saved, it will overwrite each other since the
50353         protection object is identical.
50354
50355         The fix is to use the WebKit provided secure enums when the protcol is secure.
50356
50357         To test this, access a restricted site that is running on http. Save the
50358         password and access the same restricted site (same domain
50359         and path) but on https. The browser should prompt for credentials.
50360
50361         * platform/network/blackberry/NetworkJob.cpp:
50362         (WebCore::NetworkJob::notifyAuthReceived):
50363         (WebCore::NetworkJob::handleFTPHeader):
50364         (WebCore::NetworkJob::sendRequestWithCredentials):
50365         (WebCore::NetworkJob::storeCredentials):
50366         * platform/network/blackberry/NetworkManager.cpp:
50367         (WebCore::NetworkManager::startJob):
50368
50369 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50370
50371         [texmap] logic error in BitmapTextureGL::updateContents
50372         https://bugs.webkit.org/show_bug.cgi?id=98969
50373
50374         Reviewed by Noam Rosenthal.
50375
50376         Incorrect test (bytesPerLine == targetRect.width() / 4) never
50377         evaluates to true. Change it to correct test 
50378         (bytesPerLine == targetRect.width() * 4)
50379
50380         No new tests because no functional change.
50381
50382         * platform/graphics/texmap/TextureMapperGL.cpp:
50383         (WebCore::BitmapTextureGL::updateContents):
50384
50385 2012-10-11  Dan Bernstein  <mitz@apple.com>
50386
50387         <rdar://problem/12477191> Combined text reverts to full-width font after a style change
50388         https://bugs.webkit.org/show_bug.cgi?id=99009
50389
50390         Reviewed by John Sullivan.
50391
50392         Test: fast/text/text-combine-width-after-style-change.html
50393
50394         * rendering/RenderCombineText.cpp:
50395         (WebCore::RenderCombineText::styleDidChange): Changed to reset m_isCombined to false, to
50396         ensure that combineText() is called on the next layout.
50397
50398 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50399
50400         accelerated compositing does not work with ati driver
50401         https://bugs.webkit.org/show_bug.cgi?id=97472
50402
50403         Reviewed by Martin Robinson.
50404
50405         Create m_parentWindow at positive position. Otherwise, parts of it are
50406         not displayed on ati drivers.
50407
50408         Covered by existing tests.
50409
50410         * platform/gtk/RedirectedXCompositeWindow.cpp:
50411         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
50412
50413 2012-10-11  Jaehun Lim  <ljaehun.lim@samsung.com>
50414
50415         Fix JPEG decoding faiure when IMAGE_DECODER_DOWN_SAMPLING is enabled
50416         https://bugs.webkit.org/show_bug.cgi?id=98878
50417
50418         Reviewed by Kenneth Russell.
50419
50420         When using libjpeg-turbo and enabling IMAGE_DECODER_DOWN_SAMPLING,
50421         JPEG decoding failed because of no support for JCS_EXT_RGBA, JCS_EXT_BGRA.
50422         Set RGBA values when color space is JCS_EXT_RGBA or JCS_EXT_BGRA.
50423
50424         No new tests.
50425
50426         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
50427         (WebCore::JPEGImageDecoder::outputScanlines):
50428
50429 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50430
50431         Web Inspector: Preview HTML in ajax responses in network panel
50432         https://bugs.webkit.org/show_bug.cgi?id=99066
50433
50434         Reviewed by Yury Semikhatsky.
50435
50436         HTML preview is now shown for XHR responses with text/html mime types.
50437         Also RequestHTMLView is refactored to use sandbox iframe correctly.
50438         Also extracted a method to generate dataURL from resource/request content.
50439
50440         * inspector/front-end/NetworkRequest.js:
50441         (WebInspector.NetworkRequest):
50442         (WebInspector.NetworkRequest.prototype.populateImageSource):
50443         (WebInspector.NetworkRequest.prototype.asDataURL):
50444         * inspector/front-end/RequestHTMLView.js:
50445         (WebInspector.RequestHTMLView):
50446         (WebInspector.RequestHTMLView.prototype._createIFrame):
50447         * inspector/front-end/RequestPreviewView.js:
50448         (WebInspector.RequestPreviewView.prototype._createPreviewView):
50449         * inspector/front-end/Resource.js:
50450         (WebInspector.Resource.prototype.populateImageSource):
50451         * inspector/front-end/ResourceUtils.js:
50452         (WebInspector.contentAsDataURL):
50453
50454 2012-10-11  Christophe Dumez  <christophe.dumez@intel.com>
50455
50456         Regression(r131058): Broke EFL build
50457         https://bugs.webkit.org/show_bug.cgi?id=99079
50458
50459         Unreviewed build fix.
50460
50461         Use iterator::value instead of iterator::second to fix
50462         build break after r131058.
50463
50464         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
50465         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50466
50467 2012-10-11  Mihai Balan  <mibalan@adobe.com>
50468
50469         Always enable the experiments tab for WebKit nightly
50470
50471         Web Inspector: Enabling experiments tab in WebKit nightly.
50472         https://bugs.webkit.org/show_bug.cgi?id=98923
50473
50474         Reviewed by Pavel Feldman.
50475
50476         Enabling Web Inspector experiments tab in WebKit nightly. This is done by adding a new
50477         Preference key, Preferences.experimentsEnabled. Default values are true for WebKit and false
50478         for Chromium. They can also be overridden as before (in Chromium)
50479
50480         * inspector/front-end/Settings.js:
50481         (WebInspector.ExperimentsSettings.prototype.get experimentsEnabled):
50482
50483 2012-10-11  Hayato Ito  <hayato@chromium.org>
50484
50485         Support re-projection for Shadow DOM.
50486         https://bugs.webkit.org/show_bug.cgi?id=97151
50487
50488         Reviewed by Dimitri Glazkov.
50489
50490         Update node distribution algorithm so that nodes can be re-projected to insertion points
50491         in nested shadow subtree.
50492
50493         See the latest Shadow DOM spec for what 're-projected' means:
50494         - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html
50495         Also see the related W3C bug:
50496         - http://www.w3.org/Bugs/Public/show_bug.cgi?id=18513
50497
50498         Since this change breaks existing behavior, we have to update several code at once, which includes:
50499         - ContentDistributer: ContentDistributor now re-projects distributed nodes.
50500         - ComposedShadowTreeWalker: ComposedShadowTreeWalker is now aware of re-projection. That can
50501           resolve re-projection transparently.
50502         - AncestorChainWalker (formerly named ComposedShadowTreeParentWallker):
50503           AncestorChainWalker is now aware of re-projection. I've also added a crossingInsertionPoint()
50504           member function so that clients of the walker can know whether the walker is just crossing
50505           insertion points for a re-projected node.
50506         - EventDispatcher: EventDispatcher now uses the updated AncestorChainWalker and its
50507           crossingInsertionPoint() so that EventDispatcher can compute relative target for each ancestor correctly.
50508
50509         I've also updated existing layout tests and added some layout tests for re-projection.
50510         Re-projection for multiple shadow root is not supported yet. I'll address that in another bug.
50511
50512         Tests: fast/dom/shadow/composed-shadow-tree-walker.html
50513                fast/dom/shadow/shadow-dom-event-dispatching.html
50514                fast/dom/shadow/shadowdom-reprojection-1.html
50515                fast/dom/shadow/shadowdom-reprojection-2.html
50516
50517         * dom/ComposedShadowTreeWalker.cpp:
50518         (WebCore::resolveReprojection):
50519         (WebCore):
50520         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
50521         (WebCore::ComposedShadowTreeWalker::traverseParent):
50522         (WebCore::AncestorChainWalker::AncestorChainWalker):
50523         (WebCore::AncestorChainWalker::parent):
50524         * dom/ComposedShadowTreeWalker.h:
50525         (AncestorChainWalker):
50526         (WebCore::AncestorChainWalker::crossingInsertionPoint):
50527         * dom/EventDispatcher.cpp:
50528         (WebCore::EventRelatedTargetAdjuster::adjust):
50529         (WebCore::EventDispatcher::ensureEventAncestors):
50530         * dom/TreeScope.cpp:
50531         (WebCore::TreeScope::focusedNode):
50532         * html/HTMLLIElement.cpp:
50533         (WebCore::HTMLLIElement::attach):
50534         * html/shadow/ContentDistributor.cpp:
50535         (WebCore::ContentDistributor::distribute):
50536         * page/EventHandler.cpp:
50537         (WebCore::EventHandler::updateMouseEventTargetNode):
50538
50539 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50540
50541         Make ContentSelectorQuery work when siblings are passed explicitly.
50542         https://bugs.webkit.org/show_bug.cgi?id=96990
50543
50544         Reviewed by Dimitri Glazkov.
50545
50546         When we implement content reprojection in ShadowDOM, we have to pass a node pool to SelectorChecker.
50547         We introdue ShadowDOMSiblingTraversalStrategy, which traverses a node pool instead of real node siblings.
50548
50549         Since ContentSelector is a very hot place, we don't want to regress performance. In the previous patch,
50550         we've make ContentSelector::checkOneSelector template to take SiblingTraversalStrategy as an argument.
50551
50552         We also move DOMSiblingTraversalStrategy to SiblingTraversalStrategies.h.
50553
50554         * GNUmakefile.list.am:
50555         * Target.pri:
50556         * WebCore.gypi:
50557         * WebCore.vcproj/WebCore.vcproj:
50558         * WebCore.xcodeproj/project.pbxproj:
50559         * css/SelectorChecker.cpp:
50560         (WebCore):
50561         * css/SelectorChecker.h:
50562         * css/SiblingTraversalStrategies.h: Added.
50563         (WebCore):
50564         (DOMSiblingTraversalStrategy): Moved from SelectorChecker.
50565         (WebCore::DOMSiblingTraversalStrategy::isFirstChild):
50566         (WebCore::DOMSiblingTraversalStrategy::isLastChild):
50567         (WebCore::DOMSiblingTraversalStrategy::isFirstOfType):
50568         (WebCore::DOMSiblingTraversalStrategy::isLastOfType):
50569         (WebCore::DOMSiblingTraversalStrategy::countElementsBefore):
50570         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50571         (WebCore::DOMSiblingTraversalStrategy::countElementsAfter):
50572         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50573         (WebCore::ShadowDOMSiblingTraversalStrategy::ShadowDOMSiblingTraversalStrategy):
50574         (ShadowDOMSiblingTraversalStrategy): SiblingTraversalStrategy which uses a node pool instead of a real element
50575         siblings. This strategy takes a vector of node which we traverse.
50576         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstChild):
50577         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastChild):
50578         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstOfType):
50579         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastOfType):
50580         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsBefore):
50581         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsAfter):
50582         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50583         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50584         * css/StyleResolver.cpp:
50585         * html/shadow/ContentDistributor.cpp:
50586         (WebCore::ContentDistributor::distributeSelectionsTo):
50587         * html/shadow/ContentSelectorQuery.cpp: Uses ShadowDOMSiblingTraversalStrategy instead of DOMSiblingTraversalStrategy.
50588         (WebCore::ContentSelectorChecker::ContentSelectorChecker):
50589         (WebCore):
50590         (WebCore::ContentSelectorChecker::checkContentSelector):
50591         (WebCore::ContentSelectorDataList::initialize):
50592         (WebCore::ContentSelectorDataList::matches):
50593         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
50594         (WebCore::ContentSelectorQuery::matches):
50595         * html/shadow/ContentSelectorQuery.h:
50596         (ContentSelectorChecker):
50597         (WebCore):
50598         (ContentSelectorDataList):
50599         (ContentSelectorQuery):
50600
50601 2012-10-11  Balazs Kelemen  <kbalazs@webkit.org>
50602
50603         [Qt] GraphicsContextPlatformPrivate is leaking it's ShadowBlur
50604         https://bugs.webkit.org/show_bug.cgi?id=99073
50605
50606         Reviewed by Noam Rosenthal.
50607
50608         Stop leaking GraphicsContextPlatformPrivate::shadow.
50609
50610         No change in behavior so no new tests.
50611
50612         * platform/graphics/qt/GraphicsContextQt.cpp:
50613         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
50614         Always destroy shadow. It is obviously owned by the context so it has
50615         nothing to do with the erly return.
50616
50617 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50618
50619         WebIDL: overloaded methods prevent number -> string conversion
50620         https://bugs.webkit.org/show_bug.cgi?id=85326
50621
50622         Reviewed by Kentaro Hara.
50623
50624         Make the default behavior for overloaded methods matching DOMString arguments match the
50625         default behavior for non-overloaded methods, which more closely matches the WebIDL spec.
50626         Enable legacy behavior of only matching undefined/null/string/object(and not number,
50627         boolean, etc) via the StrictTypeChecking attribute.
50628
50629         Tests: storage/indexeddb/cursor-overloads.html
50630                storage/indexeddb/legacy-constants.html
50631                ... and run-bindings-tests
50632
50633         * Modules/indexeddb/IDBCursor.cpp:
50634         (WebCore::IDBCursor::stringToDirection): Handle "0"..."4" as stringified legacy constants.
50635         * Modules/indexeddb/IDBCursor.h:
50636         * Modules/indexeddb/IDBDatabase.cpp: Remove redundant overloads.
50637         (WebCore::IDBDatabase::transaction): Remove redundant overloads.
50638         * Modules/indexeddb/IDBDatabase.h:
50639         (IDBDatabase):
50640         * Modules/indexeddb/IDBDatabase.idl: Remove redundant overloads.
50641         * Modules/indexeddb/IDBIndex.cpp: Remove redundant overloads.
50642         (WebCore::IDBIndex::openCursor):
50643         (WebCore::IDBIndex::openKeyCursor):
50644         * Modules/indexeddb/IDBIndex.h: Remove redundant overloads.
50645         (IDBIndex):
50646         * Modules/indexeddb/IDBIndex.idl: Remove redundant overloads.
50647         * Modules/indexeddb/IDBObjectStore.cpp: Remove redundant overloads.
50648         (WebCore::IDBObjectStore::openCursor):
50649         * Modules/indexeddb/IDBObjectStore.h: Remove redundant overloads.
50650         (IDBObjectStore):
50651         * Modules/indexeddb/IDBObjectStore.idl: Remove redundant overloads.
50652         * Modules/indexeddb/IDBTransaction.cpp:
50653         (WebCore::IDBTransaction::stringToMode): Handle "0"..."4" as stringified legacy constants.
50654         * Modules/indexeddb/IDBTransaction.h:
50655         * bindings/scripts/CodeGeneratorJS.pm: Check for StrictTypeChecking attribute.
50656         (GenerateParametersCheckExpression):
50657         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
50658         (GenerateParametersCheckExpression):
50659         * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
50660         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
50661         (WebCore):
50662         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
50663         * bindings/scripts/test/TestObj.idl: Added [StrictTypeChecking] to DOMString overloads,
50664         plus a new DOMString overload w/o it.
50665         * bindings/scripts/test/V8/V8TestObj.cpp: Rebaselined.
50666         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
50667         (TestObjV8Internal):
50668         (WebCore::TestObjV8Internal::overloadedMethodCallback):
50669         * html/canvas/CanvasRenderingContext2D.idl: Tag legacy overloads with [StrictTypeChecking].
50670         * xml/XMLHttpRequest.idl: Ditto.
50671
50672 2012-10-11  Justin Novosad  <junov@chromium.org>
50673
50674         [Chromium][Mac] r130994 seems to break chromium gpu test
50675         https://bugs.webkit.org/show_bug.cgi?id=98995
50676
50677         Reviewed by Stephen White.
50678
50679         Removing unnecessary assertion that was based on an invalid assumption
50680         that 2d canvas draw operations were always called from within WebThread
50681         tasks.
50682
50683         Test: Canvas2DAllowed chromium gpu_test
50684
50685         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
50686         (WebCore::Canvas2DLayerManager::willProcessTask):
50687
50688 2012-10-11  Kenichi Ishibashi <bashi@chromium.org>
50689
50690         REGRESSION(130231): Causes 3 complex font test failures on EFL / Harfbuzz+Freetype
50691         https://bugs.webkit.org/show_bug.cgi?id=98247
50692
50693         Reviewed by Kenneth Rohde Christiansen.
50694
50695         Implement canRenderCombiningCharacterSequence() for the Freetype case.
50696
50697         No new tests, covered by existing tests. Actually the lack of the implementation made
50698         fast/text/atsui-multiple-renderers.html,  fast/text/atsui-spacing-features.html and
50699         fast/text/wide-zero-width-space.html fail on EFL.
50700
50701         * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Implement canRenderCombiningCharacterSequence().
50702         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50703
50704 2012-10-11  Keishi Hattori  <keishi@webkit.org>
50705
50706         F4 key should open the picker popup on Windows and Linux
50707         https://bugs.webkit.org/show_bug.cgi?id=98754
50708
50709         Reviewed by Kent Tamura.
50710
50711         On Windows, F4 key is used to open the combo box popup. We will introduce the same keybinding for picker popups.
50712
50713         Added test to calendar-picker-key-operations.html, date-suggestion-picker-key-operations.html, time-suggestion-picker-key-operations.html.
50714
50715         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
50716         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open picker on F4 key if it is enabled.
50717         * rendering/RenderTheme.cpp:
50718         (WebCore::RenderTheme::shouldOpenPickerWithF4Key): Returns true if we want to enable the F4 key binding on this platform. Return false for default.
50719         (WebCore):
50720         * rendering/RenderTheme.h:
50721         (RenderTheme):
50722         * rendering/RenderThemeChromiumLinux.cpp:
50723         (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key): Returns true.
50724         (WebCore):
50725         * rendering/RenderThemeChromiumLinux.h:
50726         * rendering/RenderThemeChromiumWin.cpp:
50727         (WebCore):
50728         (WebCore::RenderThemeChromiumWin::shouldOpenPickerWithF4Key): Returns true.
50729         * rendering/RenderThemeChromiumWin.h:
50730         (RenderThemeChromiumWin):
50731
50732 2012-10-11  John J. Barton  <johnjbarton@chromium.org>
50733
50734         Web Inspector: Zebra stripe the console
50735         https://bugs.webkit.org/show_bug.cgi?id=98701
50736
50737         Reviewed by Pavel Feldman.
50738
50739         Add .console-message:hover rule to lightly highlight the message line.
50740
50741         * inspector/front-end/inspector.css:
50742         (.console-message:hover):
50743
50744 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50745
50746         Web Inspector: Filter out embedder injected content scripts
50747         https://bugs.webkit.org/show_bug.cgi?id=99039
50748
50749         Reviewed by Yury Semikhatsky.
50750
50751         * inspector/front-end/NetworkUISourceCodeProvider.js:
50752         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
50753
50754 2012-10-11  Pavel Feldman  <pfeldman@chromium.org>
50755
50756         Not reviewed: revert 131004, 131012, 131016, 131042, 131043 for breaking inspector console
50757         https://bugs.webkit.org/show_bug.cgi?id=99042
50758
50759         One can't type in the inspector console after 131004.
50760
50761         * CMakeLists.txt:
50762         * GNUmakefile.list.am:
50763         * Target.pri:
50764         * WebCore.gypi:
50765         * WebCore.vcproj/WebCore.vcproj:
50766         * WebCore.xcodeproj/project.pbxproj:
50767         * dom/DOMAllInOne.cpp:
50768         * dom/Element.cpp:
50769         (WebCore::Element::attach):
50770         (WebCore::Element::detach):
50771         (WebCore::Element::recalcStyle):
50772         * dom/Element.h:
50773         (WebCore):
50774         (Element):
50775         * dom/ElementRareData.h:
50776         (ElementRareData):
50777         * dom/Node.cpp:
50778         (WebCore::checkAcceptChild):
50779         * dom/Node.h:
50780         (Node):
50781         * dom/NodeRenderingContext.cpp:
50782         (WebCore::NodeRenderingContext::nextRenderer):
50783         * dom/PseudoElement.cpp: Removed.
50784         * dom/PseudoElement.h: Removed.
50785         * rendering/HitTestResult.cpp:
50786         (WebCore::HitTestResult::setInnerNode):
50787         (WebCore::HitTestResult::setInnerNonSharedNode):
50788         * rendering/RenderBlock.cpp:
50789         (WebCore::RenderBlock::styleDidChange):
50790         (WebCore::RenderBlock::updateBeforeAfterContent):
50791         (WebCore):
50792         (WebCore::RenderBlock::splitBlocks):
50793         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
50794         (WebCore::RenderBlock::createReplacementRunIn):
50795         (WebCore::RenderBlock::renderName):
50796         * rendering/RenderBlock.h:
50797         (RenderBlock):
50798         * rendering/RenderButton.cpp:
50799         (WebCore::RenderButton::updateBeforeAfterContent):
50800         (WebCore):
50801         * rendering/RenderButton.h:
50802         (RenderButton):
50803         * rendering/RenderCounter.cpp:
50804         (WebCore::RenderCounter::originalText):
50805         * rendering/RenderDeprecatedFlexibleBox.cpp:
50806         (WebCore::RenderDeprecatedFlexibleBox::renderName):
50807         * rendering/RenderGrid.cpp:
50808         (WebCore::RenderGrid::renderName):
50809         * rendering/RenderInline.cpp:
50810         (WebCore::RenderInline::styleDidChange):
50811         (WebCore::RenderInline::addChildIgnoringContinuation):
50812         (WebCore::RenderInline::splitInlines):
50813         (WebCore::RenderInline::renderName):
50814         * rendering/RenderListItem.cpp:
50815         (WebCore::RenderListItem::updateMarkerLocation):
50816         * rendering/RenderMultiColumnBlock.cpp:
50817         (WebCore::RenderMultiColumnBlock::renderName):
50818         * rendering/RenderObject.cpp:
50819         (WebCore::RenderObject::createObject):
50820         * rendering/RenderObject.h:
50821         (WebCore::RenderObject::generatingNode):
50822         * rendering/RenderObjectChildList.cpp:
50823         (WebCore):
50824         (WebCore::findBeforeAfterParent):
50825         (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
50826         (WebCore::createRendererForBeforeAfterContent):
50827         (WebCore::ensureBeforeAfterContainer):
50828         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
50829         * rendering/RenderObjectChildList.h:
50830         (RenderObjectChildList):
50831         * rendering/RenderRubyText.cpp:
50832         (WebCore::RenderRubyText::updateBeforeAfterContent):
50833         (WebCore):
50834         * rendering/RenderRubyText.h:
50835         (RenderRubyText):
50836         * rendering/RenderTableCell.h:
50837         (WebCore::RenderTableCell::renderName):
50838         * rendering/RenderTableRow.cpp:
50839         (WebCore::RenderTableRow::updateBeforeAndAfterContent):
50840         (WebCore):
50841         (WebCore::RenderTableRow::styleDidChange):
50842         * rendering/RenderTableRow.h:
50843         (RenderTableRow):
50844         (WebCore::RenderTableRow::renderName):
50845         * rendering/RenderTableSection.cpp:
50846         (WebCore::RenderTableSection::addChild):
50847         * rendering/RenderTableSection.h:
50848         (WebCore::RenderTableSection::renderName):
50849         * rendering/RenderTreeAsText.cpp:
50850         (WebCore::RenderTreeAsText::writeRenderObject):
50851
50852 2012-10-11  Arpita Bahuguna  <arpitabahuguna@gmail.com>
50853
50854         REGRESSION (r96393): In some cases, generated content is never shown
50855         https://bugs.webkit.org/show_bug.cgi?id=88196
50856
50857         Reviewed by Antti Koivisto.
50858
50859         Elements with style specified from an attribute selector in conjunction
50860         with a pseudo-element should not take on the shared style of their
50861         previous matching sibling (if any).
50862
50863         The problem here is that an attribute selector appended by a pseudo-element
50864         does not return any matched rules for the call (matchesRuleSet(m_uncommonAttributeRuleSet.get()))
50865         in StyleResolver::locateSharedStyle().
50866
50867         This is because of the way pseudo-elements are handled in
50868         SelectorChecker::checkSelector(). For a pseudo-element selector we check
50869         for the condition (!context.elementStyle && m_mode == ResolvingStyle) and
50870         since for this particular flow the SelectorChecker mode is set to ResolvingStyle
50871         and since the current element's style is still not available we fail this
50872         initial check and return SelectorFailsLocally from checkSelector(). This is
50873         incorrect behavior since the element does have an attribute selector specified
50874         for it.
50875
50876         Have thus introduced another enum value: SharingRules for SelectorChecker's Mode.
50877         SelectorChecker's mode should be set to SharingRules before making the
50878         call to collectMatchingRules() and then reset (back to ResolvingStyle) thereafter.
50879
50880         Existing Mode value: CollectingRules although appropriate cannot be used in this
50881         scenario because we also don't want to set any value to dynamicPseudo for this flow.
50882
50883         Test: fast/selectors/style-sharing-attribute-selector-with-pseudo-element.html
50884
50885         * css/SelectorChecker.cpp:
50886         (WebCore::SelectorChecker::checkSelector):
50887         Added additional check for SelectorChecker's mode: SharingRules when
50888         trying to match for the pseudo-element selector.
50889
50890         * css/SelectorChecker.h:
50891         Added SharingRules to Mode enum.
50892
50893         * css/StyleResolver.cpp:
50894         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
50895         (WebCore::StyleResolver::locateSharedStyle):
50896         * css/StyleResolver.h:
50897         (StyleResolver):
50898         Renamed matchesRuleSet() to a more descriptive styleSharingCandidateMatchesRuleSet().
50899         Also, setting the SelectorChecker's mode to SharingRules before calling
50900         on collectMatchingRules() from styleSharingCandidateMatchesRuleSet().
50901
50902 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50903
50904         Some shadow roots are not showing up in Inspector.
50905         https://bugs.webkit.org/show_bug.cgi?id=88251
50906
50907         Reviewed by Pavel Feldman.
50908
50909         When an element has only text node, its shadow root is not showing up in Inspector, since
50910         child text is shown in oneline. We had to prevent from inlining child text when a shadow root is
50911         added.
50912
50913         Test: inspector/elements/shadow-root.html
50914
50915         * inspector/front-end/DOMAgent.js:
50916         (WebInspector.DOMNode):
50917         (WebInspector.DOMNode.prototype.hasShadowRoots):
50918         * inspector/front-end/ElementsTreeOutline.js:
50919
50920 2012-10-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
50921
50922         [Qt] More responsive scroll animations
50923         https://bugs.webkit.org/show_bug.cgi?id=99016
50924
50925         Reviewed by Jocelyn Turcotte.
50926
50927         Changes the scrolling animations so they accelerate faster than they deccelerate,
50928         making the animation respond faster to user input.
50929
50930         * platform/ScrollAnimatorNone.cpp:
50931         (WebCore::ScrollAnimatorNone::parametersForScrollGranularity):
50932         * platform/ScrollAnimatorNone.h:
50933         (ScrollAnimatorNone):
50934
50935 2012-10-11  Alexander Shalamov  <alexander.shalamov@intel.com>
50936
50937         [CSS3 Media Queries] Aspect ratio value re-parsed when media query expression is evaluated
50938         https://bugs.webkit.org/show_bug.cgi?id=99003
50939
50940         Reviewed by Kenneth Rohde Christiansen.
50941
50942         Use CSSAspectRatioValue instead of CSSValueList to store aspect ratio value
50943         in order to avoid re-parsing of aspect ratio data during media expression evaluation.
50944
50945         test: fast/media/w3c/test_media_queries.html
50946
50947         * css/MediaQueryEvaluator.cpp:
50948         (WebCore::compareAspectRatioValue):
50949         (WebCore):
50950         (WebCore::aspect_ratioMediaFeatureEval):
50951         (WebCore::device_aspect_ratioMediaFeatureEval):
50952         * css/MediaQueryExp.cpp:
50953         (WebCore::MediaQueryExp::MediaQueryExp):
50954
50955 2012-10-11  Zeno Albisser  <zeno@webkit.org>
50956
50957         [Qt] Implement GraphicsSurfaceToken to replace uint64_t as token type.
50958         https://bugs.webkit.org/show_bug.cgi?id=98501
50959
50960         Replace the token type for GraphicsSurface with a new class GraphicsSurfaceToken.
50961         This is necessary in order to implement GraphicsSurface for Windows.
50962         Depending on the platform a GraphicsSurfaceToken might contain a
50963         WindowID (Linux/GLX), two IOSurfaceIDs (Mac) or in the future two HANDLEs (Windows).
50964         The simple uint64_t is not sufficient anymore, since a single HANDLE in windows
50965         can be 64bit already.
50966
50967         Reviewed by Noam Rosenthal.
50968
50969         * Target.pri:
50970         * platform/graphics/qt/GraphicsContext3DQt.cpp:
50971         (GraphicsContext3DPrivate):
50972         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
50973         * platform/graphics/surfaces/GraphicsSurface.cpp:
50974         (WebCore::GraphicsSurface::create):
50975         (WebCore::GraphicsSurface::exportToken):
50976         * platform/graphics/surfaces/GraphicsSurface.h:
50977         (GraphicsSurface):
50978         * platform/graphics/surfaces/GraphicsSurfaceToken.h: Added.
50979         (WebCore):
50980         (GraphicsSurfaceToken):
50981         (WebCore::GraphicsSurfaceToken::GraphicsSurfaceToken):
50982         (WebCore::GraphicsSurfaceToken::operator!=):
50983         (WebCore::GraphicsSurfaceToken::isValid):
50984         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
50985         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
50986         (WebCore::GraphicsSurfacePrivate::token):
50987         (GraphicsSurfacePrivate):
50988         (WebCore::GraphicsSurface::platformExport):
50989         (WebCore::GraphicsSurface::platformImport):
50990         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
50991         (WebCore::GraphicsSurface::platformExport):
50992         (WebCore::GraphicsSurface::platformImport):
50993         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
50994         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
50995         (WebCore::TextureMapperSurfaceBackingStore::setSurface):
50996         * platform/graphics/texmap/TextureMapperBackingStore.h:
50997         (TextureMapperSurfaceBackingStore):
50998         (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
50999         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
51000         (WebCore::TextureMapperPlatformLayer::graphicsSurfaceToken):
51001
51002 2012-10-11  Alexander Pavlov  <apavlov@chromium.org>
51003
51004         Web Inspector: [Elements] Breadcrumbs are not updated upon involved elements' className changes
51005         https://bugs.webkit.org/show_bug.cgi?id=98887
51006
51007         Reviewed by Vsevolod Vlasov.
51008
51009         Breadcrumbs should be updated upon the "class" and "id" attribute changes of elements participating in the breadcrumb path.
51010
51011         Test: inspector/elements/breadcrumb-updates.html
51012
51013         * inspector/front-end/ElementsPanel.js:
51014         (WebInspector.ElementsPanel):
51015         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
51016
51017 2012-10-11  Kunihiko Sakamoto  <ksakamoto@chromium.org>
51018
51019         Final newline (LF or CRLF) in paste buffer is converted to space
51020         https://bugs.webkit.org/show_bug.cgi?id=80838
51021
51022         Reviewed by Ryosuke Niwa.
51023
51024         Currently newline characters are replaced with spaces when pasted
51025         to text input. This behavior was introduced in r37539, with the
51026         intention to follow the FireFox's behavior (see
51027         https://bugs.webkit.org/show_bug.cgi?id=20461). However, FireFox
51028         truncates newlines at the end of pasted text, instead of replacing
51029         them with spaces. So this patch changes TextFieldInputType to cut
51030         trailing newlines of inserted text.
51031
51032         Test: fast/forms/paste-multiline-text-input.html
51033
51034         * html/TextFieldInputType.cpp:
51035         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
51036         Truncates trailing newlines.
51037
51038 2012-10-11  Kent Tamura  <tkent@chromium.org>
51039
51040         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
51041         https://bugs.webkit.org/show_bug.cgi?id=98992
51042
51043         * platform/text/LocaleICU.cpp:
51044         (WebCore::LocaleICU::isRTL): Need to initialize 'status'.
51045
51046 2012-10-11  Eugene Klyuchnikov  <eustas.bug@gmail.com>
51047
51048         Web Inspector: The 'X' of the close button of Settings view is not centered
51049         https://bugs.webkit.org/show_bug.cgi?id=99008
51050
51051         Reviewed by Alexander Pavlov.
51052
51053         Fixed text positioning in CSS.
51054
51055         * inspector/front-end/helpScreen.css:
51056         (.help-close-button):
51057
51058 2012-10-11  Kent Tamura  <tkent@chromium.org>
51059
51060         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
51061         https://bugs.webkit.org/show_bug.cgi?id=98992
51062
51063         Reviewed by Kentaro Hara.
51064
51065         - Move the RTL detection code in
51066           WebKit/chromium/src/DateTimeChooserImpl.cpp to LocaleWin::isRTL()
51067         - Introduce Localizer::isRTL as a pure virtual function
51068         - Implement LocaleMac::isRTL with native API
51069         - Implement LocaleICU::isRTL with ICU API
51070         - Add dummy implementation: LocaleNone::isRTL
51071
51072         Add some tests to WebKit/chromium/tests/.
51073
51074         * platform/text/Localizer.h:
51075         (Localizer): Declare pure virtual isRTL.
51076
51077         * platform/text/LocaleICU.h:
51078         (LocaleICU): Declare isRTL.
51079         * platform/text/LocaleICU.cpp:
51080         (WebCore::LocaleICU::isRTL): Implemented with uloc_getCharacterOrientation.
51081
51082         * platform/text/LocaleNone.cpp:
51083         (LocaleNone): Declare isRTL.
51084         (WebCore::LocaleNone::isRTL): Added.
51085
51086         * platform/text/LocaleWin.h:
51087         (LocaleWin): Declare isRTL.
51088         * platform/text/LocaleWin.cpp:
51089         (WebCore::LocaleWin::isRTL): Implemented.
51090
51091         * platform/text/mac/LocaleMac.h:
51092         (LocaleMac): Declare isRTL.
51093         * platform/text/mac/LocaleMac.mm:
51094         (WebCore::LocaleMac::isRTL): Implemented.
51095
51096 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
51097
51098         Web Inspector: TypeError in ConsoleMessage.js
51099         https://bugs.webkit.org/show_bug.cgi?id=98999
51100
51101         Reviewed by Alexander Pavlov.
51102
51103         This patch is based on patch by John J. Barton.
51104         Added a check that stack length is equal.
51105
51106         * inspector/front-end/ConsoleMessage.js:
51107         (WebInspector.ConsoleMessageImpl.prototype.isEqual):
51108
51109 2012-10-10  Jer Noble  <jer.noble@apple.com>
51110
51111         Disallow full screen mode keyboard access by default.
51112         https://bugs.webkit.org/show_bug.cgi?id=98971
51113         <rdar://problem/12474226>
51114
51115         Reviewed by Sam Weinig.
51116
51117         Fall back to requesting non-keyboard access if the client refuses to allow keyboard access.
51118
51119         * dom/Document.cpp:
51120         (WebCore::Document::requestFullScreenForElement):
51121
51122 2012-10-10  Ilya Tikhonovsky  <loislo@chromium.org>
51123
51124         Web Inspector: NMI instrument HTMLCanvas element.
51125         https://bugs.webkit.org/show_bug.cgi?id=98917
51126
51127         Reviewed by Yury Semikhatsky.
51128
51129         It also includes non intrusive instrumentation for skia classes.
51130
51131         Test: inspector/profiler/memory-instrumentation-canvas.html
51132
51133         * WebCore.gypi:
51134         * html/HTMLCanvasElement.cpp:
51135         (WebCore::HTMLCanvasElement::reportMemoryUsage):
51136         (WebCore):
51137         * html/HTMLCanvasElement.h:
51138         (HTMLCanvasElement):
51139         * platform/graphics/ImageBuffer.cpp:
51140         (WebCore::ImageBuffer::reportMemoryUsage):
51141         (WebCore):
51142         * platform/graphics/ImageBuffer.h:
51143         (ImageBuffer):
51144         * platform/graphics/chromium/ImageBufferDataSkia.h:
51145         (ImageBufferData):
51146         * platform/graphics/skia/ImageBufferSkia.cpp:
51147         (WebCore::ImageBufferData::reportMemoryUsage):
51148         (WebCore):
51149         * platform/graphics/skia/MemoryInstrumentationSkia.cpp: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51150         (reportMemoryUsage):
51151         * platform/graphics/skia/MemoryInstrumentationSkia.h: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51152         * platform/graphics/skia/NativeImageSkia.cpp:
51153
51154 2012-10-10  Mike West  <mkwst@google.com>
51155
51156         Document calls createElement with the wrong parameters.
51157         https://bugs.webkit.org/show_bug.cgi?id=98907
51158
51159         Reviewed by Kent Tamura.
51160
51161         Document::importNode calls Document::createElement with a QualifiedName
51162         and ExceptionCode. The Document::createElement that takes a
51163         QualifiedName doesn't generate an exception; the second argument is a
51164         bool, which the ExceptionCode autocasts into.
51165
51166         Changing the argument to an explicit bool shouldn't have any visible
51167         effect; no new tests are required.
51168
51169         * dom/Document.cpp:
51170         (WebCore::Document::importNode):
51171
51172 2012-10-10  Lianghui Chen  <liachen@rim.com>
51173
51174         [BlackBerry] Fix assertion in NetworkJob::notifyChallengeResult.
51175         https://bugs.webkit.org/show_bug.cgi?id=97397
51176         Internal PR: 186597.
51177
51178         Internally reviewed by Yong Li, Joe Mason.
51179         Reviewed by George Staikos.
51180
51181         Add a singleton AuthenticationChallengeManager to manage authentication
51182         challenge dialog. It does following things:
51183         Record page creation/deletion, so it knows what page is present or not.
51184         Record page visibility change so it knows when to display a dialog or not.
51185         Accept authentication challenge, and decide whether to postpone the
51186             challenge dialog based on whether there is active authentication challenge
51187             dialog already and whether its page is visible or not.
51188         When a challenge result comes back, notify the result to all clients
51189             authenticating for the same protection space, and then start the next
51190             authentication challenge from the same page, if there is one.
51191         When a page becomes visible, start the first authentication challenge
51192             dialog that has been blocked before.
51193         When an authentication challenge is requested, the NetworkJob will be
51194             deferred so its initial response will be saved while waiting for
51195             user decision on the challenge.
51196
51197         No new tests for platform specific internal change.
51198
51199         * PlatformBlackBerry.cmake:
51200         * platform/blackberry/AuthenticationChallengeManager.cpp: Added.
51201         (WebCore):
51202         (ChallengeInfo):
51203         (WebCore::ChallengeInfo::ChallengeInfo):
51204         (AuthenticationChallengeManagerPrivate):
51205         (WebCore::AuthenticationChallengeManagerPrivate::AuthenticationChallengeManagerPrivate):
51206         (WebCore::AuthenticationChallengeManagerPrivate::resumeAuthenticationChallenge):
51207         (WebCore::AuthenticationChallengeManagerPrivate::startAuthenticationChallenge):
51208         (WebCore::AuthenticationChallengeManagerPrivate::pageExists):
51209         (WebCore::AuthenticationChallengeManager::AuthenticationChallengeManager):
51210         (WebCore::AuthenticationChallengeManager::pageCreated):
51211         (WebCore::AuthenticationChallengeManager::pageDeleted):
51212         (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
51213         (WebCore::AuthenticationChallengeManager::authenticationChallenge):
51214         (WebCore::AuthenticationChallengeManager::cancelAuthenticationChallenge):
51215         (WebCore::AuthenticationChallengeManager::notifyChallengeResult):
51216         (WebCore::AuthenticationChallengeManager::instance):
51217         (WebCore::AuthenticationChallengeManager::init):
51218         * platform/blackberry/AuthenticationChallengeManager.h:
51219         (WebCore):
51220         (AuthenticationChallengeManager):
51221         * platform/blackberry/PageClientBlackBerry.h:
51222         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
51223         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
51224         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
51225         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
51226         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
51227         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
51228         (MediaPlayerPrivate):
51229         * platform/network/blackberry/NetworkJob.cpp:
51230         (WebCore::NetworkJob::NetworkJob):
51231         (WebCore::NetworkJob::~NetworkJob):
51232         (WebCore):
51233         (WebCore::NetworkJob::handleNotifyStatusReceived):
51234         (WebCore::NetworkJob::handleNotifyClose):
51235         (WebCore::NetworkJob::shouldReleaseClientResource):
51236         (WebCore::NetworkJob::sendRequestWithCredentials):
51237         (WebCore::NetworkJob::notifyChallengeResult):
51238         * platform/network/blackberry/NetworkJob.h:
51239         (NetworkJob):
51240
51241 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
51242
51243         compositing/tiling/crash-reparent-tiled-layer.html is flakey
51244         https://bugs.webkit.org/show_bug.cgi?id=82546
51245
51246         Reviewed by Beth Dakin.
51247
51248         When calling layerTreeAsText() inside the document load event,
51249         GraphicsLayerCA may have not flushed layers yet, so layer tree
51250         properties that are affected by flushing (tiled layer, visible
51251         rects) appeared flakey in tests.
51252         
51253         Fix by forcing a flush before dumping the layer tree.        
51254         
51255         * rendering/RenderLayerCompositor.cpp:
51256         (WebCore::RenderLayerCompositor::layerTreeAsText):
51257
51258 2012-10-10  Beth Dakin  <bdakin@apple.com>
51259
51260         https://bugs.webkit.org/show_bug.cgi?id=98984
51261         REGRESSION: Crash happens after we add non-top-level frame to the 
51262         ScrollingStateTree
51263
51264         Reviewed by Simon Fraser.
51265
51266         isRootLayer() can return true for layers that do not correspond to 
51267         the main frame. But we only want the ones that DO correspond to the 
51268         main frame!
51269         * rendering/RenderLayerCompositor.cpp:
51270         (WebCore::RenderLayerCompositor::updateBacking):
51271
51272 2012-10-10  Dan Bernstein  <mitz@apple.com>
51273
51274         <rdar://problem/12472460> text-combine doesn’t use third- and quarter-width variants when used with @font-face
51275         https://bugs.webkit.org/show_bug.cgi?id=98961
51276
51277         Reviewed by Tim Horton.
51278
51279         Test: fast/text/text-combine-with-font-face.html
51280
51281         * css/CSSSegmentedFontFace.cpp:
51282         (WebCore::CSSSegmentedFontFace::getFontData): Added the width variant to the
51283         key used for entries in the font data table, so that we can return different
51284         font data for different width variants.
51285         * platform/graphics/FontWidthVariant.h: Defined FontWidthVariantWidth for
51286         use in the computation of the above key.
51287         * rendering/RenderCombineText.cpp:
51288         (WebCore::RenderCombineText::combineText): Added a local variable to store
51289         the font selector before changing the font description. Previously, by the time
51290         we tried to get the font selector from the font, it had already been cleared,
51291         so we called Font::update() with a 0 font selector, meaning @font-face fonts
51292         could not be selected.
51293
51294 2012-10-10  Elliott Sprehn  <esprehn@chromium.org>
51295
51296         Move :before and :after into the DOM        
51297         https://bugs.webkit.org/show_bug.cgi?id=95117
51298
51299         Reviewed by Eric Seidel.
51300
51301         Reimplement generated content :before and :after as DOM Elements. Now ElementRareData has
51302         two RefPtrs to PseudoElements for the generated content and Node has methods for traversing
51303         the tree including generated content.
51304
51305         This allows the generated content to be treated as real nodes instead of anonymous and take
51306         part in the usual recalcStyle and attach flow which fixes many bugs and vastly simplifies the
51307         lifecycle of generated content.
51308
51309         No new tests needed for now.
51310
51311         * CMakeLists.txt:
51312         * GNUmakefile.list.am:
51313         * Target.pri:
51314         * WebCore.gypi:
51315         * WebCore.vcproj/WebCore.vcproj:
51316         * WebCore.xcodeproj/project.pbxproj:
51317         * dom/DOMAllInOne.cpp:
51318         * dom/Element.cpp:
51319         (WebCore::Element::attach): Add generated content if needed.
51320         (WebCore::Element::detach): Remove all child generated content.
51321         (WebCore::Element::recalcStyle): Add or remove generated content based on the new style.
51322         (WebCore::Element::updatePseudoElement): Updates pseudo content based on a pseudoId.
51323         (WebCore):
51324         (WebCore::Element::createPseudoElementIfNeeded):
51325         (WebCore::Element::beforePseudoElement):
51326         (WebCore::Element::afterPseudoElement):
51327         * dom/Element.h:
51328         (WebCore):
51329         (Element):
51330         * dom/ElementRareData.h:
51331         (ElementRareData):
51332         (WebCore::ElementRareData::setPseudoElement):
51333         (WebCore):
51334         (WebCore::ElementRareData::pseudoElement):
51335         * dom/Node.cpp:
51336         (WebCore::Node::pseudoAwarePreviousSibling):
51337         (WebCore):
51338         (WebCore::Node::pseudoAwareNextSibling):
51339         (WebCore::checkAcceptChild): Forbid moving PseudoElements for sanity. The code never does this.
51340         * dom/Node.h:
51341         (Node):
51342         (WebCore::Node::isPseudoElement):
51343         (WebCore::Node::pseudoId): Fast path that only calls virtualPseudoId if the node has custom callbacks so isPseudoElement is fast.
51344         (WebCore::Node::virtualPseudoId):
51345         (WebCore::Node::isBeforePseudoElement):
51346         (WebCore::Node::isAfterPseudoElement):
51347         * dom/NodeRenderingContext.cpp:
51348         (WebCore::NodeRenderingContext::nextRenderer): Changed to find the next sibling of pseudos for insertion.
51349         * dom/PseudoElement.cpp: Added.
51350         (WebCore):
51351         (WebCore::pseudoElementName):
51352         (WebCore::PseudoElement::PseudoElement):
51353         (WebCore::PseudoElement::pseudoRendererIsNeeded):
51354         (WebCore::PseudoElement::customStyleForRenderer):
51355         (WebCore::PseudoElement::attach):
51356         (WebCore::PseudoElement::rendererIsNeeded):
51357         (WebCore::PseudoElement::updateChildStyle): Propagates the style downward into the anonymous renderers for the content.
51358         (WebCore::PseudoElement::didRecalcStyle):
51359         (WebCore::PseudoElement::createRendererForContent): Refactored from RenderObjectChildList.
51360         * dom/PseudoElement.h: Added.
51361         (WebCore):
51362         (PseudoElement):
51363         (WebCore::PseudoElement::create):
51364         (WebCore::toPseudoElement):
51365         * rendering/HitTestResult.cpp:
51366         (WebCore::HitTestResult::setInnerNode): Hit testing a PseudoElement should really hit the parent.
51367         (WebCore::HitTestResult::setInnerNonSharedNode): Same as above.
51368         * rendering/RenderBlock.cpp:
51369         (WebCore::RenderBlock::styleDidChange): Remove old generated content code, same for below.
51370         (WebCore::RenderBlock::splitBlocks):
51371         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
51372         (WebCore::RenderBlock::createReplacementRunIn):
51373         (WebCore::RenderBlock::renderName):
51374         * rendering/RenderBlock.h:
51375         (RenderBlock):
51376         * rendering/RenderButton.cpp:
51377         * rendering/RenderButton.h:
51378         (RenderButton):
51379         * rendering/RenderCounter.cpp:
51380         (WebCore::RenderCounter::originalText):
51381         * rendering/RenderDeprecatedFlexibleBox.cpp:
51382         (WebCore::RenderDeprecatedFlexibleBox::renderName):
51383         * rendering/RenderGrid.cpp:
51384         (WebCore::RenderGrid::renderName):
51385         * rendering/RenderInline.cpp:
51386         (WebCore::RenderInline::styleDidChange):
51387         (WebCore::RenderInline::addChildIgnoringContinuation):
51388         (WebCore::RenderInline::splitInlines):
51389         (WebCore::RenderInline::renderName):
51390         * rendering/RenderListItem.cpp:
51391         (WebCore::RenderListItem::updateMarkerLocation):
51392         * rendering/RenderMultiColumnBlock.cpp:
51393         (WebCore::RenderMultiColumnBlock::renderName):
51394         * rendering/RenderObject.cpp:
51395         (WebCore::RenderObject::createObject):
51396         * rendering/RenderObject.h:
51397         (WebCore::RenderObject::isPseudoElement):
51398         (RenderObject):
51399         (WebCore::RenderObject::generatingNode):
51400         * rendering/RenderObjectChildList.cpp:
51401         * rendering/RenderObjectChildList.h:
51402         (RenderObjectChildList):
51403         * rendering/RenderRubyText.cpp:
51404         * rendering/RenderRubyText.h:
51405         (RenderRubyText):
51406         * rendering/RenderTableCell.h:
51407         (WebCore::RenderTableCell::renderName):
51408         * rendering/RenderTableRow.cpp:
51409         (WebCore::RenderTableRow::styleDidChange):
51410         * rendering/RenderTableRow.h:
51411         (WebCore::RenderTableRow::renderName):
51412         * rendering/RenderTableSection.cpp:
51413         (WebCore::RenderTableSection::addChild):
51414         * rendering/RenderTableSection.h:
51415         (WebCore::RenderTableSection::renderName):
51416         * rendering/RenderTreeAsText.cpp:
51417         (WebCore::RenderTreeAsText::writeRenderObject):
51418
51419 2012-10-10  Sam Weinig  <sam@webkit.org>
51420
51421         Add more Objective-C WebKit2 DOM API skeletons.
51422         https://bugs.webkit.org/show_bug.cgi?id=98981
51423
51424         Reviewed by Anders Carlsson.
51425
51426         * WebCore.exp.in:
51427         Add necessary export.
51428
51429 2012-10-10  Dimitri Glazkov  <dglazkov@chromium.org>
51430
51431         Minimize the recent template explosion in SelectorChecker.
51432         https://bugs.webkit.org/show_bug.cgi?id=98829
51433
51434         Reviewed by Antti Koivisto.
51435
51436         We've recently added the capability to switch sibling traversal strategy to SelectorChecker, at some readability/clarity expense.
51437         This patch tries to minimize the surface of this expense to SelectorChecker::checkOneSelector. 
51438
51439         No new tests, no change in behavior.
51440
51441         * css/SelectorChecker.cpp:
51442         (WebCore::SelectorChecker::checkSelector): Turned back into a function.
51443         (WebCore::SelectorChecker::checkOneSelector): Changed to specialize on traversal strategy, rather than the context, which was less clear.
51444         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild): Turned into a function.
51445         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild): Ditto.
51446         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType): Ditto.
51447         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType): Ditto.
51448         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore): Ditto.
51449         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore): Ditto.
51450         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter): Ditto.
51451         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter): Ditto.
51452         * css/SelectorChecker.h:
51453         (DOMTraversalStrategy): Changed into a class, rather than a template.
51454         (SelectorChecker): Turned back into a function.
51455
51456 2012-10-10  James Simonsen  <simonjam@chromium.org>
51457
51458         High res times should start at 0
51459         https://bugs.webkit.org/show_bug.cgi?id=84912
51460
51461         Reviewed by Tony Gentilcore.
51462
51463         Test: Existing Navigation Timing tests.
51464
51465         * inspector/InspectorInstrumentation.cpp: Use legacy document time, pending 98223.
51466         (WebCore):
51467         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
51468         * inspector/InspectorResourceAgent.cpp:
51469         (WebCore::buildObjectForTiming):
51470         * loader/DocumentLoadTiming.cpp:
51471         (WebCore::DocumentLoadTiming::convertMonotonicTimeToLegacyDocumentTime):
51472         (WebCore):
51473         (WebCore::DocumentLoadTiming::convertMonotonicTimeToZeroBasedDocumentTime):
51474         (WebCore::DocumentLoadTiming::markNavigationStart):
51475         * loader/DocumentLoadTiming.h:
51476         (DocumentLoadTiming):
51477         (WebCore::DocumentLoadTiming::navigationStart): These just report raw monotonic times now.
51478         (WebCore::DocumentLoadTiming::unloadEventStart):
51479         (WebCore::DocumentLoadTiming::unloadEventEnd):
51480         (WebCore::DocumentLoadTiming::redirectStart):
51481         (WebCore::DocumentLoadTiming::redirectEnd):
51482         (WebCore::DocumentLoadTiming::fetchStart):
51483         (WebCore::DocumentLoadTiming::responseEnd):
51484         (WebCore::DocumentLoadTiming::loadEventStart):
51485         (WebCore::DocumentLoadTiming::loadEventEnd):
51486         * page/PerformanceTiming.cpp:
51487         (WebCore::PerformanceTiming::navigationStart): Convert these back to legacy document times.
51488         (WebCore::PerformanceTiming::unloadEventStart):
51489         (WebCore::PerformanceTiming::unloadEventEnd):
51490         (WebCore::PerformanceTiming::redirectStart):
51491         (WebCore::PerformanceTiming::redirectEnd):
51492         (WebCore::PerformanceTiming::fetchStart):
51493         (WebCore::PerformanceTiming::responseEnd):
51494         (WebCore::PerformanceTiming::loadEventStart):
51495         (WebCore::PerformanceTiming::loadEventEnd):
51496         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
51497         (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
51498         * platform/network/ResourceLoadTiming.cpp:
51499         (WebCore::ResourceLoadTiming::convertResourceLoadTimeToMonotonicTime):
51500         * platform/network/ResourceLoadTiming.h:
51501         (ResourceLoadTiming):
51502
51503 2012-10-10  Levi Weintraub  <leviw@chromium.org>
51504
51505         Tests failure on Chromium Mac after r130821
51506         https://bugs.webkit.org/show_bug.cgi?id=98865
51507
51508         Reviewed by Adam Barth.
51509
51510         Updating the check for USE(HARFBUZZ_NG) to check for Mac Chromium, as the HARFBUZZ_NG flag isn't
51511         actually set, despite us using Harfbuzz. This unbreaks Chromium Mac as we diagnose the root
51512         cause of this issue.
51513
51514         * rendering/RenderBlockLineLayout.cpp:
51515         (WebCore::setLogicalWidthForTextRun):
51516
51517 2012-10-10  Stephen Chenney  <schenney@chromium.org>
51518
51519         SVGTextRunRenderingContext changes font data in the glyph page, but it shouldn't
51520         https://bugs.webkit.org/show_bug.cgi?id=98755
51521
51522         Reviewed by Eric Seidel.
51523
51524         The code in SVGTextRunRenderingContext::glyphDataForCharacter, when it
51525         encounters an <altglyph> tag, immediately replaces the font data for a
51526         glyph with font data for the primary font, presumably to meet the SVG
51527         spec requirement: "If the references to alternate glyphs do not result
51528         in successful identification of alternate glyphs to use, then the
51529         character(s) that are inside of the ‘altGlyph’ element are rendered as
51530         if the ‘altGlyph’ element were a ‘tspan’ element instead."
51531
51532         If the alt glyph is not then found we are in the case from the spec
51533         and indeed we should use the primary font. However, we end up replacing the GlyphPage
51534         entry for the character with primary font data, which we should not do
51535         because the glyph page might be used in some place that does not have
51536         the alt glyph tag.
51537
51538         Furthermore, this causes object lifetime problems for font data, because
51539         in cases where the font data that is replaced is for the system fallback
51540         font the GlyphPage will live forever with no knowldege that it contains
51541         font data pointers into font data other that the system fallback. The
51542         replaced font data may be deleted while the pointer lives on in the
51543         system fallback page.
51544
51545         The fix is simply not to replace the font data in the page.
51546
51547         Test: svg/text/alt-glpyh-on-fallback-font-crash.html
51548
51549         * rendering/svg/SVGTextRunRenderingContext.cpp:
51550         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Keep track of the original font data and put it back
51551         in the glyph page when the method has finished.
51552
51553 2012-10-10  Tab Atkins  <jackalmage@gmail.com>
51554
51555         column-count: 0 should not prevent margin-collapse through
51556         https://bugs.webkit.org/show_bug.cgi?id=65159
51557
51558         Reviewed by Tony Chang.
51559
51560         This patch makes "column-count:0" be properly recognized as invalid syntax,
51561         as it violates the property grammar in the spec.
51562
51563         Tests: fast/multicol/zeroColumnCount.html
51564
51565         * css/CSSParser.cpp:
51566         (WebCore::CSSParser::validUnit):
51567         (WebCore::CSSParser::parseValue):
51568         * css/CSSParser.h:
51569
51570 2012-10-10  Benjamin Poulain  <bpoulain@apple.com>
51571
51572         [WK2] Safari crashes on error when using CFNetwork
51573         https://bugs.webkit.org/show_bug.cgi?id=98965
51574
51575         Reviewed by Sam Weinig.
51576
51577         The code of ResourceErrorMac when using CFNetwork was assuming
51578         there is always either a CFError or an NSError associated with
51579         any ResourceError.
51580
51581         This is not true on WebKit2 where error can be generic errors
51582         in the WebProcess (for example a cannotShowURLError).
51583         The code was crashing when trying to invoke function on the
51584         non-existing CFError.
51585
51586         This patch fixes the issue by handling that third case separately.
51587         If the ResourceError is a generic error, a new NSError is created,
51588         similarily to what is done in the non-CFNetwork case.
51589
51590         * platform/network/mac/ResourceErrorMac.mm:
51591         (WebCore::ResourceError::nsError):
51592
51593 2012-10-10  Alexander Shalamov  <alexander.shalamov@intel.com>
51594
51595         Invalid values for media query features are not handled
51596         https://bugs.webkit.org/show_bug.cgi?id=97006
51597
51598         Reviewed by Kenneth Rohde Christiansen.
51599
51600         This patch improves pass rate of CSS3 Media Queries test suite
51601         by making media expressions compliant with W3C specification. Few
51602         performance issues are fixed by removal of string comparison during
51603         media expression evaluation.
51604
51605         Tests: fast/media/w3c/test_media_queries.html
51606
51607         * css/CSSGrammar.y: Handle media query expression with specified media restrictor as invalid.
51608         * css/MediaQuery.cpp:
51609         (WebCore::MediaQuery::serialize): Serialize invalid query according to specification.
51610         * css/MediaQueryEvaluator.cpp:
51611         (WebCore::orientationMediaFeatureEval): Compare CSSValueID instead of strings.
51612         (WebCore::view_modeMediaFeatureEval): Compare CSSValueID instead of strings.
51613         (WebCore::pointerMediaFeatureEval): Compare CSSValueID instead of strings.
51614         * css/MediaQueryExp.cpp:
51615         (WebCore::MediaQueryExp::MediaQueryExp): Check that media features initialized with correct values.
51616
51617 2012-10-10  Justin Novosad  <junov@chromium.org>
51618
51619         [Chromium] Smoother animation for non-RAF 2D canvas animations
51620         https://bugs.webkit.org/show_bug.cgi?id=97918
51621
51622         Reviewed by Stephen White.
51623
51624         Reduces animation jank by preventing the accumulation of multiple
51625         frames of backlog in the deferred canvas rendering queue. When the
51626         animation is more than one full frame ahead of the compositor, an
51627         immediate flush is triggered.  This takes into account overdraw
51628         elimination by the skip-on-clear optimization that is built-in to
51629         SkDeferredCanvas, to allow non-RAF animations that clear the canvas at
51630         each frame to run without any rate limiting. This change also
51631         incidentally improves frame rate in many cases by providing more
51632         granular batching of GPU API calls, resulting in better pipelining
51633         through the command buffer.
51634
51635         Test: webkit_unit_test Canvas2DLayerManagerTest.testDeferredFrame
51636
51637         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
51638         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
51639         (WebCore::Canvas2DLayerBridge::limitPendingFrames):
51640         Called at the end of a task (usually a scheduled script action) that
51641         invoked 2d canvas rendering context methods. The end of the task
51642         marks the completion of a displayable frame. This method will trigger
51643         a flush if it detects that the layer has pending draw commands that
51644         are more that one frame old.
51645         (WebCore):
51646         (WebCore::Canvas2DLayerBridge::flushedDrawCommands):
51647         (WebCore::Canvas2DLayerBridge::didFlushPendingCommands):
51648         (WebCore::Canvas2DLayerBridge::skippedPendingDrawCommands):
51649         (WebCore::Canvas2DLayerBridge::flush):
51650         (WebCore::Canvas2DLayerBridge::contextAcquired):
51651         * platform/graphics/chromium/Canvas2DLayerBridge.h:
51652         (Canvas2DLayerBridge):
51653         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
51654         (WebCore::Canvas2DLayerManager::~Canvas2DLayerManager):
51655         (WebCore::Canvas2DLayerManager::willProcessTask):
51656         (WebCore):
51657         (WebCore::Canvas2DLayerManager::didProcessTask):
51658         (WebCore::Canvas2DLayerManager::layerDidDraw):
51659         * platform/graphics/chromium/Canvas2DLayerManager.h:
51660         (Canvas2DLayerManager):
51661
51662 2012-10-10  Beth Dakin  <bdakin@apple.com>
51663
51664         https://bugs.webkit.org/show_bug.cgi?id=98968
51665         REGRESSION: Unable to scroll with trackpad on some websites after 
51666         r130783
51667
51668         Reviewed by Simon Fraser.
51669
51670         This bug seems to reproduce mostly on web pages that require login. 
51671         The re-routing causes extra churn of the RenderLayerBacking, and we 
51672         end up destroying and re-creating the backing and therefore the 
51673         ScrollingStateNodes, and when the timing is just wrong we get into a 
51674         state where the ScrollingTree has a set of incorrect information. 
51675         This patch fixes the bug by making sure the ScrollingStateNodes keep 
51676         the ScrollingTree in synch with their re-set data.
51677
51678         Tell the ScrollingStateTree that the root layer has changed.
51679         * page/scrolling/ScrollingCoordinator.cpp:
51680         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
51681
51682         New virtual function will set every property as having changed.
51683         * page/scrolling/ScrollingStateNode.h:
51684         (WebCore::ScrollingStateNode::setHasChangedProperties):
51685         * page/scrolling/ScrollingStateScrollingNode.cpp:
51686         (WebCore::ScrollingStateScrollingNode::setHasChangedProperties):
51687         (WebCore):
51688         * page/scrolling/ScrollingStateScrollingNode.h:
51689
51690         When the root layer changes, make sure we update the ScrollingTree 
51691         appropriately by indicating that every property could have changed.
51692         * page/scrolling/ScrollingStateTree.cpp:
51693         (WebCore::ScrollingStateTree::rootLayerDidChange):
51694         (WebCore):
51695         * page/scrolling/ScrollingStateTree.h:
51696         (ScrollingStateTree):
51697
51698 2012-10-10  MORITA Hajime  <morrita@google.com>
51699
51700         [Chromium] Crash on SpellChecker::didCheck()
51701         https://bugs.webkit.org/show_bug.cgi?id=98476
51702
51703         Reviewed by Kent Tamura.
51704
51705         SpellChecker::didCheck() assumed m_processingRequest is non-NULL. However, SpellChecker::invokeRequest()
51706         calls SpellCheckRequest::didCancel(), which results didCheck() with NULL m_processingRequest.
51707         This chagne eliminates the problematic didCheck().
51708
51709         No new tests. The case depends on specific timing and is hard to hit by automated testing.
51710
51711         * editing/SpellChecker.cpp:
51712         (WebCore::SpellChecker::didCheck):
51713
51714 2012-10-10  MORITA Hajime  <morrita@google.com>
51715
51716         https://bugs.webkit.org/show_bug.cgi?id=95664
51717         [Shadow DOM] should be able to be available without <style scoped>
51718
51719         Reviewed by Dimitri Glazkov.
51720
51721         This change relaxes ENABLE(STYLE_SCOPED) compilation guard
51722         and styleScopedEnabled() runtime guard. The flags now masks
51723         user visible bits of the code, rather than all of it.
51724         This change also eliminates some redundant guards for simplicity.
51725
51726         Test: fast/dom/shadow/style-scoped-not-enabled.html
51727
51728         * css/StyleResolver.cpp:
51729         (WebCore::StyleResolver::matchScopedAuthorRules):
51730         (WebCore::StyleResolver::locateCousinList):
51731         (WebCore::StyleResolver::canShareStyleWithElement):
51732         (WebCore::StyleResolver::locateSharedStyle):
51733         * css/StyleScopeResolver.cpp:
51734         (WebCore::StyleScopeResolver::scopeFor):
51735         * css/StyleScopeResolver.h:
51736         (WebCore):
51737         * html/HTMLStyleElement.cpp:
51738         (WebCore::HTMLStyleElement::HTMLStyleElement):
51739         (WebCore::HTMLStyleElement::parseAttribute):
51740         (WebCore::HTMLStyleElement::scopedAttributeChanged):
51741         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
51742         (WebCore::HTMLStyleElement::registerWithScopingNode):
51743         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
51744         (WebCore::HTMLStyleElement::insertedInto):
51745         (WebCore::HTMLStyleElement::removedFrom):
51746         (WebCore::HTMLStyleElement::scoped):
51747         (WebCore::HTMLStyleElement::scopingElement):
51748         * html/HTMLStyleElement.h:
51749         (HTMLStyleElement):
51750         * testing/InternalSettings.cpp: Exporsing a flag for testing.
51751         (WebCore::InternalSettings::Backup::Backup):
51752         (WebCore::InternalSettings::Backup::restoreTo):
51753         (WebCore::InternalSettings::setStyleScopedEnabled):
51754         (WebCore):
51755         * testing/InternalSettings.h: Exporsing a flag for testing.
51756         (Backup):
51757         (InternalSettings):
51758         * testing/InternalSettings.idl: Exporsing a flag for testing.
51759
51760 2012-10-10  Roger Fong  <roger_fong@apple.com>
51761
51762         [WebGL] [On Mac] queried attributes and uniforms need to return the original variable name, not the mapped name.
51763         https://bugs.webkit.org/show_bug.cgi?id=98470
51764
51765         Reviewed by Timothy Horton.
51766
51767         When a variable name is too long we translate to a shorter version and keep a mapping between the long and short names.
51768         However, when querying for a variable client side using getActiveAttrib or getActiveUniform, we accidentally return the 
51769         translated names. This fix makes these methods return the original variable names.
51770
51771         Tested using Khronos WebGL conformance suite:
51772         conformance/glsl/misc/glsl-long-variable-names.html
51773
51774         * platform/graphics/GraphicsContext3D.h:
51775         (GraphicsContext3D):
51776         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: getActiveAttrib and getActiveUniform
51777         now use GraphicsContext3D::originalSymbolName to find the original variable name.
51778         (WebCore::GraphicsContext3D::getActiveAttrib):
51779         (WebCore::GraphicsContext3D::getActiveUniform):
51780         (WebCore):
51781         (WebCore::GraphicsContext3D::originalSymbolName): This method returns the original variable name given 
51782         the mapped name.
51783
51784 2012-10-10 Brady Eidson  <beidson@apple.com>
51785
51786         Switch over CachedResource::data() from taking a SharedBuffer to taking a ResourceBuffer.
51787         https://bugs.webkit.org/show_bug.cgi?id=98952
51788
51789         Reviewed by Anders Carlsson.
51790
51791         No new tests (No behavior change).
51792
51793         * html/ImageDocument.cpp:
51794         (WebCore::ImageDocumentParser::appendBytes):
51795         (WebCore::ImageDocumentParser::finish):
51796         * loader/SubresourceLoader.cpp:
51797         (WebCore::SubresourceLoader::sendDataToResource):
51798         (WebCore::SubresourceLoader::didFinishLoading):
51799         * loader/cache/CachedCSSStyleSheet.cpp:
51800         (WebCore::CachedCSSStyleSheet::data):
51801         * loader/cache/CachedCSSStyleSheet.h:
51802         (WebCore):
51803         (CachedCSSStyleSheet):
51804         * loader/cache/CachedFont.cpp:
51805         (WebCore::CachedFont::data):
51806         * loader/cache/CachedFont.h:
51807         (WebCore):
51808         (CachedFont):
51809         * loader/cache/CachedImage.cpp:
51810         (WebCore::CachedImage::data):
51811         * loader/cache/CachedImage.h:
51812         (CachedImage):
51813         * loader/cache/CachedRawResource.cpp:
51814         (WebCore::CachedRawResource::data):
51815         * loader/cache/CachedRawResource.h:
51816         (CachedRawResource):
51817         * loader/cache/CachedResource.cpp:
51818         (WebCore::CachedResource::data):
51819         * loader/cache/CachedResource.h:
51820         (CachedResource):
51821         * loader/cache/CachedSVGDocument.cpp:
51822         (WebCore::CachedSVGDocument::data):
51823         * loader/cache/CachedSVGDocument.h:
51824         (CachedSVGDocument):
51825         * loader/cache/CachedScript.cpp:
51826         (WebCore::CachedScript::data):
51827         * loader/cache/CachedScript.h:
51828         (CachedScript):
51829         * loader/cache/CachedShader.cpp:
51830         (WebCore::CachedShader::data):
51831         * loader/cache/CachedShader.h:
51832         (CachedShader):
51833         * loader/cache/CachedTextTrack.cpp:
51834         (WebCore::CachedTextTrack::data):
51835         * loader/cache/CachedTextTrack.h:
51836         (CachedTextTrack):
51837         * loader/cache/CachedXSLStyleSheet.cpp:
51838         (WebCore::CachedXSLStyleSheet::data):
51839         * loader/cache/CachedXSLStyleSheet.h:
51840         (CachedXSLStyleSheet):
51841
51842 2012-10-10  Jon Lee  <jonlee@apple.com>
51843
51844         [WK2] Activate plugins when user clicks on snapshot
51845         https://bugs.webkit.org/show_bug.cgi?id=98328
51846         <rdar://problem/12426681>
51847
51848         Reviewed by Brady Eidson.
51849
51850         Extend the default event handler to deal with plugins with snapshots.
51851         When the user clicks on the placeholder, the plugin is recreated and displayed.
51852
51853         * loader/FrameLoaderClient.h: Add new client function recreatePlugin(), which is
51854         expected to re-create the plugin with the same parameters as when it was run to
51855         obtain the plugin's snapshot placeholder.
51856
51857         * loader/EmptyClients.cpp: Stub implementation of recreatePlugin().
51858         * loader/EmptyClients.h:
51859         * WebCore.exp.in: Expose HTMLPlugInElement::pluginWidget().
51860
51861         * html/HTMLPlugInElement.cpp:
51862         (WebCore::HTMLPlugInElement::defaultEventHandler): Update to look for
51863         RenderSnapshottedPlugIn. If the plugin is not playing, have the renderer handle the
51864         event.
51865
51866         * rendering/RenderSnapshottedPlugIn.cpp:
51867         (WebCore::RenderSnapshottedPlugin::getCursor): Set to hand cursor when the plugin is not
51868         playing.
51869         (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the plugin using the
51870         left button, update the state of the element to playing. Recreate the plugin if the widget exists
51871         to begin with. The cached snapshot image will be saved for possible reuse on back/forward navigation.
51872         * rendering/RenderSnapshottedPlugIn.h:
51873         (RenderSnapshottedPlugIn):
51874
51875 2012-10-10  Kenichi Ishibashi  <bashi@chromium.org>
51876
51877         FontVerticalDataCache should allow zero as a key value
51878         https://bugs.webkit.org/show_bug.cgi?id=98877
51879
51880         Reviewed by Tony Chang.
51881
51882         Use WTF::UnsignedWithZeroKeyHashTraits for type definition of
51883         FontVerticalDataCache.
51884
51885         No new tests because there is no certain way to make
51886         FontPlatformDataHarfBuzz::uniqueID() be zero.
51887
51888         * platform/graphics/FontCache.cpp:
51889         (WebCore):
51890         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
51891         (WebCore::FontPlatformData::verticalData): Removed zero check of uniqueID().
51892         (WebCore::FontPlatformData::openTypeTable): Ditto.
51893
51894 2012-10-10  Regina Chung  <heejin.r.chung@samsung.com>
51895
51896         [EFL] Use the shareable GraphicsContext3DOpenGL* implementation.
51897         https://bugs.webkit.org/show_bug.cgi?id=96627
51898
51899         Reviewed by Kenneth Rohde Christiansen.
51900
51901         Changed EFL implementation of GraphicsContext3D(GC3D) to use GraphicsContext3DOpenGL*.
51902         It was initially implemented in a different way, due to characteristics of Evas,
51903         but it would be better to use the common implementation and find another way
51904         to deal with Evas, especially because all the duplicated code.
51905
51906         No new tests. No functional changes.
51907
51908         * PlatformEfl.cmake: Removed cairo implementation of GC3D and added efl files to WebCore_SOURCES.
51909         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Modified code so GC3DOpenGL* can be used.
51910         (WebCore::GraphicsContext3D::create):
51911         (WebCore::GraphicsContext3D::GraphicsContext3D):
51912         (WebCore::GraphicsContext3D::platformLayer):
51913         (WebCore::GraphicsContext3D::makeContextCurrent):
51914         (WebCore::GraphicsContext3D::setContextLostCallback):
51915         (WebCore::GraphicsContext3D::setErrorMessageCallback):
51916         (WebCore::GraphicsContext3D::paintToCanvas):
51917         (WebCore):
51918         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
51919         (WebCore::GraphicsContext3D::releaseShaderCompiler):
51920         (WebCore::GraphicsContext3D::getImageData):
51921         * platform/graphics/efl/GraphicsContext3DPrivate.cpp: Removed functions implemented in GC3DOpenGL*
51922         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
51923         (WebCore):
51924         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
51925         (WebCore::GraphicsContext3DPrivate::createSurface):
51926         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
51927         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
51928         (WebCore::GraphicsContext3DPrivate::isGLES2Compliant):
51929         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
51930         * platform/graphics/efl/GraphicsContext3DPrivate.h: Removed functions implemented in GC3DOpenGL*
51931         (GraphicsContext3DPrivate):
51932
51933 2012-10-10  Tony Chang  <tony@chromium.org>
51934
51935         Unreviewed, rolling out r130937, r130949, r130955, and
51936         r130957.
51937         http://trac.webkit.org/changeset/130937
51938         http://trac.webkit.org/changeset/130949
51939         http://trac.webkit.org/changeset/130955
51940         http://trac.webkit.org/changeset/130957
51941         https://bugs.webkit.org/show_bug.cgi?id=94290
51942
51943         Breaks Qt build
51944
51945         * CMakeLists.txt:
51946         * DerivedSources.make:
51947         * DerivedSources.pri:
51948         * GNUmakefile.am:
51949         * WebCore.gyp/WebCore.gyp:
51950         * WebCore.gyp/scripts/action_preprocessgrammar.py: Removed.
51951         * WebCore.vcproj/WebCore.vcproj:
51952         * WebCore.xcodeproj/project.pbxproj:
51953         * css/CSSGrammar.y: Renamed from Source/WebCore/css/CSSGrammar.y.in.
51954         * css/CSSGrammar.y.includes: Removed.
51955         * css/makegrammar.pl:
51956
51957 2012-10-10  Rob Buis  <rbuis@rim.com>
51958
51959         [BlackBerry] Adapt to new image for search-cancel
51960         https://bugs.webkit.org/show_bug.cgi?id=98954
51961
51962         Reviewed by Antonio Gomes.
51963
51964         The new image for search-cancel is bigger than the old one, so invert the scaling.
51965
51966         * platform/blackberry/RenderThemeBlackBerry.cpp:
51967         (WebCore::RenderThemeBlackBerry::adjustSearchFieldCancelButtonStyle):
51968
51969 2012-10-10  Tony Chang  <tony@chromium.org>
51970
51971         Unreviewed, another speculative fix for Qt Win.
51972
51973         * DerivedSources.pri: Pass --preprocessor to the perl script.
51974         * css/makegrammar.pl: Use --preprocessor instead of /usr/bin/gcc.
51975
51976 2012-10-10  Tony Chang  <tony@chromium.org>
51977
51978         Unreviewed, another speculative fix for Qt Win.
51979
51980         * DerivedSources.pri: Make the path slash marks be forward slashes to the .in file.
51981
51982 2012-10-10  David Barton  <dbarton@mathscribe.com>
51983
51984         Turn on ENABLE_MATHML for Chromium
51985         https://bugs.webkit.org/show_bug.cgi?id=96960
51986
51987         Reviewed by Adam Barth.
51988
51989         Add the rendering/mathml directory to search.
51990
51991         * WebCore.gyp/WebCore.gyp:
51992
51993 2012-10-10  Tony Chang  <tony@chromium.org>
51994
51995         Unreviewed, speculative build fix for Qt Win.
51996
51997         * css/makegrammar.pl: Rather than making a temp file, use a pipe to
51998         pass data from gcc to the final output file.
51999
52000 2012-10-10  Brady Eidson  <beidson@apple.com>
52001
52002         Switch CachedResource over from SharedBuffer to a new ResourceBuffer
52003         https://bugs.webkit.org/show_bug.cgi?id=98541
52004
52005         Reviewed by Anders Carlsson.
52006
52007         As part of preparation for a WebKit2 NetworkProcess, we need to change the data handle shared
52008         between CachedResources and ResourceLoaders to be one that can be backed by something other
52009         than a SharedBuffer.
52010
52011         ResourceBuffer is this new object. Right now it is directly backed by a SharedBuffer and there
52012         should be no change in behavior.
52013
52014         No new tests (No behavior change).
52015
52016         * WebCore.exp.in:
52017         * WebCore.xcodeproj/project.pbxproj:
52018         * WebCore.vcproj/WebCore.vcproj:
52019         * CMakeLists.txt:
52020         * GNUmakefile.list.am:
52021         * Target.pri:
52022         * WebCore.gypi:
52023
52024         Implementation of the new ResourceBuffer, backed directly by a SharedBuffer:
52025         * loader/ResourceBuffer.cpp: Added.
52026         (WebCore):
52027         (WebCore::ResourceBuffer::ResourceBuffer):
52028         (WebCore::ResourceBuffer::~ResourceBuffer):
52029         (WebCore::ResourceBuffer::data):
52030         (WebCore::ResourceBuffer::size):
52031         (WebCore::ResourceBuffer::isEmpty):
52032         (WebCore::ResourceBuffer::getSomeData):
52033         (WebCore::ResourceBuffer::sharedBuffer):
52034         (WebCore::ResourceBuffer::copy):
52035         (WebCore::ResourceBuffer::hasPurgeableBuffer):
52036         (WebCore::ResourceBuffer::releasePurgeableBuffer):
52037         (WebCore::ResourceBuffer::createCFData):
52038
52039         * loader/ResourceBuffer.h: Added.
52040         (WebCore):
52041         (ResourceBuffer):
52042         (WebCore::ResourceBuffer::create):
52043         (WebCore::ResourceBuffer::adoptSharedBuffer):
52044         * loader/mac/ResourceBuffer.mm: Added.
52045
52046         (WebCore):
52047         (WebCore::ResourceBuffer::createNSData):
52048
52049         Switch CachedResource over to using it:
52050         * loader/cache/CachedResource.cpp:
52051         (WebCore::CachedResource::makePurgeable):
52052
52053         * loader/cache/CachedResource.h:
52054         (WebCore):
52055         (WebCore::CachedResource::resourceBuffer):
52056         (CachedResource):
52057
52058         Switch all the other CachedResource subclasses over to using it:
52059         * loader/cache/CachedCSSStyleSheet.cpp:
52060         (WebCore::CachedCSSStyleSheet::data):
52061
52062         * loader/cache/CachedFont.cpp:
52063         (WebCore::CachedFont::data):
52064         (WebCore::CachedFont::ensureCustomFontData):
52065
52066         * loader/cache/CachedImage.cpp:
52067         (WebCore::CachedImage::didAddClient):
52068         (WebCore::CachedImage::data):
52069
52070         * loader/cache/CachedRawResource.cpp:
52071         (WebCore::CachedRawResource::data):
52072
52073         * loader/cache/CachedScript.cpp:
52074         (WebCore::CachedScript::data):
52075
52076         * loader/cache/CachedShader.cpp:
52077         (WebCore::CachedShader::data):
52078
52079         * loader/cache/CachedTextTrack.cpp:
52080         (WebCore::CachedTextTrack::data):
52081         
52082         * loader/cache/CachedXSLStyleSheet.cpp:
52083         (WebCore::CachedXSLStyleSheet::data):
52084
52085         Switch other affect parties over to using it:
52086         * inspector/InspectorPageAgent.cpp:
52087         (WebCore::decodeBuffer):
52088         (WebCore::InspectorPageAgent::cachedResourceContent):
52089         (WebCore::InspectorPageAgent::sharedBufferContent):
52090
52091         * loader/DocumentLoader.cpp:
52092         (WebCore::DocumentLoader::subresource):
52093
52094         * loader/TextTrackLoader.cpp:
52095         (WebCore::TextTrackLoader::processNewCueData):
52096         (WebCore::TextTrackLoader::didReceiveData):
52097
52098         * loader/archive/cf/LegacyWebArchive.cpp:
52099         (WebCore::LegacyWebArchive::create):
52100
52101         * loader/icon/IconLoader.cpp:
52102         (WebCore::IconLoader::notifyFinished):
52103
52104         * platform/mac/PasteboardMac.mm:
52105         (WebCore::fileWrapperForImage):
52106
52107 2012-10-10  Julien Chaffraix  <jchaffraix@webkit.org>
52108
52109         Unreviewed build fix after r130940.
52110
52111         * platform/graphics/skia/GraphicsContextSkia.cpp:
52112         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52113         Avoid redefining the same variable twice.
52114
52115 2012-10-10  Alexis Menard  <alexis@webkit.org>
52116
52117         [Mac] Deprecate getPropertyShorthand from objective c bindings for future removal
52118         https://bugs.webkit.org/show_bug.cgi?id=98916
52119
52120         Reviewed by Timothy Hatcher.
52121
52122         Mark getPropertyShorthand as deprecated so we can remove it later. It will allow us
52123         to remove getPropertyShorthand from the web exposed API (this function is not part of
52124         any specification, it was there for historical reason).
52125
52126         No new tests : just mark a function as deprecated.
52127
52128         * bindings/objc/PublicDOMInterfaces.h:
52129
52130 2012-10-10  Mike West  <mkwst@chromium.org>
52131
52132         Web Inspector: add support for %c (style) in console API
52133         https://bugs.webkit.org/show_bug.cgi?id=69401
52134
52135         Reviewed by Pavel Feldman.
52136
52137         This patch mimics Firebug's '%c' option when calling 'console.log'
52138         messages. 'console.log("%cBlue!", "color: blue;");' will write blue
52139         text to the console, and so on.
52140
52141         To match Firebug's behavior, multiple '%c' entries will overwrite each
52142         other: only one style will be applied. Sorry, folks.
52143
52144         Test: inspector/console/console-format-style.html
52145
52146         * inspector/front-end/ConsoleMessage.js:
52147         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
52148         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.append):
52149         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
52150
52151 2012-10-10  Varun Jain  <varunjain@chromium.org>
52152
52153         [chromium] Spelling and grammar markers are pixelated in hidpi.
52154         https://bugs.webkit.org/show_bug.cgi?id=98339
52155
52156         Reviewed by Stephen White.
52157
52158         We create separate bitmaps for markers in normal and hidpi mode as per
52159         specification from UX and choose the right bitmap based on the current
52160         device scale factor.
52161
52162         Tests: editing/spelling/grammar-markers-hidpi.html
52163                editing/spelling/inline-spelling-markers-hidpi.html
52164
52165         * platform/graphics/skia/GraphicsContextSkia.cpp:
52166         (WebCore::draw2xMarker):
52167         (WebCore):
52168         (WebCore::draw1xMarker):
52169         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52170         * platform/graphics/skia/PlatformContextSkia.cpp:
52171         (WebCore::PlatformContextSkia::PlatformContextSkia):
52172         * platform/graphics/skia/PlatformContextSkia.h:
52173         (WebCore::PlatformContextSkia::deviceScaleFactor):
52174         (WebCore::PlatformContextSkia::setDeviceScaleFactor):
52175         (PlatformContextSkia):
52176
52177 2012-10-10  Pablo Flouret  <pablof@motorola.com>
52178
52179         Pre-process CSSGrammar.y before running through bison.
52180         https://bugs.webkit.org/show_bug.cgi?id=94290
52181
52182         Reviewed by Tony Chang.
52183
52184         Running CSSGrammar.y through a preprocessor allows the use of feature
52185         defines in all places of the yacc file (i.e. not just in C blocks).
52186         Mostly useful to be able to keep every part of a feature under feature
52187         flags for self-documenting purposes.
52188
52189         No new tests, CSSGrammar.y should be generated correctly and everything
52190         should keep working as before.
52191
52192         * CMakeLists.txt:
52193         * DerivedSources.make:
52194         * DerivedSources.pri:
52195         * GNUmakefile.am:
52196             Modify build systems to use makegrammar.pl to generate the .y files
52197             and run those through bison.
52198
52199         * WebCore.gyp/WebCore.gyp:
52200         * WebCore.gyp/scripts/action_preprocessgrammar.py: Added.
52201             Add a new action to preprocess the CSSGrammar.y.in file before the
52202             bison rule is run.
52203
52204         * WebCore.vcproj/WebCore.vcproj:
52205         * WebCore.xcodeproj/project.pbxproj:
52206             Add the new .y.in / .y.includes files.
52207
52208         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
52209             Also moved the top declarations section that has includes, defines,
52210             etc. to its own file. These shouldn't be touched by the first
52211             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
52212             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
52213             yet.
52214         * css/CSSGrammar.y.includes: Added.
52215             The aforementioned declarations header section. After the .y.in file
52216             is processed it will be concatenated with this one to make the
52217             CSSGrammar.y file.
52218
52219         * css/makegrammar.pl:
52220             Modify the script to handle .y.in files.
52221
52222 2012-10-10  Luciano Wolf  <luciano.wolf@openbossa.org>
52223
52224         EventHandler::handleGestureLongPress breaks compilation if CONTEXT_MENUS isn't set
52225         https://bugs.webkit.org/show_bug.cgi?id=98890
52226
52227         Reviewed by Caio Marcelo de Oliveira Filho.
52228
52229         * page/EventHandler.cpp:
52230         (WebCore::EventHandler::handleGestureLongPress):
52231
52232 2012-10-10  David Grogan  <dgrogan@chromium.org>
52233
52234         Inspector: display IndexedDB integer versions
52235         https://bugs.webkit.org/show_bug.cgi?id=95816
52236
52237         Reviewed by Vsevolod Vlasov.
52238
52239         Added basic test to database-structure.html
52240
52241         * inspector/Inspector.json:
52242         * inspector/InspectorIndexedDBAgent.cpp:
52243         (WebCore):
52244         * inspector/front-end/IndexedDBModel.js:
52245         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
52246         (WebInspector.IndexedDBModel.prototype._loadDatabase):
52247         (WebInspector.IndexedDBModel.Database):
52248         * inspector/front-end/IndexedDBViews.js:
52249         (WebInspector.IDBDatabaseView):
52250         (WebInspector.IDBDatabaseView.prototype._refreshDatabase):
52251
52252 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
52253
52254         Store a visible rect in GraphicsLayers, and optionally dump it in layerTreeAsText
52255         https://bugs.webkit.org/show_bug.cgi?id=98839
52256
52257         Reviewed by Sam Weinig.
52258
52259         To replace CATiledLayer with TileCaches, we need to be able to compute the visible part of a GraphicsLayer,
52260         in order to limit the extent of TileCache tiles. Reuse the existing code in GraphicsLayerCA for this,
52261         but store the computed rect in m_visibleRect.
52262         
52263         Add a flag to layerTreeAsText() so that tests can optionally include this visible rect in
52264         layer tree dumps. This output will be platform-specific, so we don't want to do it unconditionally.
52265
52266         * WebCore.exp.in: Signature of Frame::layerTreeAsText() changed.
52267         * page/Frame.cpp:
52268         (WebCore::Frame::layerTreeAsText): Change to take some enum flags rather than just a bool.
52269         * page/Frame.h:
52270         * platform/graphics/GraphicsLayer.cpp:
52271         (WebCore::GraphicsLayer::writeIndent): Make into a static class method so subclasses can use it.
52272         (WebCore::GraphicsLayer::dumpProperties): Call a virtual dumpAdditionalProperties() for subclasses.
52273         (showGraphicsLayerTree):
52274         * platform/graphics/GraphicsLayer.h:
52275         (GraphicsLayer): New LayerTreeAsTextIncludeVisibleRects flag.
52276         (WebCore::GraphicsLayer::dumpAdditionalProperties): New virtual method.
52277         * platform/graphics/ca/GraphicsLayerCA.cpp:
52278         (WebCore::GraphicsLayerCA::recursiveCommitChanges): clipRectForChildren and clipRectForSelf
52279         were previously unused and buggy. Fix to correctly compute clipRectForSelf, to assign
52280         to m_visibleRect.
52281         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump m_visibleRect.
52282         * platform/graphics/ca/GraphicsLayerCA.h:
52283         (GraphicsLayerCA):
52284         * rendering/RenderLayerCompositor.cpp:
52285         (WebCore::RenderLayerCompositor::layerTreeAsText): Convert the flags from Frame flags
52286         to GraphicsLayerFlags and pass them along.
52287         * rendering/RenderLayerCompositor.h:
52288         (RenderLayerCompositor):
52289         * testing/Internals.cpp:
52290         (WebCore::Internals::layerTreeAsText): Overloaded method to handle the optional IDL arguments.
52291         * testing/Internals.h: Add enum.
52292         * testing/Internals.idl: Add optional flags, and a const short to describe the flags.
52293
52294 2012-10-10  Shinya Kawanaka  <shinyak@chromium.org>
52295
52296         Needs internal API to return distributed nodes for InsertionPoint
52297         https://bugs.webkit.org/show_bug.cgi?id=98868
52298
52299         Reviewed by Hajime Morita.
52300
52301         When testing insertion points, we would like to have an internal API which returns a node list
52302         distributed to an insertion point.
52303
52304         We've added the API in Internals.
52305
52306         Test: fast/dom/shadow/distributed-nodes.html
52307
52308         * WebCore.exp.in:
52309         * html/shadow/InsertionPoint.cpp:
52310         (WebCore::InsertionPoint::distributedNodes): Returns the distributed nodes. When InsertionPoint is not
52311         attached, the result will be null, since the distribution is not calculated correctly.
52312         (WebCore):
52313         * html/shadow/InsertionPoint.h:
52314         (InsertionPoint):
52315         * testing/Internals.cpp:
52316         (WebCore::Internals::distributedNodes):
52317         (WebCore):
52318         * testing/Internals.h:
52319         (Internals):
52320         * testing/Internals.idl:
52321
52322 2012-10-10  Wei James  <james.wei@intel.com>
52323
52324         [Chromium]Android x86 content shell debug build warning for uninitialized value used as error with gcc 4.6
52325         https://bugs.webkit.org/show_bug.cgi?id=98629
52326
52327         Reviewed by Adam Barth.
52328
52329         Warning was taken as error for uninitialized value being used when
52330         building content shell for Android x86 with gcc 4.6.
52331
52332         * WebCore.gyp/WebCore.gyp:
52333
52334 2012-10-10  Andrei Bucur  <abucur@adobe.com>
52335
52336         [CSS Regions] Create a separate list for the invalid regions
52337         https://bugs.webkit.org/show_bug.cgi?id=98752
52338
52339         Reviewed by Andreas Kling.
52340
52341         This patch moves the invalid regions in a low traffic data structure, outside the main region list. This should add a small performance boost (there's no test for it) and simplifies the code in the following ways:
52342         - iterations through the region list don't need to worry about invalid regions
52343         - accessing the first/last region is straightforward
52344         - list manipulations are easier to implement (e.g. binary search for a region)
52345
52346         Tests: Adapted fast/regions/flows-dependency-same-flow.html to use the new dump format for the region chain.
52347
52348         * dom/WebKitNamedFlow.cpp:
52349         (WebCore::WebKitNamedFlow::getRegionsByContent): Now returns only the valid regions.
52350         (WebCore::WebKitNamedFlow::getRegions): Now returns only the valid regions.
52351         * rendering/RenderFlowThread.cpp:
52352         (WebCore::RenderFlowThread::RenderFlowThread):
52353         (WebCore::RenderFlowThread::layout):
52354         (WebCore::RenderFlowThread::updateLogicalWidth):
52355         (WebCore::RenderFlowThread::computeLogicalHeight):
52356         (WebCore::RenderFlowThread::repaintRectangleInRegions):
52357         (WebCore::RenderFlowThread::regionAtBlockOffset):
52358         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
52359         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
52360         (WebCore::RenderFlowThread::firstRegion):
52361         (WebCore::RenderFlowThread::lastRegion):
52362         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
52363         (WebCore::RenderFlowThread::regionInRange):
52364         (WebCore::RenderFlowThread::checkRegionsWithStyling):
52365         (WebCore::RenderFlowThread::objectInFlowRegion):
52366         (WebCore::RenderFlowThread::autoLogicalHeightRegionsCount):
52367         * rendering/RenderFlowThread.h:
52368         * rendering/RenderNamedFlowThread.cpp:
52369         (WebCore):
52370         (WebCore::addRegionToList):
52371         (WebCore::RenderNamedFlowThread::addRegionToThread):
52372         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
52373         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
52374         * rendering/RenderNamedFlowThread.h:
52375         (WebCore::RenderNamedFlowThread::invalidRenderRegionList):
52376         (RenderNamedFlowThread):
52377         (WebCore::RenderNamedFlowThread::canBeDestroyed):
52378         * rendering/RenderTreeAsText.cpp:
52379         (WebCore::writeRenderRegionList):
52380         (WebCore):
52381         (WebCore::writeRenderNamedFlowThreads): The valid regions are listed first followed by the invalid regions.
52382
52383 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52384
52385         Web Inspector: [Regression] Stale revisions are not cleared when inspector is opened for the already loaded page.
52386         https://bugs.webkit.org/show_bug.cgi?id=98915
52387
52388         Reviewed by Alexander Pavlov.
52389
52390         WorkspaceController now clears stale revisions on navigation as well.
52391
52392         * inspector/front-end/Workspace.js:
52393         (WebInspector.WorkspaceController):
52394         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
52395
52396 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52397
52398         Web Inspector: Exception when committing java script editing with revision history view open.
52399         https://bugs.webkit.org/show_bug.cgi?id=98908
52400
52401         Reviewed by Alexander Pavlov.
52402
52403         Added null check.
52404
52405         * inspector/front-end/RevisionHistoryView.js:
52406
52407 2012-10-10  Pavel Feldman  <pfeldman@chromium.org>
52408
52409         Web Inspector: protect node in the InspectorDOMNode::inspect
52410         https://bugs.webkit.org/show_bug.cgi?id=98914
52411
52412         Reviewed by Yury Semikhatsky.
52413
52414         * inspector/InspectorDOMAgent.cpp:
52415         (WebCore::InspectorDOMAgent::inspect):
52416
52417 2012-10-10  Mike West  <mkwst@google.com>
52418
52419         EditorCommand calls setProperty with the wrong parameters.
52420         https://bugs.webkit.org/show_bug.cgi?id=98896
52421
52422         Reviewed by Jochen Eisinger.
52423
52424         EditorCommand::executeToggleStyleInList calls
52425         StylePropertySet::setProperty with an ExceptionCode as the final
52426         argument. This only succeeds because it's automagically cast to a bool,
52427         which is what the method actually expects.
52428
52429         Implicitly passing in 'false' by dropping the parameter shouldn't change
52430         any visible functionality; no new tests are required.
52431
52432         * editing/EditorCommand.cpp:
52433         (WebCore::executeToggleStyleInList):
52434
52435 2012-10-10  Mike West  <mkwst@google.com>
52436
52437         HTMLTextFormControlElement calls setInlineStyleProperty with the wrong parameters.
52438         https://bugs.webkit.org/show_bug.cgi?id=98892
52439
52440         Reviewed by Jochen Eisinger.
52441
52442         HTMLTextFormControlElement::updatePlaceholderVisibility calls
52443         HTMLElement::setInlineStyleProperty with an ExceptionCode as the last
52444         parameter. This only succeeds because it's automagically cast to a bool,
52445         which is what the method actually expects.
52446
52447         Implicitly passing in 'false' by dropping the parameter shouldn't change
52448         any functionality; so no new tests are required.
52449
52450         * html/HTMLTextFormControlElement.cpp:
52451         (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
52452
52453 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
52454
52455         SQLResultSet.rowsAffected not cleared
52456         https://bugs.webkit.org/show_bug.cgi?id=46070
52457
52458         Reviewed by Kenneth Rohde Christiansen.
52459
52460         SQLResultSet.rowsAffected is supposed to return the number
52461         of rows that were changed by the statement. For "SELECT"
52462         statements, it should return 0.
52463
52464         However, our implementation currently relies on sqlite3_changes()
52465         to compute this value. sqlite3_changes() returns the number of
52466         direct row changes in the most recent INSERT, UPDATE, or DELETE
52467         statement within the same trigger context. Unfortunately, the
52468         most recent INSERT, UPDATE, or DELETE statement may not be the
52469         last statement. As a consequence, if you INSERT 1 row, then
52470         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
52471         INSERT and the SELECT statements.
52472
52473         The proposed solution is to use sqlite3_total_changes() instead
52474         of sqlite3_changes(). sqlite3_total_changes() returns the number
52475         of row changes caused by INSERT, UPDATE or DELETE statements since
52476         the database connection was opened. We now store the value
52477         returned by sqlite3_total_changes() before each statement in
52478         order to return the count difference in
52479         SQLiteDatabase::lastChanges().
52480
52481         Test: storage/websql/execute-sql-rowsAffected.html
52482
52483         * platform/sql/SQLiteDatabase.cpp:
52484         (WebCore::SQLiteDatabase::SQLiteDatabase):
52485         (WebCore::SQLiteDatabase::updateLastChangesCount):
52486         (WebCore):
52487         (WebCore::SQLiteDatabase::lastChanges):
52488         * platform/sql/SQLiteDatabase.h:
52489         (SQLiteDatabase):
52490         * platform/sql/SQLiteStatement.cpp:
52491         (WebCore::SQLiteStatement::step):
52492
52493 2012-10-10  Keishi Hattori  <keishi@webkit.org>
52494
52495         REGRESSION (r129738): Calendar picker is too wide when the input is rtl
52496         https://bugs.webkit.org/show_bug.cgi?id=98881
52497
52498         Reviewed by Kent Tamura.
52499
52500         Calendar picker should use param.isCalendarRTL instead of param.isRTL but some were left.
52501
52502         No new tests. Covered by ManualTests/forms/calendar-picker.html.
52503
52504         * Resources/pagepopups/calendarPicker.js:
52505         (CalendarPicker.prototype.fixWindowSize): Calendar picker should use param.isCalendarRTL instead of param.isRTL.
52506         (DaysTable.prototype._handleKey): Ditto.
52507
52508 2012-10-10  Alexander Pavlov  <apavlov@chromium.org>
52509
52510         Web Inspector: Semantically incorrect CSS rules result in broken source code data
52511         https://bugs.webkit.org/show_bug.cgi?id=98520
52512
52513         Reviewed by Vsevolod Vlasov.
52514
52515         Pop and throw away rule data from the stack when data have been collected for a semantically invalid CSS rule
52516         (which is not going to be created).
52517
52518         * css/CSSParser.cpp:
52519         (WebCore::CSSParser::createImportRule):
52520         (WebCore::CSSParser::createFontFaceRule):
52521         (WebCore::CSSParser::createPageRule):
52522         (WebCore::CSSParser::createRegionRule):
52523
52524 2012-10-10  Zeno Albisser  <zeno@webkit.org>
52525
52526         [Qt][Mac] GL_ARB_texture_rectangle must be activated when using ANGLE.
52527         https://bugs.webkit.org/show_bug.cgi?id=98387
52528
52529         Check for the availability of GL_ARB_texture_rectangle extension.
52530         In case it is available, we activate the extension for ANGLE.
52531         This is necessary for WebGL on mac, because the GraphicsSurface
52532         on this platform is based on an IOSurface, which requires this extension.
52533
52534         Reviewed by Noam Rosenthal.
52535
52536         * platform/graphics/qt/GraphicsContext3DQt.cpp:
52537         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
52538
52539 2012-10-10  Andreas Kling  <kling@webkit.org>
52540
52541         ElementAttributeData: tighten member packing on 64-bit.
52542         <http://webkit.org/b/98861>
52543
52544         Reviewed by Anders Carlsson.
52545
52546         Pack m_isMutable and m_arraySize into the slack from the RefCounted base on 64-bit.
52547         218kB progression on Membuster3.
52548
52549         * dom/ElementAttributeData.h:
52550         (ElementAttributeData):
52551
52552 2012-10-10  Alexandre Elias  <aelias@chromium.org>
52553
52554         Text Autosizing: Counteract funky window sizing on Android.
52555         https://bugs.webkit.org/show_bug.cgi?id=98809
52556
52557         Reviewed by Adam Barth.
52558
52559         In Chrome for Android, the window sizes provided to WebCore are
52560         currently in physical screen pixels instead of
52561         device-scale-adjusted units. For example window width on a
52562         Galaxy Nexus is 720 instead of 360.  Text autosizing expects
52563         device-independent pixels.  When Chrome for Android cuts over to
52564         the new coordinate space, it will be tied to the setting
52565         applyPageScaleFactorInCompositor.
52566
52567         No new tests.
52568
52569         * rendering/TextAutosizer.cpp:
52570         (WebCore::TextAutosizer::processSubtree):
52571
52572 2012-10-09  Philip Rogers  <pdr@google.com>
52573
52574         Recursively detach SVGElementInstances
52575         https://bugs.webkit.org/show_bug.cgi?id=98851
52576
52577         Reviewed by Ryosuke Niwa and Abhishek Arya
52578
52579         Before this patch, SVGElementInstance child nodes were not being detached. This
52580         patch makes detach() recursively detach SVGElementInstances.
52581
52582         * svg/SVGElementInstance.cpp:
52583         (WebCore::SVGElementInstance::detach):
52584
52585 2012-10-09  Kenichi Ishibashi  <bashi@chromium.org>
52586
52587         [Chromium] Fix harfbuzz-ng related code after r130231
52588         https://bugs.webkit.org/show_bug.cgi?id=98858
52589
52590         Reviewed by Kent Tamura.
52591
52592         Replace first/second with key/value.
52593
52594         No new tests. No changes in behavior.
52595
52596         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
52597         (WebCore::harfbuzzGetGlyph):
52598         * platform/graphics/skia/SimpleFontDataSkia.cpp:
52599         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
52600
52601 2012-10-09  Enrica Casucci  <enrica@apple.com>
52602
52603         Only measure text once instead of twice when performing line layout.
52604         https://bugs.webkit.org/show_bug.cgi?id=98317
52605         <rdar://problem/12080821>
52606
52607         Reviewed by Dan Bernstein.
52608
52609         Since we are measuring each word to find out where the line break should occur,
52610         we should cache that information to avoid measuring the run again when
52611         creating the line box. The bulk of the change is in nextLineBreak, where
52612         the measurements are collected and placed in a vector so that they can
52613         be consumed in setLogicalWidthForTextRun where we used to measure the
52614         text one more time.
52615         Each entry in the vector is a WordMeasurement object that contains information
52616         about the start and end offset in the run, the renderer, the measured width
52617         and, possibly, a list of fallback fonts.
52618         When we need to compute the width of the run to create the line box, we add
52619         all the measurements for the given renderer in the run to get the total width.
52620         This optiomization is currently disabled for platforms using HarfBuzz.
52621
52622         * platform/graphics/Font.cpp:
52623         (WebCore::Font::width): Added fallback fonts parameter.
52624         * platform/graphics/Font.h:
52625         (Font): Added fallback fonts parameter to the width static member function.
52626         This method is called when we compute the width using TextLayout.
52627         * platform/graphics/mac/ComplexTextController.cpp:
52628         (WebCore::TextLayout::width): Added fallback fonts parameter.
52629         (WebCore::Font::width):
52630         (WebCore::ComplexTextController::advance):
52631         * platform/graphics/mac/ComplexTextController.h:
52632         (ComplexTextController): Added fallback fonts parameter to advance method.
52633         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
52634         * rendering/RenderBlockLineLayout.cpp:
52635         (WordMeasurement): Added new class to hold measurement information.
52636         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
52637         cached information.
52638         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
52639         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
52640         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
52641         vector and its use.
52642         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
52643         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
52644         the measurements of the individual words and add them to the vector.
52645
52646 2012-10-09  Andreas Kling  <kling@webkit.org>
52647
52648         GlyphPageTreeNode should use HashMap<OwnPtr>.
52649         <http://webkit.org/b/98845>
52650
52651         Reviewed by Dan Bernstein.
52652
52653         - Replace manual memory management by OwnPtrs.
52654         - Added a GlyphPageTreeNodeMap typedef to make call sites look a bit nicer.
52655         = Changed some hashmap get()/remove() pairs to use the more efficient take() instead.
52656         - Made the constructor private, it has no external clients.
52657
52658         * platform/graphics/GlyphPageTreeNode.cpp:
52659         (WebCore::GlyphPageTreeNode::getRoot):
52660         (WebCore::GlyphPageTreeNode::pageCount):
52661         (WebCore::GlyphPageTreeNode::getChild):
52662         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
52663         (WebCore::GlyphPageTreeNode::pruneFontData):
52664         (WebCore::GlyphPageTreeNode::showSubtree):
52665         * platform/graphics/GlyphPageTreeNode.h:
52666         (GlyphPageTreeNode):
52667         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
52668
52669 2012-10-09  Kent Tamura  <tkent@chromium.org>
52670
52671         Sub-fields in input[type=time] should not be focusable if the input is disabled or read-only
52672         https://bugs.webkit.org/show_bug.cgi?id=98850
52673
52674         Reviewed by Kentaro Hara.
52675
52676         Covered by additional test cases of
52677         time-multiple-fields/time-multiple-fields-keyboard-events.html and
52678         time-multiple-fields/time-multiple-fields-mouse-events.html.
52679
52680         * html/shadow/DateTimeFieldElement.h:
52681         (FieldOwner): Add isFieldOwnerDisabledOrReadOnly.
52682         * html/shadow/DateTimeFieldElement.cpp:
52683         (WebCore::DateTimeFieldElement::isFocusable):
52684         Check isFieldOwnerDisabledOrReadOnly, and calls HTMLElement::isFocusable()
52685         just in case.
52686         * html/shadow/DateTimeEditElement.cpp:
52687         (WebCore::DateTimeEditElement::isFieldOwnerDisabledOrReadOnly): Added.
52688         * html/shadow/DateTimeEditElement.h:
52689         (DateTimeEditElement): Declare isFieldOwnerDisabledOrReadOnly.
52690
52691 2012-10-09  Robert Kroeger  <rjkroege@chromium.org>
52692
52693         [chromium] revert fling deacceleration parameter change
52694         https://bugs.webkit.org/show_bug.cgi?id=98820
52695
52696         Reviewed by Adrienne Walker.
52697
52698         After an extended discussion, it has been decided that a previous
52699         adjustment to fling deacceleration parameters should be reverted.
52700
52701         Tested by existing unit tests.
52702
52703         * platform/TouchFlingPlatformGestureCurve.cpp:
52704         (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
52705         (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
52706
52707 2012-10-09  Kent Tamura  <tkent@chromium.org>
52708
52709         Should reject invalid dates constructed with multiple fields UI
52710         https://bugs.webkit.org/show_bug.cgi?id=98727
52711
52712         Reviewed by Hajime Morita.
52713
52714         In input[type=date] with multiple fields UI, we allow users to set
52715         day-of-month value to 1-31 regardless of the month value. So users can
52716         construct an invalid date such as "2012-02-31". We should sanitize such
52717         values.
52718
52719         This change affects platforms with ENABLE_INPUT_TYPE_DATE &&
52720         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
52721
52722         Test: fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html
52723
52724         * html/BaseDateAndTimeInputType.h:
52725         (BaseDateAndTimeInputType): Make sanitizeValue protected to be called from
52726         BaseMultipleFieldsDateAndTimeInputType.
52727         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
52728         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
52729         Apply sanitizeValue to a value constructed in UI.
52730         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
52731         Ditto.
52732
52733 2012-10-09  Joe Mason  <jmason@rim.com>
52734
52735         Check for null m_frame in NetworkJob
52736         https://bugs.webkit.org/show_bug.cgi?id=98830
52737
52738         Reviewed by George Staikos.
52739
52740         PR 220025
52741
52742         * platform/network/blackberry/NetworkJob.cpp:
52743         (WebCore::NetworkJob::sendRequestWithCredentials):
52744         (WebCore::NetworkJob::storeCredentials):
52745
52746 2012-10-09  Jian Li  <jianli@chromium.org>
52747
52748         Update the CSS property used to support draggable regions.
52749         https://bugs.webkit.org/show_bug.cgi?id=97156
52750
52751         Reviewed by Adam Barth.
52752
52753         The CSS property to support draggable regions has been changed from
52754         "-webkit-widget-region" to "-webkit-app-region" in the following syntax:
52755            -webkit-app-region: drag|no-drag
52756
52757         The CSS parsing code for draggable regions is now different from the CSS
52758         parsing code for dashboard regions since we have quite different syntax.
52759
52760         We still try to share as much rendering update code as possible for
52761         these two features. To make the shared code easier to understand for
52762         both features, the name "DashboardRegions" in the shared code is changed
52763         to "AnnotatedRegions" to work for both dashboard regions and draggable
52764         regions.
52765
52766         Note that we still using WIDGET_REGION as feature name in order not to
52767         add more changes to this patch. It will be renamed to a more appropriate
52768         name in next patch. WIDGET_REGION is now only turned on for the chromium
52769         port.
52770
52771         Test: fast/css/draggable-region-parser.html
52772
52773         * Configurations/FeatureDefines.xcconfig: Disable WIDGET_REGION feature.
52774         * WebCore.exp.in: Update the exported symbol due to renaming.
52775         * css/CSSComputedStyleDeclaration.cpp: Update the CSS parsing.
52776         (WebCore):
52777         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52778         * css/CSSParser.cpp: Update the CSS parsing.
52779         (WebCore::CSSParser::parseValue):
52780         (WebCore):
52781         (WebCore::CSSParser::parseDashboardRegions):
52782         * css/CSSParserValues.cpp: Update the CSS parsing.
52783         (WebCore::CSSParserValue::createCSSValue):
52784         * css/CSSPrimitiveValue.cpp: Update the CSS parsing.
52785         (WebCore::isValidCSSUnitTypeForDoubleConversion):
52786         (WebCore):
52787         (WebCore::CSSPrimitiveValue::cleanup):
52788         (WebCore::CSSPrimitiveValue::customCssText):
52789         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
52790         (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
52791         * css/CSSPrimitiveValue.h: Update the CSS parsing.
52792         (CSSPrimitiveValue):
52793         * css/CSSProperty.cpp:
52794         (WebCore::CSSProperty::isInheritedProperty):
52795         * css/CSSPropertyNames.in: Rename the CSS property for draggable region.
52796         * css/CSSValueKeywords.in: Add the keywords supported for the draggable region.
52797         * css/DashboardRegion.h: Remove WIDGET_REGION guard.
52798         (DashboardRegion):
52799         * css/StyleResolver.cpp: Update the CSS parsing.
52800         (WebCore::StyleResolver::collectMatchingRulesForList):
52801         * dom/Document.cpp: Rename dashboardRegions to annotatedRegions.
52802         (WebCore::Document::Document):
52803         (WebCore::Document::annotatedRegions):
52804         (WebCore::Document::setAnnotatedRegions):
52805         (WebCore::Document::reportMemoryUsage):
52806         * dom/Document.h: Rename dashboardRegions to annotatedRegions.
52807         (WebCore):
52808         (WebCore::Document::setAnnotatedRegionsDirty):
52809         (WebCore::Document::annotatedRegionsDirty):
52810         (WebCore::Document::hasAnnotatedRegions):
52811         (WebCore::Document::setHasAnnotatedRegions):
52812         (Document):
52813         * page/Chrome.cpp: Rename dashboardRegions to annotatedRegions.
52814         (WebCore::ChromeClient::annotatedRegionsChanged):
52815         * page/ChromeClient.h: Rename dashboardRegions to annotatedRegions.
52816         (ChromeClient):
52817         * page/FrameView.cpp: Rename dashboardRegions to annotatedRegions.
52818         (WebCore::FrameView::layout):
52819         (WebCore::FrameView::updateAnnotatedRegions):
52820         (WebCore::FrameView::paintContents):
52821         * page/FrameView.h: Rename dashboardRegions to annotatedRegions.
52822         (FrameView):
52823         * rendering/RenderInline.cpp:
52824         (WebCore::RenderInline::addAnnotatedRegions):
52825         * rendering/RenderInline.h: Rename dashboardRegions to annotatedRegions.
52826         (RenderInline):
52827         * rendering/RenderLayer.cpp: Rename dashboardRegions to annotatedRegions.
52828         (WebCore::RenderLayer::scrollTo):
52829         (WebCore::RenderLayer::setHasHorizontalScrollbar):
52830         (WebCore::RenderLayer::setHasVerticalScrollbar):
52831         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
52832         * rendering/RenderListBox.cpp: Rename dashboardRegions to annotatedRegions.
52833         (WebCore::RenderListBox::setHasVerticalScrollbar):
52834         * rendering/RenderObject.cpp: Rename dashboardRegions to annotatedRegions.
52835         (WebCore::RenderObject::styleWillChange):
52836         (WebCore::RenderObject::addAnnotatedRegions):
52837         (WebCore::RenderObject::collectAnnotatedRegions):
52838         * rendering/RenderObject.h: Rename dashboardRegions to annotatedRegions.
52839         (WebCore::AnnotatedRegionValue::operator==):
52840         (WebCore::AnnotatedRegionValue::operator!=):
52841         (AnnotatedRegionValue):
52842         (RenderObject):
52843         * rendering/style/RenderStyle.cpp: Update the CSS parsing.
52844         (WebCore::RenderStyle::diff):
52845         (WebCore):
52846         * rendering/style/RenderStyle.h: Update the CSS parsing.
52847         * rendering/style/RenderStyleConstants.h: Update the CSS parsing.
52848         * rendering/style/StyleDashboardRegion.h: Update the CSS parsing.
52849         * rendering/style/StyleRareNonInheritedData.cpp: Update the CSS parsing.
52850         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52851         (WebCore::StyleRareNonInheritedData::operator==):
52852         * rendering/style/StyleRareNonInheritedData.h: Update the CSS parsing.
52853         (WebCore):
52854         (StyleRareNonInheritedData):
52855
52856 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
52857
52858         Unreviewed, rolling out r130811 and r130821.
52859         http://trac.webkit.org/changeset/130811
52860         http://trac.webkit.org/changeset/130821
52861         https://bugs.webkit.org/show_bug.cgi?id=98831
52862
52863         Broke date-suggestion-picker-appearance-with-scroll-bar.html
52864         (Requested by abarth|gardening on #webkit).
52865
52866         * WebCore.exp.in:
52867         * dom/ContainerNode.cpp:
52868         (WebCore::ContainerNode::getUpperLeftCorner):
52869         (WebCore::ContainerNode::getLowerRightCorner):
52870         * dom/MouseRelatedEvent.cpp:
52871         (WebCore::MouseRelatedEvent::computeRelativePosition):
52872         * dom/Node.cpp:
52873         (WebCore::Node::convertToPage):
52874         (WebCore::Node::convertFromPage):
52875         * editing/FrameSelection.cpp:
52876         (WebCore::CaretBase::absoluteBoundsForLocalRect):
52877         * editing/RenderedPosition.cpp:
52878         (WebCore::RenderedPosition::absoluteRect):
52879         * editing/VisiblePosition.cpp:
52880         (WebCore::VisiblePosition::absoluteCaretBounds):
52881         * html/HTMLSelectElement.cpp:
52882         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
52883         * html/shadow/SliderThumbElement.cpp:
52884         (WebCore::SliderThumbElement::setPositionFromPoint):
52885         * html/shadow/SpinButtonElement.cpp:
52886         (WebCore::SpinButtonElement::defaultEventHandler):
52887         * page/FrameView.cpp:
52888         (WebCore::FrameView::convertFromRenderer):
52889         (WebCore::FrameView::convertToRenderer):
52890         * rendering/InlineTextBox.cpp:
52891         (WebCore::InlineTextBox::paintDocumentMarker):
52892         (WebCore::InlineTextBox::paintTextMatchMarker):
52893         (WebCore::InlineTextBox::computeRectForReplacementMarker):
52894         * rendering/LayoutState.cpp:
52895         (WebCore::LayoutState::LayoutState):
52896         * rendering/RenderBlock.cpp:
52897         (WebCore::RenderBlock::absoluteQuads):
52898         * rendering/RenderBox.cpp:
52899         (WebCore::RenderBox::absoluteQuads):
52900         (WebCore::RenderBox::absoluteContentBox):
52901         (WebCore::RenderBox::mapLocalToContainer):
52902         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
52903         * rendering/RenderBox.h:
52904         (RenderBox):
52905         * rendering/RenderBoxModelObject.cpp:
52906         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
52907         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
52908         * rendering/RenderBoxModelObject.h:
52909         (RenderBoxModelObject):
52910         * rendering/RenderEmbeddedObject.cpp:
52911         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
52912         * rendering/RenderFrameSet.cpp:
52913         (WebCore::RenderFrameSet::userResize):
52914         * rendering/RenderGeometryMap.cpp:
52915         (WebCore::RenderGeometryMap::absolutePoint):
52916         * rendering/RenderInline.cpp:
52917         (WebCore::RenderInline::mapLocalToContainer):
52918         * rendering/RenderInline.h:
52919         (RenderInline):
52920         * rendering/RenderLayer.cpp:
52921         (WebCore::RenderLayer::absoluteToContents):
52922         (WebCore::RenderLayer::convertToLayerCoords):
52923         (WebCore::RenderLayer::scrollTo):
52924         (WebCore::RenderLayer::calculateClipRects):
52925         (WebCore::RenderLayer::childrenClipRect):
52926         (WebCore::RenderLayer::selfClipRect):
52927         * rendering/RenderLayerBacking.cpp:
52928         (WebCore::RenderLayerBacking::contentsVisible):
52929         * rendering/RenderMediaControls.cpp:
52930         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
52931         * rendering/RenderMenuList.cpp:
52932         (WebCore::RenderMenuList::showPopup):
52933         * rendering/RenderObject.cpp:
52934         (WebCore::RenderObject::absoluteFocusRingQuads):
52935         (WebCore::RenderObject::localToAbsolute):
52936         (WebCore::RenderObject::absoluteToLocal):
52937         (WebCore::RenderObject::mapLocalToContainer):
52938         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
52939         (WebCore::RenderObject::localToContainerQuad):
52940         (WebCore::RenderObject::localToContainerPoint):
52941         * rendering/RenderObject.h:
52942         (RenderObject):
52943         (WebCore::RenderObject::localToAbsoluteQuad):
52944         * rendering/RenderText.cpp:
52945         (WebCore::RenderText::absoluteRectsForRange):
52946         (WebCore::RenderText::absoluteQuads):
52947         (WebCore::RenderText::absoluteQuadsForRange):
52948         * rendering/RenderTheme.cpp:
52949         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
52950         * rendering/RenderView.cpp:
52951         (WebCore::RenderView::mapLocalToContainer):
52952         (WebCore::RenderView::mapAbsoluteToLocalPoint):
52953         (WebCore::RenderView::selectionBounds):
52954         * rendering/RenderView.h:
52955         (RenderView):
52956         * rendering/RenderWidget.cpp:
52957         (WebCore::RenderWidget::updateWidgetGeometry):
52958         * rendering/svg/RenderSVGForeignObject.cpp:
52959         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
52960         * rendering/svg/RenderSVGForeignObject.h:
52961         (RenderSVGForeignObject):
52962         * rendering/svg/RenderSVGInline.cpp:
52963         (WebCore::RenderSVGInline::mapLocalToContainer):
52964         * rendering/svg/RenderSVGInline.h:
52965         (RenderSVGInline):
52966         * rendering/svg/RenderSVGModelObject.cpp:
52967         (WebCore::RenderSVGModelObject::mapLocalToContainer):
52968         (WebCore::RenderSVGModelObject::absoluteQuads):
52969         * rendering/svg/RenderSVGModelObject.h:
52970         (RenderSVGModelObject):
52971         * rendering/svg/RenderSVGRoot.cpp:
52972         (WebCore::RenderSVGRoot::mapLocalToContainer):
52973         * rendering/svg/RenderSVGRoot.h:
52974         (RenderSVGRoot):
52975         * rendering/svg/RenderSVGText.cpp:
52976         (WebCore::RenderSVGText::mapLocalToContainer):
52977         (WebCore::RenderSVGText::absoluteQuads):
52978         * rendering/svg/RenderSVGText.h:
52979         (RenderSVGText):
52980         * rendering/svg/SVGRenderSupport.cpp:
52981         (WebCore::SVGRenderSupport::mapLocalToContainer):
52982         * svg/SVGSVGElement.cpp:
52983         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
52984
52985 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
52986
52987         Unreviewed, rolling out r130812.
52988         http://trac.webkit.org/changeset/130812
52989         https://bugs.webkit.org/show_bug.cgi?id=98826
52990
52991         Caused fast/text/shaping/shaping-selection-rect to fail
52992         (Requested by abarth|gardening on #webkit).
52993
52994         * platform/graphics/Font.cpp:
52995         (WebCore::Font::width):
52996         * platform/graphics/Font.h:
52997         (Font):
52998         * platform/graphics/mac/ComplexTextController.cpp:
52999         (WebCore::TextLayout::width):
53000         (WebCore::Font::width):
53001         (WebCore::ComplexTextController::advance):
53002         * platform/graphics/mac/ComplexTextController.h:
53003         (ComplexTextController):
53004         * rendering/RenderBlock.h:
53005         (WebCore):
53006         (LineBreaker):
53007         (RenderBlock):
53008         * rendering/RenderBlockLineLayout.cpp:
53009         (WebCore::setLogicalWidthForTextRun):
53010         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
53011         (WebCore::RenderBlock::createLineBoxesFromBidiRuns):
53012         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
53013         (WebCore::textWidth):
53014         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
53015
53016 2012-10-09  Ryosuke Niwa  <rniwa@webkit.org>
53017
53018         DOM/textarea-edit.html spends 35% of time in numGraphemeClusters
53019         https://bugs.webkit.org/show_bug.cgi?id=98711
53020
53021         Reviewed by Kent Tamura.
53022
53023         Since the number of characters is always greater than the number of grapheme clusters,
53024         we can avoid calling computeLengthForSubmission when the number of characters is less
53025         than maxlength. We still have to count the number of LFs since they all need to be
53026         converted into CRLFs. This improves WebKit's score on DOM/textarea-edit.html by 45%.
53027
53028         * html/HTMLTextAreaElement.cpp:
53029         (WebCore::computeLengthForSubmission):
53030         (WebCore::numberOfLineBreaks):
53031         (WebCore::upperBoundForLengthForSubmission): Added.
53032         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
53033         (WebCore::HTMLTextAreaElement::tooLong):
53034
53035 2012-10-09  Nate Chapin  <japhet@chromium.org>
53036
53037         Make CachedResourceLoader RefCounted and have both Document
53038         and DocumentLoader hold RefPtrs. This is in preparation for
53039         caching main resources.
53040         https://bugs.webkit.org/show_bug.cgi?id=86787
53041
53042         Reviewed by Adam Barth.
53043
53044         No new tests, no functionality changes at this time.
53045
53046         * WebCore.exp.in:
53047         * WebCore.xcodeproj/project.pbxproj:
53048         * dom/Document.cpp:
53049         (WebCore::Document::Document): Only create our own CachedResourceLoader
53050             if we were given a null frame.
53051         (WebCore::Document::~Document):
53052         (WebCore::Document::cachedResourceLoader):
53053         (WebCore):
53054         * dom/Document.h:
53055         (Document):
53056         * loader/DocumentLoader.cpp: Throughout, use our m_cachedResourceLoader instead
53057             of the Document's pointer.
53058         (WebCore::DocumentLoader::DocumentLoader): Create a CachedResourceLoader.
53059         (WebCore::DocumentLoader::~DocumentLoader):
53060         (WebCore::DocumentLoader::isLoadingInAPISense):
53061         (WebCore::DocumentLoader::subresource):
53062         (WebCore::DocumentLoader::getSubresources):
53063         * loader/DocumentLoader.h:
53064         (WebCore::DocumentLoader::cachedResourceLoader):
53065         (DocumentLoader):
53066         * loader/SubresourceLoader.cpp: Remove m_document, since it only existed to keep alive and access the CachedResourceLoader.
53067             It can now be accessed from m_documentLoader.
53068         (WebCore::SubresourceLoader::SubresourceLoader):
53069         (WebCore::SubresourceLoader::~SubresourceLoader):
53070         (WebCore::SubresourceLoader::willSendRequest):
53071         (WebCore::SubresourceLoader::releaseResources):
53072         * loader/SubresourceLoader.h:
53073         (SubresourceLoader):
53074         * loader/cache/CachedResourceLoader.cpp: Handle the possibility of a null Document in several places.
53075         (WebCore::CachedResourceLoader::CachedResourceLoader):
53076         (WebCore::CachedResourceLoader::~CachedResourceLoader):
53077         (WebCore::CachedResourceLoader::frame):
53078         (WebCore::CachedResourceLoader::canRequest):
53079         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
53080         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
53081         (WebCore::CachedResourceLoader::loadDone):
53082         * loader/cache/CachedResourceLoader.h:
53083         (WebCore):
53084         (WebCore::CachedResourceLoader::create): Add create(), make constructor private.
53085         (CachedResourceLoader):
53086         (WebCore::CachedResourceLoader::document):
53087         (WebCore::CachedResourceLoader::setDocument):
53088         (WebCore::CachedResourceLoader::clearDocumentLoader):
53089
53090 2012-10-09  Alexander Shalamov  <alexander.shalamov@intel.com>
53091
53092         CSS Style is not recalculated when media attribute of style element is changed
53093         https://bugs.webkit.org/show_bug.cgi?id=96752
53094
53095         Reviewed by Kenneth Rohde Christiansen.
53096
53097         When "media" attribute of style element is changed, style should be recalculated.
53098         This patch modifies HTMLStyleElement::parseAttribute, so that when the media attribute
53099         is updated, new MediaQuerySet is created and applied to the style element then, document
53100         style is recalculated. Since media query set is updated for CSSStyleSheet, CSSOM wrapper
53101         for media query should be updated as well in order to sync with new media query set value.
53102
53103         Test: fast/media/mq-js-update-media.html
53104
53105         * css/CSSStyleSheet.cpp:
53106         (WebCore::CSSStyleSheet::setMediaQueries):
53107         * html/HTMLStyleElement.cpp:
53108         (WebCore::HTMLStyleElement::parseAttribute):
53109
53110 2012-10-09  Ben Murdoch  <benm@google.com>
53111
53112         [chromium][Android] Add WebSecurityOrigin::grantLoadLocalResources()
53113         https://bugs.webkit.org/show_bug.cgi?id=97689
53114
53115         Reviewed by Adam Barth.
53116
53117         In addition to the WebKit/chromium side of the change, remove the
53118         ASSERT in SecurityOrigin::grantLoadLocalResources(). Android WebView
53119         is a legitimate user of this API in cases where neither of the
53120         ASSERT'd conditions hold.
53121
53122         * page/SecurityOrigin.cpp:
53123         (WebCore::SecurityOrigin::grantLoadLocalResources): Remove ASSERT.
53124
53125 2012-10-09  Jon Lee  <jonlee@apple.com>
53126
53127         Build fix for Qt Windows.
53128
53129         * html/HTMLPlugInElement.h: Include Image.h.
53130
53131 2012-10-09  Enrica Casucci  <enrica@apple.com>
53132
53133         Only measure text once instead of twice when performing line layout.
53134         https://bugs.webkit.org/show_bug.cgi?id=98317
53135         <rdar://problem/12080821>
53136
53137         Reviewed by Dan Bernstein.
53138
53139         Since we are measuring each word to find out where the line break should occur,
53140         we should cache that information to avoid measuring the run again when
53141         creating the line box. The bulk of the change is in nextLineBreak, where
53142         the measurements are collected and placed in a vector so that they can
53143         be consumed in setLogicalWidthForTextRun where we used to measure the
53144         text one more time.
53145         Each entry in the vector is a WordMeasurement object that contains information
53146         about the start and end offset in the run, the renderer, the measured width
53147         and, possibly, a list of fallback fonts.
53148         When we need to compute the width of the run to create the line box, we add
53149         all the measurements for the given renderer in the run to get the total width.
53150
53151         * platform/graphics/Font.cpp:
53152         (WebCore::Font::width): Added fallback fonts parameter.
53153         * platform/graphics/Font.h:
53154         (Font): Added fallback fonts parameter to the width static member function.
53155         This method is called when we compute the width using TextLayout.
53156         * platform/graphics/mac/ComplexTextController.cpp:
53157         (WebCore::TextLayout::width): Added fallback fonts parameter.
53158         (WebCore::Font::width):
53159         (WebCore::ComplexTextController::advance):
53160         * platform/graphics/mac/ComplexTextController.h:
53161         (ComplexTextController): Added fallback fonts parameter to advance method.
53162         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
53163         * rendering/RenderBlockLineLayout.cpp:
53164         (WordMeasurement): Added new class to hold measurement information.
53165         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
53166         cached information.
53167         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
53168         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
53169         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
53170         vector and its use.
53171         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
53172         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
53173         the measurements of the individual words and add them to the vector.
53174
53175 2012-10-09  Levi Weintraub  <leviw@chromium.org>
53176
53177         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
53178         https://bugs.webkit.org/show_bug.cgi?id=98571
53179
53180         Reviewed by Emil A Eklund.
53181
53182         Refactoring all coordinate-switching functionality to use a single "mode" flag
53183         as opposed to having a bunch of boolean values. This enables the same set of
53184         options across the board, and a consistent interface. This was previously
53185         done for mapLocalToContainer.
53186
53187         The imptetus for this for this stems from the one logical change in this patch
53188         which only effects sub-pixel layout. FrameView::convertToRenderer and
53189         convertFromRenderer return IntPoint coordinates, and need to also snap transform
53190         offsets to determine proper rects for scrolling.
53191
53192         Unlabeled functions below are simply being updated to these new interfaces.
53193
53194         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
53195
53196         * WebCore.exp.in:
53197         * dom/ContainerNode.cpp:
53198         (WebCore::ContainerNode::getUpperLeftCorner):
53199         (WebCore::ContainerNode::getLowerRightCorner):
53200         * dom/Element.cpp:
53201         (WebCore::Element::boundsInRootViewSpace):
53202         * dom/MouseRelatedEvent.cpp:
53203         (WebCore::MouseRelatedEvent::computeRelativePosition):
53204         * dom/Node.cpp:
53205         (WebCore::Node::convertToPage):
53206         (WebCore::Node::convertFromPage):
53207         * html/HTMLSelectElement.cpp:
53208         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
53209         * html/shadow/SliderThumbElement.cpp:
53210         (WebCore::SliderThumbElement::setPositionFromPoint):
53211         * html/shadow/SpinButtonElement.cpp:
53212         (WebCore::SpinButtonElement::defaultEventHandler):
53213         * page/FrameView.cpp:
53214         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
53215         them to TransformState, which transforms the coordinates.
53216         (WebCore::FrameView::convertFromRenderer): Ditto.
53217         * rendering/LayoutState.cpp:
53218         (WebCore::LayoutState::LayoutState):
53219         * rendering/RenderBlock.cpp:
53220         (WebCore::RenderBlock::absoluteQuads):
53221         * rendering/RenderBox.cpp:
53222         (WebCore::RenderBox::absoluteQuads):
53223         (WebCore::RenderBox::mapLocalToContainer):
53224         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
53225         * rendering/RenderBox.h:
53226         (RenderBox):
53227         * rendering/RenderBoxModelObject.cpp:
53228         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
53229         * rendering/RenderBoxModelObject.h:
53230         (RenderBoxModelObject):
53231         * rendering/RenderEmbeddedObject.cpp:
53232         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
53233         * rendering/RenderFrameSet.cpp:
53234         (WebCore::RenderFrameSet::userResize):
53235         * rendering/RenderGeometryMap.cpp:
53236         (WebCore::RenderGeometryMap::absolutePoint):
53237         * rendering/RenderInline.cpp:
53238         (WebCore::RenderInline::mapLocalToContainer):
53239         * rendering/RenderInline.h:
53240         (RenderInline):
53241         * rendering/RenderLayer.cpp:
53242         (WebCore::RenderLayer::absoluteToContents):
53243         (WebCore::RenderLayer::calculateClipRects):
53244         * rendering/RenderMediaControls.cpp:
53245         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
53246         * rendering/RenderMenuList.cpp:
53247         (WebCore::RenderMenuList::showPopup):
53248         * rendering/RenderObject.cpp:
53249         (WebCore::RenderObject::localToAbsolute):
53250         (WebCore::RenderObject::absoluteToLocal):
53251         (WebCore::RenderObject::mapLocalToContainer):
53252         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
53253         (WebCore::RenderObject::localToContainerQuad):
53254         (WebCore::RenderObject::localToContainerPoint):
53255         * rendering/RenderObject.h:
53256         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
53257         now used for other conversion methods.
53258         (WebCore::RenderObject::localToAbsoluteQuad):
53259         * rendering/RenderTheme.cpp:
53260         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
53261         * rendering/RenderView.cpp:
53262         (WebCore::RenderView::mapLocalToContainer):
53263         (WebCore::RenderView::mapAbsoluteToLocalPoint):
53264         * rendering/RenderView.h:
53265         (RenderView):
53266         * rendering/svg/RenderSVGForeignObject.cpp:
53267         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
53268         * rendering/svg/RenderSVGForeignObject.h:
53269         (RenderSVGForeignObject):
53270         * rendering/svg/RenderSVGInline.cpp:
53271         (WebCore::RenderSVGInline::mapLocalToContainer):
53272         * rendering/svg/RenderSVGInline.h:
53273         (RenderSVGInline):
53274         * rendering/svg/RenderSVGModelObject.cpp:
53275         (WebCore::RenderSVGModelObject::mapLocalToContainer):
53276         * rendering/svg/RenderSVGModelObject.h:
53277         (RenderSVGModelObject):
53278         * rendering/svg/RenderSVGRoot.cpp:
53279         (WebCore::RenderSVGRoot::mapLocalToContainer):
53280         * rendering/svg/RenderSVGRoot.h:
53281         (RenderSVGRoot):
53282         * rendering/svg/RenderSVGText.cpp:
53283         (WebCore::RenderSVGText::mapLocalToContainer):
53284         * rendering/svg/RenderSVGText.h:
53285         (RenderSVGText):
53286         * rendering/svg/SVGRenderSupport.cpp:
53287         (WebCore::SVGRenderSupport::mapLocalToContainer):
53288         * svg/SVGSVGElement.cpp:
53289         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
53290
53291 2012-10-09  Jon Lee  <jonlee@apple.com>
53292
53293         [WK2] Have plugins render offscreen to capture snapshot
53294         https://bugs.webkit.org/show_bug.cgi?id=98326
53295         <rdar://problem/12426658>
53296
53297         Reviewed by Simon Fraser.
53298
53299         Change updateSnapshot() to use a PassRefPtr<Image> instead of Image*. WebKit2 ultimately
53300         hands the image off to RenderSnapshottedPlugin. A CachedImage instance then manages the
53301         lifetime of the Image.
53302
53303         * html/HTMLPlugInElement.h:
53304         (WebCore::HTMLPlugInElement::updateSnapshot):
53305         * html/HTMLPlugInImageElement.cpp:
53306         (WebCore::HTMLPlugInImageElement::updateSnapshot):
53307         * html/HTMLPlugInImageElement.h:
53308         (HTMLPlugInImageElement):
53309         * rendering/RenderSnapshottedPlugIn.cpp:
53310         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Updated to use the PassRefPtr<Image>
53311         pointer.
53312         * rendering/RenderSnapshottedPlugIn.h:
53313         (RenderSnapshottedPlugIn):
53314
53315 2012-10-09  Adam Barth  <abarth@webkit.org>
53316
53317         Unreviewed. Move this file to where the build systems think it should
53318         be. See https://bugs.webkit.org/show_bug.cgi?id=94755
53319
53320         * platform/graphics/CustomFilterConstants.h: Removed.
53321         * platform/graphics/filters/CustomFilterConstants.h: Copied from Source/WebCore/platform/graphics/CustomFilterConstants.h.
53322
53323 2012-10-09  Tony Chang  <tony@chromium.org>
53324
53325         Use computeLogical* methods instead of updateLogical* methods in RenderImage
53326         https://bugs.webkit.org/show_bug.cgi?id=98802
53327
53328         Reviewed by Eric Seidel.
53329
53330         We were storing the old values of width/height, calling updateLogical{Width,Height}, then restoring
53331         the old values.  Instead, use the computeLogical{Width,Height} methods so we don't have to overwrite
53332         the current values.
53333
53334         No new tests, this is just a refactoring.
53335
53336         * rendering/RenderImage.cpp:
53337         (WebCore::RenderImage::imageDimensionsChanged):
53338
53339 2012-10-09  Enrica Casucci  <enrica@apple.com>
53340
53341         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-
53342         background-canvas.html failing on the Mac after r130443
53343         https://bugs.webkit.org/show_bug.cgi?id=98545
53344
53345         Reviewed by Tony Chang.
53346
53347         Adding back the ! removed by mistake before submitting r130779. 
53348
53349         * platform/graphics/FontFastPath.cpp:
53350         (WebCore::Font::glyphDataAndPageForCharacter):
53351
53352 2012-10-09  Artem Simonov  <asimonov@rim.com>
53353
53354         [BlackBerry] EGL Context deleted prematurely in GraphicsContext3D destructor
53355         https://bugs.webkit.org/show_bug.cgi?id=98796
53356
53357         Reviewed by George Staikos.
53358
53359         Reordered destruction of GraphicsContext3D so that the compositing layer is
53360         destroyed first.
53361
53362         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
53363         (WebCore::GraphicsContext3D::~GraphicsContext3D):
53364
53365 2012-10-09  Ben Wagner  <bungeman@chromium.org>
53366
53367         Disable hinting when webkit-font-smoothing:antialiased is used on Mac.
53368         https://bugs.webkit.org/show_bug.cgi?id=98061
53369
53370         Reviewed by Stephen White.
53371
53372         Normal anti-aliased text matches subpixel anti-aliased text.
53373         However, text marked with webkit-font-smoothing:antialiased should be drawn without hinting to match Safari.
53374         See crbug.com/152304 . 
53375
53376         Test is fast/css/font-smoothing.html, but DRT runs with font smoothing disabled, so no change visible. 
53377
53378         * platform/graphics/skia/FontSkia.cpp:
53379         (WebCore::setupPaint):
53380         Set kNo_Hinting when webkit-font-smoothing is antialiased.
53381
53382 2012-10-09  Max Vujovic  <mvujovic@adobe.com>
53383
53384         [CSS Shaders] Create constants for vertex attribute sizes and offsets
53385         https://bugs.webkit.org/show_bug.cgi?id=94755
53386
53387         Reviewed by Dean Jackson.
53388
53389         Factor out the vertex attribute size and offset constants into a new file,
53390         CustomFilterConstants.h. Replace literals in CustomFilterMeshGenerator with the constants.
53391
53392         I could have added the constants to CustomFilterMeshGenerator.h, but this would make
53393         FECustomFilter depend on CustomFilterMeshGenerator.
53394
53395         I also could have added the constants to CustomFilterMesh.h, but this would make
53396         CustomFilterMeshGenerator depend on CustomFilterMesh.
53397
53398         No new tests. No change in behavior.
53399
53400         * GNUmakefile.list.am:
53401         * Target.pri:
53402         * WebCore.gypi:
53403         * WebCore.vcproj/WebCore.vcproj:
53404         * WebCore.xcodeproj/project.pbxproj:
53405         * platform/graphics/CustomFilterConstants.h: Added.
53406         (WebCore):
53407         * platform/graphics/filters/CustomFilterMeshGenerator.h:
53408         (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
53409             Use the new constants instead of literal values.
53410         * platform/graphics/filters/FECustomFilter.cpp:
53411         (WebCore::FECustomFilter::bindProgramAndBuffers):
53412             Pull the constant definitions out of here.
53413
53414 2012-10-09  Michael Saboff  <msaboff@apple.com>
53415
53416         MarkupAccumulator should optimally handle 8 bit Strings
53417         https://bugs.webkit.org/show_bug.cgi?id=98224
53418
53419         Reviewed by Ryosuke Niwa.
53420
53421         Updated appendCharactersReplacingEntities to take a string, offset and length and process 8 or 16 bit
53422         data as appropriate.  Also made it a member function of MarkupAccumulator.
53423
53424         No new tests, behavior covered by existing tests.
53425
53426         * editing/MarkupAccumulator.cpp:
53427         (WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
53428         (WebCore::MarkupAccumulator::appendAttributeValue):
53429         (WebCore::MarkupAccumulator::appendNodeValue):
53430         * editing/MarkupAccumulator.h:
53431         (MarkupAccumulator):
53432         * editing/markup.cpp:
53433         (WebCore::StyledMarkupAccumulator::appendText):
53434         (WebCore::urlToMarkup):
53435
53436 2012-10-09  Joshua Bell  <jsbell@chromium.org>
53437
53438         IndexedDB: Overflowing key generator should throw ConstraintError
53439         https://bugs.webkit.org/show_bug.cgi?id=98807
53440
53441         Reviewed by Tony Chang.
53442
53443         After the WebKit implementation landed throwing DataError, public-webapps
53444         consensus was that the exception thrown should be ConstraintError. Trivial
53445         change, and we pass one more W3C test submission.
53446
53447         Test: storage/indexeddb/key-generator.html
53448
53449         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
53450         (WebCore::IDBObjectStoreBackendImpl::putInternal):
53451
53452 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
53453
53454         Fix the order of the statements in my previous build fix.
53455
53456         Reviewed by Gustavo Noronha Silva.
53457
53458         My previous build build fix for ResourceHandleSoup ordered the assignment
53459         of the local ResourceHandleInternal incorrectly. Instead of being before
53460         both assertions, it should be interspersed among them.
53461
53462         * platform/network/soup/ResourceHandleSoup.cpp:
53463         (WebCore::createSoupMessageForHandleAndRequest):
53464
53465 2012-10-09  Beth Dakin  <bdakin@apple.com>
53466
53467         https://bugs.webkit.org/show_bug.cgi?id=98457
53468         ScrollingStateNodes should be referenced via IDs on 
53469         RenderLayerBacking
53470
53471         Reviewed by Simon Fraser.
53472
53473         This patch associates all ScrollingStateNodes with a 
53474         RenderLayerBacking via a HashMap from RenderLayerBackings to 
53475         ScrollingStateNodes on ScrollingCoordinator. Prior to this patch, the 
53476         root ScrollingStateNode was created immediately upon creation of the 
53477         ScrollingCoordinator, and it was constantly re-used for every main 
53478         FrameView. This doesn't work in the new model since that doesn't 
53479         allow that ScrollingStateNode to have a definite association with a 
53480         RenderLayerBacking. So this patch does also introduce some lifetime 
53481         differences with the ScrollingStateNodes.
53482
53483         If a page is going into the page cache, we should clear the state 
53484         tree. When the page is in the cache, we won't have access to the 
53485         RenderLayerBacking, and we don't want to be doing anything with the 
53486         ScrollingStateNodes anyway.
53487         * dom/Document.cpp:
53488         (WebCore::Document::setInPageCache):
53489
53490         When a page is restored from the page cache, call 
53491         frameViewRootLayerDidChange() to re-create the state tree.
53492         * loader/HistoryController.cpp:
53493         (WebCore::HistoryController::restoreScrollPositionAndViewState):
53494
53495         This new FrameView function will return the scrollLayerID for a given FrameView.
53496         * page/FrameView.cpp:
53497         (WebCore::FrameView::scrollLayerID):
53498         (WebCore):
53499         * page/FrameView.h:
53500         (FrameView):
53501
53502         There is a lot of unfortunate fiddling with the terrible 
53503         if-defs in ScrollingCoordinator. I added a FIXME to the header
53504         noting how we can avoid this in the future.
53505         * page/scrolling/ScrollingCoordinator.cpp:
53506
53507         All of this code used to refer to the rootStateNode directly. 
53508         Instead, now it looks up the proper ScrollingStateNode for the given 
53509         FrameView in the HashMap.
53510         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
53511         (WebCore::ScrollingCoordinator::frameViewWheelEventHandlerCountChanged):
53512         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
53513         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
53514         (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPosition):
53515         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
53516         (WebCore::ScrollingCoordinator::setScrollLayerForNode):
53517         (WebCore::ScrollingCoordinator::setNonFastScrollableRegionForNode):
53518         (WebCore::ScrollingCoordinator::setScrollParametersForNode):
53519         (WebCore::ScrollingCoordinator::setWheelEventHandlerCountForNode):
53520
53521         Returns the existing ScrollingStateNode for a given FrameView by 
53522         looking it up in the HashMap.
53523         (WebCore::ScrollingCoordinator::stateNodeForFrameView):
53524
53525         This is called when a RenderLayerBacking is destroyed. At that time, 
53526         its associated ScrollingStateNode is destroyed.
53527         (WebCore::ScrollingCoordinator::detachFromStateTree):
53528
53529         clearStateTree() clears the HashMap and destroys all of the nodes in 
53530         the current state tree.
53531         (WebCore::ScrollingCoordinator::clearStateTree):
53532
53533         Creates a new root state node for the given FrameView.
53534         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53535
53536         Some new functions for the new node stuff.
53537         * page/scrolling/ScrollingCoordinator.h:
53538         * page/scrolling/ScrollingCoordinatorNone.cpp:
53539         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
53540         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
53541         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
53542         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
53543         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
53544         (WebCore::ScrollingCoordinator::detachFromStateTree):
53545         (WebCore::ScrollingCoordinator::clearStateTree):
53546         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53547         (WebCore::setScrollParameters):
53548         (WebCore::setWheelEventHandlerCount):
53549
53550         New remove functions are used when the sate tree is cleared and when 
53551         a RenderLayerBacking is destroyed.
53552         * page/scrolling/ScrollingStateNode.cpp:
53553         (WebCore::ScrollingStateNode::removeChild):
53554         (WebCore):
53555         * page/scrolling/ScrollingStateNode.h:
53556         (WebCore::ScrollingStateNode::isScrollingStateScrollingNode):
53557         (ScrollingStateNode):
53558         (WebCore::ScrollingStateNode::parent):
53559
53560         New convenience function for casting to ScrollingStateScrollingNodes.
53561         * page/scrolling/ScrollingStateScrollingNode.h:
53562         (WebCore::toScrollingStateScrollingNode):
53563         (WebCore):
53564
53565         No longer automatically create a root node upon creation of the 
53566         ScrollingStateTree. We now want to wait to create the root node until 
53567         we have a RenderLayerBacking to associate it with.
53568         * page/scrolling/ScrollingStateTree.cpp:
53569         (WebCore::ScrollingStateTree::ScrollingStateTree):
53570         (WebCore::ScrollingStateTree::removeNode):
53571         (WebCore):
53572         * page/scrolling/ScrollingStateTree.h:
53573         (WebCore::ScrollingStateTree::setRootStateNode):
53574         (ScrollingStateTree):
53575
53576         RenderLayerBacking has a new data member called m_scrollLayerID. If 
53577         this RenderLayerBacking is represented in the scrolling tree, then 
53578         the ID with be unique and non-zero. 
53579         * rendering/RenderLayerBacking.cpp:
53580         (WebCore::RenderLayerBacking::RenderLayerBacking):
53581         (WebCore::RenderLayerBacking::~RenderLayerBacking):
53582         (WebCore::generateScrollLayerID):
53583         (WebCore):
53584         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
53585         (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
53586         * rendering/RenderLayerBacking.h:
53587         (RenderLayerBacking):
53588         (WebCore::RenderLayerBacking::scrollLayerID):
53589
53590         Move the call to ScrollingCooridinator::frameViewRootLayerDidChange() 
53591         from RenderLayerCompositor::attachRootLayer() to 
53592         RenderLayerCompositor:: updateBacking(). The problem with the old call 
53593         site is that there is no backing at that time, so we are trying to set 
53594         state on the root scrolling state node before we have enough 
53595         information to create that node and add it to the HashMap.
53596         * rendering/RenderLayerCompositor.cpp:
53597         (WebCore::RenderLayerCompositor::updateBacking):
53598         (WebCore::RenderLayerCompositor::attachRootLayer):
53599
53600 2012-10-09  Florin Malita  <fmalita@chromium.org>
53601
53602         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53603         https://bugs.webkit.org/show_bug.cgi?id=98683
53604
53605         Reviewed by Darin Adler.
53606
53607         Eric's notes:
53608
53609         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53610         They do basically the same thing, and the former is much more common (and less code). It's
53611         also safe, on the off-chance that we're using AtomicStrings which might otherwise go away.
53612
53613         No new tests, refactoring. 
53614
53615         * rendering/svg/SVGResources.cpp:
53616         (WebCore::clipperFilterMaskerTags):
53617         (WebCore::markerTags):
53618         (WebCore::fillAndStrokeTags):
53619         (WebCore::chainableResourceTags):
53620         (WebCore::SVGResources::buildCachedResources):
53621
53622 2012-10-09  Enrica Casucci  <enrica@apple.com>
53623
53624         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-background-canvas.html
53625         failing on the Mac after r130443
53626         https://bugs.webkit.org/show_bug.cgi?id=98545
53627
53628         Reviewed by Tony Chang.
53629
53630         Fixes a regression introduced with r130443.
53631         No new tests added since we already have tests covering this.
53632         Updated TestExpectations for chromium and mac.
53633
53634         * platform/graphics/FontFastPath.cpp:
53635         (WebCore::Font::glyphDataAndPageForCharacter): Text orientation should not be
53636         taken into account if the character is an ideograph or a symbol.
53637
53638 2012-10-09  Philip Rogers  <pdr@google.com>
53639
53640         Prevent animation when CSS attributeType is invalid.
53641         https://bugs.webkit.org/show_bug.cgi?id=94569
53642
53643         Reviewed by Dirk Schulze.
53644
53645         This patch changes hasValidAttributeType() to return false when
53646         we have attributeType=CSS with a non-CSS attribute name.
53647
53648         Previously we would animate non-CSS attributes when attributeType was
53649         CSS which resulted in crashes. To track this case, this patch catches
53650         changes to targetElement, attributeName, and attributeType and checks
53651         if an invalid combination is present. If invalid, hasInvalidCSSAttributeType()
53652         will return true causing hasValidAttributeType() to return false and prevent
53653         the animation from running.
53654
53655         Tests: svg/animations/animate-css-xml-attributeType.html
53656                svg/animations/invalid-css-attribute-crash-expected.svg
53657                svg/animations/invalid-css-attribute-crash.svg
53658
53659         * svg/SVGAnimateElement.cpp:
53660         (WebCore::SVGAnimateElement::hasValidAttributeType):
53661         (WebCore::SVGAnimateElement::targetElementWillChange):
53662         * svg/SVGAnimationElement.cpp:
53663         (WebCore::SVGAnimationElement::SVGAnimationElement):
53664         (WebCore::SVGAnimationElement::isSupportedAttribute):
53665
53666             This now supports the attributeType attribute which is stored in m_attributeType.
53667
53668         (WebCore::SVGAnimationElement::parseAttribute):
53669         (WebCore::SVGAnimationElement::setAttributeType):
53670
53671             Changes to attributeType, attributeName, and targetElement need to be tracked
53672             to determine when an invalid combination happens.
53673
53674         (WebCore::SVGAnimationElement::targetElementWillChange):
53675         (WebCore):
53676         (WebCore::SVGAnimationElement::setAttributeName):
53677         (WebCore::SVGAnimationElement::checkInvalidCSSAttributeType):
53678         * svg/SVGAnimationElement.h:
53679         (WebCore::SVGAnimationElement::attributeType):
53680         (SVGAnimationElement):
53681         (WebCore::SVGAnimationElement::hasInvalidCSSAttributeType):
53682         * svg/animation/SVGSMILElement.cpp:
53683         (WebCore::SVGSMILElement::targetElement):
53684         * svg/animation/SVGSMILElement.h:
53685         (SVGSMILElement):
53686
53687 2012-10-09  Pravin D  <pravind.2k4@gmail.com>
53688
53689         max-width property is does not overriding the width properties for css tables(display:table)
53690         https://bugs.webkit.org/show_bug.cgi?id=98455
53691
53692         Reviewed by Tony Chang.
53693
53694         The max-width property determines the maximum computed width an element can have. In case of css tables(display:table),
53695         the computed was not being limited by the max-width property. The current patch fixes this issue.
53696
53697         Test: fast/table/css-table-max-width.html
53698
53699         * rendering/RenderTable.cpp:
53700         (WebCore::RenderTable::updateLogicalWidth):
53701          Logic to compute the logical width of an element such that it does not exceed the max-width value.
53702          Also when both min-width and max-width are present, the following contraint is used to compute the logical width:
53703            1) min-width < Computed LogicalWidth < max-width, when min-width < max-width.
53704            2) Computed LogicalWidth = min-width, when min-width > max-width.
53705
53706 2012-10-09  Harald Alvestrand  <hta@google.com>
53707
53708         Change PeerConnection getStats function to single value local / remote
53709         elements in RTCStatsReport.
53710
53711         https://bugs.webkit.org/show_bug.cgi?id=98753
53712
53713         Reviewed by Adam Barth.
53714
53715         IDL of RTCStatsReport has been changed to make local/remote
53716         single valued RTCStatsElement attributes.
53717         The RTCStatsReport argument to index the list of RTCStatsElement
53718         in the local and remote functions has been removed.
53719
53720         Tested by modifications to RTCPeerConnection-stats.html
53721
53722         * Modules/mediastream/RTCStatsReport.cpp:
53723         (WebCore::RTCStatsReport::addElement):
53724         (WebCore::RTCStatsReport::addStatistic):
53725         * Modules/mediastream/RTCStatsReport.h:
53726         (WebCore::RTCStatsReport::local):
53727         (WebCore::RTCStatsReport::remote):
53728         (RTCStatsReport):
53729         * Modules/mediastream/RTCStatsReport.idl:
53730         * Modules/mediastream/RTCStatsResponse.cpp:
53731         (WebCore::RTCStatsResponse::addElement):
53732         (WebCore::RTCStatsResponse::addStatistic):
53733         * Modules/mediastream/RTCStatsResponse.h:
53734         (RTCStatsResponse):
53735         * platform/chromium/support/WebRTCStatsResponse.cpp:
53736         (WebKit::WebRTCStatsResponse::addElement):
53737         (WebKit::WebRTCStatsResponse::addStatistic):
53738         * platform/mediastream/RTCStatsResponseBase.h:
53739         (RTCStatsResponseBase):
53740
53741 2012-10-09  Antonio Gomes  <agomes@rim.com>
53742
53743         Get rid of FIXED_POSITION_CREATES_STACKING_CONTEXT in favor of Settings::fixedPositionCreatesStackingContext()
53744         https://bugs.webkit.org/show_bug.cgi?id=98756
53745
53746         Reviewed by Rob Buis.
53747
53748         No behavior change so no new tests.
53749
53750         * css/StyleResolver.cpp:
53751         (WebCore::StyleResolver::collectMatchingRulesForList):
53752
53753 2012-10-09  Simon Hausmann  <simon.hausmann@digia.com>
53754
53755         [Qt] Fix build with QtMultimedia
53756
53757         Reviewed by Tor Arne Vestbø.
53758
53759         This is an initial rudimentary port to of the QtMultimedia back-end,
53760         adapted to slight API changes and (more importantly) to the
53761         implementation of QAbstractVideoSurface instead of using
53762         QGraphicsVideoItem (which is in QtMultimediaWidgets).
53763
53764         * WebCore.pri:
53765         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
53766         (WebCore::MediaPlayerPrivateQt::supportsType):
53767         (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
53768         (WebCore::MediaPlayerPrivateQt::~MediaPlayerPrivateQt):
53769         (WebCore::MediaPlayerPrivateQt::didLoadingProgress):
53770         (WebCore::MediaPlayerPrivateQt::totalBytes):
53771         (WebCore::MediaPlayerPrivateQt::setVisible):
53772         (WebCore::MediaPlayerPrivateQt::surfaceFormatChanged):
53773         (WebCore::MediaPlayerPrivateQt::setSize):
53774         (WebCore::MediaPlayerPrivateQt::removeVideoItem):
53775         (WebCore::MediaPlayerPrivateQt::restoreVideoItem):
53776         (WebCore):
53777         (WebCore::MediaPlayerPrivateQt::start):
53778         (WebCore::MediaPlayerPrivateQt::supportedPixelFormats):
53779         (WebCore::MediaPlayerPrivateQt::present):
53780         (WebCore::MediaPlayerPrivateQt::paint):
53781         (WebCore::MediaPlayerPrivateQt::paintCurrentFrameInContext):
53782         (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
53783         * platform/graphics/qt/MediaPlayerPrivateQt.h:
53784         (MediaPlayerPrivateQt):
53785
53786 2012-10-09  Garrett Casto  <gcasto@chromium.org>
53787
53788         Allow users to specify a different hover image for TextFieldDecorationElement
53789         https://bugs.webkit.org/show_bug.cgi?id=93662
53790
53791         Reviewed by Kent Tamura.
53792
53793         * html/shadow/TextFieldDecorationElement.cpp:
53794         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
53795         (WebCore::TextFieldDecorationElement::updateImage):
53796         (WebCore::TextFieldDecorationElement::defaultEventHandler): Handles mouseover and mouseout events.
53797         (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Now returns true if the element is not disabled.
53798         (WebCore):
53799         * html/shadow/TextFieldDecorationElement.h:
53800         (TextFieldDecorator):
53801         (TextFieldDecorationElement):
53802
53803 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53804
53805         [Qt] Uploading images to Google+ using QtWebKit does not work.
53806         https://bugs.webkit.org/show_bug.cgi?id=72329
53807
53808         Reviewed by Jocelyn Turcotte.
53809
53810         Implement handling of Blob FormData, including its extensions to the File FormData.
53811
53812         * platform/network/qt/QNetworkReplyHandler.cpp:
53813         (WebCore::FormDataIODevice::FormDataIODevice):
53814         (WebCore::appendBlobResolved):
53815         (WebCore::FormDataIODevice::prepareFormElements):
53816         (WebCore::FormDataIODevice::computeSize):
53817         (WebCore::FormDataIODevice::moveToNextElement):
53818         (WebCore::FormDataIODevice::prepareCurrentElement):
53819         (WebCore::FormDataIODevice::openFileForCurrentElement):
53820         (WebCore::FormDataIODevice::readData):
53821         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53822         * platform/network/qt/QNetworkReplyHandler.h:
53823         (FormDataIODevice):
53824
53825 2012-10-09  Arpita Bahuguna  <arpitabahuguna@gmail.com>
53826
53827         Text decorations specified on the containing block are not properly applied when ::first-line is present.
53828         https://bugs.webkit.org/show_bug.cgi?id=93829
53829
53830         Reviewed by Abhishek Arya.
53831
53832         If a container's style and its pseudo :first-line style have unique
53833         text-decorations specified for them, only the :first-line text-decoarations
53834         were being applied.
53835
53836         The uploaded patch intends to first compute the text decoration colors
53837         for the containing box, followed by that of the first-line (if specified).
53838
53839         This thus avoids the condition wherein our containing box's text-decorations
53840         were not getting applied at all since initially we were only computing
53841         for the first-line style.
53842
53843         Test: fast/css/text-decorations-on-first-line-and-containing-block.html
53844
53845         * rendering/InlineTextBox.cpp:
53846         (WebCore::InlineTextBox::paintDecoration):
53847         getTextDecorationColors() is first called for computing the containing box's
53848         text-decoration values and then for first-line style's text-decorations,
53849         if specified.
53850
53851 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
53852
53853         Unreviewed, rolling out r130746.
53854         http://trac.webkit.org/changeset/130746
53855         https://bugs.webkit.org/show_bug.cgi?id=98749
53856
53857         It made 45 tests crash on Qt (Requested by Ossy on #webkit).
53858
53859         * platform/network/qt/QNetworkReplyHandler.cpp:
53860         (WebCore::FormDataIODevice::FormDataIODevice):
53861         (WebCore::FormDataIODevice::computeSize):
53862         (WebCore::FormDataIODevice::moveToNextElement):
53863         (WebCore::FormDataIODevice::openFileForCurrentElement):
53864         (WebCore::FormDataIODevice::readData):
53865         (WebCore::QNetworkReplyHandler::getIODevice):
53866         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53867         * platform/network/qt/QNetworkReplyHandler.h:
53868         (QNetworkReplyHandler):
53869         (FormDataIODevice):
53870
53871 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53872
53873         [Qt] Uploading images to Google+ using QtWebKit does not work.
53874         https://bugs.webkit.org/show_bug.cgi?id=72329
53875
53876         Reviewed by Jocelyn Turcotte.
53877
53878         Implement handling of Blob FormData, including its extensions to the File FormData.
53879
53880         * platform/network/qt/QNetworkReplyHandler.cpp:
53881         (WebCore::FormDataIODevice::FormDataIODevice):
53882         (WebCore::FormDataIODevice::computeSize):
53883         (WebCore::FormDataIODevice::moveToNextElement):
53884         (WebCore::FormDataIODevice::prepareCurrentElement):
53885         (WebCore::FormDataIODevice::openFileForCurrentElement):
53886         (WebCore::FormDataIODevice::readData):
53887         (WebCore::QNetworkReplyHandler::getIODevice):
53888         (WebCore::QNetworkReplyHandler::handleBlobDataIfAny):
53889         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53890         * platform/network/qt/QNetworkReplyHandler.h:
53891         (QNetworkReplyHandler):
53892         (FormDataIODevice):
53893
53894 2012-10-09  Keishi Hattori  <keishi@webkit.org>
53895
53896         Page popup should be smarter about its layout
53897         https://bugs.webkit.org/show_bug.cgi?id=98499
53898
53899         Reviewed by Kent Tamura.
53900
53901         This change fixes these two issues:
53902         1. Page popup should reposition itself so it won't get clipped by screen(Win/Linux) or rootview(Mac) bounds.
53903         2. Page popup should resize itself when it doesn't fit.
53904
53905         Test: platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html
53906
53907         * Resources/pagepopups/calendarPicker.js:
53908         (initialize): We need to set global.params at the beginning because we need it for resizeWindow().
53909         * Resources/pagepopups/colorSuggestionPicker.js: Added global.params.
53910         (handleMessage):
53911         (initialize):
53912         (handleArgumentsTimeout):
53913         * Resources/pagepopups/pickerCommon.js:
53914         (Rect): Represents an axis aligned rectangle.
53915         (Rect.prototype.get maxX): Gets position of right edge.
53916         (Rect.prototype.get maxY): Gets position of bottom edge.
53917         (Rect.prototype.toString):
53918         (Rect.intersection): Returns the intersection of two rectangles.
53919         (resizeWindow): Resize window to a certain size. Don't allow shrinking.
53920         (adjustWindowRect): Calculates the best position and size for the popup.
53921         (_adjustWindowRectVertically):
53922         (_adjustWindowRectHorizontally):
53923         (setWindowRect): Sets the position and size of the popup to the given rect.
53924         * Resources/pagepopups/suggestionPicker.css:
53925         (.suggestion-list): Don't show horizontal scroll bar.
53926         * Resources/pagepopups/suggestionPicker.js:
53927         (SuggestionPicker.prototype._fixWindowSize): 
53928         * page/PagePopupClient.cpp:
53929         (WebCore::PagePopupClient::addProperty): For adding an int to JSON.
53930         (WebCore::PagePopupClient::addProperty): For adding an IntRect to JSON.
53931         (WebCore):
53932         * page/PagePopupClient.h:
53933         (PagePopupClient):
53934
53935 2012-10-09  Hajime Morrita  <morrita@google.com>
53936
53937         [Refactoring] Scoped Style related code should have its own class.
53938         https://bugs.webkit.org/show_bug.cgi?id=98244
53939
53940         Reviewed by Dimitri Glazkov.
53941
53942         This change extracts StyleScopeResolver from StyleResolver to clarify
53943         the responsibility of the style scope handling. Now we can easily see
53944         where the style scoping needs to be involed.
53945
53946         Coming Shadow DOM related change like @host rules will fit within this class.
53947
53948         No new tests, refactoring.
53949
53950         * CMakeLists.txt:
53951         * GNUmakefile.list.am:
53952         * Target.pri:
53953         * WebCore.gypi:
53954         * WebCore.xcodeproj/project.pbxproj:
53955         * css/CSSAllInOne.cpp:
53956         * css/StyleResolver.cpp:
53957         (WebCore::StyleResolver::StyleResolver):
53958         (WebCore::StyleResolver::collectFeatures):
53959         (WebCore::StyleResolver::appendAuthorStylesheets):
53960         (WebCore::StyleResolver::pushParentElement):
53961         (WebCore::StyleResolver::popParentElement):
53962         (WebCore::StyleResolver::pushParentShadowRoot):
53963         (WebCore::StyleResolver::popParentShadowRoot):
53964         (WebCore::StyleResolver::matchScopedAuthorRules):
53965         (WebCore::StyleResolver::collectMatchingRulesForList):
53966         (WebCore::StyleResolver::reportMemoryUsage):
53967         * css/StyleResolver.h:
53968         (StyleResolver):
53969         * css/StyleScopeResolver.cpp: Added.
53970         (WebCore):
53971         (WebCore::StyleScopeResolver::StyleScopeResolver):
53972         (WebCore::StyleScopeResolver::~StyleScopeResolver):
53973         (WebCore::StyleScopeResolver::scopeFor):
53974         (WebCore::StyleScopeResolver::ruleSetFor):
53975         (WebCore::StyleScopeResolver::ensureRuleSetFor):
53976         (WebCore::StyleScopeResolver::setupStack):
53977         (WebCore::StyleScopeResolver::push):
53978         (WebCore::StyleScopeResolver::pop):
53979         (WebCore::StyleScopeResolver::collectFeaturesTo):
53980         (WebCore::StyleScopeResolver::reportMemoryUsage):
53981         * css/StyleScopeResolver.h: Added.
53982         (WebCore):
53983         (StyleScopeResolver):
53984         (WebCore::StyleScopeResolver::StackFrame::StackFrame):
53985         (StackFrame):
53986         (WebCore::StyleScopeResolver::hasScopedStyles):
53987         (WebCore::StyleScopeResolver::stackSize):
53988         (WebCore::StyleScopeResolver::stackFrameAt):
53989         (WebCore::StyleScopeResolver::matchesStyleBounds):
53990         (WebCore::StyleScopeResolver::stackIsConsistent):
53991         (WebCore::StyleScopeResolver::ensureStackConsistency):
53992         (WebCore::StyleScopeResolver::scopeFor):
53993         (WebCore::StyleScopeResolver::ensureRuleSetFor):
53994
53995 2012-10-08  Simon Hausmann  <simon.hausmann@digia.com>
53996
53997         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
53998         https://bugs.webkit.org/show_bug.cgi?id=98268
53999
54000         Reviewed by Tor Arne Vestbø.
54001
54002         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
54003
54004         QStyleFacade is a pure interface that lives in WebCore/platform/qt
54005         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
54006         minimal interface of what we need to draw with QStyle as well as basic
54007         hit testing and metric retrieval. It also provides a
54008         QStyleFacadeOption class that aggregates common meta-data for
54009         rendering primitives, such as direction, rectangle, state (sunken,
54010         enabled, etc.) or palette. It also provides some more slider/scrollbar
54011         specific fields in a slider sub-structure.
54012
54013         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
54014         them with state information from render objects, before calling straight to QStyle. Most of the common code
54015         was encapsulated in StylePainterQStyle.
54016
54017         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
54018         StylePainterQStyle to populate state into QStyleFacadeOption before
54019         calling into QStyleFacade.
54020
54021         The style facade is then implemented by QStyleFacadeImp, which extracts
54022         meta-data from QStyleFacadeOption arguments, populates style
54023         primitive specific QStyleOption objects and then calls on QStyle.
54024
54025         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
54026         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
54027         separate QtWebKitWidgets library in the future and therefore cannot use
54028         any WebCore types.
54029
54030         * Target.pri:
54031         * platform/qt/QStyleFacade.cpp: Added.
54032         (WebCore):
54033         (WebCore::QStyleFacade::styleForPage):
54034         * platform/qt/QStyleFacade.h: Added.
54035         (WebCore):
54036         (QStyleFacade):
54037         (WebCore::QStyleFacade::~QStyleFacade):
54038         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
54039         (QStyleFacadeOption):
54040         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
54041         (WebCore):
54042         (WebCore::RenderThemeQStyle::getStylePainter):
54043         (WebCore::StylePainterQStyle::StylePainterQStyle):
54044         (WebCore::StylePainterQStyle::init):
54045         (WebCore::RenderThemeQStyle::create):
54046         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
54047         (WebCore::RenderThemeQStyle::styleFactory):
54048         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
54049         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
54050         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
54051         (WebCore::RenderThemeQStyle::inflateButtonRect):
54052         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
54053         (WebCore::RenderThemeQStyle::adjustButtonStyle):
54054         (WebCore::RenderThemeQStyle::setButtonPadding):
54055         (WebCore::RenderThemeQStyle::paintButton):
54056         (WebCore::RenderThemeQStyle::paintTextField):
54057         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
54058         (WebCore::RenderThemeQStyle::paintTextArea):
54059         (WebCore::RenderThemeQStyle::setPopupPadding):
54060         (WebCore::RenderThemeQStyle::colorPalette):
54061         (WebCore::RenderThemeQStyle::paintMenuList):
54062         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
54063         (WebCore::RenderThemeQStyle::paintMenuListButton):
54064         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
54065         (WebCore::RenderThemeQStyle::paintProgressBar):
54066         (WebCore::RenderThemeQStyle::paintSliderTrack):
54067         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
54068         (WebCore::RenderThemeQStyle::paintSliderThumb):
54069         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
54070         (WebCore::RenderThemeQStyle::paintSearchField):
54071         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
54072         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
54073         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
54074         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
54075         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
54076         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
54077         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
54078         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
54079         (WebCore):
54080         (RenderThemeQStyle):
54081         (WebCore::RenderThemeQStyle::qStyle):
54082         (StylePainterQStyle):
54083         (WebCore::StylePainterQStyle::isValid):
54084         (WebCore::StylePainterQStyle::paintButton):
54085         (WebCore::StylePainterQStyle::paintTextField):
54086         (WebCore::StylePainterQStyle::paintComboBox):
54087         (WebCore::StylePainterQStyle::paintComboBoxArrow):
54088         (WebCore::StylePainterQStyle::paintSliderTrack):
54089         (WebCore::StylePainterQStyle::paintSliderThumb):
54090         (WebCore::StylePainterQStyle::paintInnerSpinButton):
54091         (WebCore::StylePainterQStyle::paintProgressBar):
54092         (WebCore::StylePainterQStyle::paintScrollCorner):
54093         (WebCore::StylePainterQStyle::paintScrollBar):
54094         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
54095         (WebCore):
54096         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
54097         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
54098         (WebCore::scPart):
54099         (WebCore::scrollbarPart):
54100         (WebCore::initSliderStyleOption):
54101         (WebCore::ScrollbarThemeQStyle::paint):
54102         (WebCore::ScrollbarThemeQStyle::hitTest):
54103         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
54104         (WebCore::ScrollbarThemeQStyle::invalidatePart):
54105         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
54106         (WebCore::ScrollbarThemeQStyle::thumbPosition):
54107         (WebCore::ScrollbarThemeQStyle::thumbLength):
54108         (WebCore::ScrollbarThemeQStyle::trackPosition):
54109         (WebCore::ScrollbarThemeQStyle::trackLength):
54110         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
54111         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
54112         (WebCore):
54113         (ScrollbarThemeQStyle):
54114         (WebCore::ScrollbarThemeQStyle::qStyle):
54115
54116 2012-10-08  Kiran Muppala  <cmuppala@apple.com>
54117
54118         Throttle DOM timers on hidden pages.
54119         https://bugs.webkit.org/show_bug.cgi?id=98474
54120
54121         Reviewed by Maciej Stachowiak.
54122
54123         When the visibility of a page changes to "hidden", all it's DOM timers are
54124         updated to align their fire times on one second intervals.  This limits the
54125         number of CPU wakes due to a hidden pages to one per second.
54126
54127         Test: fast/dom/timer-throttling-hidden-page.html
54128
54129         * Configurations/FeatureDefines.xcconfig:
54130         * WebCore.exp.in:
54131         * dom/Document.cpp:
54132         (WebCore):
54133         (WebCore::Document::timerAlignmentInterval):
54134         Read Page::timerAlignmentInterval and pass it along to DOMTimer.
54135
54136         * dom/Document.h:
54137         (Document):
54138         * dom/ScriptExecutionContext.cpp:
54139         (WebCore):
54140         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
54141         Scan through self DOM Timers and tell them to recompute their fire
54142         time based on the updated alignment interval.
54143         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
54144
54145         * dom/ScriptExecutionContext.h:
54146         (ScriptExecutionContext):
54147         * page/DOMTimer.cpp:
54148         (WebCore):
54149         (WebCore::DOMTimer::alignedFireTime):
54150         If the document's alignment interval is non zero, round up the fire
54151         time to the next multiple of alignment interval.
54152
54153         * page/DOMTimer.h:
54154         (DOMTimer):
54155         (WebCore::DOMTimer::defaultTimerAlignmentInterval):
54156         (WebCore::DOMTimer::setDefaultTimerAlignmentInterval):
54157         * page/Page.cpp:
54158         (WebCore::Page::Page):
54159         (WebCore):
54160         (WebCore::Page::setTimerAlignmentInterval):
54161         (WebCore::Page::timerAlignmentInterval):
54162         (WebCore::Page::setVisibilityState):
54163         Getter and Setter for alignment interval.  Expose setVisibilityState
54164         if either PAGE_VISIBILITY_API is enabled or if HIDDEN_PAGE_DOM_TIMER_REDUCTION
54165         is enabled.
54166
54167         * page/Page.h:
54168         (Page):
54169         * page/Settings.cpp:
54170         (WebCore):
54171         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval):
54172         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
54173         (WebCore::Settings::setDOMTimerAlignmentInterval):
54174         (WebCore::Settings::domTimerAlignmentInterval):
54175         * page/Settings.h:
54176         (Settings):
54177         * page/SuspendableTimer.cpp:
54178         (WebCore::SuspendableTimer::suspend):
54179         Save the time remaining to the original unaligned fire time, so that
54180         on resuming, the fire time will be correctly aligned using the latest
54181         alignment interval.
54182
54183         * platform/ThreadTimers.cpp:
54184         (WebCore::ThreadTimers::sharedTimerFiredInternal):
54185         Clear m_unalignedNextFireTime along with m_nextFireTime to keep
54186         them always in sync.
54187
54188         * platform/Timer.cpp:
54189         (WebCore::TimerBase::TimerBase):
54190         (WebCore::TimerBase::setNextFireTime):
54191         Save the requested fire time in m_unalignedNextFireTime and
54192         set m_nextFireTime to the aligned value.  The unalinged value
54193         is used to recompute fire time if alignment interval changes.
54194         (WebCore):
54195         (WebCore::TimerBase::didChangeAlignmentInterval):
54196         Recompute next fire time from m_unalignedNextFireTime.
54197         (WebCore::TimerBase::nextUnalignedFireInterval):
54198         Interval from current time to the original unaligned fire time.
54199
54200         * platform/Timer.h:
54201         (TimerBase):
54202         (WebCore::TimerBase::alignedFireTime):
54203
54204 2012-10-08  Andreas Kling  <kling@webkit.org>
54205
54206         1.18MB below RenderTableSection::setCachedCollapsedBorderValue() on Membuster3.
54207         <http://webkit.org/b/98670>
54208         <rdar://problem/12454276>
54209
54210         Reviewed by Anders Carlsson.
54211
54212         Refactor CollapsedBorderValue to only store the bits and pieces from the BorderValue
54213         that it actually needs. Packed the whole thing into 64 bits.
54214
54215         Reduces memory consumption by 547kB on Membuster3.
54216
54217         * rendering/RenderTableCell.cpp:
54218
54219             Add compile-time size assertion for CollapsedBorderValue.
54220
54221         * rendering/style/CollapsedBorderValue.h:
54222         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
54223         (WebCore::CollapsedBorderValue::width):
54224         (WebCore::CollapsedBorderValue::style):
54225         (WebCore::CollapsedBorderValue::color):
54226         (WebCore::CollapsedBorderValue::isTransparent):
54227         (WebCore::CollapsedBorderValue::precedence):
54228         (WebCore::CollapsedBorderValue::isSameIgnoringColor):
54229         (CollapsedBorderValue):
54230
54231             Apply shrinkwrap to CollapsedBorderValue. Removed specialized copy constructor since
54232             the class only has primitive members now.
54233
54234 2012-10-08  Yoshifumi Inoue  <yosin@chromium.org>
54235
54236         HTMLSelectElement::typeAheadFind depends on implementation dependent behavior
54237         https://bugs.webkit.org/show_bug.cgi?id=98710
54238
54239         Reviewed by Kent Tamura.
54240
54241         This patch gets rid of C/C++ implementation dependent behavior from
54242         HTMLSelectElement::typeAheadFind() which does modulo operation with
54243         a negative operand.
54244
54245         HTMLSelectElement::typeAheadFind() contains expression with modulo
54246         operator and dividend can be -1 when the "select" element without
54247         "option" element but "optgroup" element.
54248
54249         Test: fast/forms/select/select-typeahead-crash.html
54250
54251         * html/HTMLSelectElement.cpp:
54252         (WebCore::HTMLSelectElement::typeAheadFind): Changed to do modulo
54253         operation with both operands are non-negative.
54254
54255 2012-10-08  Kent Tamura  <tkent@chromium.org>
54256
54257         Take account of overflowing values for width calculation of a year sub-field
54258         https://bugs.webkit.org/show_bug.cgi?id=98506
54259
54260         Reviewed by Eric Seidel.
54261
54262         When we decide the width of a year field of an input[type=date]
54263         with the multiple fields UI, we need to take account of the
54264         current value width because we allow to set overflowing values to
54265         the input[type=date].
54266
54267         This change affects only platforms with INPUT_TYPE_DATE &&
54268         INPUT_MULTIPLE_FIELDS_UI.
54269
54270         Test: fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value.html
54271
54272         * html/shadow/DateTimeNumericFieldElement.cpp:
54273         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
54274         Take account of the current value width.
54275
54276 2012-10-08  Tony Chang  <tony@chromium.org>
54277
54278         image not displayed in flexbox
54279         https://bugs.webkit.org/show_bug.cgi?id=98611
54280
54281         Reviewed by Ojan Vafai.
54282
54283         Flexbox will override the width of a child and when stretching, will override the height of the child.
54284         When this happens, when an image loads, it checks to see if it's width/height has
54285         changed, and if so, does a relayout.  The overridden width/height was preventing this
54286         relayout from happening.
54287
54288         To fix, we clear all the override sizes when we're done laying out the flex children.
54289
54290         Test: css3/flexbox/relayout-image-load.html
54291
54292         * rendering/RenderFlexibleBox.cpp:
54293         (WebCore::RenderFlexibleBox::layoutBlock): Clear child override sizes.
54294         (WebCore::RenderFlexibleBox::clearChildOverrideSizes):
54295         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): No longer need to clear the override size
54296         here since it should have already been cleared.
54297         * rendering/RenderFlexibleBox.h:
54298
54299 2012-10-08  Andreas Kling  <kling@webkit.org>
54300
54301         REGRESSION(r130643): editing/pasteboard/data-transfer-item is failing on chromium.
54302         <http://webkit.org/b/98686>
54303
54304         Reviewed by Tony Chang.
54305
54306         Change ChromiumDataObject::createFromPasteboard() to use a ListHashSet instead of a HashSet so that
54307         item order is preserved.
54308
54309         * platform/chromium/ChromiumDataObject.cpp:
54310         (WebCore::ChromiumDataObject::createFromPasteboard):
54311
54312 2012-10-08  Eric Seidel  <eric@webkit.org>
54313
54314         Inline logicalHeightForRowSizing to shave another 2-3% off robohornet's resizecol.html
54315         https://bugs.webkit.org/show_bug.cgi?id=98703
54316
54317         Reviewed by Emil A Eklund.
54318
54319         This is very small potatoes.  There are much bigger wins for table layout yet, but
54320         this was an easy win.
54321
54322         This function should probably be converted to use int's only, as table cells are pixel-sized
54323         according to our subpixel-experts.
54324
54325         Also, I suspect there should be ways to early return with less-math in the common cases, but
54326         I've saved such for a later patch.
54327
54328         Note that I changed from using paddingBefore/paddingAfter (which include the instrinsic padding)
54329         to calling computedCSSPaddingBefore/computedCSSPaddingAfter directly as well.
54330
54331         This single function is about 11% of total time for robohornet's resizecol.
54332
54333         * rendering/RenderTableCell.cpp:
54334         * rendering/RenderTableCell.h:
54335         (WebCore::RenderTableCell::logicalHeightForRowSizing):
54336
54337 2012-10-08  Alec Flett  <alecflett@chromium.org>
54338
54339         IndexedDB: remove autogenerated objectStore/index id code
54340         https://bugs.webkit.org/show_bug.cgi?id=98085
54341
54342         Reviewed by Tony Chang.
54343
54344         Remove support for backend-generated objectstore and index
54345         ids. The frontend objects now manage that state during
54346         versionchange transactions. The IDBDatabaseBackendInterface and
54347         IDBObjectStoreBackendInterface methods will go away when
54348         https://bugs.webkit.org/show_bug.cgi?id=98682 lands.
54349
54350         No new tests as this is part of a refactoring, existing indexeddb
54351         tests cover correctness.
54352
54353         * Modules/indexeddb/IDBBackingStore.h:
54354         (IDBBackingStore):
54355         * Modules/indexeddb/IDBDatabase.cpp:
54356         (WebCore::IDBDatabase::createObjectStore):
54357         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
54358         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
54359         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
54360         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
54361         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
54362         (IDBDatabaseBackendInterface):
54363         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
54364         (WebCore::IDBLevelDBBackingStore::createObjectStore):
54365         (WebCore::setMaxIndexId):
54366         (WebCore::IDBLevelDBBackingStore::createIndex):
54367         * Modules/indexeddb/IDBLevelDBBackingStore.h:
54368         (IDBLevelDBBackingStore):
54369         * Modules/indexeddb/IDBObjectStore.cpp:
54370         (WebCore::IDBObjectStore::createIndex):
54371         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
54372         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
54373         (WebCore::IDBObjectStoreBackendImpl::createIndex):
54374         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
54375         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
54376
54377 2012-10-08  Jaehun Lim  <ljaehun.lim@samsung.com>
54378
54379         [CAIRO] Adjust the source rect size when IMAGE_DECODER_DOWN_SAMPLING is enabled
54380         https://bugs.webkit.org/show_bug.cgi?id=98630
54381
54382         Reviewed by Martin Robinson.
54383
54384         IMAGE_DECODER_DOWN_SAMPLING scales down the size of the big image.
54385         CAIRO needs to adjust the source size to the scaled value.
54386
54387         No new tests.
54388
54389         * platform/graphics/cairo/BitmapImageCairo.cpp:
54390         (WebCore::BitmapImage::draw):
54391
54392 2012-10-08  Adam Barth  <abarth@webkit.org>
54393
54394         Remove unused features of BlobBuilder
54395         https://bugs.webkit.org/show_bug.cgi?id=98331
54396
54397         Reviewed by Eric Seidel.
54398
54399         Now that we don't expose BlobBuilder as a web platform API, we can
54400         strip down the class to handle only those cases that are needed by the
54401         Blob constructor.
54402
54403         I've also renamed the class from WebKitBlobBuilder to BlobBuilder and
54404         made it stack allocated rather than RefCounted. A future patch will
54405         actually move the files around. (I didn't want to mix moving code
54406         around with modifying the code.)
54407
54408         * bindings/js/JSBlobCustom.cpp:
54409         (WebCore::JSBlobConstructor::constructJSBlob):
54410         * bindings/v8/custom/V8BlobCustom.cpp:
54411         (WebCore::V8Blob::constructorCallback):
54412         * fileapi/WebKitBlobBuilder.cpp:
54413         (WebCore):
54414         (WebCore::BlobBuilder::BlobBuilder):
54415         (WebCore::BlobBuilder::getBuffer):
54416         (WebCore::BlobBuilder::append):
54417         (WebCore::BlobBuilder::appendBytesData):
54418         (WebCore::BlobBuilder::getBlob):
54419         * fileapi/WebKitBlobBuilder.h:
54420         (WebCore):
54421         (BlobBuilder):
54422         * page/FeatureObserver.h:
54423
54424 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
54425
54426         Try to fix the debug build after r130699
54427
54428         Move the assignment of the ResourceHandleInternal local to before
54429         the include statement where it is used.
54430
54431         * platform/network/soup/ResourceHandleSoup.cpp:
54432         (WebCore::createSoupMessageForHandleAndRequest):
54433
54434 2012-10-08  Nate Chapin  <japhet@chromium.org>
54435
54436         Post-r130226 Cleanup: Comment a complicated if statement and make it a helper.
54437         https://bugs.webkit.org/show_bug.cgi?id=98463
54438
54439         Reviewed by Eric Seidel.
54440
54441         No new tests, refactor only.
54442
54443         * rendering/RenderLayer.cpp:
54444         (WebCore::frameElementAndViewPermitScroll):
54445         (WebCore::RenderLayer::scrollRectToVisible):
54446
54447 2012-10-06  Martin Robinson  <mrobinson@igalia.com>
54448
54449         [Soup] Simplify the way that requests are started
54450         https://bugs.webkit.org/show_bug.cgi?id=98532
54451
54452         Reviewed by Gustavo Noronha Silva.
54453
54454         Simplify the creation of the libsoup request and message when kicking off
54455         requests, by elminating a bit of duplicate code.
54456
54457         No new tests. This should not change any behavior.
54458
54459         * platform/network/ResourceHandle.h:
54460         (ResourceHandle):
54461         * platform/network/soup/ResourceHandleSoup.cpp:
54462         (WebCore):
54463         (WebCore::ResourceHandleInternal::soupSession): Ensure the session
54464         is initialized when passing it to the caller.
54465         (WebCore::createSoupMessageForHandleAndRequest): Added this helper which
54466         takes care of creating the SoupMessage for HTTP/HTTPS requests.
54467         (WebCore::createSoupRequestAndMessageForHandle): Collapsed the HTTP and
54468         non-HTTP request creation into this helper.
54469         (WebCore::ResourceHandle::start): Call the new helper now and then sendPendingRequest.
54470         (WebCore::ResourceHandle::sendPendingRequest): Instead of having special
54471         helpers to create and send the request, duplicating the logic for sending it
54472         across the file, add this method which can be used in both cases.
54473         (WebCore::waitingToSendRequest): Reworked the hasBeenSent method to answer
54474         the question of whether or not the request is ready to be sent, but is unsent.
54475         (WebCore::ResourceHandle::platformSetDefersLoading): Use the new helper.
54476         * platform/network/soup/ResourceRequest.h:
54477         (ResourceRequest): Added a new method for getting the URL string for soup.
54478         * platform/network/soup/ResourceRequestSoup.cpp:
54479         (WebCore::ResourceRequest::urlStringForSoup): Added.
54480
54481 2012-10-08  Eric Seidel  <eric@webkit.org>
54482
54483         Make no-column table-layout cases a little faster with inlining
54484         https://bugs.webkit.org/show_bug.cgi?id=98566
54485
54486         Reviewed by Julien Chaffraix.
54487
54488         This change is almost not worth it at only a couple percent boost on
54489         http://www.robohornet.org/tests/resizecol.html
54490         However, I think the logicalWidthFromTableColumn split it kinda nice
54491         so I've decided to post it anyway.
54492
54493         * rendering/RenderTable.cpp:
54494         (WebCore::RenderTable::slowColElement):
54495         * rendering/RenderTable.h:
54496         (WebCore::RenderTable::colElement):
54497         (RenderTable):
54498         * rendering/RenderTableCell.cpp:
54499         (WebCore::RenderTableCell::logicalWidthFromTableColumn):
54500         * rendering/RenderTableCell.h:
54501         (WebCore::RenderTableCell::styleOrColLogicalWidth):
54502         (RenderTableCell):
54503
54504 2012-10-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
54505
54506         Rename RenderObject::firstLineStyleSlowCase() to a more appropriate cachedFirstLineStyle()
54507         https://bugs.webkit.org/show_bug.cgi?id=98631
54508
54509         Reviewed by Eric Seidel.
54510
54511         Renaming firstLineStyleSlowCase() to cachedFirstLineStyle().
54512
54513         The current name is confusing since the function actually gets the
54514         the cached first-line styles.
54515         It also makes the name more descriptive of its functionality
54516         and in accordance with RenderObject::uncachedFirstLineStyle().
54517
54518         No new tests required for this change since no change in behavior is expected.
54519
54520         * rendering/RenderObject.cpp:
54521         (WebCore::RenderObject::cachedFirstLineStyle):
54522         * rendering/RenderObject.h:
54523         (WebCore::RenderObject::firstLineStyle):
54524         (RenderObject):
54525         Renamed RenderObject::firstLineStyleSlowCase() to cachedFirstLineStyle()
54526         and made the associated changes.
54527
54528 2012-10-08  Sami Kyostila  <skyostil@chromium.org>
54529
54530         Some non-scrollable elements are added to non-fast-scrollable region
54531         https://bugs.webkit.org/show_bug.cgi?id=97927
54532
54533         Reviewed by James Robinson.
54534
54535         Only RenderLayers that can actually be scrolled should be added to the
54536         ScrollingCoordinator's non-fast scrollable region. Otherwise we may
54537         needlessly fall back to main thread scrolling.
54538
54539         Test: ScrollingCoordinatorChromiumTest.clippedBodyTest
54540
54541         * rendering/RenderLayer.cpp:
54542         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
54543         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
54544
54545 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54546
54547         Move layerTreeAsText to window.internals
54548         https://bugs.webkit.org/show_bug.cgi?id=98690
54549
54550         Reviewed by James Robinson.
54551
54552         Add window.internals.layerTreeAsText(document), and change the tests to use it.
54553         I'll remove testRunner.layerTreeAsText() in a later patch.
54554
54555         * testing/Internals.cpp:
54556         (WebCore::Internals::layerTreeAsText):
54557         * testing/Internals.h:
54558         (Internals):
54559         * testing/Internals.idl:
54560
54561 2012-10-08  Jon Lee  <jonlee@apple.com>
54562
54563         Add render object that paints plugin snapshots
54564         https://bugs.webkit.org/show_bug.cgi?id=98322
54565         <rdar://problem/12426546>
54566
54567         Reviewed by Simon Fraser.
54568
54569         First, teach plugins to maintain a set of states when plugin snapshotting is enabled.
54570
54571         Second, a new RenderSnapshottedPlugIn class is a RenderEmbeddedObject that knows how to paint
54572         snapshots when the plugin is not visibly playing. It maintains a RenderImageResource to
54573         the generated poster image.
54574
54575         * html/HTMLPlugInElement.cpp:
54576         (WebCore::HTMLPlugInElement::HTMLPlugInElement): By default all plugins play on load.
54577         * html/HTMLPlugInElement.h: Move the inheritance of ImageLoaderClientBase down to
54578         HTMLPlugInImageElement, since that is the class that actually deals with image-based plugins.
54579         (WebCore::HTMLPlugInElement::displayState): Add bit for display state.
54580         (WebCore::HTMLPlugInElement::setDisplayState):
54581         (WebCore::HTMLPlugInElement::updateSnapshot):
54582
54583         * html/HTMLPlugInImageElement.cpp:
54584         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): If plugin snapshotting is
54585         enabled, plugin state is set to wait for a poster image.
54586         (WebCore::HTMLPlugInImageElement::createRenderer): Create RenderSnapshottedPlugIn if
54587         plugin snapshotting is enabled.
54588         (WebCore::HTMLPlugInImageElement::updateSnapshot): Once a snapshot is available, update the
54589         renderer and set its state to wait for user input to start the plugin.
54590         * html/HTMLPlugInImageElement.h:
54591         (HTMLPlugInImageElement):
54592
54593         * rendering/RenderObject.h:
54594         (WebCore::RenderObject::isSnapshottedPlugIn): Add new function to identify
54595         RenderSnapshottedPlugIn instances. Since RenderSnapshottedPlugIn inherits from
54596         RenderEmbeddedObject, isEmbeddedObject() still returns true.
54597         * rendering/RenderEmbeddedObject.h:
54598         (RenderEmbeddedObject): Elevate a few virtual methods to protected for
54599         RenderSnapshottedPlugIn to override.
54600
54601         * rendering/RenderSnapshottedPlugIn.cpp: Added.
54602         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize snapshot
54603         resource.
54604         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Shut down snapshot
54605         image resource to remove the renderer as a client, and remove image from memory cache.
54606         (WebCore::RenderSnapshottedPlugIn::plugInImageElement): Convenience function to get the
54607         HTML element.
54608         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Cache the snapshot, and repaint.
54609         (WebCore::RenderSnapshottedPlugIn::paint): If the plugin is not playing, paint like a
54610         RenderImage does.
54611         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the snapshot and overlay if the
54612         plugin is not playing.
54613         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot): Inspired by
54614         RenderImage::paintReplaced() and RenderImage::paintIntoRect().
54615         * rendering/RenderSnapshottedPlugIn.h: Added.
54616         (WebCore::RenderSnapshottedPlugIn::isSnapshottedPlugin): Returns true.
54617
54618         * rendering/RenderTheme.h: Add a function that paints the overlay on top of the snapshot.
54619         * rendering/RenderThemeMac.h:
54620         * rendering/RenderThemeMac.mm:
54621         (WebCore::RenderThemeMac::paintPlugInSnapshotOverlay):
54622
54623         * WebCore.xcodeproj/project.pbxproj: Add new RenderSnapshottedPlugIn class.
54624         * CMakeLists.txt: Ditto.
54625         * GNUmakefile.list.am: Ditto.
54626         * Target.pri: Ditto.
54627         * WebCore.gypi: Ditto.
54628         * WebCore.vcproj/WebCore.vcproj: Ditto.
54629         * rendering/RenderingAllInOne.cpp: Ditto.
54630
54631 2012-10-08  Hans Muller  <hmuller@adobe.com>
54632
54633         [CSS Exclusions] Add support for polygonal shapes
54634         https://bugs.webkit.org/show_bug.cgi?id=96811
54635
54636         Reviewed by Dirk Schulze.
54637
54638         Initial version of the layout support for polygonal exclusion shapes: the ExclusionPolygon class.
54639         Supports the public ExclusionShape operations using the algorithm described here:
54640         http://hansmuller-webkit.blogspot.com/2012/06/horizontal-box-polygon-intersection-for.html.
54641         Although both the "included" and "excluded" operations are supported, only the former is
54642         used, since only shape-inside is supported at the moment.
54643
54644         The ExclusionPolygon class stores the polygon's edges in an interval tree.
54645
54646         Polygon edges are represented by the ExclusionPolygonEdge struct, which records the indices of
54647         the pair of vertices joined by the edge.  Edge vertex index1 is usually less than index2, except
54648         the last edge where index2 is 0.  We plan to improve the algorithm that creates the edges
54649         by spanning vertices contained in sequences of more than two colinear vertices. For example,
54650         a triangular polygon might be specified with 5 vertices like this: 3,0 5,0, 5,5, 4,4 2,2, 0,0.
54651         By spanning the extra colinear points: 0,0 5,0, 5,5, which implies index1-index2 edges: 5-1 1-2 2-5.
54652
54653         Although the implementation supports complex polygons, the layout code is limited to
54654         essentially rectangular shapes until a patch for https://bugs.webkit.org/show_bug.cgi?id=96813
54655         lands.
54656
54657         Tests: fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html
54658                fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html
54659                fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html
54660                fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html
54661                fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html
54662
54663         * CMakeLists.txt:
54664         * GNUmakefile.list.am:
54665         * Target.pri:
54666         * WebCore.gypi:
54667         * WebCore.vcproj/WebCore.vcproj:
54668         * WebCore.xcodeproj/project.pbxproj:
54669         * rendering/ExclusionPolygon.cpp: Added.
54670         (WebCore):
54671         (EdgeIntersection): Internal description of the intersection of a polygon edge and a horizontal line.
54672         (WebCore::ExclusionPolygon::ExclusionPolygon): See the introductory text above for a description of this type.
54673         (WebCore::computeXIntersection): Find and classify the X intercept of a polygon edge with horizontal line, if any.
54674         (WebCore::ExclusionPolygon::rightVertexY): This method is used to decide if a horizontal line "crosses" a vertex.
54675         (WebCore::appendIntervalX): Append an x coordinate to a vector of ExclusionIntervals.
54676         (WebCore::ExclusionPolygon::computeXIntersections): Return a vector of the intersections of a horizontal line with the polygon's edges.
54677         (WebCore::ExclusionPolygon::computeEdgeIntersections): Return a vector of the X projections of the edges that overlap a horizonal rectangle.
54678         (WebCore::ExclusionPolygon::getExcludedIntervals): Return a SegmentList of the X intervals within a horizontal rectangle that overlap the polygon.
54679         (WebCore::ExclusionPolygon::getIncludedIntervals): Return the X intervals within a horizontal rectangle that fit inside the polygon.
54680         * rendering/ExclusionPolygon.h: Added.
54681         (WebCore):
54682         (ExclusionPolygon):
54683         (WebCore::ExclusionPolygon::getXAt): X coordinate of a polygon vertex
54684         (WebCore::ExclusionPolygon::getYAt): Y coordinate of a polygon vertex
54685         (WebCore::ExclusionPolygon::numberOfVertices):
54686         (WebCore::ExclusionPolygon::fillRule): A WindRule value that defines "inside" for self-intersecting polygons.
54687         (ExclusionPolygonEdge):
54688         (WebCore::ExclusionPolygonEdge::ExclusionPolygonEdge):
54689         (WebCore::ExclusionPolygonEdge::vertex1):
54690         (WebCore::ExclusionPolygonEdge::vertex2):
54691         (WebCore::ExclusionPolygonEdge::minX):
54692         (WebCore::ExclusionPolygonEdge::minY):
54693         (WebCore::ExclusionPolygonEdge::maxX):
54694         (WebCore::ExclusionPolygonEdge::maxY):
54695         * rendering/ExclusionShape.cpp:
54696         (WebCore::createExclusionPolygon): Return a new ExclusionPolygon.
54697         (WebCore):
54698         (WebCore::ExclusionShape::createExclusionShape): Added support for BasicShape::BASIC_SHAPE_POLYGON.
54699         * rendering/ExclusionShapeInsideInfo.cpp:
54700         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): Enable BASIC_SHAPE_POLYGON shapes for RenderBlocks.
54701
54702 2012-10-08  Tony Chang  <tony@chromium.org>
54703
54704         Replace 2 uses of updateLogicalHeight with computeLogicalHeight
54705         https://bugs.webkit.org/show_bug.cgi?id=98677
54706
54707         Reviewed by Ojan Vafai.
54708
54709         This is part of bug 96804.  Convert RenderTextControl and RenderSVGForeignObject to
54710         override the const computeLogicalHeight method rather than the updateLogicalHeight
54711         setter method.
54712
54713         No new tests, there should be no behavior change as this is just a refactor.
54714
54715         * rendering/RenderTextControl.cpp:
54716         (WebCore::RenderTextControl::computeLogicalHeight): Pass logicalHeight through rather than setting height.
54717         This is a slight correctness fix, although we don't support vertical inputs yet.
54718         * rendering/RenderTextControl.h:
54719         (RenderTextControl):
54720         * rendering/svg/RenderSVGForeignObject.cpp:
54721         (WebCore::RenderSVGForeignObject::computeLogicalHeight):
54722         * rendering/svg/RenderSVGForeignObject.h:
54723         (RenderSVGForeignObject):
54724
54725 2012-10-08  Min Qin  <qinmin@chromium.org>
54726
54727         Upstream some tweaks for overlay play button on Android
54728         https://bugs.webkit.org/show_bug.cgi?id=98671
54729
54730         Reviewed by Adam Barth.
54731
54732         This change stops displaying the overlay play button if video height is too small
54733         No test for this. Will rebase layout test expectations for android later.
54734
54735         * css/mediaControlsChromiumAndroid.css:
54736         (video::-webkit-media-controls-overlay-enclosure):
54737
54738 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54739
54740         Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer
54741         https://bugs.webkit.org/show_bug.cgi?id=98574
54742
54743         Reviewed by Dean Jackson.
54744
54745         GraphicsLayerCA assumed that using a TileCache equated to being the main page tile
54746         cache layer, which has some special considerations. Make these two concepts separate
54747         to get closer to being able to use TileCaches in place of CATiledLayer.
54748
54749         * platform/graphics/GraphicsLayer.h:
54750         (GraphicsLayer): Remove m_usingTileCache member, which was not appropriate
54751         for this class to have.
54752         * platform/graphics/GraphicsLayer.cpp:
54753         (WebCore::GraphicsLayer::GraphicsLayer): Remove init of m_usingTileCache.
54754         (WebCore::GraphicsLayer::debugBorderInfo): Can no longer use m_usingTileCache to
54755         get the blue color, so moved code into a virtual debugBorderInfo() method.
54756         (WebCore::GraphicsLayer::updateDebugIndicators): Call the virtual debugBorderInfo().
54757         * platform/graphics/GraphicsLayerClient.h: Remove the usingTileCache() callback;
54758         we now just cache this information in the GraphicsLayerCA on creation.
54759         * platform/graphics/ca/GraphicsLayerCA.cpp:
54760         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Init m_isPageTileCacheLayer to false,
54761         then set to m_isPageTileCacheLayer if the client says we should create a tile cache.
54762         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter): Overidden to avoid duplicate repaint
54763         counters in the top-left tile.
54764         (WebCore::GraphicsLayerCA::updateLayerBackgroundColor): If this layer is the page tile cache layer,
54765         we allow setting of its background color.
54766         (WebCore::GraphicsLayerCA::debugBorderInfo): Overidden to use a blue color for tiles.
54767         (WebCore::GraphicsLayerCA::requiresTiledLayer): Don't make CATiledLayers for the page tile cache.
54768         * platform/graphics/ca/GraphicsLayerCA.h:
54769         (GraphicsLayerCA):
54770         * platform/graphics/ca/PlatformCALayerClient.h:
54771         (PlatformCALayerClient): Need to pass the platform layer into platformCALayerShowRepaintCounter()
54772         so we can distinguish between calls for tiles, and calls for the tile cache layer itself.
54773         * platform/graphics/ca/mac/TileCache.mm:
54774         (WebCore::TileCache::shouldShowRepaintCounters): Pass 0 to platformCALayerShowRepaintCounter() to
54775         indicate that we're asking about a tile.
54776         * platform/graphics/mac/WebLayer.mm:
54777         (drawLayerContents): Now we can just rely on platformCALayerShowRepaintCounter() to tell us whether
54778         to draw the repaint counter.
54779         (-[WebLayer setNeedsDisplayInRect:]):
54780         * platform/graphics/mac/WebTiledLayer.mm:
54781         (-[WebTiledLayer setNeedsDisplayInRect:]):
54782         * rendering/RenderLayerBacking.h:
54783         (WebCore::RenderLayerBacking::usingTileCache):
54784         (RenderLayerBacking):
54785         * rendering/RenderLayerCompositor.cpp:
54786         (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): We can ask the RenderLayerBacking
54787         whether it's for the tile cache, rather than going to the GraphicsLayer.
54788         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
54789         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerShowRepaintCounter):
54790
54791 2012-10-08  Huang Dongsung  <luxtella@company100.net>
54792
54793         [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism.
54794         https://bugs.webkit.org/show_bug.cgi?id=98582
54795
54796         Reviewed by Eric Seidel.
54797
54798         Only Qt port failed canvas/philip/tests/2d.imageData.put.unchanged.html because
54799         ImageBufferQt converts from or to a premultiplied color using its own code. When
54800         we convert twice from an unmultiplied color to a premultiplied color and then to
54801         an unmultiplied color using this code, the calculated result are pretty
54802         different against the input color. It is why Gtk passes this test although Qt
54803         fails. Gtk port uses them in Color.h.
54804
54805         In addition, Qt should use the functions in Color.h to reduce duplicated codes.
54806
54807         Tests: canvas/philip/tests/2d.imageData.put.unchanged.html: Fixed a test case
54808
54809         * platform/graphics/qt/ImageBufferQt.cpp:
54810         (WebCore::getImageData):
54811         (WebCore::convertBGRAToRGBA):
54812         (WebCore::ImageBuffer::putByteArray):
54813
54814 2012-10-08  Tab Atkins  <jackalmage@gmail.com>
54815
54816         Remove "orphaned units" quirk
54817         https://bugs.webkit.org/show_bug.cgi?id=98553
54818
54819         Reviewed by Eric Seidel.
54820
54821         This patch removes our "orphaned units" quirk.
54822         We have an "orphaned units" quirk to match IE, which allows things like "width: 20 px;".
54823         But FF and Opera don't have it and aren't aware of bugs for it,
54824         and it's not in Simon Pieters' Quirks Mode spec <http://dvcs.w3.org/hg/quirks-mode/raw-file/tip/Overview.html>
54825
54826         No new tests, because I'm killing a quirk.
54827
54828         * css/CSSParser.cpp:
54829         (WebCore::CSSParser::parseValue):
54830         * css/CSSParser.h:
54831         (CSSParser):
54832
54833 2012-10-08  Robert Hogan  <robert@webkit.org>
54834
54835         Border, margin and padding of an inline's inline ancestors counted twice
54836         https://bugs.webkit.org/show_bug.cgi?id=63074
54837
54838         Reviewed by David Hyatt.
54839
54840         In a line such as '<span><span><img>Text' the border, padding and margin belonging
54841         to the two spans was counted twice by RenderBlockLineLayout::nextLineBreak(): once
54842         when adding the width of the <img> object to the line, and a second time when adding
54843         the 'Text'. The result was that nextLineBreak() now had a length for the line that 
54844         exceeded the line's maximum length and inserted a bogus line break.
54845
54846         This all happened because the helper function that is used to add in the border etc.
54847         from inline ancestors was crawling up the tree each time. It doesn't need to do that, it
54848         should stop crawling up the tree when the current object is not the first or last sibling below a parent.
54849
54850         Test: fast/inline/bpm-inline-ancestors.html
54851
54852         * rendering/RenderBlockLineLayout.cpp:
54853         (WebCore::shouldAddBorderPaddingMargin): Broke this check out into a helper function so that it 
54854         can help inlineLogicalWidth() return early and also treat empty RenderTexts the same as no previous/next
54855         sibling on the line. This ensures that collapsed leading space does not interfere with the decision to
54856         crawl up the ancestors accumulating border, padding, and margin.
54857         (WebCore):
54858         (WebCore::inlineLogicalWidth): Return early once the current child is no longer on the edge of its line - 
54859         this ensures the border, padding and margin of ancestors is not counted twice. 
54860
54861 2012-10-08  Mike West  <mkwst@chromium.org>
54862
54863         Null-check for DOMWindow before feeding it to FeatureObserver.
54864         https://bugs.webkit.org/show_bug.cgi?id=98624
54865
54866         Reviewed by Adam Barth.
54867
54868         We shouldn't call out to FeatureObserver in
54869         ContentSecurityPolicy::didReceiveHeader if the policy's document doesn't
54870         have a DOMWindow.
54871
54872         Test: http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html
54873
54874         * page/ContentSecurityPolicy.cpp:
54875         (WebCore::ContentSecurityPolicy::didReceiveHeader):
54876             Null check 'document->domWindow' before passing it on.
54877         * page/FeatureObserver.cpp:
54878         (WebCore::FeatureObserver::observe):
54879             ASSERT 'domWindow'.
54880
54881 2012-10-08  Nate Chapin  <japhet@chromium.org>
54882
54883         Loader cleanup : Simplify FrameLoader/DocumentLoader setupForReplace()
54884         https://bugs.webkit.org/show_bug.cgi?id=49072
54885
54886         Reviewed by Eric Seidel.
54887
54888         This patch contains one small known behavior change: multipart/x-mixed-replace main resources with text/html parts
54889         will no longer load the text/html progressively. In practice, loading the html progressively causes the document
54890         to get cleared as soon as the next part's data starts arriving, which leads to a blank page most of the time. This case
54891         seems to be pathological, as IE, FF, Opera and WebKit all do something different currently. This patch will cause
54892         us to behave like Firefox, which is the most sane of the current behaviors.
54893
54894         Test: http/tests/multipart/multipart-html.php
54895
54896         * loader/DocumentLoader.cpp:
54897         (WebCore::DocumentLoader::commitData): Use isMultipartReplacingLoad() helper.
54898         (WebCore::DocumentLoader::receivedData):
54899         (WebCore::DocumentLoader::setupForReplace): Renamed from setupForReplaceByMIMEType(). Call maybeFinishLoadingMultipartContent()
54900             instead of doing identical work inline. After we call frameLoader()->setReplacing(), we will never load progressively, so remove
54901             the if (doesProgressiveLoad(newMIMEType)) {} block.
54902         (WebCore::DocumentLoader::isMultipartReplacingLoad):
54903         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Inline the old DocumentLoader::setupForeReplace(), check
54904             frameLoader()->isReplacing() instead of the delete doesProgressiveLoad().
54905         * loader/DocumentLoader.h:
54906         * loader/FrameLoader.cpp:
54907         (WebCore::FrameLoader::setupForReplace): Move all calls to revertToProvisionalState here.
54908         * loader/MainResourceLoader.cpp:
54909         (WebCore::MainResourceLoader::didReceiveResponse): Call setupForReplace(), renamed from setupForReplaceByMIMEType().
54910
54911 2012-10-08  Zoltan Horvath  <zoltan@webkit.org>
54912
54913         [Qt] r122720 causes performance regression with DirectFB on ARMv7
54914         https://bugs.webkit.org/show_bug.cgi?id=97548
54915
54916         Reviewed by Jocelyn Turcotte.
54917
54918         Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
54919
54920         Covered by existing tests.
54921
54922         * bridge/qt/qt_pixmapruntime.cpp:
54923         (JSC::Bindings::assignToHTMLImageElement):
54924         (JSC::Bindings::QtPixmapRuntime::toQt):
54925         * platform/DragImage.h:
54926         (WebCore):
54927         * platform/graphics/GraphicsContext.h:
54928         (GraphicsContext):
54929         * platform/graphics/Image.h:
54930         (Image):
54931         * platform/graphics/NativeImagePtr.h:
54932         (WebCore):
54933         * platform/graphics/gstreamer/ImageGStreamer.h:
54934         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
54935         (ImageGStreamer::ImageGStreamer):
54936         * platform/graphics/qt/GraphicsContext3DQt.cpp:
54937         (WebCore::GraphicsContext3D::getImageData):
54938         * platform/graphics/qt/GraphicsContextQt.cpp:
54939         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
54940         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
54941         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
54942         * platform/graphics/qt/ImageBufferDataQt.h:
54943         (ImageBufferData):
54944         * platform/graphics/qt/ImageBufferQt.cpp:
54945         (WebCore::ImageBufferData::ImageBufferData):
54946         (WebCore):
54947         (WebCore::ImageBufferData::toQImage):
54948         (WebCore::ImageBuffer::copyImage):
54949         (WebCore::ImageBuffer::clip):
54950         (WebCore::ImageBuffer::platformTransformColorSpace):
54951         (WebCore::getImageData):
54952         (WebCore::ImageBuffer::putByteArray):
54953         (WebCore::encodeImage):
54954         (WebCore::ImageBuffer::toDataURL):
54955         * platform/graphics/qt/ImageDecoderQt.cpp:
54956         (WebCore::ImageFrame::asNewNativeImage):
54957         * platform/graphics/qt/ImageQt.cpp:
54958         (graphics):
54959         (loadResourcePixmap):
54960         (WebCore::Image::loadPlatformResource):
54961         (WebCore::Image::setPlatformResource):
54962         (WebCore::Image::drawPattern):
54963         (WebCore::BitmapImage::BitmapImage):
54964         (WebCore::BitmapImage::draw):
54965         (WebCore::BitmapImage::checkForSolidColor):
54966         (WebCore::BitmapImage::create):
54967         * platform/graphics/qt/PatternQt.cpp:
54968         (WebCore::Pattern::createPlatformPattern):
54969         * platform/graphics/qt/StillImageQt.cpp:
54970         (WebCore::StillImage::StillImage):
54971         (WebCore::StillImage::~StillImage):
54972         (WebCore::StillImage::currentFrameHasAlpha):
54973         (WebCore::StillImage::size):
54974         (WebCore::StillImage::nativeImageForCurrentFrame):
54975         (WebCore::StillImage::draw):
54976         * platform/graphics/qt/StillImageQt.h:
54977         (WebCore::StillImage::create):
54978         (WebCore::StillImage::createForRendering):
54979         (StillImage):
54980         * platform/graphics/qt/TransparencyLayer.h:
54981         (WebCore::TransparencyLayer::TransparencyLayer):
54982         (TransparencyLayer):
54983         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
54984         (WebCore::GraphicsSurface::createReadOnlyImage):
54985         * platform/graphics/texmap/TextureMapperGL.cpp:
54986         (WebCore::BitmapTextureGL::updateContents):
54987         * platform/qt/ClipboardQt.cpp:
54988         (WebCore::ClipboardQt::createDragImage):
54989         (WebCore::ClipboardQt::declareAndWriteDragImage):
54990         * platform/qt/CursorQt.cpp:
54991         (WebCore::createCustomCursor):
54992         * platform/qt/DragImageQt.cpp:
54993         (WebCore::createDragImageFromImage):
54994         * platform/qt/PasteboardQt.cpp:
54995         (WebCore::Pasteboard::writeImage):
54996
54997 2012-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
54998
54999         Unreviewed. Fix make distcheck.
55000
55001         * GNUmakefile.list.am: Add missing header file to compilation.
55002
55003 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
55004
55005         Unreviewed, rolling out r130619.
55006         http://trac.webkit.org/changeset/130619
55007         https://bugs.webkit.org/show_bug.cgi?id=98634
55008
55009         Causes many crashes on the EFL bots. (Requested by rakuco on
55010         #webkit).
55011
55012         * platform/RunLoop.h:
55013         (RunLoop):
55014         * platform/efl/RunLoopEfl.cpp:
55015         (WebCore::RunLoop::RunLoop):
55016         (WebCore::RunLoop::wakeUpEvent):
55017         (WebCore::RunLoop::wakeUp):
55018
55019 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
55020
55021         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
55022         https://bugs.webkit.org/show_bug.cgi?id=98505
55023
55024         Reviewed by Kenneth Rohde Christiansen.
55025
55026         Instead of ecore_pipe_write(),
55027         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
55028
55029         According to the EFL API document, this function is designed to dispatch
55030         a function on ecore main loop by avoiding dead lock or race condition. 
55031         With this function, webkit doesn't need to maintain ecore pipe also.
55032
55033         No new tests. The function to wakeup main loop is changed.
55034
55035         * platform/RunLoop.h:
55036         (RunLoop):
55037         * platform/efl/RunLoopEfl.cpp:
55038         (WebCore::RunLoop::RunLoop):
55039         (WebCore::RunLoop::wakeUpEvent):
55040         (WebCore::RunLoop::wakeUp):
55041
55042 2012-10-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
55043
55044         :first-line pseudo selector ignoring words created from :before
55045         https://bugs.webkit.org/show_bug.cgi?id=80794
55046
55047         Reviewed by Daniel Bates.
55048
55049         The :first-line pseudo-element style is not applied for content
55050         which is generated from the :before/:after pseudo-elements.
55051
55052         Test: fast/css/first-line-style-for-before-after-content.html
55053
55054         * rendering/RenderObject.cpp:
55055         (WebCore::firstLineStyleForCachedUncachedType):
55056         Added a new static helper function incorporating the common
55057         functionality of both uncachedFirstLineStyle() and firstLineStyleSlowCase()
55058         functions. It also modifies the functionality to handle the
55059         scenario when :first-line style needs to be applied on content
55060         generated from :before/:after.
55061
55062         While getting the :first-line style we should also consider the case
55063         when the content is generated from a :before/:after pseudo-element in
55064         which case the RenderInline's parent should be considered for
55065         obtaining the first-line style.
55066
55067         (WebCore):
55068         (WebCore::RenderObject::uncachedFirstLineStyle):
55069         (WebCore::RenderObject::firstLineStyleSlowCase):
55070         Moved the duplicate code between the two functions to the common
55071         helper function firstLineStyleForCachedUncachedType().
55072
55073 2012-10-07  Peter Wang  <peter.wang@torchmobile.com.cn>
55074
55075         Web Inspector: The front-end should provide the position in original source file when set a breakpoint
55076         https://bugs.webkit.org/show_bug.cgi?id=93473
55077
55078         Reviewed by Yury Semikhatsky.
55079
55080         Since frontend truncates the indent, the first statement in a line must match the breakpoint (line, 0).
55081         With this patch JSC debugger can support both normal and "Pretty Print" mode.
55082
55083         No new test case. This patch can be verified with cases in "LayoutTests/inspector/debugger/".
55084
55085         * bindings/js/ScriptDebugServer.cpp:
55086         (WebCore::ScriptDebugServer::ScriptDebugServer):
55087         (WebCore::ScriptDebugServer::hasBreakpoint):
55088         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
55089         (WebCore::ScriptDebugServer::pauseIfNeeded):
55090         * bindings/js/ScriptDebugServer.h:
55091         (ScriptDebugServer):
55092
55093 2012-10-07  Martin Robinson  <mrobinson@igalia.com>
55094
55095         [Soup] Clean up ResourceError creation
55096         https://bugs.webkit.org/show_bug.cgi?id=98521
55097
55098         Reviewed by Carlos Garcia Campos.
55099
55100         Simplify the creation of ResourcErrors in ResourceHandleSoup. This is
55101         part of a process to make the libsoup networking backend more hackable.
55102
55103         No new tests. This shouldn't change functionality.
55104
55105         * GNUmakefile.list.am: Added new file.
55106         * PlatformEfl.cmake: Added new file.
55107         * platform/network/soup/ResourceError.h:
55108         (ResourceError): Added new factories.
55109         * platform/network/soup/ResourceErrorSoup.cpp: Added.
55110         (WebCore::failingURI): Added this helper.
55111         (WebCore::ResourceError::httpError): New factory.
55112         (WebCore::ResourceError::genericIOError): Ditto.
55113         (WebCore::ResourceError::tlsError): Ditto.
55114         (WebCore::ResourceError::timeoutError): Ditto.
55115         * platform/network/soup/ResourceHandleSoup.cpp:
55116         (WebCore::handleUnignoredTLSErrors): Created this helper which merges
55117         some of the logic from sendRequestCallback.
55118         (WebCore::sendRequestCallback): Use the new helper.
55119         (WebCore::requestTimeoutCallback): Use the new factory.
55120
55121 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
55122
55123         Rename first/second to key/value in HashMap iterators
55124         https://bugs.webkit.org/show_bug.cgi?id=82784
55125
55126         Reviewed by Eric Seidel.
55127
55128         * Modules/geolocation/Geolocation.cpp:
55129         (WebCore::Geolocation::Watchers::find):
55130         (WebCore::Geolocation::Watchers::remove):
55131         * Modules/indexeddb/IDBDatabase.cpp:
55132         (WebCore::IDBDatabase::objectStoreNames):
55133         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
55134         (WebCore::IDBDatabaseBackendImpl::metadata):
55135         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
55136         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
55137         (WebCore::IDBFactoryBackendImpl::openBackingStore):
55138         (WebCore::IDBFactoryBackendImpl::open):
55139         * Modules/indexeddb/IDBObjectStore.cpp:
55140         (WebCore::IDBObjectStore::indexNames):
55141         (WebCore::IDBObjectStore::put):
55142         (WebCore::IDBObjectStore::index):
55143         (WebCore::IDBObjectStore::deleteIndex):
55144         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
55145         (WebCore::IDBObjectStoreBackendImpl::metadata):
55146         (WebCore::makeIndexWriters):
55147         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
55148         * Modules/indexeddb/IDBTransaction.cpp:
55149         (WebCore::IDBTransaction::objectStore):
55150         (WebCore::IDBTransaction::objectStoreDeleted):
55151         (WebCore::IDBTransaction::onAbort):
55152         (WebCore::IDBTransaction::dispatchEvent):
55153         * Modules/mediastream/MediaConstraintsImpl.cpp:
55154         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
55155         (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
55156         * Modules/webdatabase/AbstractDatabase.cpp:
55157         (WebCore::AbstractDatabase::performOpenAndVerify):
55158         * Modules/webdatabase/DatabaseTracker.cpp:
55159         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55160         * Modules/webdatabase/OriginUsageRecord.cpp:
55161         (WebCore::OriginUsageRecord::diskUsage):
55162         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
55163         (WebCore::SQLTransactionCoordinator::acquireLock):
55164         (WebCore::SQLTransactionCoordinator::releaseLock):
55165         (WebCore::SQLTransactionCoordinator::shutdown):
55166         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
55167         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55168         * Modules/webdatabase/chromium/QuotaTracker.cpp:
55169         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
55170         (WebCore::QuotaTracker::updateDatabaseSize):
55171         * Modules/websockets/WebSocketDeflateFramer.cpp:
55172         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
55173         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
55174         (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
55175         * accessibility/AXObjectCache.cpp:
55176         (WebCore::AXObjectCache::~AXObjectCache):
55177         * bindings/gobject/DOMObjectCache.cpp:
55178         (WebKit::DOMObjectCache::clearByFrame):
55179         * bindings/js/DOMObjectHashTableMap.h:
55180         (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
55181         (WebCore::DOMObjectHashTableMap::get):
55182         * bindings/js/JSDOMBinding.cpp:
55183         (WebCore::cacheDOMStructure):
55184         * bindings/js/JSDOMGlobalObject.cpp:
55185         (WebCore::JSDOMGlobalObject::visitChildren):
55186         * bindings/js/JSDOMGlobalObject.h:
55187         (WebCore::getDOMConstructor):
55188         * bindings/js/PageScriptDebugServer.cpp:
55189         (WebCore::PageScriptDebugServer::addListener):
55190         (WebCore::PageScriptDebugServer::removeListener):
55191         * bindings/js/ScriptCachedFrameData.cpp:
55192         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
55193         (WebCore::ScriptCachedFrameData::restore):
55194         * bindings/js/ScriptController.cpp:
55195         (WebCore::ScriptController::~ScriptController):
55196         (WebCore::ScriptController::clearWindowShell):
55197         (WebCore::ScriptController::attachDebugger):
55198         (WebCore::ScriptController::updateDocument):
55199         (WebCore::ScriptController::createRootObject):
55200         (WebCore::ScriptController::collectIsolatedContexts):
55201         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55202         (WebCore::ScriptController::clearScriptObjects):
55203         * bindings/js/ScriptController.h:
55204         (WebCore::ScriptController::windowShell):
55205         (WebCore::ScriptController::existingWindowShell):
55206         * bindings/js/ScriptDebugServer.cpp:
55207         (WebCore::ScriptDebugServer::setBreakpoint):
55208         (WebCore::ScriptDebugServer::removeBreakpoint):
55209         (WebCore::ScriptDebugServer::hasBreakpoint):
55210         * bindings/js/SerializedScriptValue.cpp:
55211         (WebCore::CloneSerializer::checkForDuplicate):
55212         (WebCore::CloneSerializer::dumpIfTerminal):
55213         (WebCore::CloneSerializer::write):
55214         * bindings/scripts/CodeGeneratorV8.pm:
55215         (GenerateImplementation):
55216         * bindings/scripts/test/V8/V8Float64Array.cpp:
55217         (WebCore::V8Float64Array::GetRawTemplate):
55218         (WebCore::V8Float64Array::GetTemplate):
55219         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
55220         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
55221         (WebCore::V8TestActiveDOMObject::GetTemplate):
55222         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
55223         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
55224         (WebCore::V8TestCustomNamedGetter::GetTemplate):
55225         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
55226         (WebCore::V8TestEventConstructor::GetRawTemplate):
55227         (WebCore::V8TestEventConstructor::GetTemplate):
55228         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
55229         (WebCore::V8TestEventTarget::GetRawTemplate):
55230         (WebCore::V8TestEventTarget::GetTemplate):
55231         * bindings/scripts/test/V8/V8TestException.cpp:
55232         (WebCore::V8TestException::GetRawTemplate):
55233         (WebCore::V8TestException::GetTemplate):
55234         * bindings/scripts/test/V8/V8TestInterface.cpp:
55235         (WebCore::V8TestInterface::GetRawTemplate):
55236         (WebCore::V8TestInterface::GetTemplate):
55237         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
55238         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
55239         (WebCore::V8TestMediaQueryListListener::GetTemplate):
55240         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
55241         (WebCore::V8TestNamedConstructor::GetRawTemplate):
55242         (WebCore::V8TestNamedConstructor::GetTemplate):
55243         * bindings/scripts/test/V8/V8TestNode.cpp:
55244         (WebCore::V8TestNode::GetRawTemplate):
55245         (WebCore::V8TestNode::GetTemplate):
55246         * bindings/scripts/test/V8/V8TestObj.cpp:
55247         (WebCore::V8TestObj::GetRawTemplate):
55248         (WebCore::V8TestObj::GetTemplate):
55249         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
55250         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
55251         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
55252         * bindings/v8/DOMWrapperWorld.cpp:
55253         (WebCore::DOMWrapperWorld::deallocate):
55254         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
55255         * bindings/v8/NPV8Object.cpp:
55256         (WebCore::freeV8NPObject):
55257         (WebCore::npCreateV8ScriptObject):
55258         * bindings/v8/ScriptController.cpp:
55259         (WebCore::ScriptController::clearScriptObjects):
55260         (WebCore::ScriptController::resetIsolatedWorlds):
55261         (WebCore::ScriptController::ensureIsolatedWorldContext):
55262         (WebCore::ScriptController::existingWindowShellInternal):
55263         (WebCore::ScriptController::evaluateInIsolatedWorld):
55264         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
55265         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55266         (WebCore::ScriptController::collectIsolatedContexts):
55267         * bindings/v8/SerializedScriptValue.cpp:
55268         * bindings/v8/V8DOMMap.h:
55269         (WebCore::WeakReferenceMap::removeIfPresent):
55270         (WebCore::WeakReferenceMap::visit):
55271         * bindings/v8/V8PerContextData.cpp:
55272         (WebCore::V8PerContextData::dispose):
55273         * bindings/v8/npruntime.cpp:
55274         * bridge/IdentifierRep.cpp:
55275         (WebCore::IdentifierRep::get):
55276         * bridge/NP_jsobject.cpp:
55277         (ObjectMap::add):
55278         (ObjectMap::remove):
55279         * bridge/runtime_root.cpp:
55280         (JSC::Bindings::RootObject::invalidate):
55281         * css/CSSCanvasValue.cpp:
55282         (WebCore::CSSCanvasValue::canvasChanged):
55283         (WebCore::CSSCanvasValue::canvasResized):
55284         * css/CSSComputedStyleDeclaration.cpp:
55285         (WebCore::counterToCSSValue):
55286         * css/CSSCrossfadeValue.cpp:
55287         (WebCore::CSSCrossfadeValue::crossfadeChanged):
55288         * css/CSSFontFaceSource.cpp:
55289         (WebCore::CSSFontFaceSource::getFontData):
55290         * css/CSSFontSelector.cpp:
55291         (WebCore::CSSFontSelector::addFontFaceRule):
55292         (WebCore::CSSFontSelector::getFontData):
55293         * css/CSSImageGeneratorValue.cpp:
55294         (WebCore::CSSImageGeneratorValue::addClient):
55295         (WebCore::CSSImageGeneratorValue::removeClient):
55296         (WebCore::CSSImageGeneratorValue::getImage):
55297         * css/CSSSegmentedFontFace.cpp:
55298         (WebCore::CSSSegmentedFontFace::getFontData):
55299         * css/CSSSelector.cpp:
55300         (WebCore::CSSSelector::parsePseudoType):
55301         * css/CSSValuePool.cpp:
55302         (WebCore::CSSValuePool::createColorValue):
55303         (WebCore::CSSValuePool::createFontFamilyValue):
55304         (WebCore::CSSValuePool::createFontFaceValue):
55305         * css/PropertySetCSSStyleDeclaration.cpp:
55306         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
55307         * css/RuleSet.cpp:
55308         (WebCore::reportAtomRuleMap):
55309         (WebCore::RuleSet::addToRuleSet):
55310         (WebCore::shrinkMapVectorsToFit):
55311         * css/StyleBuilder.cpp:
55312         (WebCore::ApplyPropertyCounter::applyInheritValue):
55313         (WebCore::ApplyPropertyCounter::applyValue):
55314         * css/StyleResolver.cpp:
55315         (WebCore::StyleResolver::collectFeatures):
55316         (WebCore::StyleResolver::ruleSetForScope):
55317         (WebCore::StyleResolver::appendAuthorStylesheets):
55318         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
55319         (WebCore::StyleResolver::collectMatchingRulesForList):
55320         * css/StyleSheetContents.cpp:
55321         (WebCore::StyleSheetContents::parserAddNamespace):
55322         (WebCore::StyleSheetContents::determineNamespace):
55323         * dom/CheckedRadioButtons.cpp:
55324         (WebCore::CheckedRadioButtons::addButton):
55325         (WebCore::CheckedRadioButtons::removeButton):
55326         * dom/ChildListMutationScope.cpp:
55327         (WebCore::ChildListMutationAccumulator::getOrCreate):
55328         * dom/Document.cpp:
55329         (WebCore::Document::windowNamedItems):
55330         (WebCore::Document::documentNamedItems):
55331         (WebCore::Document::getCSSCanvasElement):
55332         (WebCore::Document::cachedImmutableAttributeData):
55333         (WebCore::Document::getCachedLocalizer):
55334         * dom/DocumentMarkerController.cpp:
55335         (WebCore::DocumentMarkerController::markerContainingPoint):
55336         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
55337         (WebCore::DocumentMarkerController::removeMarkers):
55338         (WebCore::DocumentMarkerController::repaintMarkers):
55339         (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
55340         (WebCore::DocumentMarkerController::showMarkers):
55341         * dom/DocumentOrderedMap.cpp:
55342         (WebCore::DocumentOrderedMap::remove):
55343         * dom/DocumentStyleSheetCollection.cpp:
55344         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
55345         * dom/ElementAttributeData.cpp:
55346         (WebCore::ensureAttrListForElement):
55347         * dom/EventDispatcher.cpp:
55348         (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
55349         * dom/IdTargetObserverRegistry.cpp:
55350         (WebCore::IdTargetObserverRegistry::addObserver):
55351         (WebCore::IdTargetObserverRegistry::removeObserver):
55352         * dom/MutationObserverInterestGroup.cpp:
55353         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
55354         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
55355         * dom/Node.cpp:
55356         (WebCore::Node::dumpStatistics):
55357         (WebCore::Node::clearRareData):
55358         (WebCore::NodeListsNodeData::invalidateCaches):
55359         (WebCore::collectMatchingObserversForMutation):
55360         * dom/NodeRareData.h:
55361         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
55362         (WebCore::NodeListsNodeData::addCacheWithName):
55363         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
55364         (WebCore::NodeListsNodeData::adoptTreeScope):
55365         * dom/ProcessingInstruction.cpp:
55366         (WebCore::ProcessingInstruction::checkStyleSheet):
55367         * dom/ScriptExecutionContext.cpp:
55368         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
55369         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
55370         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
55371         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
55372         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
55373         * dom/SelectorQuery.cpp:
55374         (WebCore::SelectorQueryCache::add):
55375         * dom/SpaceSplitString.cpp:
55376         (WebCore::SpaceSplitStringData::create):
55377         * dom/StyledElement.cpp:
55378         (WebCore::StyledElement::updateAttributeStyle):
55379         * editing/mac/AlternativeTextUIController.mm:
55380         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
55381         * html/FormController.cpp:
55382         (WebCore::SavedFormState::serializeTo):
55383         (WebCore::SavedFormState::appendControlState):
55384         (WebCore::SavedFormState::takeControlState):
55385         (WebCore::SavedFormState::getReferencedFilePaths):
55386         (WebCore::FormKeyGenerator::formKey):
55387         (WebCore::FormController::createSavedFormStateMap):
55388         (WebCore::FormController::formElementsState):
55389         (WebCore::FormController::takeStateForFormElement):
55390         (WebCore::FormController::getReferencedFilePaths):
55391         * html/HTMLCollection.cpp:
55392         (WebCore::HTMLCollectionCacheBase::append):
55393         * html/canvas/WebGLFramebuffer.cpp:
55394         (WebCore::WebGLFramebuffer::getAttachment):
55395         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
55396         (WebCore::WebGLFramebuffer::checkStatus):
55397         (WebCore::WebGLFramebuffer::deleteObjectImpl):
55398         (WebCore::WebGLFramebuffer::initializeAttachments):
55399         * inspector/CodeGeneratorInspector.py:
55400         * inspector/DOMPatchSupport.cpp:
55401         (WebCore::DOMPatchSupport::diff):
55402         (WebCore::DOMPatchSupport::innerPatchChildren):
55403         (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
55404         * inspector/InjectedScriptManager.cpp:
55405         (WebCore::InjectedScriptManager::injectedScriptForId):
55406         (WebCore::InjectedScriptManager::injectedScriptIdFor):
55407         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
55408         (WebCore::InjectedScriptManager::releaseObjectGroup):
55409         (WebCore::InjectedScriptManager::injectedScriptFor):
55410         * inspector/InspectorCSSAgent.cpp:
55411         (WebCore::SelectorProfile::commitSelector):
55412         (WebCore::SelectorProfile::commitSelectorTime):
55413         (WebCore::SelectorProfile::toInspectorObject):
55414         (WebCore::UpdateRegionLayoutTask::onTimer):
55415         (WebCore::InspectorCSSAgent::forcePseudoState):
55416         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
55417         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
55418         (WebCore::InspectorCSSAgent::didRemoveDOMNode):
55419         (WebCore::InspectorCSSAgent::didModifyDOMAttr):
55420         (WebCore::InspectorCSSAgent::resetPseudoStates):
55421         * inspector/InspectorConsoleAgent.cpp:
55422         (WebCore::InspectorConsoleAgent::stopTiming):
55423         (WebCore::InspectorConsoleAgent::count):
55424         * inspector/InspectorDOMAgent.cpp:
55425         (WebCore::InspectorDOMAgent::nodeForId):
55426         (WebCore::InspectorDOMAgent::performSearch):
55427         (WebCore::InspectorDOMAgent::getSearchResults):
55428         * inspector/InspectorDOMDebuggerAgent.cpp:
55429         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
55430         * inspector/InspectorDOMStorageAgent.cpp:
55431         (WebCore::InspectorDOMStorageAgent::clearFrontend):
55432         (WebCore::InspectorDOMStorageAgent::enable):
55433         (WebCore::InspectorDOMStorageAgent::storageId):
55434         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
55435         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
55436         (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
55437         * inspector/InspectorDatabaseAgent.cpp:
55438         (WebCore::InspectorDatabaseAgent::enable):
55439         (WebCore::InspectorDatabaseAgent::databaseId):
55440         (WebCore::InspectorDatabaseAgent::findByFileName):
55441         (WebCore::InspectorDatabaseAgent::databaseForId):
55442         * inspector/InspectorDebuggerAgent.cpp:
55443         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
55444         (WebCore::InspectorDebuggerAgent::removeBreakpoint):
55445         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
55446         (WebCore::InspectorDebuggerAgent::searchInContent):
55447         (WebCore::InspectorDebuggerAgent::getScriptSource):
55448         (WebCore::InspectorDebuggerAgent::didParseSource):
55449         * inspector/InspectorIndexedDBAgent.cpp:
55450         (WebCore):
55451         * inspector/InspectorMemoryAgent.cpp:
55452         (WebCore):
55453         * inspector/InspectorPageAgent.cpp:
55454         (WebCore::cachedResourcesForFrame):
55455         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
55456         (WebCore::InspectorPageAgent::frameDetached):
55457         * inspector/InspectorProfilerAgent.cpp:
55458         (WebCore::InspectorProfilerAgent::getProfileHeaders):
55459         (WebCore):
55460         (WebCore::InspectorProfilerAgent::getProfile):
55461         * inspector/InspectorResourceAgent.cpp:
55462         (WebCore::buildObjectForHeaders):
55463         (WebCore::InspectorResourceAgent::willSendRequest):
55464         (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
55465         (WebCore::InspectorResourceAgent::willLoadXHR):
55466         (WebCore::InspectorResourceAgent::replayXHR):
55467         * inspector/InspectorState.cpp:
55468         (WebCore::InspectorState::getBoolean):
55469         (WebCore::InspectorState::getString):
55470         (WebCore::InspectorState::getLong):
55471         (WebCore::InspectorState::getDouble):
55472         (WebCore::InspectorState::getObject):
55473         * inspector/InspectorStyleSheet.cpp:
55474         (WebCore::InspectorStyle::styleWithProperties):
55475         (WebCore::InspectorStyleSheet::inspectorStyleForId):
55476         * inspector/InspectorValues.cpp:
55477         (WebCore::InspectorObjectBase::get):
55478         (WebCore::InspectorObjectBase::writeJSON):
55479         * inspector/InspectorWorkerAgent.cpp:
55480         (WebCore::InspectorWorkerAgent::workerContextTerminated):
55481         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
55482         (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
55483         * inspector/MemoryInstrumentationImpl.cpp:
55484         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
55485         * inspector/MemoryInstrumentationImpl.h:
55486         (WebCore::MemoryInstrumentationClientImpl::totalSize):
55487         (WebCore::MemoryInstrumentationClientImpl::reportedSizeForAllTypes):
55488         * inspector/NetworkResourcesData.cpp:
55489         (WebCore::NetworkResourcesData::setXHRReplayData):
55490         (WebCore::NetworkResourcesData::removeCachedResource):
55491         (WebCore::NetworkResourcesData::clear):
55492         * loader/CrossOriginAccessControl.cpp:
55493         (WebCore::isSimpleCrossOriginAccessRequest):
55494         (WebCore::createAccessControlPreflightRequest):
55495         * loader/CrossOriginPreflightResultCache.cpp:
55496         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
55497         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
55498         * loader/DocumentLoader.cpp:
55499         (WebCore::DocumentLoader::getSubresources):
55500         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
55501         * loader/MainResourceLoader.cpp:
55502         (WebCore::MainResourceLoader::didReceiveResponse):
55503         * loader/ResourceLoadScheduler.cpp:
55504         (WebCore::ResourceLoadScheduler::servePendingRequests):
55505         * loader/appcache/ApplicationCache.cpp:
55506         (WebCore::ApplicationCache::removeResource):
55507         (WebCore::ApplicationCache::clearStorageID):
55508         (WebCore::ApplicationCache::dump):
55509         * loader/appcache/ApplicationCacheGroup.cpp:
55510         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
55511         (WebCore::ApplicationCacheGroup::startLoadingEntry):
55512         (WebCore::ApplicationCacheGroup::addEntry):
55513         * loader/appcache/ApplicationCacheHost.cpp:
55514         (WebCore::ApplicationCacheHost::fillResourceList):
55515         * loader/appcache/ApplicationCacheResource.cpp:
55516         (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
55517         * loader/appcache/ApplicationCacheStorage.cpp:
55518         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
55519         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
55520         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
55521         (WebCore::ApplicationCacheStorage::store):
55522         (WebCore::ApplicationCacheStorage::empty):
55523         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
55524         * loader/archive/ArchiveFactory.cpp:
55525         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
55526         * loader/cache/CachedRawResource.cpp:
55527         (WebCore::CachedRawResource::canReuse):
55528         * loader/cache/CachedResource.cpp:
55529         (WebCore::CachedResource::switchClientsToRevalidatedResource):
55530         (WebCore::CachedResource::updateResponseAfterRevalidation):
55531         * loader/cache/CachedResourceClientWalker.h:
55532         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
55533         * loader/cache/CachedResourceLoader.cpp:
55534         (WebCore::CachedResourceLoader::~CachedResourceLoader):
55535         (WebCore::CachedResourceLoader::requestResource):
55536         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
55537         (WebCore::CachedResourceLoader::removeCachedResource):
55538         (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
55539         * loader/cache/MemoryCache.cpp:
55540         (WebCore::MemoryCache::removeResourcesWithOrigin):
55541         (WebCore::MemoryCache::getOriginsWithCache):
55542         (WebCore::MemoryCache::getStatistics):
55543         (WebCore::MemoryCache::setDisabled):
55544         * loader/icon/IconDatabase.cpp:
55545         (WebCore::IconDatabase::removeAllIcons):
55546         (WebCore::IconDatabase::iconRecordCountWithData):
55547         (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
55548         * page/DOMWindow.cpp:
55549         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
55550         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
55551         * page/EventHandler.cpp:
55552         (WebCore::EventHandler::handleTouchEvent):
55553         * page/Frame.cpp:
55554         (WebCore::Frame::injectUserScripts):
55555         * page/PageGroup.cpp:
55556         (WebCore::PageGroup::pageGroup):
55557         (WebCore::PageGroup::closeLocalStorage):
55558         (WebCore::PageGroup::clearLocalStorageForAllOrigins):
55559         (WebCore::PageGroup::clearLocalStorageForOrigin):
55560         (WebCore::PageGroup::syncLocalStorage):
55561         (WebCore::PageGroup::addUserScriptToWorld):
55562         (WebCore::PageGroup::addUserStyleSheetToWorld):
55563         (WebCore::PageGroup::removeUserScriptFromWorld):
55564         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
55565         * page/PageSerializer.cpp:
55566         (WebCore::PageSerializer::urlForBlankFrame):
55567         * page/SecurityPolicy.cpp:
55568         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
55569         (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
55570         * page/Settings.cpp:
55571         (WebCore::setGenericFontFamilyMap):
55572         (WebCore::getGenericFontFamilyForScript):
55573         * page/SpeechInput.cpp:
55574         (WebCore::SpeechInput::registerListener):
55575         * page/TouchDisambiguation.cpp:
55576         (WebCore::findGoodTouchTargets):
55577         * page/WindowFeatures.cpp:
55578         (WebCore::WindowFeatures::boolFeature):
55579         (WebCore::WindowFeatures::floatFeature):
55580         * page/animation/AnimationController.cpp:
55581         (WebCore::AnimationControllerPrivate::updateAnimations):
55582         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
55583         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
55584         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
55585         * page/animation/CompositeAnimation.cpp:
55586         (WebCore::CompositeAnimation::clearRenderer):
55587         (WebCore::CompositeAnimation::updateTransitions):
55588         (WebCore::CompositeAnimation::updateKeyframeAnimations):
55589         (WebCore::CompositeAnimation::animate):
55590         (WebCore::CompositeAnimation::getAnimatedStyle):
55591         (WebCore::CompositeAnimation::setAnimating):
55592         (WebCore::CompositeAnimation::timeToNextService):
55593         (WebCore::CompositeAnimation::getAnimationForProperty):
55594         (WebCore::CompositeAnimation::suspendAnimations):
55595         (WebCore::CompositeAnimation::resumeAnimations):
55596         (WebCore::CompositeAnimation::overrideImplicitAnimations):
55597         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
55598         (WebCore::CompositeAnimation::isAnimatingProperty):
55599         (WebCore::CompositeAnimation::numberOfActiveAnimations):
55600         * platform/Language.cpp:
55601         (WebCore::languageDidChange):
55602         * platform/MIMETypeRegistry.cpp:
55603         (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
55604         * platform/audio/HRTFElevation.cpp:
55605         (WebCore::getConcatenatedImpulseResponsesForSubject):
55606         * platform/blackberry/CookieManager.cpp:
55607         (WebCore::CookieManager::generateHtmlFragmentForCookies):
55608         (WebCore::CookieManager::removeAllCookies):
55609         * platform/blackberry/CookieMap.cpp:
55610         (WebCore::CookieMap::removeOldestCookie):
55611         (WebCore::CookieMap::getAllChildCookies):
55612         * platform/cf/BinaryPropertyList.cpp:
55613         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
55614         * platform/chromium/support/WebHTTPLoadInfo.cpp:
55615         (WebKit::addHeader):
55616         * platform/chromium/support/WebURLRequest.cpp:
55617         (WebKit::WebURLRequest::visitHTTPHeaderFields):
55618         * platform/chromium/support/WebURLResponse.cpp:
55619         (WebKit::WebURLResponse::addHTTPHeaderField):
55620         (WebKit::WebURLResponse::visitHTTPHeaderFields):
55621         * platform/graphics/DisplayRefreshMonitor.cpp:
55622         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
55623         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
55624         * platform/graphics/FontCache.cpp:
55625         (WebCore::FontCache::getCachedFontPlatformData):
55626         (WebCore::FontCache::getVerticalData):
55627         (WebCore::FontCache::getCachedFontData):
55628         (WebCore::FontCache::releaseFontData):
55629         (WebCore::FontCache::purgeInactiveFontData):
55630         * platform/graphics/GlyphPageTreeNode.cpp:
55631         (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
55632         (WebCore::GlyphPageTreeNode::pageCount):
55633         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
55634         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
55635         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
55636         (WebCore::GlyphPageTreeNode::pruneFontData):
55637         (WebCore::GlyphPageTreeNode::showSubtree):
55638         (showGlyphPageTrees):
55639         * platform/graphics/TiledBackingStore.cpp:
55640         (WebCore::TiledBackingStore::updateTileBuffers):
55641         (WebCore::TiledBackingStore::resizeEdgeTiles):
55642         (WebCore::TiledBackingStore::setKeepRect):
55643         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
55644         (WebCore::AVFWrapper::avfWrapperForCallbackContext):
55645         * platform/graphics/blackberry/LayerTiler.cpp:
55646         (WebCore::LayerTiler::layerVisibilityChanged):
55647         (WebCore::LayerTiler::uploadTexturesIfNeeded):
55648         (WebCore::LayerTiler::addTileJob):
55649         (WebCore::LayerTiler::deleteTextures):
55650         (WebCore::LayerTiler::pruneTextures):
55651         (WebCore::LayerTiler::bindContentsTexture):
55652         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
55653         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
55654         (WebCore::TextureCacheCompositingThread::textureForColor):
55655         * platform/graphics/ca/GraphicsLayerCA.cpp:
55656         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
55657         (WebCore::GraphicsLayerCA::pauseAnimation):
55658         (WebCore::GraphicsLayerCA::layerDidDisplay):
55659         (WebCore::GraphicsLayerCA::updateGeometry):
55660         (WebCore::GraphicsLayerCA::updateTransform):
55661         (WebCore::GraphicsLayerCA::updateChildrenTransform):
55662         (WebCore::GraphicsLayerCA::updateMasksToBounds):
55663         (WebCore::GraphicsLayerCA::updateContentsVisibility):
55664         (WebCore::GraphicsLayerCA::updateContentsOpaque):
55665         (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
55666         (WebCore::GraphicsLayerCA::updateFilters):
55667         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
55668         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
55669         (WebCore::GraphicsLayerCA::updateContentsImage):
55670         (WebCore::GraphicsLayerCA::updateContentsRect):
55671         (WebCore::GraphicsLayerCA::updateMaskLayer):
55672         (WebCore::GraphicsLayerCA::updateLayerAnimations):
55673         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
55674         (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
55675         (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
55676         (WebCore::GraphicsLayerCA::suspendAnimations):
55677         (WebCore::GraphicsLayerCA::resumeAnimations):
55678         (WebCore::GraphicsLayerCA::findOrMakeClone):
55679         (WebCore::GraphicsLayerCA::setOpacityInternal):
55680         (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
55681         * platform/graphics/ca/mac/TileCache.mm:
55682         (WebCore::TileCache::~TileCache):
55683         (WebCore::TileCache::setNeedsDisplay):
55684         (WebCore::TileCache::setScale):
55685         (WebCore::TileCache::setAcceleratesDrawing):
55686         (WebCore::TileCache::setTileDebugBorderWidth):
55687         (WebCore::TileCache::setTileDebugBorderColor):
55688         (WebCore::TileCache::revalidateTiles):
55689         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
55690         (PlatformCALayer::animationStarted):
55691         (resubmitAllAnimations):
55692         (PlatformCALayer::animationForKey):
55693         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
55694         (WebCore::LookupAltName):
55695         (WebCore::fontContainsCharacter):
55696         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
55697         (WebCore::getDerivedFontData):
55698         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
55699         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
55700         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
55701         (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
55702         * platform/graphics/filters/CustomFilterProgram.cpp:
55703         (WebCore::CustomFilterProgram::notifyClients):
55704         * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
55705         (WebCore::getCachedHarfbuzzFace):
55706         (WebCore::releaseCachedHarfbuzzFace):
55707         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
55708         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
55709         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
55710         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
55711         (WebCore::SimpleFontData::getCFStringAttributes):
55712         * platform/graphics/mac/SimpleFontDataMac.mm:
55713         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
55714         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
55715         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
55716         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
55717         (WebCore::GraphicsContext3D::compileShader):
55718         (WebCore::GraphicsContext3D::mappedSymbolName):
55719         (WebCore::GraphicsContext3D::getShaderiv):
55720         (WebCore::GraphicsContext3D::getShaderInfoLog):
55721         (WebCore::GraphicsContext3D::getShaderSource):
55722         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
55723         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
55724         (WebCore::EGLDisplayOpenVG::destroySurface):
55725         (WebCore::EGLDisplayOpenVG::contextForSurface):
55726         * platform/graphics/texmap/TextureMapperGL.cpp:
55727         (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
55728         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
55729         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
55730         (WebCore::TextureMapperShaderManager::getShaderProgram):
55731         (WebCore::TextureMapperShaderManager::getShaderForFilter):
55732         * platform/graphics/wince/FontPlatformData.cpp:
55733         (WebCore::FixedSizeFontData::create):
55734         * platform/gtk/DataObjectGtk.cpp:
55735         (WebCore::DataObjectGtk::forClipboard):
55736         * platform/gtk/GtkDragAndDropHelper.cpp:
55737         (WebCore::GtkDragAndDropHelper::handleGetDragData):
55738         (WebCore::GtkDragAndDropHelper::handleDragLeave):
55739         (WebCore::GtkDragAndDropHelper::handleDragMotion):
55740         (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
55741         (WebCore::GtkDragAndDropHelper::handleDragDrop):
55742         * platform/gtk/RedirectedXCompositeWindow.cpp:
55743         (WebCore::filterXDamageEvent):
55744         * platform/gtk/RenderThemeGtk3.cpp:
55745         (WebCore::gtkStyleChangedCallback):
55746         (WebCore::getStyleContext):
55747         * platform/mac/ScrollbarThemeMac.mm:
55748         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
55749         * platform/network/CredentialStorage.cpp:
55750         (WebCore::CredentialStorage::set):
55751         (WebCore::CredentialStorage::get):
55752         * platform/network/HTTPHeaderMap.cpp:
55753         (WebCore::HTTPHeaderMap::copyData):
55754         (WebCore::HTTPHeaderMap::get):
55755         * platform/network/MIMEHeader.cpp:
55756         (WebCore::MIMEHeader::parseHeader):
55757         * platform/network/ResourceHandle.cpp:
55758         (WebCore::ResourceHandle::create):
55759         * platform/network/ResourceRequestBase.cpp:
55760         (WebCore::ResourceRequestBase::addHTTPHeaderField):
55761         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
55762         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
55763         (WebCore::ResourceRequest::targetTypeFromMimeType):
55764         (WebCore::ResourceRequest::initializePlatformRequest):
55765         * platform/network/cf/ResourceHandleCFNet.cpp:
55766         (WebCore::makeFinalRequest):
55767         * platform/network/cf/ResourceRequestCFNet.cpp:
55768         (WebCore::setHeaderFields):
55769         * platform/network/curl/ResourceHandleManager.cpp:
55770         (WebCore::ResourceHandleManager::initializeHandle):
55771         * platform/network/mac/ResourceRequestMac.mm:
55772         (WebCore::ResourceRequest::doUpdatePlatformRequest):
55773         * platform/network/qt/ResourceRequestQt.cpp:
55774         (WebCore::ResourceRequest::toNetworkRequest):
55775         * platform/network/soup/ResourceHandleSoup.cpp:
55776         (WebCore::sendRequestCallback):
55777         (WebCore::ResourceHandle::setClientCertificate):
55778         * platform/network/soup/ResourceRequestSoup.cpp:
55779         (WebCore::ResourceRequest::updateSoupMessage):
55780         (WebCore::ResourceRequest::toSoupMessage):
55781         * platform/network/soup/ResourceResponseSoup.cpp:
55782         (WebCore::ResourceResponse::toSoupMessage):
55783         * platform/network/win/ResourceHandleWin.cpp:
55784         (WebCore::ResourceHandle::start):
55785         * platform/qt/RunLoopQt.cpp:
55786         (WebCore::RunLoop::TimerBase::timerFired):
55787         * platform/text/LocaleToScriptMappingDefault.cpp:
55788         (WebCore::scriptNameToCode):
55789         (WebCore::localeToScriptCodeForFontSelection):
55790         * platform/text/TextEncodingRegistry.cpp:
55791         (WebCore::pruneBlacklistedCodecs):
55792         (WebCore::dumpTextEncodingNameMap):
55793         * platform/text/transcoder/FontTranscoder.cpp:
55794         (WebCore::FontTranscoder::converterType):
55795         * platform/text/win/TextCodecWin.cpp:
55796         (WebCore::LanguageManager::LanguageManager):
55797         (WebCore::getCodePage):
55798         (WebCore::TextCodecWin::registerExtendedEncodingNames):
55799         (WebCore::TextCodecWin::registerExtendedCodecs):
55800         (WebCore::TextCodecWin::enumerateSupportedEncodings):
55801         * platform/win/ClipboardUtilitiesWin.cpp:
55802         (WebCore::getDataMapItem):
55803         (WebCore::getClipboardData):
55804         (WebCore::setClipboardData):
55805         * platform/win/ClipboardWin.cpp:
55806         (WebCore::ClipboardWin::types):
55807         * platform/win/FileSystemWin.cpp:
55808         (WebCore::cachedStorageDirectory):
55809         * platform/win/RunLoopWin.cpp:
55810         (WebCore::RunLoop::TimerBase::timerFired):
55811         * platform/win/WCDataObject.cpp:
55812         (WebCore::WCDataObject::createInstance):
55813         * platform/wince/MIMETypeRegistryWinCE.cpp:
55814         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
55815         * platform/wx/ContextMenuWx.cpp:
55816         (WebCore::ContextMenu::appendItem):
55817         * plugins/PluginDatabase.cpp:
55818         (WebCore::PluginDatabase::refresh):
55819         (WebCore::PluginDatabase::MIMETypeForExtension):
55820         (WebCore::PluginDatabase::remove):
55821         * plugins/PluginMainThreadScheduler.cpp:
55822         (WebCore::PluginMainThreadScheduler::scheduleCall):
55823         (WebCore::PluginMainThreadScheduler::dispatchCalls):
55824         * plugins/PluginStream.cpp:
55825         (WebCore::PluginStream::startStream):
55826         * plugins/blackberry/PluginDataBlackBerry.cpp:
55827         (WebCore::PluginData::initPlugins):
55828         * plugins/wx/PluginDataWx.cpp:
55829         (WebCore::PluginData::initPlugins):
55830         * rendering/ExclusionShapeInsideInfo.cpp:
55831         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
55832         * rendering/FlowThreadController.cpp:
55833         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
55834         * rendering/InlineFlowBox.cpp:
55835         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
55836         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
55837         * rendering/RenderBlock.cpp:
55838         (WebCore::RenderBlock::clearFloats):
55839         * rendering/RenderBlockLineLayout.cpp:
55840         (WebCore::setLogicalWidthForTextRun):
55841         * rendering/RenderBoxModelObject.cpp:
55842         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
55843         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
55844         * rendering/RenderCounter.cpp:
55845         (WebCore::RenderCounter::destroyCounterNodes):
55846         (WebCore::RenderCounter::destroyCounterNode):
55847         (WebCore::updateCounters):
55848         (WebCore::RenderCounter::rendererStyleChanged):
55849         * rendering/RenderFlowThread.cpp:
55850         (WebCore::RenderFlowThread::setRegionRangeForBox):
55851         (WebCore::RenderFlowThread::getRegionRangeForBox):
55852         * rendering/RenderLayer.cpp:
55853         (WebCore::RenderLayer::paint):
55854         (WebCore::performOverlapTests):
55855         * rendering/RenderLayerFilterInfo.cpp:
55856         (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
55857         (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
55858         * rendering/RenderNamedFlowThread.cpp:
55859         (WebCore::RenderNamedFlowThread::dependsOn):
55860         (WebCore::RenderNamedFlowThread::pushDependencies):
55861         * rendering/RenderRegion.cpp:
55862         (WebCore::RenderRegion::setRenderBoxRegionInfo):
55863         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
55864         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
55865         (WebCore::RenderRegion::computeChildrenStyleInRegion):
55866         * rendering/RenderTableSection.cpp:
55867         (WebCore::RenderTableSection::cachedCollapsedBorder):
55868         * rendering/RenderThemeMac.mm:
55869         (WebCore::RenderThemeMac::systemColor):
55870         * rendering/RenderView.cpp:
55871         (WebCore::RenderView::selectionBounds):
55872         (WebCore::RenderView::setSelection):
55873         * rendering/RenderWidget.cpp:
55874         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
55875         * rendering/RootInlineBox.cpp:
55876         (WebCore::RootInlineBox::ascentAndDescentForBox):
55877         * rendering/VerticalPositionCache.h:
55878         (WebCore::VerticalPositionCache::get):
55879         * rendering/svg/RenderSVGInlineText.cpp:
55880         (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
55881         * rendering/svg/RenderSVGResourceFilter.cpp:
55882         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
55883         * rendering/svg/RenderSVGResourceGradient.cpp:
55884         (WebCore::RenderSVGResourceGradient::applyResource):
55885         * rendering/svg/RenderSVGResourcePattern.cpp:
55886         (WebCore::RenderSVGResourcePattern::applyResource):
55887         * rendering/svg/SVGResourcesCache.cpp:
55888         (WebCore::SVGResourcesCache::resourceDestroyed):
55889         * rendering/svg/SVGRootInlineBox.cpp:
55890         (WebCore::swapItemsInLayoutAttributes):
55891         * rendering/svg/SVGTextLayoutAttributes.cpp:
55892         (WebCore::SVGTextLayoutAttributes::dump):
55893         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
55894         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
55895         (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
55896         * rendering/svg/SVGTextLayoutEngine.cpp:
55897         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
55898         * rendering/svg/SVGTextMetricsBuilder.cpp:
55899         (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
55900         * storage/StorageAreaSync.cpp:
55901         (WebCore::StorageAreaSync::syncTimerFired):
55902         (WebCore::StorageAreaSync::performImport):
55903         (WebCore::StorageAreaSync::sync):
55904         * storage/StorageMap.cpp:
55905         (WebCore::StorageMap::key):
55906         (WebCore::StorageMap::setItem):
55907         * storage/StorageNamespaceImpl.cpp:
55908         (WebCore::StorageNamespaceImpl::localStorageNamespace):
55909         (WebCore::StorageNamespaceImpl::copy):
55910         (WebCore::StorageNamespaceImpl::close):
55911         (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
55912         (WebCore::StorageNamespaceImpl::sync):
55913         * svg/SVGDocumentExtensions.cpp:
55914         (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
55915         (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
55916         (WebCore::SVGDocumentExtensions::addPendingResource):
55917         (WebCore::SVGDocumentExtensions::isElementPendingResources):
55918         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
55919         (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
55920         (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
55921         (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
55922         * svg/SVGElement.cpp:
55923         (WebCore::SVGElement::~SVGElement):
55924         * svg/animation/SMILTimeContainer.cpp:
55925         (WebCore::SMILTimeContainer::setElapsed):
55926         (WebCore::SMILTimeContainer::updateAnimations):
55927         * svg/graphics/SVGImageCache.cpp:
55928         (WebCore::SVGImageCache::~SVGImageCache):
55929         (WebCore::SVGImageCache::removeClientFromCache):
55930         (WebCore::SVGImageCache::requestedSizeAndScales):
55931         (WebCore::SVGImageCache::imageContentChanged):
55932         (WebCore::SVGImageCache::redraw):
55933         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
55934         * svg/graphics/filters/SVGFilterBuilder.h:
55935         (WebCore::SVGFilterBuilder::effectReferences):
55936         (WebCore::SVGFilterBuilder::addBuiltinEffects):
55937         * svg/properties/SVGAnimatedProperty.h:
55938         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
55939         * svg/properties/SVGAttributeToPropertyMap.cpp:
55940         (WebCore::SVGAttributeToPropertyMap::addProperties):
55941         (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
55942         * workers/WorkerContext.cpp:
55943         (WebCore::WorkerContext::hasPendingActivity):
55944         * workers/WorkerEventQueue.cpp:
55945         (WebCore::WorkerEventQueue::close):
55946         * xml/XMLHttpRequest.cpp:
55947         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
55948         (WebCore::XMLHttpRequest::getAllResponseHeaders):
55949         * xml/XPathFunctions.cpp:
55950         (WebCore::XPath::createFunction):
55951         * xml/XPathParser.cpp:
55952         (isAxisName):
55953         * xml/XSLTProcessorLibxslt.cpp:
55954         (WebCore::xsltParamArrayFromParameterMap):
55955         * xml/XSLTProcessorQt.cpp:
55956         (WebCore::XSLTProcessor::transformToString):
55957
55958 2012-10-07  Geoffrey Garen  <ggaren@apple.com>
55959
55960         REGRESSION (r130584): Crashes in JSC::MarkedAllocator::allocateSlowCase, failing fast/dom/gc-dom-tree-lifetime.html
55961         https://bugs.webkit.org/show_bug.cgi?id=98612
55962
55963         Reviewed by Darin Adler.
55964
55965         Since DOM modification can happen outside of JS, calls into JS due to
55966         DOM modification need to take the JS lock.
55967
55968         * bindings/js/JSNodeCustom.cpp:
55969         (WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase): Take the JS
55970         lock before doing a JS allocation, since this may be a JS entrypoint.
55971
55972         * bindings/js/JSNodeCustom.h:
55973         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Split out a slow case
55974         to help the inliner.
55975
55976 2012-10-07  Nick Carter  <nick@chromium.org>
55977
55978         [chromium] Crash in WebCore::GraphicsLayerChromium::setContentsToImage
55979         https://bugs.webkit.org/show_bug.cgi?id=98456
55980
55981         Reviewed by James Robinson.
55982
55983         Handle null return of nativeImageForCurrentFrame.
55984
55985         Test: compositing/images/truncated-direct-png-image.html
55986
55987         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
55988         (WebCore::GraphicsLayerChromium::setContentsToImage):
55989
55990 2012-10-07  Benjamin Poulain  <benjamin@webkit.org>
55991
55992         WTFURL: implement URL port removal for HTMLAnchorElement
55993         https://bugs.webkit.org/show_bug.cgi?id=98604
55994
55995         Reviewed by Adam Barth.
55996
55997         * platform/KURLWTFURL.cpp:
55998         (WebCore::KURL::hasPort):
55999         (WebCore::KURL::removePort):
56000         (WebCore::KURL::isHierarchical):
56001         Implement those methods to pass the port removal test of HTMLAnchorElement.
56002
56003 2012-10-05  Dirk Schulze  <krit@webkit.org>
56004
56005         SVG radialGradient should support 'fr' for focal radius (just like Canvas)
56006         https://bugs.webkit.org/show_bug.cgi?id=97986
56007
56008         Reviewed by Daniel Bates.
56009
56010         Update SVGRadialGradient to the changed behavior in SVG2: http://www.w3.org/TR/SVG2/pservers.html#RadialGradients
56011         SVG2 adds the focal radius for radial gradients. Color stops will start from the edge of
56012         the focal radius.
56013         The new specification does not limit the focal point to be inside the radial gradients radius.
56014         This makes SVGRadialGradient consistent with the radial gradient on Canvas.
56015
56016         Test: svg/custom/radialGradient-focal-radius.svg
56017
56018         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
56019             Remove checks for position of focal point. The focal point
56020             can be placed every where outside the radius of the gradient now.
56021         (WebCore::RenderSVGResourceRadialGradient::focalRadius):
56022             Add new method to get the focal radius from SVGRadialGradientElement.
56023         (WebCore::RenderSVGResourceRadialGradient::buildGradient):
56024         * rendering/svg/RenderSVGResourceRadialGradient.h:
56025         (RenderSVGResourceRadialGradient):
56026         * rendering/svg/SVGRenderTreeAsText.cpp:
56027         (WebCore::writeSVGResourceContainer):
56028             Modify DRT output to include the focal radius.
56029         * svg/RadialGradientAttributes.h:
56030         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
56031         (WebCore::RadialGradientAttributes::fr):
56032         (WebCore::RadialGradientAttributes::setFr):
56033         (WebCore::RadialGradientAttributes::hasFr):
56034         (RadialGradientAttributes):
56035             New setters and getters for focal radius.
56036         * svg/SVGRadialGradientElement.cpp:
56037         (WebCore):
56038         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
56039         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
56040         (WebCore::SVGRadialGradientElement::parseAttribute):
56041         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
56042         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
56043             Ditto.
56044         * svg/SVGRadialGradientElement.h:
56045         (SVGRadialGradientElement):
56046         * svg/SVGRadialGradientElement.idl:
56047         * svg/svgattrs.in:
56048             Add 'fr' as new attribute to the SVG attribute list.
56049
56050 2012-10-07  Glenn Adams  <glenn@skynav.com>
56051
56052         Use start instead of -webkit-auto in default and quirks mode stylesheets.
56053         https://bugs.webkit.org/show_bug.cgi?id=98609
56054
56055         Reviewed by Antti Koivisto.
56056
56057         Change text-align use of legacy '-webkit-auto' to 'start' in the few places where it is used
56058         in default/quirks stylesheets.
56059         
56060         No new tests. No change of rendering/styling behavior. No performance impact.
56061
56062         * css/html.css:
56063         (input, textarea, keygen, select, button, isindex):
56064         (ruby > rt):
56065         * css/quirks.css:
56066         (table):
56067
56068 2012-10-06  Raul Hudea  <rhudea@adobe.com>
56069
56070         -webkit-clip-path should parse IRIs
56071         https://bugs.webkit.org/show_bug.cgi?id=96381
56072
56073         Reviewed by Andreas Kling.
56074
56075         Implemented the clipping via referencing a SVG clipPath. Currently it works only if the clipPath is defined
56076         before using it on an HTML element. The forward reference issue is tracked via https://bugs.webkit.org/show_bug.cgi?id=90405.
56077
56078         Tests: css3/masking/clip-path-reference-userSpaceOnUse.html
56079                css3/masking/clip-path-reference.html
56080                fast/masking/parsing-clip-path-iri.html
56081
56082         * css/CSSComputedStyleDeclaration.cpp:
56083         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add handling for SVG clipPath references.
56084         * css/CSSParser.cpp:
56085         (WebCore::CSSParser::parseValue): Add handling for SVG clipPath references.
56086         * css/StyleBuilder.cpp:
56087         (WebCore::ApplyPropertyClipPath::applyValue): Add handling for SVG references.
56088         * rendering/ClipPathOperation.h:
56089         (ReferenceClipPathOperation): Added a new class corresponding to SVG referenced clipPath.
56090         (WebCore::ReferenceClipPathOperation::create):
56091         (WebCore::ReferenceClipPathOperation::url):
56092         (WebCore::ReferenceClipPathOperation::fragment):
56093         (WebCore::ReferenceClipPathOperation::operator==):
56094         (WebCore::ReferenceClipPathOperation::ReferenceClipPathOperation):
56095         (WebCore):
56096         * rendering/RenderLayer.cpp:
56097         (WebCore::RenderLayer::paintLayerContents): Add handling for ReferenceClipPathOperation.
56098         * rendering/svg/RenderSVGResourceClipper.h:
56099         (RenderSVGResourceClipper): Made applyClippingToContext public as it needs to be called directly for HTML elements.
56100
56101 2012-10-06  Pratik Solanki  <psolanki@apple.com>
56102
56103         Reduce calls to CGImageSourceCopyPropertiesAtIndex from frameSizeAtIndex
56104         https://bugs.webkit.org/show_bug.cgi?id=98607
56105
56106         Reviewed by Dan Bernstein.
56107
56108         Refactor code so that we avoid a second call to CGImageSourceCopyPropertiesAtIndex under
56109         ImageSource::frameSizeAtIndex().
56110
56111         No new tests because no functional change.
56112
56113         * platform/graphics/cg/ImageSourceCG.cpp:
56114         (WebCore::orientationFromProperties):
56115         (WebCore):
56116         (WebCore::ImageSource::frameSizeAtIndex):
56117         (WebCore::ImageSource::orientationAtIndex):
56118
56119 2012-10-06  Mark Rowe  <mrowe@apple.com>
56120
56121         Build fix.
56122
56123         Stop calling -[NSSliderCell setTitle:]. It's never done anything on OS X.
56124
56125         * rendering/RenderThemeMac.mm:
56126         (WebCore::RenderThemeMac::sliderThumbHorizontal):
56127         (WebCore::RenderThemeMac::sliderThumbVertical):
56128
56129 2012-10-06  Andreas Kling  <kling@webkit.org>
56130
56131         Clipboard::types() should return an ordered collection.
56132         <http://webkit.org/b/98547>
56133
56134         Reviewed by Darin Adler.
56135
56136         Let Clipboard::types() return a ListHashSet<String> instead of a HashSet<String> to make sure
56137         it retains the order in which type strings are added.
56138
56139         No test, this fixes an issue that was uncovered when lowering the default table size of WTF
56140         hash tables, causing the HashSet<String> to rehash and reorder itself.
56141
56142         * bindings/js/JSClipboardCustom.cpp:
56143         (WebCore::JSClipboard::types):
56144         * bindings/v8/custom/V8ClipboardCustom.cpp:
56145         (WebCore::V8Clipboard::typesAccessorGetter):
56146         * dom/Clipboard.h:
56147         (Clipboard):
56148         * platform/blackberry/ClipboardBlackBerry.cpp:
56149         (WebCore::ClipboardBlackBerry::types):
56150         * platform/blackberry/ClipboardBlackBerry.h:
56151         (ClipboardBlackBerry):
56152         * platform/chromium/ChromiumDataObject.cpp:
56153         (WebCore::ChromiumDataObject::types):
56154         * platform/chromium/ChromiumDataObject.h:
56155         (ChromiumDataObject):
56156         * platform/chromium/ClipboardChromium.cpp:
56157         (WebCore::ClipboardChromium::types):
56158         * platform/chromium/ClipboardChromium.h:
56159         (ClipboardChromium):
56160         * platform/efl/ClipboardEfl.cpp:
56161         (WebCore::ClipboardEfl::types):
56162         * platform/efl/ClipboardEfl.h:
56163         (ClipboardEfl):
56164         * platform/gtk/ClipboardGtk.cpp:
56165         (WebCore::ClipboardGtk::types):
56166         * platform/gtk/ClipboardGtk.h:
56167         (ClipboardGtk):
56168         * platform/mac/ClipboardMac.h:
56169         (ClipboardMac):
56170         * platform/mac/ClipboardMac.mm:
56171         (WebCore::addHTMLClipboardTypesForCocoaType):
56172         (WebCore::ClipboardMac::types):
56173         * platform/qt/ClipboardQt.cpp:
56174         (WebCore::ClipboardQt::types):
56175         * platform/qt/ClipboardQt.h:
56176         (ClipboardQt):
56177         * platform/win/ClipboardWin.cpp:
56178         (WebCore::addMimeTypesForFormat):
56179         (WebCore::ClipboardWin::types):
56180         * platform/win/ClipboardWin.h:
56181         (ClipboardWin):
56182         * platform/wx/ClipboardWx.cpp:
56183         (WebCore::ClipboardWx::types):
56184         * platform/wx/ClipboardWx.h:
56185         (ClipboardWx):
56186
56187 2012-10-06  Geoffrey Garen  <ggaren@apple.com>
56188
56189         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56190         https://bugs.webkit.org/show_bug.cgi?id=88834
56191
56192         Reviewed by Gavin Barraclough.
56193
56194         Follow-up patch to address some comments by Darin Adler.
56195
56196         * bindings/js/JSNodeCustom.h:
56197         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Save some space by
56198         collapsing comment lines. Use Node::hasChildNodes() for brevity.
56199
56200 2012-10-06  Benjamin Poulain  <benjamin@webkit.org>
56201
56202         Fix weird use of KURL's protocolIs
56203         https://bugs.webkit.org/show_bug.cgi?id=98584
56204
56205         Reviewed by Adam Barth.
56206
56207         Converting a KURL to string is a bad idea.
56208
56209         Invalid URLs can return a string that pass the tests, while an
56210         invalid URL will fail protocolIs().
56211
56212         * loader/cache/CachedResource.cpp:
56213         (WebCore::CachedResource::removeClient):
56214         * platform/graphics/MediaPlayer.cpp:
56215         (WebCore::MediaPlayer::load):
56216         * platform/network/DataURL.cpp:
56217         (WebCore::handleDataURL):
56218
56219 2012-10-06  Dan Bernstein  <mitz@apple.com>
56220
56221         WebCore part of <rdar://problem/12446507> [mac] WebKit clients cannot change the behavior of text-rendering: auto
56222         https://bugs.webkit.org/show_bug.cgi?id=98601
56223
56224         Reviewed by Darin Adler.
56225
56226         * WebCore.exp.in: Exported Font::setDefaultTypesettingFeatures().
56227         * platform/graphics/Font.cpp:
56228         (WebCore::Font::s_defaultTypesettingFeatures): Defined this static.
56229         (WebCore::Font::setDefaultTypesettingFeatures): Added this setter.
56230         (WebCore::Font::defaultTypesettingFeatures): Added this getter.
56231         * platform/graphics/Font.h:
56232         (WebCore::Font::typesettingFeatures): Changed to use the value of the new static member
56233         s_defaultTypesettingFeatures, rather than 0, if text-redering is set to auto.
56234
56235 2012-10-04  Geoffrey Garen  <ggaren@apple.com>
56236
56237         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56238         https://bugs.webkit.org/show_bug.cgi?id=88834
56239
56240         Reviewed by Gavin Barraclough.
56241
56242         * bindings/js/JSNodeCustom.cpp:
56243         (WebCore::isObservable): Clarified this comment, since it seems to have
56244         misled some folks. 
56245
56246         * bindings/js/JSNodeCustom.h:
56247         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): New helper function
56248         to ensure that a disconnected tree is visible to JavaScript.
56249
56250         * bindings/js/ScriptState.cpp:
56251         (WebCore::mainWorldScriptState): Need to check for null because a document's
56252         frame can be null.
56253
56254         * dom/ContainerNode.cpp:
56255         (WebCore::dispatchChildRemovalEvents): When we remove a subtree from the
56256         document, we sever the reference that JavaScript previously held by
56257         referencing its root. So, we give JavaScript an opportunity to establish
56258         a reference to the new root.
56259
56260 2012-10-06  Byungwoo Lee  <bw80.lee@samsung.com>
56261
56262         Fix build warning : -Wunused-parameter.
56263         https://bugs.webkit.org/show_bug.cgi?id=98583
56264
56265         Reviewed by Kentaro Hara.
56266
56267         Use ASSERT_UNUSED() macro to remove build warning.
56268
56269         * plugins/PluginStream.cpp:
56270         (WebCore::PluginStream::delayDeliveryTimerFired):
56271         (WebCore::PluginStream::didReceiveResponse):
56272         (WebCore::PluginStream::didReceiveData):
56273         (WebCore::PluginStream::didFail):
56274         (WebCore::PluginStream::didFinishLoading):
56275         * plugins/PluginView.cpp:
56276         (WebCore::PluginView::requestTimerFired):
56277         (WebCore::PluginView::invalidateTimerFired):
56278
56279 2012-10-05  Adam Barth  <abarth@webkit.org>
56280
56281         [V8] toV8(Node*, ...) does more work than needed (6% faster on dom-traverse)
56282         https://bugs.webkit.org/show_bug.cgi?id=98567
56283
56284         Reviewed by Kentaro Hara.
56285
56286         This patch introduces toV8Fast for Node*. This function works a
56287         differently from the existing toV8 function in two ways:
56288
56289         1) It uses the inline wrapper cache in Node to determine if we're
56290            executing in the main world. This is faster both in the case when
56291            isolated worlds exist because we don't need to retrieve any state
56292            for the current context.
56293
56294         2) It doesn't attempt to inline the hash table lookup used to find the
56295            wrapper in the isolated world. There isn't a big need to inline this
56296            code since performance in the isolated world case is dominated by
56297            the hash table lookup.
56298
56299         Because of these two changes, toV8Fast is small enough to inline into
56300         each attribute getter profitably. Over time, I would like to convert
56301         all the performance critical uses of toV8(Node*) to toV8Fast. At that
56302         point, we can delete toV8 and rename toV8Slow to toV8.
56303
56304         * bindings/scripts/CodeGeneratorV8.pm:
56305         (GenerateHeader):
56306         (GenerateNormalAttrGetter):
56307
56308 2012-10-05  Huang Dongsung  <luxtella@company100.net>
56309
56310         [mac] REGRESSION (r122215): Animated GIF outside the viewport doesn't play when scrolled into view.
56311         https://bugs.webkit.org/show_bug.cgi?id=94874
56312
56313         Reviewed by Simon Fraser.
56314
56315         Rollback previous patch because this patch caused two problems.
56316         1. GIF animation is occasionally paused when tiled scrolling is enabled.
56317         2. This change regressed Apple's Membuster benchmark by ~20% (80MB.)
56318
56319         * loader/cache/CachedImage.cpp:
56320         (WebCore::CachedImage::shouldPauseAnimation):
56321         * loader/cache/CachedImage.h:
56322         (CachedImage):
56323         * loader/cache/CachedResource.h:
56324         * loader/cache/MemoryCache.cpp:
56325         (WebCore::MemoryCache::pruneLiveResourcesToSize):
56326         * rendering/RenderObject.cpp:
56327         (WebCore::RenderObject::willRenderImage):
56328
56329 2012-10-05  Xianzhu Wang  <wangxianzhu@chromium.org>
56330
56331         OpenTypeVerticalData issue with DroidSansFallback.ttf on chromium-android and chromium-linux
56332         https://bugs.webkit.org/show_bug.cgi?id=97824
56333
56334         Reviewed by Tony Chang.
56335
56336         The issue occurred when a font that contains vert GSUB table but doesn't have
56337         a DFLT script and the first script doesn't have vert feature. Added logic to
56338         handle the case.
56339
56340         Test: fast/writing-mode/vertical-subst-font-vert-no-dflt.html
56341
56342         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
56343         (FeatureList):
56344         (WebCore::OpenType::FeatureList::findFeature): Added to find the matching feature in FeatureList.
56345         (WebCore::OpenType::GSUBTable::feature): Added logic to handle the case of no DFLT script and no vert feature under the first script.
56346
56347 2012-10-05  Tony Chang  <tony@chromium.org>
56348
56349         Form controls should always be horizontal
56350         https://bugs.webkit.org/show_bug.cgi?id=98563
56351
56352         Reviewed by Ojan Vafai.
56353
56354         Fix a regression where we didn't force form controls to be horizontal.
56355
56356         Tests: fast/dom/HTMLMeterElement/meter-writing-mode.html
56357                fast/dom/HTMLProgressElement/progress-writing-mode.html
56358                fast/table/colspanMinWidth-vertical.html
56359
56360         * css/html.css:
56361         (input, textarea, keygen, select, button, isindex, meter, progress):
56362
56363 2012-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
56364
56365         Unreviewed, rolling out r130556 and r130564.
56366         http://trac.webkit.org/changeset/130556
56367         http://trac.webkit.org/changeset/130564
56368         https://bugs.webkit.org/show_bug.cgi?id=98572
56369
56370         The patch wasn't reviewed by a reviewer and it is breaking
56371         Chromium Windows (Requested by jchaffraix on #webkit).
56372
56373         * WebCore.exp.in:
56374         * WebCore.xcodeproj/project.pbxproj:
56375         * css/mediaControls.css:
56376         (video::-webkit-media-text-track-container):
56377         (video::-webkit-media-text-track-past-nodes):
56378         (video::-webkit-media-text-track-future-nodes):
56379         (video::-webkit-media-text-track-display):
56380         * html/HTMLMediaElement.cpp:
56381         (WebCore::HTMLMediaElement::HTMLMediaElement):
56382         (WebCore::HTMLMediaElement::attach):
56383         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage):
56384         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind):
56385         (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
56386         (WebCore::HTMLMediaElement::updateClosedCaptionsControls):
56387         * html/HTMLMediaElement.h:
56388         (HTMLMediaElement):
56389         * html/shadow/MediaControlElements.cpp:
56390         (WebCore):
56391         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
56392         * html/shadow/MediaControlElements.h:
56393         (MediaControlTextTrackContainerElement):
56394         * html/shadow/MediaControlRootElement.cpp:
56395         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56396         * html/shadow/MediaControlRootElement.h:
56397         (MediaControlRootElement):
56398         * html/shadow/MediaControls.h:
56399         (MediaControls):
56400         * html/track/TextTrack.cpp:
56401         (WebCore::TextTrack::TextTrack):
56402         (WebCore::TextTrack::isValidKindKeyword):
56403         (WebCore::TextTrack::setKind):
56404         (WebCore::TextTrack::setMode):
56405         (WebCore::TextTrack::mode):
56406         * html/track/TextTrack.h:
56407         (WebCore::TextTrack::create):
56408         (WebCore::TextTrack::kind):
56409         (TextTrack):
56410         (WebCore::TextTrack::label):
56411         (WebCore::TextTrack::setLabel):
56412         (WebCore::TextTrack::language):
56413         (WebCore::TextTrack::setLanguage):
56414         * html/track/TextTrackCue.cpp:
56415         (WebCore::TextTrackCueBox::TextTrackCueBox):
56416         (WebCore::TextTrackCueBox::shadowPseudoId):
56417         (WebCore):
56418         (WebCore::TextTrackCue::updateDisplayTree):
56419         * html/track/TextTrackCue.h:
56420         (TextTrackCueBox):
56421         (TextTrackCue):
56422         * platform/mac/WebCoreSystemInterface.h:
56423         * platform/mac/WebCoreSystemInterface.mm:
56424         * rendering/CaptionPreferencesChangedListener.h: Removed.
56425         * rendering/RenderTheme.h:
56426         (WebCore):
56427         (RenderTheme):
56428         * rendering/RenderThemeMac.h:
56429         (RenderThemeMac):
56430         * rendering/RenderThemeMac.mm:
56431         (WebCore):
56432         (WebCore::RenderThemeMac::RenderThemeMac):
56433         (WebCore::RenderThemeMac::~RenderThemeMac):
56434
56435 2012-10-05  Tim Horton  <timothy_horton@apple.com>
56436
56437         [cg] GraphicsContextCG should ask CG whether the shadow offset workaround is required
56438         https://bugs.webkit.org/show_bug.cgi?id=98565
56439         <rdar://problem/12436468>
56440
56441         Reviewed by Simon Fraser.
56442
56443         On Mountain Lion and above, CG can tell us whether we need to work around incorrect
56444         shadow offsets. Prior to Mountain Lion, we should assume we need to apply the workaround.
56445
56446         No new tests, as this requires an obscure configuration to test.
56447
56448         * WebCore.exp.in:
56449         * platform/graphics/cg/GraphicsContextCG.cpp:
56450         (WebCore::applyShadowOffsetWorkaroundIfNeeded):
56451         (WebCore::GraphicsContext::setPlatformShadow):
56452         * platform/mac/WebCoreSystemInterface.h: Add wkCGContextDrawsWithCorrectShadowOffsets.
56453         * platform/mac/WebCoreSystemInterface.mm: Add wkCGContextDrawsWithCorrectShadowOffsets.
56454
56455 2012-10-05  Anders Carlsson  <andersca@apple.com>
56456
56457         Try to fix the build.
56458
56459         * rendering/RenderThemeMac.mm:
56460         (WebCore::RenderThemeMac::captionsWindowColor):
56461
56462 2012-10-05  Eric Seidel  <eric@webkit.org>
56463
56464         Remove needless virtual calls and inline RenderStyle::logical* to make table layout faster
56465         https://bugs.webkit.org/show_bug.cgi?id=98550
56466
56467         Reviewed by Andreas Kling.
56468
56469         This shaved another 5% (100ms) off of the runtime of resizecol.html microbenchmark:
56470         http://www.robohornet.org/tests/resizecol.html
56471
56472         * rendering/AutoTableLayout.cpp:
56473         (WebCore::AutoTableLayout::recalcColumn):
56474         * rendering/style/RenderStyle.cpp:
56475         * rendering/style/RenderStyle.h:
56476
56477 2012-10-04  Eric Carlson  <eric.carlson@apple.com>
56478
56479         Allow ports to override text track rendering style
56480         https://bugs.webkit.org/show_bug.cgi?id=97800
56481         <rdar://problem/12044964>
56482
56483         Reviewed by Silvia Pfeiffer.
56484
56485         * WebCore.exp.in: Export new WebkitSystemInterface functions.
56486         * WebCore.xcodeproj/project.pbxproj: Add CaptionPreferencesChangedListener.h.
56487
56488         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
56489             background, and text independently.
56490
56491         * html/HTMLMediaElement.cpp:
56492         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
56493         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
56494         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
56495         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
56496         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
56497         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
56498             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
56499         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
56500         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
56501             setClosedCaptionsVisible
56502         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
56503
56504         * html/shadow/MediaControlElements.cpp:
56505         (WebCore::MediaControlTextTrackContainerElement::userCaptionPreferencesChanged): New, if theme
56506             has a captions style sheet override, inject it into the current page group, otherwise
56507             remove injected sheet.
56508         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
56509             variable. Get caption font scale from theme instead of hard coding.
56510         * html/shadow/MediaControlElements.h:
56511
56512         * html/shadow/MediaControlRootElement.cpp:
56513         (WebCore::MediaControlRootElement::userCaptionPreferencesChanged): New.
56514         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56515         * html/shadow/MediaControlRootElement.h: Add userCaptionPreferencesChanged, minor cleanup.
56516
56517         * html/shadow/MediaControls.h:
56518         (WebCore::MediaControls::userCaptionPreferencesChanged): New.
56519
56520         * html/track/TextTrackCue.cpp:
56521         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
56522         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
56523             shadow pseudo id so it can be used elsewhere.
56524         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
56525         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
56526             shadow pseudo id so it can be used elsewhere.
56527         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
56528         (WebCore::TextTrackCue::updateDisplayTree):
56529         * html/track/TextTrackCue.h:
56530
56531         * platform/mac/WebCoreSystemInterface.h: Updated.
56532         * platform/mac/WebCoreSystemInterface.mm: Ditto.
56533
56534         * rendering/CaptionPreferencesChangedListener.h: Added.
56535
56536         * rendering/RenderTheme.h:
56537         (WebCore::RenderTheme::userPrefersCaptions): New, default do-nothing implementation.
56538         (WebCore::RenderTheme::userHasCaptionPreferences): Ditto.
56539         (WebCore::RenderTheme::captionFontSizeScale): Ditto.
56540         (WebCore::RenderTheme::captionsStyleSheetOverride): Ditto.
56541         (WebCore::RenderTheme::registerForCaptionPreferencesChangedCallbacks): Ditto.
56542         (WebCore::RenderTheme::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
56543
56544         * rendering/RenderThemeMac.h:
56545         * rendering/RenderThemeMac.mm:
56546         (WebCore::userCaptionPreferencesChangedNotificationCallback): New, receives preference changed notifications.
56547         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_listeningForCaptionPreferenceNotifications.
56548         (WebCore::RenderThemeMac::~RenderThemeMac): Unregister for notifications if necessary.
56549         (WebCore::RenderThemeMac::userHasCaptionPreferences): New, passthrough to WKSI function.
56550         (WebCore::RenderThemeMac::userPrefersCaptions): Ditto.
56551         (WebCore::RenderThemeMac::captionsWindowColor): Return Color with user's caption window color preference.
56552         (WebCore::RenderThemeMac::captionsBackgroundColor): Return Color with user's caption 
56553             background color preference.
56554         (WebCore::RenderThemeMac::captionsTextColor): Return Color with user's caption text color preference.
56555         (WebCore::RenderThemeMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
56556         (WebCore::RenderThemeMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
56557             or webkit-text-stroke property.
56558         (WebCore::RenderThemeMac::cssColorProperty): Return a String with css to set a property 
56559             with a color value.
56560         (WebCore::RenderThemeMac::captionsTextEdgeStyle): Return a String with css to style caption 
56561             text with the user's preferred text edge stye.
56562         (WebCore::RenderThemeMac::captionsDefaultFont): Return a String with css to style caption
56563             text with the user's preferred font.
56564         (WebCore::RenderThemeMac::captionsStyleSheetOverride): Return a String with css to style captions
56565             with the user's preferred style.
56566         (WebCore::RenderThemeMac::captionFontSizeScale): Return the user's preferred caption font scale.
56567         (WebCore::RenderThemeMac::captionPreferencesChanged): Notify listeners of caption preference change.
56568         (WebCore::RenderThemeMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
56569             changes listener.
56570         (WebCore::RenderThemeMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
56571             changes listener.
56572
56573 2012-10-05  Takashi Sakamoto  <tasak@google.com>
56574
56575         Inline continuations create :after generated content on style recalcs
56576         https://bugs.webkit.org/show_bug.cgi?id=93170
56577
56578         Reviewed by Abhishek Arya.
56579
56580         The bug is caused by RenderInline::styleDidChange's setContinuation(0).
56581         RenderObjectChildList uses continuation to know whether the given
56582         renderer should have AFTER render object or not.
56583         However, setContinuation(0) makes RenderObjectChildList to
56584         misunderstand that all continuations are last continuation.
56585         To avoid the misunderstanding, added a new flag to class
56586         RenderObejctChildList to enable/disable updating :after content (and
56587         also :before content).
56588
56589         Tests: fast/css-generated-content/after-with-inline-continuation.html
56590                fast/css-generated-content/dynamic-apply-after-for-inline.html
56591
56592         * rendering/RenderInline.cpp:
56593         (WebCore::RenderInline::styleDidChange):
56594         Disable upating :after content for continuations which are not
56595         the last one during setStyle just after setContinuation(0).
56596         The setStyle invokes RenderInline::styleDidChange and also invokes
56597         updateBeforeAfterContent via the styleDidChange. This means,
56598         the last continuation's updateBeforeAfterContent is also invoked
56599         after setContinuation(0). We have to update :after for the last
56600         continuation.
56601         * rendering/RenderObjectChildList.cpp:
56602         (WebCore):
56603         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
56604         If s_updateBeforeAfterContent is false, quickly exit
56605         updateBeforeAfterContent.
56606         * rendering/RenderObjectChildList.h:
56607         (RenderObjectChildList):
56608         Added a new flag s_enableUpdateBeforeAfterContent to enable/disable
56609         updating :before or :after content.
56610
56611 2012-10-05  Simon Fraser  <simon.fraser@apple.com>
56612
56613         Don't assume that TileCache layers are opaque
56614         https://bugs.webkit.org/show_bug.cgi?id=98555
56615
56616         Reviewed by Dean Jackson.
56617
56618         TileCache previously set all its tile CALayers as opaque.
56619         However, we will need non-opaque tile caches when we use this
56620         tile cache for tiled layers, so add a member function to
56621         control tile opacity.
56622         
56623         RenderLayerBacking already calls m_graphicsLayer->setContentsOpaque()
56624         using the FrameView's notion of opaqueness, so this change will
56625         cause the main tile cache to be non-opaque if external forces have
56626         set the FrameView to be non-opaque.
56627         
56628         Also tweak the layer border widths on tiled layers.
56629
56630         * platform/graphics/ca/mac/TileCache.h:
56631         (TileCache):
56632         (WebCore::TileCache::tilesAreOpaque):
56633         * platform/graphics/ca/mac/TileCache.mm:
56634         (WebCore::TileCache::TileCache):
56635         (WebCore::TileCache::setTilesOpaque):
56636         (WebCore::TileCache::createTileLayer):
56637         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
56638         (-[WebTileCacheLayer setOpaque:]):
56639         (-[WebTileCacheLayer isOpaque]):
56640         (-[WebTileCacheLayer setBorderWidth:]):
56641
56642 2012-10-05  Tony Chang  <tony@chromium.org>
56643
56644         Fix margin box ascent computation in flexbox
56645         https://bugs.webkit.org/show_bug.cgi?id=98540
56646
56647         Reviewed by Ojan Vafai.
56648
56649         The margin box ascent doesn't depend on the margin below the box.
56650
56651         Tests: css3/flexbox/flex-align.html: Fixed a test case and removed a FIXME.
56652                css3/flexbox/flex-align-vertical-writing-mode.html: Similar test case.
56653
56654         * rendering/RenderFlexibleBox.cpp:
56655         (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
56656
56657 2012-10-05  Ojan Vafai  <ojan@chromium.org>
56658
56659         Deprecated flexboxes subtract scrollbar width/height twice
56660         https://bugs.webkit.org/show_bug.cgi?id=98552
56661
56662         Reviewed by Tony Chang.
56663
56664         This is a regression from http://trac.webkit.org/changeset/119507.
56665         The problem is that contentHeight subtracts the scrollbar and
56666         RenderDeprecatedFlexbox subtracts the scrollbar.
56667
56668         -Make it so that we only access override sizes if one has been set.
56669         I think this makes the calling code more clear.
56670         -If we don't have one set, grab the height/width - borderAndPadding.
56671         -Add a FIXME to change this all back to being borderbox sizes.
56672         There's something trick with making table padding/border work right for that
56673         though (noted in the original patch).
56674
56675         Test: fast/flexbox/flexing-overflow-scroll-item.html
56676
56677         * rendering/RenderBox.cpp:
56678         (WebCore::RenderBox::overrideLogicalContentWidth):
56679         (WebCore::RenderBox::overrideLogicalContentHeight):
56680         (WebCore::RenderBox::availableLogicalHeightUsing):
56681         * rendering/RenderBox.h:
56682         (RenderBox):
56683         * rendering/RenderDeprecatedFlexibleBox.cpp:
56684         (WebCore::contentWidthForChild):
56685         (WebCore):
56686         (WebCore::contentHeightForChild):
56687         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
56688         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
56689         (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
56690
56691 2012-10-05  Eric Seidel  <eric@webkit.org>
56692
56693         Make tables which don't use col/row span much faster to layout
56694         https://bugs.webkit.org/show_bug.cgi?id=98221
56695
56696         Reviewed by Julien Chaffraix.
56697
56698         My sense is that most tables on webpages do not use colspan/rowspan
56699         so I stole another bit from RenderTableCell::m_column to avoid
56700         having to re-parse the colSpan/rowSpan attributes for every cell
56701         when doing table layout.
56702         This made these symbols disappear from biggrid.html/redraw.html (dglazkov's spreadsheets benchmarks)
56703         as well as moved our robohornet/resizecol.html number from an average of 3221ms to 2608ms (~20%!).
56704
56705         I removed m_hasHTMLTableCellElement (from http://trac.webkit.org/changeset/97691)
56706         since it was attempting to do the same sort of optimization.
56707
56708         * rendering/RenderTableCell.cpp:
56709         (WebCore::RenderTableCell::RenderTableCell):
56710         (WebCore::RenderTableCell::parseColSpanFromDOM):
56711         (WebCore::RenderTableCell::parseRowSpanFromDOM):
56712         (WebCore::RenderTableCell::layout):
56713         * rendering/RenderTableCell.h:
56714         (WebCore::RenderTableCell::colSpan):
56715         (WebCore::RenderTableCell::rowSpan):
56716         (RenderTableCell):
56717
56718 2012-10-05  Oli Lan  <olilan@chromium.org>
56719
56720         Allow EventHandler to handle longpress gestures, including longpress selection on Android.
56721         https://bugs.webkit.org/show_bug.cgi?id=98173
56722         
56723         Reviewed by Ryosuke Niwa.
56724
56725         Adds handling for GestureLongPress to EventHandler::handleGestureEvent, with a new
56726         handleGestureLongPress method. On Android, this method selects the closest word
56727         if the gesture event was over non-link text.
56728
56729         This is tested via a new chromium test WebViewTest.LongPressSelection.  
56730
56731         * page/EventHandler.cpp:
56732         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
56733         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
56734         (WebCore):
56735         (WebCore::EventHandler::handleGestureEvent):
56736         (WebCore::EventHandler::handleGestureLongPress):
56737         * page/EventHandler.h:
56738         (EventHandler):
56739
56740 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56741
56742         <marquee> element forces itself to be at least 1em high, regardless of 'height' declaration
56743         https://bugs.webkit.org/show_bug.cgi?id=18098
56744
56745         Reviewed by Eric Seidel.
56746
56747         This restriction originally existed to match IE, but IE changed some time ago to be normal instead.
56748         We're the last browser, afaict, to still enforce this de-facto restriction.
56749         This patch makes <marquee> instead act like a normal element.
56750
56751         Tests: fast/css/MarqueeLayoutTest.html (rewritten from the older, bad version)
56752
56753         * rendering/RenderMarquee.cpp:
56754         (WebCore::RenderMarquee::updateMarqueeStyle):
56755
56756 2012-10-05  Joe Mason  <jmason@rim.com>
56757
56758         [BlackBerry] Fix regression in proxy auth
56759         https://bugs.webkit.org/show_bug.cgi?id=98533
56760
56761         Reviewed by Yong Li.
56762
56763         The proxy auth dialog gets the proxy address from
56764         BlackBerry::Platform::Settings::proxyAddress, which returns
56765         "host:port", but we try to parse it with a KURL, which expects
56766         "scheme://host:port".  Since this is an http proxy, add http:// to the
56767         url to get it to parse.
56768
56769         PR 220567.
56770
56771         * platform/network/blackberry/NetworkJob.cpp:
56772         (WebCore::NetworkJob::sendRequestWithCredentials):
56773
56774 2012-10-05  Jer Noble  <jer.noble@apple.com>
56775
56776         No autorelease pool in place, causing buildup of autoreleased objects.
56777         https://bugs.webkit.org/show_bug.cgi?id=98522
56778         <rdar://problem/11647950>
56779
56780         Reviewed by Alexey Proskuryakov.
56781
56782         Wrap each timer callback in an AutodrainPool, ensuring an autorelease
56783         pool is present during calls from C/C++ into ObjC.
56784
56785         * platform/cf/RunLoopTimerCF.cpp:
56786         (WebCore::timerFired):
56787
56788 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
56789
56790         Deleting across multiple paragraphs can change the style of surrounding text
56791         https://bugs.webkit.org/show_bug.cgi?id=97266
56792
56793         Reviewed by Levi Weintraub.
56794
56795         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
56796         even when we're not annotating. We don't want to preserve all styles because it's against
56797         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
56798         styles from a mail blockquote because that's not a style the user has applied. See the comment
56799         in EditingStyle::wrappingStyleForSerialization.
56800
56801         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
56802
56803         * editing/EditingStyle.cpp:
56804         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
56805         (WebCore::EditingStyle::wrappingStyleForSerialization):
56806
56807 2012-10-05  Dan Bernstein  <mitz@apple.com>
56808
56809         Reversing a GlyphBuffer needlessly queries its size multiple times
56810         https://bugs.webkit.org/show_bug.cgi?id=98530
56811
56812         Reviewed by Simon Fraser.
56813
56814         No new tests because there is no change in behavior.
56815
56816         * WebCore.xcodeproj/project.pbxproj:
56817         * platform/graphics/FontFastPath.cpp:
56818         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced the condition
56819         (i < glyphBuffer.size() / 2) with the equivalent test (i < end).
56820         * platform/graphics/mac/FontComplexTextMac.cpp:
56821         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Ditto.
56822
56823 2012-10-05  José Dapena Paz  <jdapena@igalia.com>
56824
56825         [GTK] Add support for creating EGL contexts
56826         https://bugs.webkit.org/show_bug.cgi?id=77921
56827
56828         Reviewed by Martin Robinson.
56829
56830         This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
56831         options are set up on compile time, with the configure options
56832         --enable-egl and --enable-gles2.
56833
56834         The implementation only adds support for EGL on top of X11, to
56835         isolate the changes to the minimum. More changes should come
56836         later to enable EGL for other targets (as Wayland).
56837
56838         No new tests required, as existing WebGL and AC tests should cover
56839         the cases.
56840
56841         * GNUmakefile.am:
56842         * GNUmakefile.list.am:
56843         * platform/graphics/GraphicsContext3D.h:
56844         (GraphicsContext3D):
56845         * platform/graphics/OpenGLESShims.h:
56846         * platform/graphics/cairo/GLContext.cpp:
56847         (WebCore):
56848         (WebCore::GLContext::sharedX11Display):
56849         (WebCore::GLContext::cleanupSharedX11Display):
56850         (WebCore::activeContextList):
56851         (WebCore::GLContext::addActiveContext):
56852         (WebCore::GLContext::removeActiveContext):
56853         (WebCore::GLContext::cleanupActiveContextsAtExit):
56854         (WebCore::GLContext::createContextForWindow):
56855         (WebCore::GLContext::createOffscreenContext):
56856         * platform/graphics/cairo/GLContext.h:
56857         (GLContext):
56858         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
56859         (WebCore::GraphicsContext3D::create):
56860         (WebCore::GraphicsContext3D::GraphicsContext3D):
56861         (WebCore::GraphicsContext3D::~GraphicsContext3D):
56862         (WebCore::GraphicsContext3D::isGLES2Compliant):
56863         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
56864         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
56865         * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
56866         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
56867         * platform/graphics/egl/GLContextEGL.cpp: Added.
56868         (WebCore):
56869         (WebCore::sharedEGLDisplay):
56870         (WebCore::getEGLConfig):
56871         (WebCore::GLContextEGL::createWindowContext):
56872         (WebCore::GLContextEGL::createPbufferContext):
56873         (WebCore::GLContextEGL::createPixmapContext):
56874         (WebCore::GLContextEGL::createContext):
56875         (WebCore::GLContextEGL::GLContextEGL):
56876         (WebCore::GLContextEGL::~GLContextEGL):
56877         (WebCore::GLContextEGL::canRenderToDefaultFramebuffer):
56878         (WebCore::GLContextEGL::defaultFrameBufferSize):
56879         (WebCore::GLContextEGL::makeContextCurrent):
56880         (WebCore::GLContextEGL::swapBuffers):
56881         (WebCore::GLContextEGL::waitNative):
56882         (WebCore::GLContextEGL::platformContext):
56883         * platform/graphics/egl/GLContextEGL.h: Added.
56884         (WebCore):
56885         (GLContextEGL):
56886         * platform/graphics/glx/GLContextGLX.cpp:
56887         (WebCore::GLContextGLX::createWindowContext):
56888         (WebCore::GLContextGLX::createPbufferContext):
56889         (WebCore::GLContextGLX::createPixmapContext):
56890         (WebCore::GLContextGLX::createContext):
56891         (WebCore::GLContextGLX::~GLContextGLX):
56892         (WebCore::GLContextGLX::defaultFrameBufferSize):
56893         (WebCore::GLContextGLX::makeContextCurrent):
56894         (WebCore::GLContextGLX::swapBuffers):
56895         (WebCore):
56896         (WebCore::GLContextGLX::waitNative):
56897         * platform/graphics/glx/GLContextGLX.h:
56898         (GLContextGLX):
56899         * platform/graphics/mac/GraphicsContext3DMac.mm:
56900         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
56901         (WebCore::GraphicsContext3D::releaseShaderCompiler):
56902         (WebCore):
56903         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
56904         (WebCore::GraphicsContext3D::readPixels):
56905         (WebCore::GraphicsContext3D::reshapeFBOs):
56906         (WebCore::GraphicsContext3D::renderbufferStorage):
56907         * platform/graphics/qt/GraphicsContext3DQt.cpp:
56908         * platform/graphics/texmap/TextureMapper.h:
56909         * platform/gtk/RedirectedXCompositeWindow.cpp:
56910         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
56911         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
56912         (WebCore::RedirectedXCompositeWindow::resize):
56913         * platform/gtk/RedirectedXCompositeWindow.h:
56914
56915 2012-10-04  Jon Lee  <jonlee@apple.com>
56916
56917         Add a setting to enable plugin snapshotting
56918         https://bugs.webkit.org/show_bug.cgi?id=98319
56919         <rdar://problem/12426480>
56920
56921         Reviewed by Brady Eidson.
56922
56923         Add a new bit for this preference.
56924
56925         * page/Settings.cpp:
56926         (WebCore::Settings::Settings): Preference is false by default.
56927         * page/Settings.h: Added m_plugInSnapshottingEnabled bit.
56928         (WebCore::Settings::setPlugInSnapshottingEnabled): Set the bit.
56929         (WebCore::Settings::plugInSnapshottingEnabled): Return the bit.
56930
56931 2012-10-05  Vsevolod Vlasov  <vsevik@chromium.org>
56932
56933         Unreviewed inspector front-end closure compilaiton fixes.
56934
56935         * inspector/InjectedScriptCanvasModuleSource.js:
56936         * inspector/InjectedScriptExterns.js:
56937         (InjectedScriptHost.prototype.getInternalProperties):
56938         * inspector/front-end/DockController.js:
56939         * inspector/front-end/externs.js:
56940         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
56941
56942 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56943
56944         Replace uses of prefixed properties with unprefixed versions in the UA stylesheets
56945         https://bugs.webkit.org/show_bug.cgi?id=98453
56946
56947         Reviewed by Ojan Vafai.
56948
56949         Switched 'border-radius' and 'box-shadow' to their unprefixed version in the UA stylesheets.
56950
56951         No new tests, because the unprefixed properties have the same behavior as the prefixed.
56952
56953         * css/fullscreenQuickTime.css:
56954         (video:-webkit-full-screen::-webkit-media-controls-panel):
56955         * css/html.css:
56956         (keygen, select):
56957         (select[size][multiple]):
56958         (select[size="1"]):
56959         (::-webkit-validation-bubble-message):
56960         * css/themeBlackBerry.css:
56961         (input, textarea):
56962         * css/themeChromiumAndroid.css:
56963         (select[size][multiple]):
56964         * css/themeQtNoListboxes.css:
56965         (select[size][multiple]):
56966         * css/themeWin.css:
56967         (select[size="1"]):
56968         * css/view-source.css:
56969         (.webkit-html-message-bubble):
56970
56971 2012-10-05  Kevin Ellis  <kevers@chromium.org>
56972
56973         [chromium] Only inflate the height of rows in a popup menu when a touch device is detected.
56974         https://bugs.webkit.org/show_bug.cgi?id=98515
56975
56976         Reviewed by Adam Barth.
56977
56978         Enforces a minimum row height for popup menus when a touch device is
56979         detected.  In a previous patch (r127597), the sizing of popup was 
56980         consolidated for touch and non-touch.  Based on user feedback, reverting
56981         to the old behavior for non-touch and only adding padding for touch
56982         devices seems like a much safer strategy.  This patch is not a direct
56983         revert of r127567 since the padding previously used for touch is a bit
56984         excessive.
56985
56986         Covered by existing tests.
56987
56988         * platform/chromium/PopupListBox.cpp:
56989         (WebCore::PopupListBox::getRowHeight):
56990         * platform/chromium/PopupMenuChromium.cpp:
56991         (WebCore):
56992         * platform/chromium/PopupMenuChromium.h:
56993         (WebCore::PopupMenuChromium::optionRowHeightForTouch):
56994         (WebCore::PopupMenuChromium::setOptionRowHeightForTouch):
56995         (PopupMenuChromium):
56996
56997 2012-10-05  Alexander Pavlov  <apavlov@chromium.org>
56998
56999         Web Inspector: [Styles] Unable to edit properties in broken stylesheets
57000         https://bugs.webkit.org/show_bug.cgi?id=98246
57001
57002         Reviewed by Vsevolod Vlasov.
57003
57004         Pop source data for invalid rules off the stack whenever we have consecutive CSSParser::markRuleHeaderStart() invocations.
57005
57006         Test: inspector/styles/parse-stylesheet-errors.html
57007
57008         * css/CSSParser.cpp:
57009         (WebCore::CSSParser::popRuleData):
57010         (WebCore::CSSParser::markRuleHeaderStart):
57011         (WebCore::CSSParser::markRuleBodyStart):
57012         * css/CSSParser.h:
57013         (CSSParser):
57014
57015 2012-10-05  Gabor Rapcsanyi  <rgabor@webkit.org>
57016
57017         Add ARM-NEON support to VectorMath in WebAudio
57018         https://bugs.webkit.org/show_bug.cgi?id=98131
57019
57020         Reviewed by Zoltan Herczeg.
57021
57022         Speed up vector operations in WebAudio with NEON intrinsics.
57023
57024         * platform/audio/VectorMath.cpp:
57025         (WebCore::VectorMath::vsma):
57026         (WebCore::VectorMath::vsmul):
57027         (WebCore::VectorMath::vadd):
57028         (WebCore::VectorMath::vmul):
57029         (WebCore::VectorMath::zvmul):
57030         (WebCore::VectorMath::vsvesq):
57031         (WebCore::VectorMath::vmaxmgv):
57032
57033 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
57034
57035         Unreviewed, rolling out r130495.
57036         http://trac.webkit.org/changeset/130495
57037         https://bugs.webkit.org/show_bug.cgi?id=98268
57038
57039         Made WK2 tests crash.
57040
57041         * Target.pri:
57042         * platform/qt/QStyleFacade.cpp: Removed.
57043         * platform/qt/QStyleFacade.h: Removed.
57044
57045 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
57046
57047         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
57048         https://bugs.webkit.org/show_bug.cgi?id=98268
57049
57050         Reviewed by Tor Arne Vestbø.
57051
57052         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
57053
57054         QStyleFacade is a pure interface that lives in WebCore/platform/qt
57055         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
57056         minimal interface of what we need to draw with QStyle as well as basic
57057         hit testing and metric retrieval. It also provides a
57058         QStyleFacadeOption class that aggregates common meta-data for
57059         rendering primitives, such as direction, rectangle, state (sunken,
57060         enabled, etc.) or palette. It also provides some more slider/scrollbar
57061         specific fields in a slider sub-structure.
57062
57063         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
57064         them with state information from render objects, before calling straight to QStyle. Most of the common code
57065         was encapsulated in StylePainterQStyle.
57066
57067         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
57068         StylePainterQStyle to populate state into QStyleFacadeOption before
57069         calling into QStyleFacade.
57070
57071         The style facade is then implemented by QStyleFacadeImp, which extracts
57072         meta-data from QStyleFacadeOption arguments, populates style
57073         primitive specific QStyleOption objects and then calls on QStyle.
57074
57075         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
57076         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
57077         separate QtWebKitWidgets library in the future and therefore cannot use
57078         any WebCore types.
57079
57080         * Target.pri:
57081         * platform/qt/QStyleFacade.cpp: Added.
57082         (WebCore):
57083         (WebCore::QStyleFacade::styleForPage):
57084         * platform/qt/QStyleFacade.h: Added.
57085         (WebCore):
57086         (QStyleFacade):
57087         (WebCore::QStyleFacade::~QStyleFacade):
57088         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
57089         (QStyleFacadeOption):
57090         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
57091         (WebCore):
57092         (WebCore::RenderThemeQStyle::getStylePainter):
57093         (WebCore::StylePainterQStyle::StylePainterQStyle):
57094         (WebCore::StylePainterQStyle::init):
57095         (WebCore::RenderThemeQStyle::create):
57096         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
57097         (WebCore::RenderThemeQStyle::styleFactory):
57098         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
57099         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
57100         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
57101         (WebCore::RenderThemeQStyle::inflateButtonRect):
57102         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
57103         (WebCore::RenderThemeQStyle::adjustButtonStyle):
57104         (WebCore::RenderThemeQStyle::setButtonPadding):
57105         (WebCore::RenderThemeQStyle::paintButton):
57106         (WebCore::RenderThemeQStyle::paintTextField):
57107         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
57108         (WebCore::RenderThemeQStyle::paintTextArea):
57109         (WebCore::RenderThemeQStyle::setPopupPadding):
57110         (WebCore::RenderThemeQStyle::colorPalette):
57111         (WebCore::RenderThemeQStyle::paintMenuList):
57112         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
57113         (WebCore::RenderThemeQStyle::paintMenuListButton):
57114         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
57115         (WebCore::RenderThemeQStyle::paintProgressBar):
57116         (WebCore::RenderThemeQStyle::paintSliderTrack):
57117         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
57118         (WebCore::RenderThemeQStyle::paintSliderThumb):
57119         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
57120         (WebCore::RenderThemeQStyle::paintSearchField):
57121         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
57122         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
57123         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
57124         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
57125         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
57126         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
57127         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
57128         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
57129         (WebCore):
57130         (RenderThemeQStyle):
57131         (WebCore::RenderThemeQStyle::qStyle):
57132         (StylePainterQStyle):
57133         (WebCore::StylePainterQStyle::isValid):
57134         (WebCore::StylePainterQStyle::paintButton):
57135         (WebCore::StylePainterQStyle::paintTextField):
57136         (WebCore::StylePainterQStyle::paintComboBox):
57137         (WebCore::StylePainterQStyle::paintComboBoxArrow):
57138         (WebCore::StylePainterQStyle::paintSliderTrack):
57139         (WebCore::StylePainterQStyle::paintSliderThumb):
57140         (WebCore::StylePainterQStyle::paintInnerSpinButton):
57141         (WebCore::StylePainterQStyle::paintProgressBar):
57142         (WebCore::StylePainterQStyle::paintScrollCorner):
57143         (WebCore::StylePainterQStyle::paintScrollBar):
57144         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
57145         (WebCore):
57146         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
57147         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
57148         (WebCore::scPart):
57149         (WebCore::scrollbarPart):
57150         (WebCore::initSliderStyleOption):
57151         (WebCore::ScrollbarThemeQStyle::paint):
57152         (WebCore::ScrollbarThemeQStyle::hitTest):
57153         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
57154         (WebCore::ScrollbarThemeQStyle::invalidatePart):
57155         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
57156         (WebCore::ScrollbarThemeQStyle::thumbPosition):
57157         (WebCore::ScrollbarThemeQStyle::thumbLength):
57158         (WebCore::ScrollbarThemeQStyle::trackPosition):
57159         (WebCore::ScrollbarThemeQStyle::trackLength):
57160         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
57161         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
57162         (WebCore):
57163         (ScrollbarThemeQStyle):
57164         (WebCore::ScrollbarThemeQStyle::qStyle):
57165
57166 2012-10-05  Andrei Bucur  <abucur@adobe.com>
57167
57168         Incomplete repaint of boxes with inset box-shadow and padding when resized
57169         https://bugs.webkit.org/show_bug.cgi?id=59863
57170
57171         Reviewed by Simon Fraser.
57172
57173         The patch extends the repaint rectangle to include the inset shadow extent for renderers that resize and need to be repainted. The rectangle computations are also better fragmented and easier to read.
57174
57175         New Test: fast/repaint/box-shadow-inset-repaint.html
57176
57177         * rendering/RenderObject.cpp:
57178         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
57179         * rendering/style/RenderStyle.cpp:
57180         (WebCore::RenderStyle::getShadowInsetExtent):
57181         (WebCore):
57182         * rendering/style/RenderStyle.h:
57183
57184 2012-10-04  Kent Tamura  <tkent@chromium.org>
57185
57186         Fix sub-field width to the maximum width of a placeholder and the maximum value
57187         https://bugs.webkit.org/show_bug.cgi?id=98481
57188
57189         Reviewed by Hajime Morita.
57190
57191         We can't assume a placeholder text is shorter than the width of
57192         digits. The placeholder string for the year field of
57193         input[type=week] is "----", but input[type=date] will have a
57194         localized string for it.
57195
57196         We should set the 'width' CSS property to the maximum of the
57197         placeholder width and the maximum value width in order to prevent
57198         the field width from growing/narrowing.
57199
57200         Before this patch, we secured four digits space for a year field,
57201         and allowed the field to grow its width when a larger year is
57202         set. After this patch, we don't allow it to grow because the
57203         'width' property is set to the maximum width.
57204
57205         Update week-multiple-fields-appearance-basic.html, and the
57206         following tests are affected.
57207         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes.html
57208         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html
57209         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-style.html
57210
57211         * html/shadow/DateTimeNumericFieldElement.cpp:
57212         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
57213         Enable customStyleForRenderer.
57214         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
57215         Added. The code is similar to DateTimeSymbolicFieldElement::customStyleForRenderer().
57216         (WebCore::DateTimeNumericFieldElement::formatValue):
57217         Made a function with the code in value(). This is used in
57218         customStyleForRenderer() and value().
57219         (WebCore::DateTimeNumericFieldElement::value): Use formatValue().
57220         * html/shadow/DateTimeNumericFieldElement.h:
57221         (DateTimeNumericFieldElement): Declare new functions.
57222
57223 2012-10-05  Kent Tamura  <tkent@chromium.org>
57224
57225         Improve spelling and performance of Localizer.cpp
57226         https://bugs.webkit.org/show_bug.cgi?id=98485
57227
57228         Reviewed by Kentaro Hara.
57229
57230         Some improvements pointed in webkit.org/b/98229#c5.
57231
57232         No new tests because of no behavior change.
57233
57234         * platform/text/Localizer.h:
57235         (Localizer):
57236          - Rename dateTimeFormatWithSecond to dateTimeFormatWithSeconds
57237          - Rename dateTimeFormatWithoutSecond to dateTimeFormatWithoutSeconds
57238          - Add data members: m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
57239         * platform/text/Localizer.cpp:
57240         (WebCore::Localizer::timeFormat): Check isNull instead of isEmpty
57241         (WebCore::Localizer::shortTimeFormat): Ditto.
57242         (WebCore::Localizer::dateTimeFormatWithSeconds):
57243         - Renamed.
57244         - Cache the concatenation result to a data member.
57245         (WebCore::Localizer::dateTimeFormatWithoutSeconds): Ditto.
57246
57247         * html/DateTimeInputType.cpp:
57248         (WebCore::DateTimeInputType::setupLayoutParameters): Follow the renaming.
57249         * html/DateTimeLocalInputType.cpp:
57250         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
57251
57252 2012-10-04  Kenichi Ishibashi  <bashi@chromium.org>
57253
57254         [WebSocket] ExtensionParser should have its own file
57255         https://bugs.webkit.org/show_bug.cgi?id=98475
57256
57257         Reviewed by Yuta Kitamura.
57258
57259         Factor out ExtensionParser from WebSocketExtensionDispatcher and rename it as WebSocketExtensionParser.
57260         WebSocketExtensionParser has its own file.
57261
57262         No changes in behavior. Added a test case for parsing Sec-WebSocket-Extensions field as a chromium unit test.
57263
57264         * CMakeLists.txt: Added WebSocketExtensionParser.
57265         * GNUmakefile.list.am: Ditto.
57266         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
57267         (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
57268         Use WebSocketExtensionParser::parseExtension() to parser extension header value.
57269         * Modules/websockets/WebSocketExtensionParser.cpp: Added.
57270         (WebCore):
57271         (WebCore::WebSocketExtensionParser::finished): Moved from ExtensionParser.
57272         (WebCore::WebSocketExtensionParser::parsedSuccessfully): Ditto.
57273         (WebCore::isSeparator): Ditto.
57274         (WebCore::WebSocketExtensionParser::skipSpaces): Ditto.
57275         (WebCore::WebSocketExtensionParser::consumeToken): Ditto.
57276         (WebCore::WebSocketExtensionParser::consumeQuotedString): Ditto.
57277         (WebCore::WebSocketExtensionParser::consumeQuotedStringOrToken): Ditto.
57278         (WebCore::WebSocketExtensionParser::consumeCharacter): Ditto.
57279         (WebCore::WebSocketExtensionParser::parseExtension): Moved from WebSocketExtensionDispatcher.
57280         * Modules/websockets/WebSocketExtensionParser.h: Added.
57281         (WebCore):
57282         (WebSocketExtensionParser):
57283         (WebCore::WebSocketExtensionParser::WebSocketExtensionParser):
57284         (WebCore::WebSocketExtensionParser::currentToken):
57285         * Target.pri: Added WebSocketExtensionParser.
57286         * WebCore.gypi: Ditto.
57287         * WebCore.vcproj/WebCore.vcproj: Ditto.
57288         * WebCore.xcodeproj/project.pbxproj: Ditto.
57289
57290 2012-10-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
57291
57292         <input> size attribute should throw INDEX_SIZE_ERR when set to 0
57293         https://bugs.webkit.org/show_bug.cgi?id=61675
57294
57295         Reviewed by Kent Tamura.
57296
57297         According to the spec, the size IDL attribute of input elements is limited
57298         to only non-negative numbers greater than zero. It should throw INDEX_SIZE_ERR
57299         exception when set to 0. New behavior matches both Firefox and IE.
57300         Spec: http://www.w3.org/TR/html5/common-input-element-attributes.html#the-size-attribute
57301
57302         Test: fast/dom/HTMLInputElement/input-size-attribute.html
57303
57304         * html/HTMLInputElement.cpp:
57305         (WebCore::HTMLInputElement::setSize):
57306         * html/HTMLInputElement.h:
57307         (HTMLInputElement):
57308         * html/HTMLInputElement.idl:
57309
57310 2012-10-04  Kent Tamura  <tkent@chromium.org>
57311
57312         Fix font for date/time input types.
57313         https://bugs.webkit.org/show_bug.cgi?id=98478
57314
57315         Reviewed by Kentaro Hara.
57316
57317         input[type=date] should use monospace font if
57318         ENABLE_INPUT_MULTIPLE_FIELDS_UI && ENABLE_INPUT_TYPE_DATE.
57319
57320         For other date/time types, they should use monospace font only
57321         if their types are enabled. input[type="foo"] matches input
57322         element with type="foo" even if the foo type is not supported.
57323
57324         The input[type=date] change is covered by
57325         fast/forms/date/calendar-picker-appearance.html,
57326         platform/chromium/fast/forms/date/date-suggestion-picker-appearance*.html
57327
57328         * css/html.css:
57329         (input[type="date"]):
57330         (input[type="datetime"]):
57331         (input[type="datetime-local"]):
57332         (input[type="month"]):
57333         (input[type="time"]):
57334
57335 2012-10-04  Hajime Morrita  <morrita@google.com>
57336
57337         [Refactoring] Some classes in StyleResolver.cpp/h could have its own file.
57338         https://bugs.webkit.org/show_bug.cgi?id=98469
57339
57340         Reviewed by Dimitri Glazkov.
57341
57342         This change extracts RuleData, RuleSet, RuleFeature and Featurs class
57343         to its own file: RuleSet.h/cpp and RuleFeature.h/cpp
57344
57345         RuleFeature class is moved fro StyleResolver inner class to plain WebCore class.
57346         Feaures class is renamed to RuleFeatureSet to avoid possible name conflict.
57347
57348         No new tests. Just splitting file and doing simple rename.
57349
57350         * CMakeLists.txt:
57351         * GNUmakefile.list.am:
57352         * Target.pri:
57353         * WebCore.gypi:
57354         * WebCore.xcodeproj/project.pbxproj:
57355         * css/CSSAllInOne.cpp:
57356         * css/RuleFeature.cpp: Added.
57357         (WebCore):
57358         (WebCore::RuleFeatureSet::add):
57359         (WebCore::RuleFeatureSet::clear):
57360         (WebCore::RuleFeatureSet::reportMemoryUsage):
57361         * css/RuleFeature.h: Added.
57362         (WebCore):
57363         (RuleFeature):
57364         (WebCore::RuleFeature::RuleFeature):
57365         (RuleFeatureSet):
57366         (WebCore::RuleFeatureSet::RuleFeatureSet):
57367         * css/RuleSet.cpp: Added.
57368         (WebCore):
57369         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
57370         (WebCore::selectorListContainsUncommonAttributeSelector):
57371         (WebCore::isCommonAttributeSelectorAttribute):
57372         (WebCore::containsUncommonAttributeSelector):
57373         (WebCore::RuleData::RuleData):
57374         (WebCore::RuleData::reportMemoryUsage):
57375         (WebCore::reportAtomRuleMap):
57376         (WebCore::RuleSet::reportMemoryUsage):
57377         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
57378         (WebCore::collectFeaturesFromSelector):
57379         (WebCore::collectFeaturesFromRuleData):
57380         (WebCore::RuleSet::addToRuleSet):
57381         (WebCore::RuleSet::addRule):
57382         (WebCore::RuleSet::addPageRule):
57383         (WebCore::RuleSet::addRegionRule):
57384         (WebCore::RuleSet::addRulesFromSheet):
57385         (WebCore::RuleSet::addStyleRule):
57386         (WebCore::shrinkMapVectorsToFit):
57387         (WebCore::RuleSet::shrinkToFit):
57388         * css/RuleSet.h: Added.
57389         (WebCore):
57390         (RuleData):
57391         (WebCore::RuleData::position):
57392         (WebCore::RuleData::rule):
57393         (WebCore::RuleData::selector):
57394         (WebCore::RuleData::selectorIndex):
57395         (WebCore::RuleData::hasFastCheckableSelector):
57396         (WebCore::RuleData::hasMultipartSelector):
57397         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
57398         (WebCore::RuleData::containsUncommonAttributeSelector):
57399         (WebCore::RuleData::specificity):
57400         (WebCore::RuleData::linkMatchType):
57401         (WebCore::RuleData::hasDocumentSecurityOrigin):
57402         (WebCore::RuleData::isInRegionRule):
57403         (WebCore::RuleData::descendantSelectorIdentifierHashes):
57404         (SameSizeAsRuleData):
57405         (RuleSet):
57406         (WebCore::RuleSet::create):
57407         (WebCore::RuleSet::disableAutoShrinkToFit):
57408         (WebCore::RuleSet::features):
57409         (WebCore::RuleSet::idRules):
57410         (WebCore::RuleSet::classRules):
57411         (WebCore::RuleSet::tagRules):
57412         (WebCore::RuleSet::shadowPseudoElementRules):
57413         (WebCore::RuleSet::linkPseudoClassRules):
57414         (WebCore::RuleSet::focusPseudoClassRules):
57415         (WebCore::RuleSet::universalRules):
57416         (WebCore::RuleSet::pageRules):
57417         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
57418         (RuleSetSelectorPair):
57419         (WebCore::RuleSet::RuleSet):
57420         * css/StyleResolver.cpp:
57421         (WebCore):
57422         (WebCore::makeRuleSet):
57423         (WebCore::StyleResolver::collectMatchingRulesForList):
57424         * css/StyleResolver.h:
57425         (StyleResolver):
57426
57427 2012-10-04  Adam Barth  <abarth@webkit.org>
57428
57429         FeatureObserver should distinguish between legacy HTML and text notifications
57430         https://bugs.webkit.org/show_bug.cgi?id=98441
57431
57432         Reviewed by Tony Chang.
57433
57434         We might be able to drop support for legacy HTML notifications before
57435         we can drop support for legacy text notifications. We should measure
57436         and find out.
57437
57438         * Modules/notifications/NotificationCenter.idl:
57439         * page/FeatureObserver.h:
57440
57441 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57442
57443         Removing the unused member variable m_wasMalformed from HTMLFormElement class and its related code frgment.
57444         https://bugs.webkit.org/show_bug.cgi?id=98444
57445
57446         Reviewed by Eric Seidel.
57447
57448         The member variable m_wasMalformed of HTMLFormElement class was used to determine if the <form> tag was malformed or not.
57449         This information was used elsewhere to decide if bottom margins have to be included for such a <form>.
57450         However currently this member variable is not being set by any code following code refactoring in HTML parser class.
57451
57452         Code cleanup patch. No new tests required.
57453
57454         * html/HTMLFormElement.cpp:
57455         (WebCore::HTMLFormElement::HTMLFormElement):
57456           Removed m_wasMalformed initialization.
57457
57458         * html/HTMLFormElement.h:
57459         (HTMLFormElement):
57460          Removed m_wasMalformed variable.
57461          Removed m_wasMalformed variable's setter and getter functions.
57462
57463         * rendering/RenderBlock.cpp:
57464         (WebCore::RenderBlock::layoutBlock):
57465          Removed code fragment using/dependent on m_wasMalformed.
57466
57467 2012-10-04  Rik Cabanier  <cabanier@adobe.com>
57468
57469         Turn Compositing on by default in WebKit build
57470         https://bugs.webkit.org/show_bug.cgi?id=98315
57471
57472         Reviewed by Simon Fraser.
57473
57474         enable -webkit-blend-mode on trunk.
57475
57476         No new tests. Existing blending test were updated.
57477
57478         * Configurations/FeatureDefines.xcconfig:
57479         * css/CSSPropertyNames.in:
57480         * css/CSSValueKeywords.in:
57481
57482 2012-10-04  Hayato Ito  <hayato@chromium.org>
57483
57484         [Refactoring] Introduce a traversal strategy in SelectorChecker
57485         https://bugs.webkit.org/show_bug.cgi?id=97298
57486
57487         Reviewed by Antti Koivisto.
57488
57489         We extract DOM traversal code from SelectorChecker so that we can use another traversal strategy.
57490         Another traversal strategy will be introduced in Bug 96990.
57491
57492         Since this code path is very hot, we were very careful not to regress performance.
57493         We will use template specialization to change the traversal implementation.
57494
57495         We confirmed that this patch does not regress SelectorCheckerPerformance. I have checked the performance of
57496         the added test in my Linux Box using run-perf-tests.
57497
57498         The performance of the added test before using this patch was:
57499
57500           RESULT CSS: PseudoClassSelectors= 3399.68308031 runs/s
57501           median= 3404.48685564 runs/s, stdev= 37.3480114449 runs/s, min= 3272.64871114 runs/s, max= 3438.72385184 runs/s
57502
57503         When we used this patch, the performance was:
57504
57505           RESULT CSS: PseudoClassSelectors= 3367.74473886 runs/s
57506           median= 3367.12072755 runs/s, stdev= 14.1464547639 runs/s, min= 3348.55881171 runs/s, max= 3395.98212857 runs/s
57507
57508         Test: PerformanceTests/CSS/PseudoClass-Selectors.html
57509
57510         * css/SelectorChecker.cpp:
57511         (WebCore):
57512         (WebCore::SelectorChecker::checkSelector): Make this a template method to accept another Context type.
57513         Another Context type will be introduced in coming patch.
57514         (WebCore::SelectorChecker::checkOneSelector):
57515         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild):
57516         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild):
57517         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType):
57518         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType):
57519         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore):
57520         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore):
57521         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter):
57522         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter):
57523         * css/SelectorChecker.h:
57524         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
57525         (SelectorCheckingContext):
57526         (SelectorChecker):
57527         (DOMTraversalStrategy): Extracted the DOM traversal code from SelectorChecker. Another traversal code
57528         will be introduced the coming patch.
57529
57530 2012-10-04  Eric Seidel  <eric@webkit.org>
57531
57532         SVGAttributeHashTranslator does not need to copy QualifiedName in the common case
57533         https://bugs.webkit.org/show_bug.cgi?id=98473
57534
57535         Reviewed by Adam Barth.
57536
57537         I tested this using instruments on a test case which modified SVG attributes in a loop.
57538         I believe pdr has some perf-tests in this area, but they weren't needed here.  A simple sample showed this as a huge win,
57539         since we're no longer creating a QualifiedName (and thus adding it to the hash) on each QualifiedName-based lookup in SVG.
57540
57541         * svg/SVGElement.h:
57542         (WebCore::SVGAttributeHashTranslator::hash):
57543         (WebCore::SVGAttributeHashTranslator::equal):
57544
57545 2012-10-04  Julien Chaffraix  <jchaffraix@webkit.org>
57546
57547         Split the intrinsic padding update code out of RenderTableSection::layoutRows
57548         https://bugs.webkit.org/show_bug.cgi?id=98454
57549
57550         Reviewed by Eric Seidel.
57551
57552         RenderTableSection::layoutRows is very long and it's difficult to see what's
57553         going on. This change moves the intrinsic padding update code into RenderTableCell
57554         for clarity. While at it, cleaned up a bit the code (renaming variables, functions).
57555
57556         Change covered by existing table tests.
57557
57558         * rendering/RenderTableCell.cpp:
57559         (WebCore::RenderTableCell::computeIntrinsicPadding):
57560         Added this new function that does the update. Removed the 'default' case, replaced by
57561         the explicit label BASELINE_MIDDLE.
57562
57563         * rendering/RenderTableCell.h:
57564         (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
57565         (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
57566         (WebCore::RenderTableCell::setIntrinsicPadding):
57567         Moved those setters to the private section as we want other classes
57568         to use computeIntrinsicPadding.
57569
57570         * rendering/RenderTableSection.cpp:
57571         (WebCore::RenderTableSection::layoutRows):
57572         Replaced the code with a call to RenderTableCell::computeIntrinsicPadding.
57573         Also moved 2 variables in the loop per our coding style.
57574
57575         * rendering/RenderTableSection.h:
57576         (WebCore::RenderTableSection::rowBaseline):
57577         Renamed to match our coding style.
57578
57579 2012-10-04  Nate Chapin  <japhet@chromium.org>
57580
57581         Crash in EventHandler::mouseMoved().
57582         https://bugs.webkit.org/show_bug.cgi?id=98460
57583
57584         Reviewed by Abhishek Arya.
57585
57586         No new tests, this fixes fast/events/mouse-moved-remove-frame-crash.html.
57587
57588         * page/EventHandler.cpp:
57589         (WebCore::EventHandler::mouseMoved):
57590
57591 2012-10-04  Adam Barth  <abarth@webkit.org>
57592
57593         [V8] NotificationCenter leaks because it uses buggy custom bindings
57594         https://bugs.webkit.org/show_bug.cgi?id=98445
57595
57596         Reviewed by Tony Chang.
57597
57598         There's no reason to use custom bindings here. All they do is cause leaks..
57599
57600         * Modules/notifications/NotificationCenter.idl:
57601         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
57602
57603 2012-10-04  Tab Atkins  <jackalmage@gmail.com>
57604
57605         Selector specificity categories "overflow" into higher categories
57606         https://bugs.webkit.org/show_bug.cgi?id=98295
57607
57608         Reviewed by Eric Seidel.
57609
57610         This patch adds per-component overflow guards for CSS selector specificity.
57611         Previously, we didn't guard against overflow. 
57612         Since we stored each component as a byte mapped into a single unsigned int for the whole specificity,
57613         256 of a particular simple selector was equivalent to 1 of the next-higher-group selector.
57614         This violated the Selectors specification,
57615         which requires the components to be compared lexicographically.
57616
57617         Tests: /fast/selectors/specificity-overflow.html
57618
57619         * css/CSSSelector.cpp:
57620         (WebCore::CSSSelector::specificity):
57621
57622 2012-10-04  Enrica Casucci  <enrica@apple.com>
57623
57624         Font::glyphDataAndPageForCharacter doesn't account for text orientation when using systemFallback on a cold cache.
57625         https://bugs.webkit.org/show_bug.cgi?id=98452.
57626
57627         Reviewed by Dan Bernstein.
57628
57629         The text orientation was considered only when there is a cache hit.
57630         This change moves the logic to handle text orientation to a separate
57631         inline function that is called also when the glyph is added to the cache.
57632
57633         Test: fast/text/vertical-rl-rtl-linebreak.html
57634
57635         * platform/graphics/FontFastPath.cpp:
57636         (WebCore::applyTextOrientationForCharacter): Added.
57637         (WebCore::Font::glyphDataAndPageForCharacter): Modified to use the new function in
57638         both cases of cold and warm cache.
57639
57640 2012-10-04  Adam Klein  <adamk@chromium.org>
57641
57642         MutationRecord attributeName should be null for non attribute changes
57643         https://bugs.webkit.org/show_bug.cgi?id=98438
57644
57645         Reviewed by Ojan Vafai.
57646
57647         Test: fast/mutation/mutation-record-nullity.html
57648
57649         * dom/MutationRecord.idl:
57650
57651 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
57652
57653         Final part of "sync" to "flush" renaming
57654         https://bugs.webkit.org/show_bug.cgi?id=98430
57655
57656         Reviewed by Tim Horton.
57657
57658         Change method names on GraphicsLayer and GraphicsLayerClient that
57659         refer to "sync" to use the term "flush" instead, to be consistent
57660         with the rest of the code.
57661
57662         * platform/graphics/GraphicsLayer.h:
57663         (WebCore::GraphicsLayer::flushCompositingState):
57664         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
57665         * platform/graphics/GraphicsLayerClient.h:
57666         (GraphicsLayerClient):
57667         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
57668         (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
57669         * platform/graphics/blackberry/LayerWebKitThread.cpp:
57670         (WebCore::LayerWebKitThread::setNeedsCommit):
57671         * platform/graphics/ca/GraphicsLayerCA.cpp:
57672         (WebCore::GraphicsLayerCA::flushCompositingState):
57673         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
57674         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
57675         (WebCore::GraphicsLayerCA::positionForCloneRootLayer):
57676         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
57677         * platform/graphics/ca/GraphicsLayerCA.h:
57678         (GraphicsLayerCA):
57679         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
57680         (WebCore::GraphicsLayerTextureMapper::notifyChange):
57681         (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
57682         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
57683         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
57684         (GraphicsLayerTextureMapper):
57685         * platform/graphics/texmap/TextureMapperLayer.cpp:
57686         (WebCore::TextureMapperLayer::flushCompositingState):
57687         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
57688         * platform/graphics/texmap/TextureMapperLayer.h:
57689         (TextureMapperLayer):
57690         * rendering/RenderLayerBacking.cpp:
57691         (WebCore::RenderLayerBacking::notifyFlushRequired):
57692         * rendering/RenderLayerBacking.h:
57693         (RenderLayerBacking):
57694         * rendering/RenderLayerCompositor.cpp:
57695         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
57696         * rendering/RenderLayerCompositor.h:
57697         (WebCore::RenderLayerCompositor::notifyFlushRequired):
57698
57699 2012-10-04  Tab Atkins  <tabatkins@google.com>
57700
57701         1ex should equal .5em when the font has no x-height metric
57702         https://bugs.webkit.org/show_bug.cgi?id=80360
57703
57704         Reviewed by Eric Seidel.
57705
57706         Updated FontMetrics and CSSPrimitiveValue to have/use an explicit "hasXHeight" flag to determine how to size an 'ex' unit.
57707
57708         Updated a few of the platform font files to set the flag properly.
57709
57710         Patch cleanup by David Barr <davidbarr@chromium.org>.
57711
57712         Test: fast/css/ex-unit-with-no-x-height.html
57713
57714         * css/CSSPrimitiveValue.cpp:
57715         (WebCore::CSSPrimitiveValue::computeLengthDouble):
57716         * platform/graphics/FontMetrics.h:
57717         (WebCore::FontMetrics::FontMetrics):
57718         (WebCore::FontMetrics::setXHeight):
57719         (FontMetrics):
57720         (WebCore::FontMetrics::hasXHeight):
57721         (WebCore::FontMetrics::setHasXHeight):
57722         (WebCore::FontMetrics::reset):
57723         * platform/graphics/skia/SimpleFontDataSkia.cpp:
57724         (WebCore::SimpleFontData::platformInit):
57725
57726 2012-10-04  Ryosuke Niwa  <rniwa@webkit.org>
57727
57728         Build fix after r130411. Add the right offset.
57729         Also use RefPtr instead of a raw pointer for next and previous pointers.
57730
57731         * editing/ReplaceSelectionCommand.cpp:
57732         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
57733
57734 2012-10-04  Alec Flett  <alecflett@chromium.org>
57735
57736         IndexedDB: promote objectstore/index backend ids to the frontend
57737         https://bugs.webkit.org/show_bug.cgi?id=97834
57738
57739         Reviewed by Tony Chang.
57740
57741         Expose int64-based database/objectStore/index ids to the renderer,
57742         step 1 of 2. Support both styles of createObjectStore and
57743         createIndex: those that take an explicit id, and those that take
57744         -1, meaning to autogenerate an id on the backend. In part 2, after
57745         the chromium side lands, support for the autogenerated ids will be
57746         removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)
57747
57748         This is a part of larger refactoring work to ultimately make the interface
57749         between the frontend and the backend simpler.
57750
57751         No new tests, extensive ASSERTs and existing tests cover correctness.
57752
57753         * Modules/indexeddb/IDBBackingStore.h:
57754         (IDBBackingStore):
57755         * Modules/indexeddb/IDBDatabase.cpp:
57756         (WebCore::IDBDatabase::createObjectStore):
57757         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
57758         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
57759         (WebCore::IDBDatabaseBackendImpl::openInternal):
57760         (WebCore::IDBDatabaseBackendImpl::metadata):
57761         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
57762         (WebCore):
57763         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
57764         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
57765         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
57766         (IDBDatabaseBackendImpl):
57767         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
57768         (IDBDatabaseBackendInterface):
57769         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
57770         (WebCore::IDBIndexBackendImpl::metadata):
57771         * Modules/indexeddb/IDBIndexBackendImpl.h:
57772         (WebCore::IDBIndexBackendImpl::create):
57773         (IDBIndexBackendImpl):
57774         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
57775         (WebCore):
57776         (WebCore::getMaxObjectStoreId):
57777         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
57778         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
57779         (WebCore::IDBLevelDBBackingStore::getObjectStores):
57780         (WebCore::setMaxObjectStoreId):
57781         (WebCore::IDBLevelDBBackingStore::createObjectStore):
57782         (WebCore::getMaxIndexId):
57783         (WebCore::setMaxIndexId):
57784         (WebCore::IDBLevelDBBackingStore::createIndex):
57785         * Modules/indexeddb/IDBLevelDBBackingStore.h:
57786         (IDBLevelDBBackingStore):
57787         * Modules/indexeddb/IDBMetadata.h:
57788         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
57789         (IDBDatabaseMetadata):
57790         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
57791         (IDBObjectStoreMetadata):
57792         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
57793         (IDBIndexMetadata):
57794         * Modules/indexeddb/IDBObjectStore.cpp:
57795         (WebCore::IDBObjectStore::createIndex):
57796         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
57797         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
57798         (WebCore::IDBObjectStoreBackendImpl::metadata):
57799         (WebCore::IDBObjectStoreBackendImpl::createIndex):
57800         (WebCore):
57801         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
57802         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
57803         (WebCore::IDBObjectStoreBackendImpl::create):
57804         (IDBObjectStoreBackendImpl):
57805         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
57806 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57807
57808         Layout broken after cloning and re-inserting a table with a misplaced <form>
57809         https://bugs.webkit.org/show_bug.cgi?id=86746
57810
57811         Reviewed by Julien Chaffraix.
57812
57813         There is a concept of demotion for a <form> contained in a table. A <form> is demoted if its immediate parent
57814         is either a <table>, table sections (tbody, etc) or a table row (tr). A renderer for such a <form> is created only
57815         if its display is one of the table display types (TABLE, INLINE_TABLE, TABLE_FOOTER_GROUP, etc).
57816         However when a <table> containing a demoted <form> is cloned, the <form> does not retain its demotion state and 
57817         results in the table getting improperly rendered.
57818
57819         Test: fast/table/form-with-non-table-display-inside-table-elements.html
57820
57821         * html/HTMLFormElement.cpp:
57822         (WebCore::HTMLFormElement::copyNonAttributePropertiesFromElement):
57823           Extended the virtual function for HTMLFormElement class specific implementation.
57824           The function is used to copy any necessary state information(member variables) associated with
57825           the <form> element being cloned to the current node.
57826           For HTMLFormElement node the member variable can be classified into five groups based on the 
57827           information they hold:
57828             1) Variables containing information regarding <form> subtree and elements associated with it.
57829                These get updated as and when an element is added to the <form> subtree.
57830             2) Variables containing <form> submit state information.
57831             3) Flag to hold information if reset() has been called.
57832             4) Flag(m_wasDemoted) that indicates whether the form is demoted or not, based on which it needs to
57833                be handled differently during creation of its renderer.
57834                This information is currently being updated only during the HTML tree construction phase.
57835             5) Flag(m_wasMalformed) to hold information if the <form> is malformed or not.
57836
57837           Variables of group (1) will be updated as and when elements are added to the <form> subtree. Whereas,
57838           (2) and (3) hold instance specific information, thus copying them is not required. Also (5) is currently not
57839           being used(not set by any code).
57840
57841           On the other hand, (4) is required to be copied during cloning as this information cannot be accessed
57842           during the cloning process.
57843
57844         (WebCore):
57845         * html/HTMLFormElement.h:
57846           Added copyNonAttributePropertiesFromElement() declaration.
57847
57848 2012-10-04  Dean Jackson  <dino@apple.com>
57849
57850         Attribute and Uniform variable names need translation in shader
57851         https://bugs.webkit.org/show_bug.cgi?id=70989
57852
57853         Reviewed by Tim Horton (and Darin Adler).
57854
57855         WebGL specifies some maximum lengths for variable names (attributes
57856         and uniforms). Also, some GL drivers have issues with long names. For
57857         that reason, ANGLE has an option to rewrite the shader, translating
57858         long names into short names. Turning this on helps shaders compile,
57859         but we need to keep a mapping between the original names and the
57860         translated names, so that we bind to the right location from user code
57861         (which won't ever see the translated source).
57862
57863         This provided an opportunity to clean up some other bits of code:
57864         CSS Filters examined the uniform names after a compilation; It can
57865         now use the variable name map. I also added a typedef for the
57866         HashMaps that keep the shader, the source code and the variable name
57867         mappings.
57868
57869         I also opened a followup bug to make sure these tables are deleted
57870         when the associated shaders (or linked programs) go away:
57871         https://bugs.webkit.org/show_bug.cgi?id=98204
57872
57873         Covered by existing tests (with some enhancements):
57874         - fast/canvas/webgl/attrib-location-length-limits.html:
57875         - fast/canvas/webgl/uniform-location-length-limits.html:
57876
57877         * platform/graphics/ANGLEWebKitBridge.cpp:
57878         (WebCore::getSymbolInfo): Extracts all the information on symbols (either attributes
57879         or uniforms) from the newly compiled shader.
57880         (WebCore):
57881         (WebCore::ANGLEWebKitBridge::compileShaderSource): New method name.
57882         * platform/graphics/ANGLEWebKitBridge.h:
57883         (WebCore::getUniforms): Deleted this method.
57884         (WebCore::ANGLEShaderSymbol::isSampler): Make sure the symbol is a uniform.
57885         (ANGLEWebKitBridge):
57886         * platform/graphics/GraphicsContext3D.h:
57887         (WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): A new object that
57888         holds the size, type and translated name of a symbol from a WebGL shader.
57889         (ShaderSourceEntry):
57890         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry): Now keeps track
57891         of the translated source code and symbol mappings.
57892         (WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap): Helper function to
57893         get the member variable corresponding to the type of symbol you're asking fo.
57894         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
57895         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram): Calls new method
57896         name which also produces a set of symbols to examine.
57897         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
57898         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): We now can pass
57899         in some extra compile options to do translation of long symbol names. Also fill the
57900         map of translated symbol names.
57901         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
57902         (WebCore::GraphicsContext3D::compileShader):
57903         (WebCore::GraphicsContext3D::mappedSymbolName): Returns the mapped name for
57904         a shader symbol if it was translated during compilation.
57905         (WebCore):
57906         (WebCore::GraphicsContext3D::getAttribLocation):
57907         (WebCore::GraphicsContext3D::getShaderiv):
57908         (WebCore::GraphicsContext3D::getShaderInfoLog):
57909         (WebCore::GraphicsContext3D::getShaderSource):
57910         (WebCore::GraphicsContext3D::getUniformLocation):
57911
57912 2012-10-04  Alpha Lam  <hclam@chromium.org>
57913
57914         [skia] Drawing a subrect of bitmap image is misaligned
57915         https://bugs.webkit.org/show_bug.cgi?id=95121
57916
57917         Reviewed by Stephen White.
57918
57919         When drawing a subrect of BitmapImage and the subrect is not aligned
57920         to integer boundaries, skia expands it to the closest enclosing integer
57921         rectangle. This creates prominent rendering artifacts when an image
57922         is used as background and its sub-regions are invalidated frequently.
57923
57924         This patch fixes the problem by doing alignment to integer boundaries
57925         and clipping for both cases of RESAMPLE_AWESOME and RESAMPLE_LINEAR.
57926
57927         A clip rect is applied to the canvas using original destination
57928         rectangle, while source and destination rectangles are enlarged
57929         appropriately to ensure source rectangle is aligned.
57930
57931         This patch also fixes a closely related problem. In RESAMPLE_AWESOME
57932         resampling mode the previous algorithm applies different approximated
57933         scale factor for each scaled image fragment. This caused the stitched
57934         image to look ugly.
57935
57936         Scale factor is approximated using entire image size, this gives a
57937         more accurate approximation because of greater denominator and a
57938         consistent scale factor across all fragments.
57939
57940         Changes in Skia enable caching of the scaled image and return the
57941         scaled fragment because scale factor is now consistent for all
57942         fragments.
57943
57944         Tests: fast/images/paint-subrect-grid.html
57945                fast/images/paint-subrect.html
57946                fast/images/repaint-subrect-grid.html
57947
57948         * platform/graphics/skia/ImageSkia.cpp:
57949         (WebCore::computeResamplingMode): Use float for width and height.
57950         (WebCore):
57951         (WebCore::areBoundariesIntegerAligned):
57952         (WebCore::computeBitmapDrawRects):
57953         (WebCore::extractScaledImageFragment):
57954         (WebCore::drawResampledBitmap): New algorithm for drawing scaled image fragment.
57955         (WebCore::paintSkBitmap):
57956         (WebCore::Image::drawPattern):
57957         (WebCore::BitmapImage::draw): Use SkRect instead of SkIRect.
57958         (WebCore::BitmapImageSingleFrameSkia::draw):
57959         * platform/graphics/skia/NativeImageSkia.cpp:
57960         Changing the algorithm for extracting a scaled image fragment.
57961         A fragment is now identified by (scaledImageSize, scaledImageSubset).
57962         (WebCore::NativeImageSkia::hasResizedBitmap):
57963         (WebCore::NativeImageSkia::resizedBitmap):
57964         (WebCore::NativeImageSkia::shouldCacheResampling):
57965         (WebCore::NativeImageSkia::CachedImageInfo::CachedImageInfo):
57966         (WebCore):
57967         (WebCore::NativeImageSkia::CachedImageInfo::isEqual):
57968         (WebCore::NativeImageSkia::CachedImageInfo::set):
57969         (WebCore::NativeImageSkia::CachedImageInfo::rectInSubset):
57970         * platform/graphics/skia/NativeImageSkia.h:
57971         (NativeImageSkia):
57972         (CachedImageInfo):
57973
57974 2012-10-03  Ryosuke Niwa  <rniwa@webkit.org>
57975
57976         ReplaceSelectionCommand should merge text nodes
57977         https://bugs.webkit.org/show_bug.cgi?id=98188
57978
57979         Reviewed by Levi Weintraub.
57980
57981         Added mergeTextNodesAroundPosition to ReplaceSelectionCommand to merge text nodes after the replace in
57982         completeHTMLReplacement. Also fixed a bunch of bugs in other classes and functions to make this work.
57983
57984         This behavior change is tested by existing tests.
57985
57986         * editing/InsertParagraphSeparatorCommand.cpp:
57987         (WebCore::InsertParagraphSeparatorCommand::doApply): When splitting a text node, place the insertionPosition
57988         at the end of the first half. Leaving it at the beginning of the second half confuses the rest of the code in
57989         the function. However, the logic to handle the "insignificant" white spaces needs the position at the start of
57990         the second half. So keep this position.
57991         * editing/ReplaceSelectionCommand.cpp:
57992         (WebCore::ReplaceSelectionCommand::doApply): Update visibleStart after inserting a paragraph separator so that
57993         the logic to cleanup the nested div checks the right condition (right beneath it starting with a long comment).
57994         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Insert a space for smart paste at the appropriate
57995         offset instead of at the end of endNode. Also update the layout before obtaining startDownstream as we may have 
57996         modified the DOM by inserting a space for endNode. Finally, a non-breaking space should be treated like a space
57997         isCharacterSmartReplaceExempt for the purpose of smart replace. e.g. if we're inserting "world" after
57998         "hello&nbsp;", we shouldn't be inserting another space between "hello" and "world".
57999         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
58000         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): Added. Merge text nodes around position, and
58001         adjust position and positionOnlyToBeUpdated accordingly. We need to call updatePositionForNodeRemoval when
58002         positions were before or after the text node.
58003         * editing/ReplaceSelectionCommand.h:
58004         (ReplaceSelectionCommand):
58005
58006 2012-10-04  Tony Chang  <tony@chromium.org>
58007
58008         Fix <input type="month"> tests
58009         https://bugs.webkit.org/show_bug.cgi?id=98426
58010
58011         Reviewed by Ojan Vafai.
58012
58013         The month picker uses flexbox and assumes that it will be aligned with
58014         the last line box. This looks visually correct. I will follow up on
58015         www-style to see what the expected behavior is.
58016
58017         Tests: fast/forms/month-multiple-fields tests cover this.
58018
58019         * rendering/RenderFlexibleBox.cpp:
58020         * rendering/RenderFlexibleBox.h:
58021
58022 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58023
58024         Unreviewed, rolling out r130396.
58025         http://trac.webkit.org/changeset/130396
58026         https://bugs.webkit.org/show_bug.cgi?id=98421
58027
58028         This patch is causing crashes on 4 tests on Lion Debug and
58029         Mountain Lion Debug (Requested by jernoble on #webkit).
58030
58031         * rendering/RenderLayerCompositor.cpp:
58032         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58033         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58034         * rendering/RenderLayerCompositor.h:
58035         * testing/InternalSettings.cpp:
58036         (WebCore::InternalSettings::Backup::Backup):
58037         (WebCore::InternalSettings::Backup::restoreTo):
58038         * testing/InternalSettings.h:
58039         (Backup):
58040
58041 2012-10-04  Tony Chang  <tony@chromium.org>
58042
58043         inline-flex baseline is sometimes wrong
58044         https://bugs.webkit.org/show_bug.cgi?id=96188
58045
58046         Reviewed by Ojan Vafai.
58047
58048         Implement the necessary methods to get the proper baseline alignment of flexbox.
58049         We were falling back to the inline-block behavior.
58050
58051         Test: css3/flexbox/flexbox-baseline.html
58052
58053         * rendering/RenderFlexibleBox.cpp:
58054         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
58055         (WebCore::RenderFlexibleBox::baselinePosition): Used to get the baseline of the box.
58056         Mostly just the first line box baseline.
58057         (WebCore):
58058         (WebCore::RenderFlexibleBox::lastLineBoxBaseline): This is used for getting the baseline when in an inline-block.
58059         We actually don't want the last line, but the flexbox's baseline.
58060         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Compute the baseline according to the rules in the spec.
58061         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Keep track of the number of children on the
58062         first line so we don't have to re-compute this when getting the baseline.
58063         (WebCore::RenderFlexibleBox::crossAxisExtentForChild): Make const.
58064         (WebCore::RenderFlexibleBox::mainAxisExtentForChild): Make const.
58065         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis): Make const.
58066         * rendering/RenderFlexibleBox.h: Add a size_t to keep track of how many children are in the first line.
58067
58068 2012-10-04  Xianzhu Wang  <wangxianzhu@chromium.org>
58069
58070         [Chromium] Should set unitsPerEm in SimpleFontDataSkia.cpp
58071         https://bugs.webkit.org/show_bug.cgi?id=98100
58072
58073         Reviewed by Stephen White.
58074
58075         At least on chromium-linux and chromium-android, unitsPerEm was not set
58076         according to the information in the font, causing at least problems in
58077         OpenTypeVerticalData when calculating vertical advance.
58078
58079         Test: fast/writing-mode/vertical-font-vmtx-units-per-em.html
58080
58081         * platform/graphics/skia/SimpleFontDataSkia.cpp:
58082         (WebCore::SimpleFontData::platformInit):
58083
58084 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
58085
58086         Standardize on "flush" terminology for compositing layer flushing/syncing
58087         https://bugs.webkit.org/show_bug.cgi?id=98321
58088
58089         Reviewed by Simon Fraser.
58090
58091         Rename compositing-related methods that refer to "syncing" to instead
58092         refer to "flushing".
58093
58094         * WebCore.exp.in:
58095         * loader/EmptyClients.h:
58096         (WebCore::EmptyChromeClient::scheduleCompositingLayerFlush):
58097         * page/ChromeClient.h:
58098         (ChromeClient):
58099         * page/FrameView.cpp:
58100         (WebCore::FrameView::flushCompositingStateForThisFrame):
58101         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
58102         (WebCore::FrameView::paintContents):
58103         * page/FrameView.h:
58104         (FrameView):
58105         * rendering/RenderLayerCompositor.cpp:
58106         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
58107         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
58108
58109 2012-10-04  Peter Rybin  <peter.rybin@gmail.com>
58110
58111         Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis
58112         https://bugs.webkit.org/show_bug.cgi?id=94397
58113
58114         Reviewed by Yury Semikhatsky.
58115
58116         Internal property access is built from Injected Script to V8 debug API. JSC binding
58117         has a stub imlpementation. Protocol is updated to explicitly reflect internal properties.
58118
58119         Test: inspector-protocol/runtime-getProperties.html
58120
58121         * bindings/js/JSInjectedScriptHostCustom.cpp:
58122         (WebCore::JSInjectedScriptHost::getInternalProperties):
58123         (WebCore):
58124         * bindings/v8/DebuggerScript.js:
58125         * bindings/v8/ScriptDebugServer.cpp:
58126         (WebCore::ScriptDebugServer::getInternalProperties):
58127         (WebCore):
58128         * bindings/v8/ScriptDebugServer.h:
58129         (ScriptDebugServer):
58130         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
58131         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallback):
58132         (WebCore):
58133         * inspector/InjectedScript.cpp:
58134         (WebCore::InjectedScript::getInternalProperties):
58135         (WebCore):
58136         * inspector/InjectedScript.h:
58137         (InjectedScript):
58138         * inspector/InjectedScriptHost.idl:
58139         * inspector/InjectedScriptSource.js:
58140         (.):
58141         * inspector/Inspector.json:
58142         * inspector/InspectorRuntimeAgent.cpp:
58143         (WebCore::InspectorRuntimeAgent::getProperties):
58144         * inspector/InspectorRuntimeAgent.h:
58145         (InspectorRuntimeAgent):
58146
58147 2012-10-04  Sami Kyostila  <skyostil@chromium.org>
58148
58149         Fixed position visibility check does not consider descendants
58150         https://bugs.webkit.org/show_bug.cgi?id=98144
58151
58152         Reviewed by Simon Fraser.
58153
58154         The check against creating composition layers for invisible fixed positioned
58155         elements is too aggressive in that it does not consider descendants of the
58156         fixed positioned element that may be visible even though the element itself is
58157         out of view.
58158
58159         Fix the problem by calculating the true composited bounds of the fixed
58160         element instead of just using the size of the fixed layer. Because calculating
58161         the true bounds may be expensive, it is only done if the fixed layer itself is
58162         invisible.
58163
58164         Test: compositing/layer-creation/fixed-position-absolute-descendant.html
58165
58166         * rendering/RenderLayerCompositor.cpp:
58167         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58168         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58169         * rendering/RenderLayerCompositor.h:
58170
58171 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58172
58173         Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.
58174         https://bugs.webkit.org/show_bug.cgi?id=98385
58175
58176         Reviewed by Pavel Feldman.
58177
58178         When javaScriptSource diverges from VM, ResourceScriptMapping now switches debugging
58179         to temporary VM scripts based uiSourceCode with isDivergedReplacement property set.
58180         Added hasDivergedFromVM and isDivergingFromVM properties to JavaScriptSource.
58181         JavaScriptSourceFrame and ScriptSnippetsModel are updated to process breakpoint changes correctly.
58182
58183         * inspector/front-end/BreakpointManager.js:
58184         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
58185         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
58186         * inspector/front-end/JavaScriptSource.js:
58187         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
58188         (WebInspector.JavaScriptSource.prototype.workingCopyChanged):
58189         (WebInspector.JavaScriptSource.prototype.fireHasDivergedFromVMChanged):
58190         * inspector/front-end/JavaScriptSourceFrame.js:
58191         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
58192         (WebInspector.JavaScriptSourceFrame.prototype._hasDivergedFromVM):
58193         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
58194         (WebInspector.JavaScriptSourceFrame.prototype._getBreakpointDecorations):
58195         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
58196         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
58197         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
58198         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
58199         * inspector/front-end/ResourceScriptMapping.js:
58200         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
58201         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
58202         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
58203         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
58204         * inspector/front-end/ScriptSnippetModel.js:
58205         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58206         (WebInspector.ScriptSnippetModel.prototype._restoreBreakpoints):
58207         * inspector/front-end/ScriptsPanel.js:
58208         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58209         * inspector/front-end/UISourceCode.js:
58210         (WebInspector.UISourceCode.prototype.formatted):
58211
58212 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58213
58214         Web Inspector: Scripts panel should not automatically switch to snippet evaluation when previously evaluated snippet is edited.
58215         https://bugs.webkit.org/show_bug.cgi?id=98402
58216
58217         Reviewed by Pavel Feldman.
58218
58219         Scripts panel does not automatically switch to snippet evaluation when
58220         one edits previously evaluated snippet.
58221
58222         * inspector/front-end/ScriptSnippetModel.js:
58223         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58224         * inspector/front-end/ScriptsPanel.js:
58225         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58226
58227 2012-10-04  Balazs Kelemen  <kbalazs@webkit.org>
58228
58229         Don't allow to disable compositing in forced compositing mode
58230         https://bugs.webkit.org/show_bug.cgi?id=98048
58231
58232         Reviewed by Jocelyn Turcotte.
58233
58234         Make forced compositing mode imply accelerated compositing. This will
58235         avoid unexpected situations for platforms that don't want to support
58236         the non-accelerated rendering path.
58237
58238         Covered by existing tests.
58239
58240         * WebCore.exp.in: Export Settings::setAcceleratedCompositingEnabled
58241         because it has been deinlined.
58242         * page/Settings.cpp:
58243         (WebCore::Settings::setAcceleratedCompositingEnabled):
58244         (WebCore::Settings::setForceCompositingMode):
58245         (WebCore):
58246         * page/Settings.h:
58247         (Settings):
58248         (WebCore::Settings::forceCompositingMode): Make it const as a side fix.
58249
58250 2012-10-04  Harald Alvestrand  <hta@google.com>
58251
58252         Change RTCPeerConnection GetStats to use Date timestamp format
58253         https://bugs.webkit.org/show_bug.cgi?id=98263
58254
58255         Reviewed by Yury Semikhatsky.
58256
58257         Tested by extension to RTCPeerConnection-stats test.
58258
58259         * Modules/mediastream/RTCStatsElement.cpp:
58260         (WebCore::RTCStatsElement::create):
58261         (WebCore::RTCStatsElement::RTCStatsElement):
58262         * Modules/mediastream/RTCStatsElement.h: long -> double
58263         (RTCStatsElement):
58264         (WebCore::RTCStatsElement::timestamp):
58265         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58266         * Modules/mediastream/RTCStatsReport.cpp:
58267         (WebCore::RTCStatsReport::addElement):
58268         * Modules/mediastream/RTCStatsReport.h:
58269         (RTCStatsReport):
58270         * Modules/mediastream/RTCStatsResponse.cpp:
58271         (WebCore::RTCStatsResponse::addElement):
58272         * Modules/mediastream/RTCStatsResponse.h:
58273         (RTCStatsResponse):
58274         * platform/chromium/support/WebRTCStatsResponse.cpp:
58275         (WebKit::WebRTCStatsResponse::addElement):
58276         * platform/mediastream/RTCStatsResponseBase.h:
58277         (RTCStatsResponseBase):
58278
58279 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58280
58281         Unreviewed, rolling out r130377.
58282         http://trac.webkit.org/changeset/130377
58283         https://bugs.webkit.org/show_bug.cgi?id=98392
58284
58285         Chromium Win compilation is broken (Requested by yurys on
58286         #webkit).
58287
58288         * Modules/mediastream/RTCStatsElement.cpp:
58289         (WebCore::RTCStatsElement::create):
58290         (WebCore::RTCStatsElement::RTCStatsElement):
58291         * Modules/mediastream/RTCStatsElement.h:
58292         (RTCStatsElement):
58293         (WebCore::RTCStatsElement::timestamp):
58294         * Modules/mediastream/RTCStatsElement.idl:
58295         * Modules/mediastream/RTCStatsReport.cpp:
58296         (WebCore::RTCStatsReport::addElement):
58297         * Modules/mediastream/RTCStatsReport.h:
58298         (RTCStatsReport):
58299         * Modules/mediastream/RTCStatsResponse.cpp:
58300         (WebCore::RTCStatsResponse::addElement):
58301         * Modules/mediastream/RTCStatsResponse.h:
58302         (RTCStatsResponse):
58303         * platform/chromium/support/WebRTCStatsResponse.cpp:
58304         (WebKit::WebRTCStatsResponse::addElement):
58305         * platform/mediastream/RTCStatsResponseBase.h:
58306         (RTCStatsResponseBase):
58307
58308 2012-10-04  Harald Alvestrand  <hta@google.com>
58309
58310         Change RTCPeerConnection GetStats to use Date timestamp format
58311         https://bugs.webkit.org/show_bug.cgi?id=98263
58312
58313         Reviewed by Adam Barth.
58314
58315         Tested by extension to RTCPeerConnection-stats test.
58316
58317         * Modules/mediastream/RTCStatsElement.cpp:
58318         (WebCore::RTCStatsElement::create):
58319         (WebCore::RTCStatsElement::RTCStatsElement):
58320         * Modules/mediastream/RTCStatsElement.h: long -> double
58321         (RTCStatsElement):
58322         (WebCore::RTCStatsElement::timestamp):
58323         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58324         * Modules/mediastream/RTCStatsReport.cpp:
58325         (WebCore::RTCStatsReport::addElement):
58326         * Modules/mediastream/RTCStatsReport.h:
58327         (RTCStatsReport):
58328         * Modules/mediastream/RTCStatsResponse.cpp:
58329         (WebCore::RTCStatsResponse::addElement):
58330         * Modules/mediastream/RTCStatsResponse.h:
58331         (RTCStatsResponse):
58332         * platform/chromium/support/WebRTCStatsResponse.cpp:
58333         (WebKit::WebRTCStatsResponse::addElement):
58334         * platform/mediastream/RTCStatsResponseBase.h:
58335         (RTCStatsResponseBase):
58336
58337 2012-10-05  Kent Tamura  <tkent@chromium.org>
58338
58339         [Chromium] Enable the multiple fields UI for input[type=date]
58340         https://bugs.webkit.org/show_bug.cgi?id=98351
58341
58342         Reviewed by Hajime Morita.
58343
58344         Touch files related to ENABLE_INPUT_TYPE_DATE_LEGACY_UI to avoid build
58345         issues.
58346
58347         No new tests. Many tests will be landed shortly.
58348
58349         * html/DateInputType.cpp:
58350         * html/DateInputType.h:
58351
58352 2012-10-04  Kent Tamura  <tkent@chromium.org>
58353
58354         Add code for input[type=date] with the multiple fields UI
58355         https://bugs.webkit.org/show_bug.cgi?id=98340
58356
58357         Reviewed by Hajime Morita.
58358
58359         The new code is available if !ENABLE(INPUT_TYPE_DATE_LEGACY_UI). At this
58360         moment, there are no platforms enabling the new code. We're going to
58361         enable it soon on desktop Chromium, and add tests. Then we're going to
58362         remove the code for ENABLE(INPUT_TYPE_DATE_LEGACY_UI).
58363
58364         ENABLE(INPUT_TYPE_DATE_LEGACY_UI) means the current UI; input[type=date]
58365         is represetnted as a kind of text field, and it has code to invoke a
58366         calendar picker.
58367         ENABLE(CALENDAR_PICKER) was used wrongly. It meant calendar picker
58368         support + text field UI of input[type=date]. Now it means only calendar
58369         picker support.
58370
58371         * html/DateInputType.h:
58372         (WebCore): If ENABLE(INPUT_MULTIPLE_FIELDS_UI) &&
58373         !ENABLE(INPUT_TYPE_DATE_LEGACY_UI), change the base class to the class
58374         for multiple fields UI.
58375         (DateInputType): Wrap the code for text fields behavior and calendar
58376         picker UI with ENABLE(INPUT_TYPE_DATE_LEGACY_UI). Add functions for
58377         ENABLE(INPUT_MULTIPLE_FIELDS_UI)
58378         * html/DateInputType.cpp:
58379         (WebCore::DateInputType::DateInputType):
58380         Change the flag name; CALENDAR_PICKER -> INPUT_TYPE_DATE_LEGACY_UI
58381         (WebCore): ditto.
58382         (WebCore::DateInputType::formatDateTimeFieldsState):
58383         A callback for multiple fields UI. This constructs a string value from
58384         each of values of multiple fields.
58385         Note that we don't need to do +1 to month().
58386         (WebCore::DateInputType::setupLayoutParameters):
58387         A callback for multiple fields UI. Passes information to build UI.
58388
58389         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58390         (BaseMultipleFieldsDateAndTimeInputType):
58391         Add m_pickerIndicatorIsAlwaysVisible member, wrap some members with flags.
58392         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58393         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
58394         Initialize m_pickerIndicatorIsAlwaysVisible.
58395         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
58396         If a type supports calendar picker, we should always show the picker
58397         indicator. We introduce m_pickerIndicatorIsAlwaysVisible flag, and ask
58398         RenderTheme for support status of each of types.
58399         Add a local variable 'document' to avoid multiple element()->document().
58400         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility):
58401         - If m_pickerIndicatorIsAlwaysVisible, don't hide the picker indicator element.
58402         - Wrap the code with appropriate flags.
58403
58404         * rendering/RenderTheme.h:
58405         (WebCore::RenderTheme::supportsCalendarPicker): Added.
58406         * rendering/RenderThemeChromiumMac.h: Override supportsCalendarPicker.
58407         * rendering/RenderThemeChromiumMac.mm:
58408         (WebCore::RenderThemeChromiumMac::supportsCalendarPicker):
58409         Added. Delegate to RenderThemeChromiumCommon.
58410         * rendering/RenderThemeChromiumSkia.h: Override supportsCalendarPicker.
58411         * rendering/RenderThemeChromiumSkia.cpp:
58412         (WebCore::RenderThemeChromiumSkia::supportsCalendarPicker):
58413         Added. Delegate to RenderThemeChromiumCommon.
58414         * rendering/RenderThemeChromiumCommon.h:
58415         (RenderThemeChromiumCommon): Declare supportsCalendarPicker.
58416         * rendering/RenderThemeChromiumCommon.cpp:
58417         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
58418         Returns true if the type is "date."
58419
58420         * html/DateTimeFieldsState.h:
58421         (DateTimeFieldsState): Add a comment for the m_month field.
58422
58423 2012-10-04  Kent Tamura  <tkent@chromium.org>
58424
58425         DateTimeYearFieldElement should respect min/max values specified by page authors
58426         https://bugs.webkit.org/show_bug.cgi?id=98227
58427
58428         Reviewed by Hajime Morita.
58429
58430         Before this patch, we always set 1 to the minimum limit and 275760 to
58431         the maximum limit for a year field, and a user can specify any year
58432         regardless of min/max attributes. Such wide range is unnecessary for
58433         normal applications and we should provide a way to limit the range.
58434
58435         Test: fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
58436
58437         * html/shadow/DateTimeFieldElements.h:
58438         To add four constructor arguments, introduce Parameters struct.
58439         Actually, we add the followings;
58440          - minimum year in UI
58441          - maximum year in UI
58442          - min attribute is specified
58443          - max attribute is specified
58444         (Parameters):
58445         (WebCore::DateTimeYearFieldElement::Parameters::Parameters):
58446         (DateTimeYearFieldElement):
58447         * html/shadow/DateTimeFieldElements.cpp:
58448         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): ditto.
58449         (WebCore::DateTimeYearFieldElement::create): ditto.
58450         (WebCore::DateTimeYearFieldElement::clampValueForHardLimits):
58451         Override DateTimeNumericFieldElement::clampValueForHardLimits.
58452         By this, we allow to set out-of-range year values.
58453         (WebCore::currentFullYear): A helper to get the current year.
58454         (WebCore::DateTimeYearFieldElement::defaultValueForStepDown):
58455         If the field has no value and step down operation occurs,
58456          - the field has the current year if the max attribute is not specified.
58457          - the field has the maximum value otherwise.
58458         (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Similar change.
58459
58460         * html/shadow/DateTimeNumericFieldElement.h:
58461         (DateTimeNumericFieldElement): Declare clampValueForHardLimits.
58462         * html/shadow/DateTimeNumericFieldElement.cpp:
58463         (WebCore::DateTimeNumericFieldElement::clampValueForHardLimits):
58464         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
58465         Call clampValueForHardLimits instead of clampValue in order to
58466         distinguish limits for UI and limits for internal value update.
58467
58468         * html/shadow/DateTimeEditElement.h:
58469         (LayoutParameters): Add minimumYear and maximumYear members.
58470         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58471         Initialize minimumYear and maximumYear.
58472         (WebCore::DateTimeEditElement::LayoutParameters::undefinedYear):
58473         Represents 'undefined' value for minimumYear and maximumYear.
58474         * html/shadow/DateTimeEditElement.cpp:
58475         (WebCore::DateTimeEditBuilder::visitField):
58476         Preparas DateTimeYearField::Parameters and pass it to the DateTimeYearField factory.
58477
58478         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58479         (WebCore::BaseMultipleFieldsDateAndTimeInputType::fullYear):
58480         A helper to get a year value from an attribute value string.
58481         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58482         (BaseMultipleFieldsDateAndTimeInputType): Add fullYear().
58483
58484         * html/DateTimeInputType.cpp:
58485         (WebCore::DateTimeInputType::setupLayoutParameters):
58486         Set LayoutParameters::minimumYear and maximumYear.
58487         * html/DateTimeLocalInputType.cpp:
58488         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
58489         * html/MonthInputType.cpp:
58490         (WebCore::MonthInputType::setupLayoutParameters): ditto.
58491         * html/WeekInputType.cpp:
58492         (WebCore::WeekInputType::setupLayoutParameters): ditto.
58493
58494 2012-10-03  Adam Barth  <abarth@webkit.org>
58495
58496         Unreviewed. Fix parse error in vcproj file.
58497
58498         * WebCore.vcproj/WebCore.vcproj:
58499
58500 2012-10-03  Keishi Hattori  <keishi@webkit.org>
58501
58502         Implement localizeValue for TimeInputType
58503         https://bugs.webkit.org/show_bug.cgi?id=98237
58504
58505         Reviewed by Kent Tamura.
58506
58507         We want to localize time values for the suggestion picker.
58508         DateTimeStringBuilder parses a format and creates a formatted string.
58509
58510         Added chromium unit test LocaleMacTest.formatTime
58511
58512         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58513         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField): Moved from LayoutParameters because we want to use it inside localizeValue.
58514         (WebCore):
58515         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58516         (BaseMultipleFieldsDateAndTimeInputType):
58517         * html/DateTimeInputType.cpp:
58518         (WebCore::DateTimeInputType::setupLayoutParameters):
58519         * html/DateTimeLocalInputType.cpp:
58520         (WebCore::DateTimeLocalInputType::setupLayoutParameters):
58521         * html/TimeInputType.cpp:
58522         (WebCore::TimeInputType::localizeValue):
58523         (WebCore):
58524         (WebCore::TimeInputType::setupLayoutParameters):
58525         * html/TimeInputType.h:
58526         (TimeInputType):
58527         * html/shadow/DateTimeEditElement.cpp:
58528         (WebCore):
58529         * html/shadow/DateTimeEditElement.h:
58530         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58531         * platform/text/LocaleICU.cpp:
58532         (WebCore::LocaleICU::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58533         * platform/text/LocaleICU.h:
58534         (LocaleICU):
58535         * platform/text/LocaleWin.cpp:
58536         (WebCore::LocaleWin::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58537         * platform/text/LocaleWin.h:
58538         (LocaleWin):
58539         * platform/text/LocaleNone.cpp:
58540         (LocaleNone):
58541         (WebCore::LocaleNone::formatDateTime):
58542         * platform/text/Localizer.cpp:
58543         (DateTimeStringBuilder):
58544         (WebCore):
58545         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder): Takes a
58546         Localizer pointer. This is used inside the Localizer so the Localizer
58547         will out live the DateTimeStringBuilder.
58548         (WebCore::DateTimeStringBuilder::build): Builds a localized string for the given format.
58549         (WebCore::DateTimeStringBuilder::zeroPadString):
58550         (WebCore::DateTimeStringBuilder::appendNumber): Appends a number with left zero padding to match width.
58551         (WebCore::DateTimeStringBuilder::visitField):
58552         (WebCore::DateTimeStringBuilder::visitLiteral):
58553         (WebCore::DateTimeStringBuilder::toString): Returns the localized string.
58554         (WebCore::Localizer::formatDateTime):
58555         * platform/text/Localizer.h:
58556         * platform/text/mac/LocaleMac.h:
58557         (LocaleMac):
58558         * platform/text/mac/LocaleMac.mm:
58559         (WebCore::LocaleMac::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58560
58561 2012-10-03  Douglas Stockwell  <dstockwell@chromium.org>
58562
58563         Chromium needs support for border radius clipping
58564         https://bugs.webkit.org/show_bug.cgi?id=69866
58565
58566         Reviewed by Stephen White.
58567
58568         Changes to make this suitably efficient have already landed upstream in skia:
58569         http://code.google.com/p/skia/source/detail?r=2924
58570
58571         Covered by existing tests.
58572
58573         * rendering/RenderLayer.cpp:
58574
58575 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58576
58577         Simplify attribute access in Element::computeInheritedLanguage
58578         https://bugs.webkit.org/show_bug.cgi?id=98327
58579
58580         Reviewed by Andreas Kling.
58581
58582         * dom/Element.cpp:
58583         (WebCore::Element::computeInheritedLanguage):
58584         By using Element::fastGetAttribute(), we check for the existence of attributeData twice
58585         and do a bunch of useless operation on AtomicString.
58586
58587         By using ElementAttributeData directly, we can cut it to the two important branch.
58588
58589 2012-10-03  Kangil Han  <kangil.han@samsung.com>
58590
58591         Fix unused parameter compile warnings.
58592         https://bugs.webkit.org/show_bug.cgi?id=98243
58593
58594         Reviewed by Alexey Proskuryakov.
58595
58596         Fixed unused parameter compile warning by removing parameter names and adding UNUSED_PARAM usage.
58597
58598         * plugins/PluginDebug.cpp:
58599         (WebCore::prettyNameForNPPVariable):
58600         * plugins/npapi.cpp:
58601         (NPN_MemFlush):
58602         (NPN_RequestRead):
58603         (NPN_GetJavaPeer):
58604
58605 2012-10-03  Adam Barth  <abarth@webkit.org>
58606
58607         Measure the usage of WebSQLDatabase
58608         https://bugs.webkit.org/show_bug.cgi?id=98330
58609
58610         Reviewed by Ojan Vafai.
58611
58612         WebKit is the only engine that implements WebSQLDatabase. This patch
58613         causes us to measure its usage so we can see how quickly web sites move
58614         to IndexedDB.
58615
58616         * Modules/webdatabase/DOMWindowWebDatabase.idl:
58617         * page/FeatureObserver.h:
58618
58619 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58620
58621         [soup] WebKit crashes when doing a http request
58622         https://bugs.webkit.org/show_bug.cgi?id=98055
58623
58624         Reviewed by Martin Robinson.
58625
58626         On i386, (d->m_firstRequest.timeoutInterval() * 1000) results in 0 if
58627         timeoutInterval() is INT_MAX. So, set default timeout to 0 to avoid
58628         calling soup_add_timeout with a 0 value.
58629
58630         Also, if resource handle is deleted before "request-started" signal is
58631         emitted, soupMessage handle points to a deleted object, and a crash
58632         occurs. So, reset soupMessage handle data in
58633         cleanupSoupRequestOperation so it won't happen anymore.
58634
58635         Lastly, if timeout occurs before request is completed, handle is
58636         deleted, and crash occurs in sendRequestCallback due to an early
58637         destroyed handle. To avoid that, call handle->cancel in
58638         requestTimeoutCallback. There is no need to call
58639         cleanupSoupRequestOperation anymore since handle->cancel will trigger
58640         sendRequestCallback, and as handle is deleted,
58641         cleanupSoupRequestOperation will be called automatically.
58642
58643         No new tests yet, tests will be added with the patch in bug 74802.
58644
58645         * platform/network/ResourceRequestBase.cpp:
58646         (WebCore):
58647         * platform/network/soup/ResourceHandleSoup.cpp:
58648         (WebCore::cleanupSoupRequestOperation):
58649         (WebCore::ResourceHandle::platformSetDefersLoading):
58650         (WebCore::requestTimeoutCallback):
58651
58652 2012-10-03  Adam Barth  <abarth@webkit.org>
58653
58654         Remove support for ENABLE(LEGACY_WEBKIT_BLOB_BUILDER)
58655         https://bugs.webkit.org/show_bug.cgi?id=98301
58656
58657         Reviewed by Eric Seidel.
58658
58659         According to anonymous usage statistics, the APIs guarded by
58660         ENABLE(LEGACY_WEBKIT_BLOB_BUILDER) are used on approximately 0.006% of
58661         web pages. Given that this feature is only enabled in GTK and Chromium,
58662         it seems likely that we should remove it.
58663
58664         * CMakeLists.txt:
58665         * DerivedSources.make:
58666         * DerivedSources.pri:
58667         * GNUmakefile.features.am:
58668         * GNUmakefile.list.am:
58669         * WebCore.gypi:
58670         * WebCore.xcodeproj/project.pbxproj:
58671         * fileapi/WebKitBlobBuilder.idl: Removed.
58672         * page/DOMWindow.idl:
58673
58674 2012-10-03  Beth Dakin  <bdakin@apple.com>
58675
58676         https://bugs.webkit.org/show_bug.cgi?id=98313
58677         ScrollingStateNode should keep a Vector of children instead of child 
58678         pointers
58679
58680         Reviewed by Simon Fraser.
58681
58682         This patch re-names ScrollingStateNode::cloneNode() to 
58683         ScrollingStateNode::cloneAndResetNode(). The new function resets the 
58684         change properties of the current node after cloning it, and it also 
58685         takes care of cloning children, which the old function did not do.
58686
58687         m_firstChild and m_nextSibling are gone. Use the m_children Vector 
58688         instead.
58689         * page/scrolling/ScrollingStateNode.cpp:
58690         (WebCore::ScrollingStateNode::cloneAndResetChildNodes):
58691         (WebCore::ScrollingStateNode::appendChild):
58692         * page/scrolling/ScrollingStateNode.h:
58693         (ScrollingStateNode):
58694         (WebCore::ScrollingStateNode::parent):
58695         (WebCore::ScrollingStateNode::setParent):
58696
58697         Reset the change properties and clone children in cloneAndResetNode()
58698         * page/scrolling/ScrollingStateScrollingNode.cpp:
58699         (WebCore::ScrollingStateScrollingNode::cloneAndResetNode):
58700         * page/scrolling/ScrollingStateScrollingNode.h:
58701
58702         Yay, this function can be vastly simplified now that we don't have 
58703         those messy child and sibling pointers.
58704         * page/scrolling/ScrollingStateTree.cpp:
58705         (WebCore::ScrollingStateTree::commit):
58706
58707 2012-10-03  Ojan Vafai  <ojan@chromium.org>
58708
58709         Replace uses of -webkit-box-sizing with box-sizing
58710         https://bugs.webkit.org/show_bug.cgi?id=98312
58711
58712         Reviewed by Tony Chang.
58713
58714         No need to use the prefixed version when the unprefixed works the same.
58715         No new tests since there's no change in behavior..
58716
58717         * css/html.css:
58718
58719 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58720
58721         IndexedDB: Don't do full commit for empty transactions
58722         https://bugs.webkit.org/show_bug.cgi?id=89239
58723
58724         Reviewed by Tony Chang.
58725
58726         Don't bother creating a leveldb write batch if there's nothing in the transaction
58727         to commit. Note that a read-only transaction may still have index cleanup so may
58728         not be an empty transaction.
58729
58730         This cuts the Lookup2 benchmark in http://reyesr.github.com/html5-storage-benchmark/
58731         from 70s to 2s.
58732
58733         Covered by existing tests, e.g. storage/indexeddb/transaction-basics.html
58734
58735         * platform/leveldb/LevelDBTransaction.cpp:
58736         (WebCore::LevelDBTransaction::commit):
58737
58738 2012-10-03  Adam Klein  <adamk@chromium.org>
58739
58740         Remove bogus FIXME from Document.idl
58741         https://bugs.webkit.org/show_bug.cgi?id=98302
58742
58743         Reviewed by Adam Barth.
58744
58745         The FIXME claimed that document.body throwing an exception was not
58746         specced, but in fact it is:
58747         http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#dom-document-body
58748
58749         * dom/Document.idl:
58750
58751 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58752
58753         IndexedDB: Memory leak when deleting object stores with indexes
58754         https://bugs.webkit.org/show_bug.cgi?id=98292
58755
58756         Reviewed by Tony Chang.
58757
58758         Reference cycles between IDBObjectStore and IDBIndex instances are explicitly
58759         broken when the transaction completes (and the spec allows traversal to fail).
58760         Deleted stores need to have the reference cycle broken too.
58761
58762         Caught by running valgrind over: storage/indexeddb/keypath-basics.html
58763
58764         * Modules/indexeddb/IDBTransaction.cpp:
58765         (WebCore::IDBTransaction::objectStoreDeleted): Add store to set.
58766         (WebCore::IDBTransaction::dispatchEvent): Notify stores in set.
58767         * Modules/indexeddb/IDBTransaction.h: Add set of deleted stores.
58768
58769 2012-10-03  Adam Barth  <abarth@webkit.org>
58770
58771         CSSNamespace.h is empty and should be deleted
58772         https://bugs.webkit.org/show_bug.cgi?id=98304
58773
58774         Reviewed by Eric Seidel.
58775
58776         There's no reason to have this file in the repository.
58777
58778         * GNUmakefile.list.am:
58779         * WebCore.gypi:
58780         * WebCore.vcproj/WebCore.vcproj:
58781         * WebCore.xcodeproj/project.pbxproj:
58782         * css/CSSNamespace.h: Removed.
58783
58784 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58785
58786         Build failure with css filters enabled and accelerated compositing disabled
58787         https://bugs.webkit.org/show_bug.cgi?id=95908
58788
58789         Reviewed by Tony Chang.
58790
58791         Do not try to setBackingNeedsRepaint when building without accelerated
58792         compositing.
58793
58794         Also, allow painting with filter (paintsWithFilters returns true if
58795         renderer has filter) when accelerated compositing is not enabled.
58796
58797         No functional change, so no new tests.
58798
58799         * rendering/RenderLayer.cpp:
58800         (WebCore::RenderLayer::styleChanged):
58801
58802 2012-10-03  Emil A Eklund  <eae@chromium.org>
58803
58804         Round image sizes when zooming
58805         https://bugs.webkit.org/show_bug.cgi?id=98205
58806
58807         Reviewed by Eric Seidel.
58808
58809         We currently floor image sizes when zooming which can result in
58810         images being rendered at one pixel less than the actual size.
58811         This is especially likely to happen for very large images.
58812
58813         Test: fast/sub-pixel/zoomed-image-tiles.html
58814
58815         * loader/cache/CachedImage.cpp:
58816         (WebCore::CachedImage::imageSizeForRenderer):
58817
58818 2012-10-03  Hugo Parente Lima  <hugo.lima@openbossa.org>
58819
58820         [WK2] PageViewportController.cpp is supposed to be a generic WebKit2 file but only works with Qt port.
58821         https://bugs.webkit.org/show_bug.cgi?id=98186
58822
58823         Reviewed by Noam Rosenthal.
58824
58825         Remove the implicit conversion from WebCore::FloatSize to QSize.
58826
58827         * platform/graphics/FloatSize.h:
58828         (FloatSize):
58829
58830 2012-10-03  Levi Weintraub  <leviw@chromium.org>
58831
58832         [Sub-pixel layout] incorrect rendering when painting sub-layers as their own root
58833         https://bugs.webkit.org/show_bug.cgi?id=97484
58834
58835         Reviewed by Eric Seidel.
58836
58837         When in compositing mode, layer painting can be triggered through the backing store. When this
58838         happens, a non-top-level RenderLayer is called to paint as its own root. Normally, we attempt to preserve
58839         the proper sub-pixel accumulation through layers to their children, but since we're not
58840         starting with the top-level layer, we haven't properly accumulated one, and convertToLayerCoords,
58841         another source of correctly getting the sub-pixel offset for a layer, also avoids crawling
58842         past the listed root layer.
58843
58844         When painting a root layer, we're aligned to the surface we're painting to, so we round our
58845         offset to avoid moving objects around.
58846
58847         * rendering/RenderLayer.cpp:
58848         (WebCore::RenderLayer::paintLayerContents):
58849
58850 2012-10-03  Jeff Timanus  <twiz@chromium.org>
58851
58852         [chromium] Expose settings value to conditionally enable pinch-zoom scaling in the Chromium compositor.  The
58853         flag defaults to disabled, so this change should be a no-op for scaling/scrolling behaviour.
58854         https://bugs.webkit.org/show_bug.cgi?id=93292
58855
58856         Reviewed by James Robinson.
58857
58858         Tests:  Existing page-scale layout tests.
58859
58860         * page/Frame.cpp:
58861         (WebCore::Frame::frameScaleFactor):
58862         * page/Settings.cpp:
58863         (WebCore::Settings::Settings):
58864         * page/Settings.h:
58865         (WebCore::Settings::setApplyPageScaleFactorInCompositor):
58866         (WebCore::Settings::applyPageScaleFactorInCompositor):
58867         (Settings):
58868
58869 2012-10-03  Stephen Chenney  <schenney@chromium.org>
58870
58871         Font data is purged while fonts are still using it
58872         https://bugs.webkit.org/show_bug.cgi?id=93640
58873
58874         Reviewed by Eric Seidel.
58875
58876         Move the handling of custom font pruning from Document to FontFallbackList.
58877         The previous inplementation allowed fonts to be removed before all their
58878         clients were done. This change moves handling of custom font purging to the
58879         FontFallbackList class, which is the shared object that is only removed
58880         when all clients of a font are done with it. This fixes a crash in Angry
58881         Birds due to a seamless iframe and some failing tests in fast/frames/seamless.
58882
58883         The specific element that causes problems is:
58884         <iframe id="ingame_frame0" name="ingame_frame0" frameborder="0" seamless="true"
58885           src="http://chrome.angrybirds.com/ingame_graphic.html"
58886           onload="this.style.opacity = 1; parent.adLoaded();" scrolling="no"
58887           style="opacity: 1; -webkit-transition: opacity 1s ease-in-out 0s;
58888           position: absolute; border: 0px; width: 312px; height: 320px; z-index:
58889           300; overflow: hidden; visibility: visible;"></iframe>
58890         The source document uses the same font as the embedding document.
58891
58892         Tests: fast/frames/seamless/seamless-custom-font-pruning-crash.html
58893                fast/frames/seamless/seamless-nested-crash.html
58894
58895         * css/CSSFontFaceSource.cpp:
58896         (WebCore::CSSFontFaceSource::getFontData): Remove code to register the font with the document.
58897         * css/CSSSegmentedFontFace.cpp:
58898         (WebCore::CSSSegmentedFontFace::getFontData): Remove code to register the font with the document.
58899         * dom/Document.cpp:
58900         (WebCore::Document::~Document): Remove code that records and purges custom fonts.
58901         (WebCore):
58902         (WebCore::Document::reportMemoryUsage): Remove reference to non-existent objects.
58903         * dom/Document.h:
58904         (WebCore):
58905         (Document): Remove method declarations for custom font handling.
58906         * platform/graphics/FontFallbackList.h:
58907         (FontFallbackList): Moved some code around and made non-copyable.
58908         (WebCore::FontFallbackList::setGlyphPageZero): Moved.
58909         (WebCore::FontFallbackList::setGlyphPages): Moved.
58910         * platform/graphics/GlyphPageTreeNode.cpp:
58911         (WebCore::GlyphPageTreeNode::pruneFontData): Removed unnecessary null check.
58912         * platform/graphics/SegmentedFontData.cpp:
58913         (WebCore::SegmentedFontData::~SegmentedFontData): Added code to prune the Glyph pages when this is deleted.
58914         * platform/graphics/SimpleFontData.cpp:
58915         (WebCore::SimpleFontData::~SimpleFontData): Added code to prune the Glyph pages when this is deleted.
58916
58917 2012-10-03  Adam Barth  <abarth@webkit.org>
58918
58919         Crash when calling document.open during unload
58920         https://bugs.webkit.org/show_bug.cgi?id=98287
58921
58922         Reviewed by Nate Chapin.
58923
58924         Calling document.open results in us nulling out m_documentLoader. This
58925         code doesn't properly handle that case and crashes.
58926
58927         Test: fast/parser/document-open-in-unload.html
58928
58929         * loader/FrameLoader.cpp:
58930         (WebCore::FrameLoader::commitProvisionalLoad):
58931
58932 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58933
58934         Element::computeInheritedLanguage: evaluate the while() condition after fetching the string
58935         https://bugs.webkit.org/show_bug.cgi?id=98220
58936
58937         Reviewed by Andreas Kling.
58938
58939         * dom/Element.cpp:
58940         (WebCore::Element::computeInheritedLanguage):
58941         The condition is never false on the first execution. Move the condition to the
58942         end of the loop for fun and profit.
58943
58944 2012-10-03  Hans Wennborg  <hans@chromium.org>
58945
58946         Speech JavaScript API: Add SpeechRecognition.interimResults attribute
58947         https://bugs.webkit.org/show_bug.cgi?id=98279
58948
58949         Reviewed by Adam Barth.
58950
58951         Add the interimResults attribute and pass it to the embedder. It was
58952         added to the spec draft in
58953         http://dvcs.w3.org/hg/speech-api/rev/d25fea0d029c
58954
58955         Tested in fast/speech/scripted/basics.html
58956
58957         * Modules/speech/SpeechRecognition.cpp:
58958         (WebCore::SpeechRecognition::start):
58959         (WebCore::SpeechRecognition::SpeechRecognition):
58960         * Modules/speech/SpeechRecognition.h:
58961         (WebCore::SpeechRecognition::interimResults):
58962         (WebCore::SpeechRecognition::setInterimResults):
58963         * Modules/speech/SpeechRecognition.idl:
58964         * Modules/speech/SpeechRecognitionClient.h:
58965         (SpeechRecognitionClient):
58966         * Modules/speech/SpeechRecognitionController.h:
58967         (WebCore::SpeechRecognitionController::start):
58968
58969 2012-10-03  Hans Wennborg  <hans@chromium.org>
58970
58971         Speech JavaScript API: Remove resultdeleted event
58972         https://bugs.webkit.org/show_bug.cgi?id=98272
58973
58974         Reviewed by Adam Barth.
58975
58976         Remove the resultdeleted event. This was never used, and was removed
58977         from the spec draft in
58978         http://dvcs.w3.org/hg/speech-api/rev/f9d53ab8b449
58979
58980         The fast/speech/scripted/basics.html test is updated to reflect this.
58981
58982         * Modules/speech/SpeechRecognition.cpp:
58983         * Modules/speech/SpeechRecognition.h:
58984         (SpeechRecognition):
58985         * Modules/speech/SpeechRecognition.idl:
58986         * Modules/speech/SpeechRecognitionEvent.cpp:
58987         * Modules/speech/SpeechRecognitionEvent.h:
58988         (SpeechRecognitionEvent):
58989         * dom/EventNames.h:
58990         (WebCore):
58991
58992 2012-09-16  Mark Hahnenberg  <mhahnenberg@apple.com>
58993
58994         Delayed structure sweep can leak structures without bound
58995         https://bugs.webkit.org/show_bug.cgi?id=96546
58996
58997         Reviewed by Geoffrey Garen.
58998
58999         This patch gets rid of the separate Structure allocator in the MarkedSpace and adds two new destructor-only
59000         allocators. We now have separate allocators for our three types of objects: those objects with no destructors,
59001         those objects with destructors and with immortal structures, and those objects with destructors that don't have 
59002         immortal structures. All of the objects of the third type (destructors without immortal structures) now 
59003         inherit from a new class named JSDestructibleObject (which in turn is a subclass of JSNonFinalObject), which stores 
59004         the ClassInfo for these classes at a fixed offset for safe retrieval during sweeping/destruction.
59005
59006         No new tests.
59007
59008         * ForwardingHeaders/runtime/JSDestructableObject.h: Added.
59009         * bindings/js/JSDOMWrapper.h: Inherits from JSDestructibleObject.
59010         (JSDOMWrapper):
59011         (WebCore::JSDOMWrapper::JSDOMWrapper):
59012         * bindings/scripts/CodeGeneratorJS.pm: Add finalizers to anything that inherits from JSGlobalObject,
59013         e.g. JSDOMWindow and JSWorkerContexts. For those classes we also need to define needsDestruction as true.
59014         (GenerateHeader):
59015         * bridge/objc/objc_runtime.h: Inherit from JSDestructibleObject.
59016         (ObjcFallbackObjectImp):
59017         * bridge/objc/objc_runtime.mm:
59018         (Bindings):
59019         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
59020         * bridge/runtime_array.cpp: Use a finalizer so that JSArray isn't forced to inherit from JSDestructibleObject.
59021         (JSC):
59022         (JSC::RuntimeArray::destroy):
59023         * bridge/runtime_array.h:
59024         (JSC::RuntimeArray::create):
59025         (JSC):
59026         * bridge/runtime_object.cpp: Inherit from JSDestructibleObject.
59027         (Bindings):
59028         (JSC::Bindings::RuntimeObject::RuntimeObject):
59029         * bridge/runtime_object.h:
59030         (RuntimeObject):
59031
59032 2012-10-02  Anders Carlsson  <andersca@apple.com>
59033
59034         Change most GraphicsLayer::create calls to use the version that takes a GraphicsLayerFactory
59035         https://bugs.webkit.org/show_bug.cgi?id=98217
59036
59037         Reviewed by Andreas Kling.
59038
59039         * WebCore.exp.in:
59040         * rendering/RenderLayerBacking.cpp:
59041         (WebCore::RenderLayerBacking::createGraphicsLayer):
59042         * rendering/RenderLayerCompositor.cpp:
59043         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
59044         (WebCore::RenderLayerCompositor::ensureRootLayer):
59045
59046 2012-10-03  Joshua Bell  <jsbell@chromium.org>
59047
59048         IndexedDB: Optimize encodeString/decodeString
59049         https://bugs.webkit.org/show_bug.cgi?id=97794
59050
59051         Reviewed by Tony Chang.
59052
59053         Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling.
59054         The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy
59055         isn't sufficient, but the code used StringBuilder::append() character-by-character
59056         and custom byte-swapping which was slow.
59057
59058         Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string
59059         and putting it 20k times and getting it 20k times. On my test box, mean time before the
59060         patch was 8.2s, mean time after the patch was 4.6s.
59061
59062         Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*'
59063
59064         * Modules/indexeddb/IDBLevelDBCoding.cpp:
59065         (WebCore::IDBLevelDBCoding::encodeString):
59066         (WebCore::IDBLevelDBCoding::decodeString):
59067
59068 2012-10-03  Keishi Hattori  <keishi@webkit.org>
59069
59070         Implement DataList UI for input type time on chromium
59071         https://bugs.webkit.org/show_bug.cgi?id=98240
59072
59073         Reviewed by Kent Tamura.
59074
59075         This adds datalist UI for input type time. We add the picker indicator to
59076         BaseMultipleFieldsDateAndTimeInputType. We enclose the dateTimeEdit element
59077         and picker indicator inside a new div element so we can position the picker
59078         indicator in the same place as input type=date.
59079
59080         Tests: platform/chromium/fast/forms/time/time-suggestion-picker-appearance-rtl.html
59081                platform/chromium/fast/forms/time/time-suggestion-picker-appearance-with-scroll-bar.html
59082                platform/chromium/fast/forms/time/time-suggestion-picker-appearance.html
59083                platform/chromium/fast/forms/time/time-suggestion-picker-key-operations.html
59084                platform/chromium/fast/forms/time/time-suggestion-picker-mouse-operations.html
59085
59086         * css/html.css:
59087         (input::-webkit-date-and-time-container):
59088         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
59089         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
59090         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Creates a picker indicator.
59091         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open the picker on Alt+Down.
59092         (WebCore):
59093         (WebCore::BaseMultipleFieldsDateAndTimeInputType::listAttributeTargetChanged): Updates picker visibility.
59094         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility): In the future, DateInputType can override
59095         this so the picker indicator is always visible.
59096         (WebCore::BaseMultipleFieldsDateAndTimeInputType::hidePickerIndicator):
59097         (WebCore::BaseMultipleFieldsDateAndTimeInputType::showPickerIndicator):
59098         * html/BaseMultipleFieldsDateAndTimeInputType.h:
59099         (WebCore):
59100         (BaseMultipleFieldsDateAndTimeInputType):
59101         * html/shadow/DateTimeFieldElement.cpp:
59102         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Ignore Alt+down because it should trigger the picker to open.
59103         * rendering/RenderThemeChromiumCommon.cpp:
59104         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add time to the list.
59105
59106 2012-10-03  Andreas Kling  <kling@webkit.org>
59107
59108         Give CSSValueList backing vector an inline capacity.
59109         <http://webkit.org/b/98266>
59110         <rdar://problem/12421425>
59111
59112         Reviewed by Anders Carlsson.
59113
59114         Set an inline capacity of 4 on the CSSValue vector backing CSSValueList. This avoids an extra heap allocation
59115         in the common case, and reduces total memory use across the board, since the majority of CSSValueLists have
59116         at least 1 item, and the Vector will bump from 0 to 16 capacity on the first append.
59117
59118         394kB progression on Membuster3.
59119
59120         * css/CSSValueList.h:
59121         (CSSValueList):
59122
59123 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59124
59125         Web Inspector: NMI: instrument NativeImageSkia.
59126         https://bugs.webkit.org/show_bug.cgi?id=96277
59127
59128         Reviewed by Yury Semikhatsky.
59129
59130         * platform/graphics/skia/NativeImageSkia.cpp:
59131         (WebCore::NativeImageSkia::reportMemoryUsage):
59132         (WebCore::reportMemoryUsage):
59133
59134 2012-10-03  Pavel Feldman  <pfeldman@chromium.org>
59135
59136         Web Inspector: remember the last dock option so that user could toggle between dock to bottom and right
59137         https://bugs.webkit.org/show_bug.cgi?id=98255
59138
59139         Reviewed by Vsevolod Vlasov.
59140
59141         - Introduced DockController.js that covers the dock mechanics
59142         - Removed dock orientation from the settings
59143         - Storing the last dock option to present it as default
59144         - Simplified the multi-option status bar button
59145
59146         * WebCore.gypi:
59147         * WebCore.vcproj/WebCore.vcproj:
59148         * inspector/compile-front-end.py:
59149         * inspector/front-end/DockController.js: Added.
59150         (WebInspector.DockController):
59151         (WebInspector.DockController.prototype.get element):
59152         (WebInspector.DockController.prototype.setDocked.set if):
59153         (WebInspector.DockController.prototype.setDocked):
59154         (WebInspector.DockController.prototype.setDockingUnavailable):
59155         (WebInspector.DockController.prototype._updateUI.get states):
59156         (WebInspector.DockController.prototype._updateUI):
59157         (WebInspector.DockController.prototype._decorateButtonForTargetState):
59158         (WebInspector.DockController.prototype._createDockOptions):
59159         (WebInspector.DockController.prototype._toggleDockState):
59160         (WebInspector.DockController.prototype.isCompactMode):
59161         (WebInspector.DockController.prototype.setCompactMode):
59162         * inspector/front-end/InspectorFrontendAPI.js:
59163         (InspectorFrontendAPI.setAttachedWindow):
59164         * inspector/front-end/InspectorFrontendHostStub.js:
59165         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
59166         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
59167         * inspector/front-end/Settings.js:
59168         * inspector/front-end/SettingsScreen.js:
59169         (WebInspector.GenericSettingsTab):
59170         * inspector/front-end/StatusBarButton.js:
59171         (WebInspector.StatusBarButton):
59172         * inspector/front-end/Toolbar.js:
59173         (WebInspector.Toolbar):
59174         (WebInspector.Toolbar.prototype.setCompactMode):
59175         (WebInspector.Toolbar.prototype._toolbarDragStart):
59176         (WebInspector.Toolbar.prototype._toolbarDrag):
59177         * inspector/front-end/WebKit.qrc:
59178         * inspector/front-end/externs.js:
59179         (WebInspector.toggleSearchingForNode):
59180         * inspector/front-end/inspector.css:
59181         (body.undocked.platform-mac-snowleopard #toolbar):
59182         (body.undocked.platform-mac-snowleopard #toolbar-dropdown):
59183         * inspector/front-end/inspector.html:
59184         * inspector/front-end/inspector.js:
59185         (WebInspector._createGlobalStatusBarItems):
59186         (windowLoaded):
59187         (WebInspector.setDockingUnavailable):
59188         * inspector/front-end/inspectorCommon.css:
59189         (body.dock-to-right:not(.undocked)):
59190         (body.dock-to-right.inactive:not(.undocked)):
59191
59192 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59193
59194         Web Inspector: UISourceCode commitWorkingCopy should not fail when original script had syntax error.
59195         https://bugs.webkit.org/show_bug.cgi?id=97272
59196
59197         Reviewed by Pavel Feldman.
59198
59199         This patch is based on patch by John J. Barton.
59200
59201         * inspector/front-end/JavaScriptSource.js:
59202         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): added rawLocation null check.
59203
59204 2012-10-03  Alexander Pavlov  <apavlov@chromium.org>
59205
59206         Web Inspector: After "Edit as HTML", any click outside box should stop editing
59207         https://bugs.webkit.org/show_bug.cgi?id=98258
59208
59209         Reviewed by Vsevolod Vlasov.
59210
59211         Make the DOM tree OL span the entire height of its container in the Elements panel to catch mouse events.
59212
59213         * inspector/front-end/elementsPanel.css:
59214         (#elements-content > ol):
59215
59216 2012-10-03  Dongwoo Joshua Im  <dw.im@samsung.com>
59217
59218         [EFL] Skeleton code of File system API.
59219         https://bugs.webkit.org/show_bug.cgi?id=91187
59220
59221         Reviewed by Gyuyoung Kim.
59222
59223         Add skeleton code of File System API on EFL port.
59224         Implementation patches will be created later.
59225
59226         No new tests because this is just skeleton code.
59227
59228         * CMakeLists.txt: Add new files which created by other patches in Modules/filesystem/ directory.
59229         * PlatformEfl.cmake: Add AsyncFileSystemEfl.cpp.
59230         * platform/AsyncFileSystem.cpp:
59231         (WebCore):
59232         * platform/efl/AsyncFileSystemEfl.cpp: Added.
59233         * platform/efl/AsyncFileSystemEfl.h: Added.
59234
59235 2012-10-03  Andreas Kling  <kling@webkit.org>
59236
59237         Shrink ElementRareData by moving bool flags to NodeRareData.
59238         <http://webkit.org/b/98225>
59239
59240         Reviewed by Antti Koivisto.
59241
59242         Move all bool flags from ElementRareData to the bitfield in its base class NodeRareData.
59243         This shrinks ElementRareData by 8 bytes (on 64-bit) and saves a whopping 58kB on Membuster3.
59244         Also removed some double raredata hash lookups.
59245
59246         * dom/Element.cpp:
59247         (WebCore::Element::detach):
59248         (WebCore::Element::recalcStyle):
59249         (WebCore::Element::ensureShadow):
59250         (WebCore::Element::setStyleAffectedByEmpty):
59251         (WebCore::Element::styleAffectedByEmpty):
59252         (WebCore::Element::setIsInCanvasSubtree):
59253         (WebCore::Element::isInCanvasSubtree):
59254         (WebCore::Element::containsFullScreenElement):
59255         (WebCore::Element::setContainsFullScreenElement):
59256         * dom/ElementRareData.h:
59257         (ElementRareData):
59258         (WebCore::ElementRareData::ElementRareData):
59259         * dom/NodeRareData.h:
59260         (WebCore::NodeRareData::styleAffectedByEmpty):
59261         (WebCore::NodeRareData::setStyleAffectedByEmpty):
59262         (WebCore::NodeRareData::isInCanvasSubtree):
59263         (WebCore::NodeRareData::setIsInCanvasSubtree):
59264         (NodeRareData):
59265         (WebCore::NodeRareData::containsFullScreenElement):
59266         (WebCore::NodeRareData::setContainsFullScreenElement):
59267
59268 2012-10-03  Jussi Kukkonen  <jussi.kukkonen@intel.com>
59269
59270         getComputedStyle perspective-origin is based on the wrong bounding box
59271         https://bugs.webkit.org/show_bug.cgi?id=98027
59272
59273         Reviewed by Simon Fraser.
59274
59275         perspective-origin for ComputedStyleDeclaration is currently calculated using the
59276         wrong bounding box (sizingBox() which ends up as the contentbox).
59277
59278         Start using borderbox for ComputedStyleDeclaration perspective-origin, similar to
59279         what transform-origin already does.
59280
59281         Test: fast/css/getComputedStyle/getComputedStyle-origin-percentage.html
59282
59283         * css/CSSComputedStyleDeclaration.cpp:
59284         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
59285
59286 2012-10-03  Patrick Gansterer  <paroga@webkit.org>
59287
59288         Build fix for WinCE after r130160.
59289
59290         * platform/graphics/FontFastPath.cpp:
59291         (WebCore::Font::glyphDataAndPageForCharacter):
59292
59293 2012-10-03  Tommy Widenflycht  <tommyw@google.com>
59294
59295         MediaStream API: RTCPeerConnection should send down its handler via the FrameLoaderClient directly after creation.
59296         https://bugs.webkit.org/show_bug.cgi?id=98149
59297
59298         Reviewed by Adam Barth.
59299
59300         The chromium implementation needs to know which Frame created a PeerConnection so
59301         that the right housekeeping can take place correctly.
59302
59303         Not testable in DRT, but have verified the change manually and with our pyautotests.
59304
59305         * Modules/mediastream/RTCPeerConnection.cpp:
59306         (WebCore::RTCPeerConnection::RTCPeerConnection):
59307         * loader/FrameLoaderClient.h:
59308         (WebCore):
59309         (FrameLoaderClient):
59310         (WebCore::FrameLoaderClient::dispatchWillStartUsingPeerConnectionHandler):
59311         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
59312         (WebCore::RTCPeerConnectionHandlerChromium::toWebRTCPeerConnectionHandler):
59313         (WebCore):
59314         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
59315         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
59316         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
59317         (RTCPeerConnectionHandlerChromium):
59318
59319 2012-10-03  Eugene Klyuchnikov  <eustas.bug@gmail.com>
59320
59321         Web Inspector: Profiles: taking heap snapshot causes error message in console.
59322         https://bugs.webkit.org/show_bug.cgi?id=97890
59323
59324         Reviewed by Yury Semikhatsky.
59325
59326         Actual problem is that proxy loader is closed twice.
59327
59328         "_snapshotReceived" should never try to close receiver,
59329         because it is a callback fired by close.
59330
59331         Also minor glitches fixed:
59332          - taking snapshot shows "Loading..." status first,
59333         and then "Saving xxx%";
59334          - after all chunks are sent "Parsing" status is set and
59335         then is replaced with "Saving 100%";
59336          - removed dead code in proxy;
59337          - proxy was ignoring callback parameter;
59338          - "Loading %d\%" is not localized.
59339
59340         * English.lproj/localizedStrings.js: Added missing "Loading %d%" string.
59341         * inspector/front-end/HeapSnapshotProxy.js: Removed dead code.
59342         (WebInspector.HeapSnapshotLoaderProxy):
59343         (WebInspector.HeapSnapshotLoaderProxy.prototype.write): Make this method
59344         interface-conformant.
59345         * inspector/front-end/HeapSnapshotView.js:
59346         (WebInspector.HeapProfileHeader): Fixed update-status and
59347         finish-transfer logic.
59348
59349 2012-10-03  Jochen Eisinger  <jochen@chromium.org>
59350
59351         Make sure that user gestures can't be consumed twice
59352         https://bugs.webkit.org/show_bug.cgi?id=97483
59353
59354         Reviewed by Adam Barth.
59355
59356         Instead of a simple counter, use a ref counted token to track how many
59357         user gestures happened and where consumed. When creating a timer that
59358         is supposed to forward the user gesture, take a reference to this token
59359         and reinstantiate the UserGestureIndicator with that token when the
59360         timer is triggered.
59361
59362         Tests: platform/chromium/fast/events/popup-forwarded-gesture-blocked.html
59363                platform/chromium/fast/events/popup-forwarded-gesture.html
59364
59365         * dom/UserGestureIndicator.cpp:
59366         (WebCore):
59367         (WebCore::UserGestureIndicator::UserGestureIndicator):
59368         (WebCore::UserGestureIndicator::~UserGestureIndicator):
59369         (WebCore::UserGestureIndicator::processingUserGesture):
59370         (WebCore::UserGestureIndicator::consumeUserGesture):
59371         (WebCore::UserGestureIndicator::currentToken):
59372         * dom/UserGestureIndicator.h:
59373         (Token):
59374         (WebCore::UserGestureIndicator::Token::~Token):
59375         (UserGestureIndicator):
59376         * page/DOMTimer.cpp:
59377         (WebCore::DOMTimer::DOMTimer):
59378         (WebCore::DOMTimer::fired):
59379         * page/DOMTimer.h:
59380         (DOMTimer):
59381
59382 2012-10-03  Dominic Mazzoni  <dmazzoni@google.com>
59383
59384         AX: Heap-use-after-free when deleting a ContainerNode with an AX object
59385         https://bugs.webkit.org/show_bug.cgi?id=98073
59386
59387         Reviewed by Hajime Morita.
59388
59389         Calls axObjectCache()->remove(this) in ~ContainerNode so that the AX tree
59390         doesn't try to access the container node while walking up the parent chain
59391         from one of the container node's children.
59392
59393         Test: accessibility/container-node-delete-causes-crash.html
59394
59395         * dom/ContainerNode.cpp:
59396         (WebCore::ContainerNode::~ContainerNode):
59397         * dom/Node.cpp:
59398         (WebCore::Node::~Node):
59399         * dom/Node.h:
59400         (WebCore::Node::document):
59401         (WebCore::Node::documentInternal):
59402
59403 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59404
59405         Web Inspector: SourceURL should be taken from debugger agent when possible.
59406         https://bugs.webkit.org/show_bug.cgi?id=98239
59407
59408         Reviewed by Yury Semikhatsky.
59409
59410         Removed a check that sourceURL coming from js engine is the same as the one parsed by debugger agent.
59411         Alwys use the one from debugger agent now.
59412
59413         * inspector/InspectorDebuggerAgent.cpp:
59414         (WebCore::InspectorDebuggerAgent::didParseSource):
59415
59416 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59417
59418         Unreviewed. Touch FrameView.cpp file for fixing mac bot compilation.
59419
59420         * page/FrameView.cpp:
59421         (WebCore):
59422
59423 2012-10-02  Ilya Tikhonovsky  <loislo@chromium.org>
59424
59425         Web Inspector: "Load profile..." context menu item has to be shown only for left column with the list of profiles.
59426         https://bugs.webkit.org/show_bug.cgi?id=98163
59427
59428         Reviewed by Yury Semikhatsky.
59429
59430         The text was changed to "Load Heap Snapshot..."
59431         Also I changed "Save profile..." to "Save Heap Snapshot..." because other profiles don't support Save/Load operations yet.
59432         The Load context menu item will appear only when the user clicked in sidebar the tree empty space or a profile.
59433
59434         * English.lproj/localizedStrings.js:
59435         * inspector/front-end/ProfilesPanel.js:
59436         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
59437         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
59438
59439 2012-10-03  Harald Alvestrand  <hta@google.com>
59440
59441         Add data passing to the GetStats interface of RTCPeerConnection
59442         https://bugs.webkit.org/show_bug.cgi?id=98003
59443
59444         Reviewed by Adam Barth.
59445
59446         Added an RTCStatsResponseBase interface to platform, and let the
59447         RTCStatsRequestImpl class produce an implementation of it that's returned
59448         to WebCore.
59449
59450         Tested by extension of the RTCPeerConnection-stats.html test.
59451
59452         * Modules/mediastream/RTCStatsElement.cpp:
59453         (WebCore::RTCStatsElement::addStatistic):
59454         (WebCore):
59455         * Modules/mediastream/RTCStatsElement.h:
59456         (RTCStatsElement):
59457         * Modules/mediastream/RTCStatsReport.cpp:
59458         (WebCore):
59459         (WebCore::RTCStatsReport::addElement):
59460         (WebCore::RTCStatsReport::addStatistic):
59461         * Modules/mediastream/RTCStatsReport.h:
59462         (RTCStatsReport):
59463         * Modules/mediastream/RTCStatsRequestImpl.cpp:
59464         (WebCore::RTCStatsRequestImpl::createResponse):
59465         (WebCore):
59466         (WebCore::RTCStatsRequestImpl::requestSucceeded):
59467         * Modules/mediastream/RTCStatsRequestImpl.h:
59468         (RTCStatsRequestImpl):
59469         * Modules/mediastream/RTCStatsResponse.cpp:
59470         (WebCore::RTCStatsResponse::create):
59471         (WebCore::RTCStatsResponse::addReport):
59472         (WebCore):
59473         (WebCore::RTCStatsResponse::addElement):
59474         (WebCore::RTCStatsResponse::addStatistic):
59475         * Modules/mediastream/RTCStatsResponse.h:
59476         (RTCStatsResponse):
59477         * WebCore.gypi:
59478         * platform/chromium/support/WebRTCStatsRequest.cpp:
59479         (WebKit::WebRTCStatsRequest::response):
59480         (WebKit):
59481         (WebKit::WebRTCStatsRequest::requestSucceeded):
59482         * platform/chromium/support/WebRTCStatsResponse.cpp: Added.
59483         (WebKit):
59484         (WebKit::WebRTCStatsResponse::WebRTCStatsResponse):
59485         (WebKit::WebRTCStatsResponse::assign):
59486         (WebKit::WebRTCStatsResponse::reset):
59487         (WebKit::WebRTCStatsResponse::operator WTF::PassRefPtr<WebCore::RTCStatsResponseBase>):
59488         (WebKit::WebRTCStatsResponse::addReport):
59489         (WebKit::WebRTCStatsResponse::addElement):
59490         (WebKit::WebRTCStatsResponse::addStatistic):
59491         * platform/mediastream/RTCStatsRequest.h:
59492         (WebCore):
59493         (RTCStatsRequest):
59494         * platform/mediastream/RTCStatsResponseBase.h: Added.
59495         (WebCore):
59496         (RTCStatsResponseBase):
59497         (WebCore::RTCStatsResponseBase::~RTCStatsResponseBase):
59498
59499 2012-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
59500
59501         [GTK] Add API to get the web view that initiated a custom URI request to WebKit2 GTK+
59502         https://bugs.webkit.org/show_bug.cgi?id=97895
59503
59504         Reviewed by Martin Robinson.
59505
59506         * platform/network/NetworkingContext.h:
59507         (NetworkingContext): Add initiatingPageID().
59508         * platform/network/ResourceHandle.h:
59509         (ResourceHandle): Add static method
59510         getSoupRequestInitiaingPageID().
59511         * platform/network/ResourceHandleInternal.h:
59512         (ResourceHandleInternal): Add initiatingPageID().
59513         * platform/network/soup/ResourceHandleSoup.cpp:
59514         (WebCore::ResourceHandleInternal::initiatingPageID): Get the
59515         initiating page ID of the resource handle networking context.
59516         (WebCore::setSoupRequestInitiaingPageID): Helper function to
59517         attach a page ID to a SoupRequest.
59518         (WebCore::startHTTPRequest): Call setSoupRequestInitiaingPageID()
59519         to attch the initiating page ID to the SoupRequest.
59520         (WebCore::startNonHTTPRequest): Ditto.
59521         (WebCore::ResourceHandle::getSoupRequestInitiaingPageID): Static
59522         method to get the page ID attached to a SoupRequest.
59523
59524 2012-10-03  Kent Tamura  <tkent@chromium.org>
59525
59526         Introduce DateComponents::minimumYear and maximumYear
59527         https://bugs.webkit.org/show_bug.cgi?id=98230
59528
59529         Reviewed by Kentaro Hara.
59530
59531         Share same difinitions in DateComponents.cpp and DateTimeFieldElements.cpp.
59532
59533         No new tests. This doesn't change any bahevior.
59534
59535         * platform/DateComponents.h:
59536         (WebCore::DateComponents::minimumYear): Moved from DateComponents.cpp.
59537         (WebCore::DateComponents::maximumYear): ditto.
59538         * platform/DateComponents.cpp:
59539         (WebCore): Move out static minimumYear and maximumYear.
59540         (WebCore::DateComponents::parseYear): Use DateCompnents::minimumYear and/or maximumYear.
59541         (WebCore::withinHTMLDateLimits): ditto.
59542         (WebCore::DateComponents::parseWeek): ditto.
59543         (WebCore::DateComponents::setMonthsSinceEpoch): ditto.
59544         (WebCore::DateComponents::setMillisecondsSinceEpochForWeek): ditto.
59545
59546         * html/shadow/DateTimeFieldElements.cpp:
59547         (WebCore): Remove minimumYear and maximumYear.
59548         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
59549         Use DateComponents::minimumYear and maximumYear.
59550
59551
59552 2012-10-02  Arko Saha  <arko@motorola.com>
59553
59554         Microdata: itemprop names must not override builtin properties.
59555         https://bugs.webkit.org/show_bug.cgi?id=98025
59556
59557         Reviewed by Kentaro Hara.
59558
59559         We should look in the prototype for functions before assuming it as
59560         an item's name. Return false if the prototype of the object has a
59561         property (function) with propertyName.
59562         Named properties Spec: http://dev.w3.org/2006/webapi/WebIDL/#idl-named-properties
59563         Named property visibility algorithm:
59564         http://dev.w3.org/2006/webapi/WebIDL/#indexed-and-named-properties
59565         ...
59566         7. If the result of calling the [[HasProperty]] internal method on
59567         prototype with property name P is true, then return false.
59568         ...
59569         Also [OverrideBuiltins] is not declared for any of the properties,
59570         hence no overriding is allowed in this case.
59571
59572         Test: fast/dom/MicroData/itemprop-names-override-builtin-properties.html
59573
59574         * bindings/scripts/CodeGeneratorJS.pm:
59575         (GenerateGetOwnPropertySlotBody):
59576         (GenerateGetOwnPropertyDescriptorBody):
59577
59578 2012-10-02  Keishi Hattori  <keishi@webkit.org>
59579
59580         REGRESSION (r129738): Suggestion picker label is placed in the wrong location
59581         https://bugs.webkit.org/show_bug.cgi?id=98094
59582
59583         Reviewed by Kent Tamura.
59584
59585         We needed to reverse padding-left/right when rtl.
59586
59587         No new tests. Covered by date-suggestion-picker-appearance.html.
59588
59589         * Resources/pagepopups/suggestionPicker.css:
59590         (.suggestion-list-entry .label):
59591         (.rtl .suggestion-list-entry .label):
59592
59593 2012-10-02  Yury Semikhatsky  <yurys@chromium.org>
59594
59595         Provide memory instrumentation for HashCountedSet
59596         https://bugs.webkit.org/show_bug.cgi?id=98138
59597
59598         Reviewed by Pavel Feldman.
59599
59600         Replaced addHashCountedSet calls with addMember that now automatically
59601         detects HashCountedSet and calls appropriate routine.
59602
59603         * css/CSSImageGeneratorValue.cpp:
59604         (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
59605         * loader/cache/CachedResource.cpp:
59606
59607 2012-10-02  Nandor Huszka  <hnandor@inf.u-szeged.hu>
59608
59609         Buildfix after r130235.
59610
59611         Reviewed by Csaba Osztrogonác.
59612
59613         systemAllowsMultisamplingOnATICards was deleted from GraphicsContext3D,
59614         but function body remained in GraphicsContext3DOpenGLES. Delete method body.
59615
59616         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
59617
59618 2012-10-02  Kent Tamura  <tkent@chromium.org>
59619
59620         Fix assertion failures on Chromium Debug bots for datetime/datetime-local input types.
59621
59622         * html/shadow/DateTimeFieldElements.cpp:
59623         If a placeholder stirng is empty, use a sequence of "-".
59624         (WebCore::DateTimeDayFieldElement::create):
59625         (WebCore::DateTimeMonthFieldElement::create):
59626         (WebCore::DateTimeYearFieldElement::create):
59627
59628 2012-10-02  MORITA Hajime  <morrita@google.com>
59629
59630         https://bugs.webkit.org/show_bug.cgi?id=98134
59631         [Refactoring] StyleResolver::matchScopedAuthorRules() could be simpler.
59632
59633         Reviewed by Dimitri Glazkov.
59634
59635         matchScopedAuthorRules() did have some optimization which only
59636         makes sense for heavily nested shadow tree. However, we don't see
59637         such type of usage of Shadow DOM and this looks premature
59638         optimization. This change unified its triple for loop into one,
59639         which makes the code much simpler.
59640
59641         No new tests. Covered by existing tests.
59642
59643         * css/StyleResolver.cpp:
59644         (WebCore::StyleResolver::matchScopedAuthorRules):
59645
59646 2012-10-02  Kent Tamura  <tkent@chromium.org>
59647
59648         Introduce Localizer::dateTimeFormatWithSecond and dateTimeFormatWithoutSecond
59649         https://bugs.webkit.org/show_bug.cgi?id=98229
59650
59651         Reviewed by Kentaro Hara.
59652
59653         Unify identical code in DateTimeInputType and DateTimeLocalInputType as
59654         Localizer member functions.
59655         They still have some common code. We'll address it later.
59656
59657         No new tests. This doesn't change any behavior.
59658
59659         * platform/text/Localizer.h:
59660         (Localizer): Add dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59661         * platform/text/Localizer.cpp:
59662         (WebCore::Localizer::dateTimeFormatWithSecond):
59663         Implemented. Just concatenating dateFormat, a space, and timeFormat.
59664         (WebCore::Localizer::dateTimeFormatWithoutSecond):
59665         Implemented. Just concatenating dateFormat, a space, and shortTimeFormat.
59666
59667         * html/DateTimeInputType.cpp:
59668         (WebCore::DateTimeInputType::setupLayoutParameters):
59669         Use dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59670         * html/DateTimeLocalInputType.cpp:
59671         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
59672
59673 2012-10-03  Kent Tamura  <tkent@chromium.org>
59674
59675         Refactoring: DateTimeEditBuilder had better hold LayoutParameters
59676         https://bugs.webkit.org/show_bug.cgi?id=98228
59677
59678         Reviewed by Kentaro Hara.
59679
59680         Stop copying multiple members of LayoutParameters in DateTimeEditBuilder
59681         constructor. This change improves code size and runtime cost.
59682
59683         No new tests. This doesn't change user-visible behavior.
59684
59685         * html/shadow/DateTimeEditElement.cpp:
59686         (DateTimeEditBuilder): Add a comment about lifetime of objects.
59687         (WebCore::DateTimeEditBuilder::stepRange):
59688         Added. A helper to access m_parameters.stepRange.
59689         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
59690         Remove m_stepRange, m_localizer, m_placeholderFor* members.
59691         Add m_parameters.
59692         (WebCore::DateTimeEditBuilder::needMillisecondField):
59693         Use stepRange() instead of m_stepRange.
59694         (WebCore::DateTimeEditBuilder::visitField):
59695         Use m_parameters.placeholderFor*.
59696         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
59697         Use stepRange() instead of m_stepRange.
59698         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly): ditto.
59699         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly): ditto.
59700
59701 2012-10-02  Kent Tamura  <tkent@chromium.org>
59702
59703         Implement LocaleICU::dateFormat
59704         https://bugs.webkit.org/show_bug.cgi?id=98118
59705
59706         Reviewed by Hajime Morita.
59707
59708         http://trac.webkit.org/changeset/130127 introduced
59709         Localizer::dateFormat, and this is its implementation for LocaleICU
59710         classs. The code is going to be used when
59711         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59712
59713         No new tests. The function is not used yet.
59714
59715         * platform/text/LocaleICU.cpp:
59716         (WebCore::LocaleICU::dateFormat):
59717         Implemented. Note that m_shortDateFormat is a UDateFormat object, which
59718         knows various format information.
59719         * platform/text/LocaleICU.h:
59720         (LocaleICU): Add m_dateFormat to cache the format string.
59721
59722 2012-10-02  Kent Tamura  <tkent@chromium.org>
59723
59724         [Mac][Chromium-Mac] Implement LocaleMac::dateFormat
59725         https://bugs.webkit.org/show_bug.cgi?id=98116
59726
59727         Reviewed by Hajime Morita.
59728
59729         http://trac.webkit.org/changeset/130127 introduced
59730         Localizer::dateFormat, and this is its implementation for LocaleICU
59731         classs. The code is going to be used when
59732         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59733
59734         No new tests. The function is not used yet.
59735
59736         * platform/text/mac/LocaleMac.h:
59737         (LocaleMac): Declare m_dateFormat.
59738         * platform/text/mac/LocaleMac.mm:
59739         (WebCore::LocaleMac::dateFormat): Implemented.
59740
59741 2012-10-02  Kent Tamura  <tkent@chromium.org>
59742
59743         [Chromium-Win] Implement LocaleWin::dateFormat
59744         https://bugs.webkit.org/show_bug.cgi?id=98117
59745
59746         Reviewed by Kentaro Hara.
59747
59748         http://trac.webkit.org/changeset/130127 introduced
59749         Localizer::dateFormat, and this is its implementation for LocaleICU
59750         classs. The code is going to be used when
59751         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59752
59753         Tests: Added a new test to WebKit/chromium/tests/LocaleWinTest.cpp.
59754
59755         * platform/text/LocaleWin.cpp:
59756         (WebCore::parseDateFormat):
59757         Fix a continuous apostrophes parsing bug; "abc''''def" produced "abc'''def"
59758         (WebCore::appendAsLDMLLiteral):
59759         A helper function to make a literal string for LDML.
59760         (WebCore::convertWindowsDateFormatToLDML):
59761         Creates an LDML format from a parsed date format tokens.
59762         (WebCore::LocaleWin::dateFormat):
59763         Implemented. This uses convertWindowsDateFormatToLDML.
59764         (WebCore::LocaleWin::dateFormat):
59765         Added for testing. The source windows format is specified as a function
59766         argument.
59767         * platform/text/LocaleWin.h:
59768         (LocaleWin): Declare m_dateFormat and dateFormat().
59769
59770 2012-10-02  Ian Vollick  <vollick@chromium.org>
59771
59772         [chromium] Fix spelling of isNVIDIA override in Extensions3DChromium
59773         https://bugs.webkit.org/show_bug.cgi?id=98219
59774
59775         Reviewed by Dean Jackson.
59776
59777         The override in Extensions3dChromium should have been spelled isNVIDIA, not isNVidia.
59778
59779         No new tests. No change in functionality.
59780
59781         * platform/graphics/chromium/Extensions3DChromium.h:
59782         (WebCore::Extensions3DChromium::isNVIDIA):
59783
59784 2012-10-02  Anders Carlsson  <andersca@apple.com>
59785
59786         Try to fix the Snow Leopard build.
59787
59788         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
59789
59790 2012-10-02  Joshua Bell  <jsbell@chromium.org>
59791
59792         Add htons/htonl definitions and implementations
59793         https://bugs.webkit.org/show_bug.cgi?id=98054
59794
59795         Reviewed by Darin Adler.
59796
59797         Update users of htons and friends to use new wtf/ByteOrder.h header.
59798
59799         No new tests - just refactoring.
59800
59801         * platform/graphics/WOFFFileFormat.cpp:
59802         * platform/graphics/chromium/VDMXParser.cpp:
59803
59804 == Rolled over to ChangeLog-2012-10-02 ==